728x90
반응형
1 ffmpeg 실패
1.1. 원인
ffmpeg의 library들을 찾지 못해 recording이 실패하는 경우가 있다.
(log 중 일부)
[11:25:03.536] [utor-12] [DEBUG] [LOGKEY_202004021125001_QONXG] ffmpeg log : /usr/local/bin/ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
아래와 같이 확인하면 library path가 제대로 안 잡혀져 있는 경우가 있다.
[root@gep-base logs]# ldd /usr/local/bin/ffmpeg
linux-vdso.so.1 => (0x00007ffe91d76000)
libavdevice.so.58 => not found
libavfilter.so.7 => not found
libavformat.so.58 => not found
libavcodec.so.58 => not found
libpostproc.so.55 => not found
libswresample.so.3 => not found
libswscale.so.5 => not found
libavutil.so.56 => not found
libm.so.6 => /lib64/libm.so.6 (0x00007fa518a22000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa518806000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa518438000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa518d24000)
1.2. 해결방법
- /etc/ld.so.conf 수정
아래와 같이 /etc/ld.so.conf 파일에 library 위치를 강제로 추가하였다. (LD_LIBRARY_PATH를 사용자의 .bash_profile에 추가해도 되나, 이미 그렇게 설정되어 있는 상태에서도 문제가 발생한 경우임)
include ld.so.conf.d/*.conf
/usr/local/lib
설정한 것을 적용하기 위해 ldconfig 실행
근본적으로 이를 해결하기 위해 Dockerfile에 위와 같은 내용을 추가하여 이미지 생성 시에 포함하였다.
다시 한 번 확인해보면 정상적으로 path가 잡혀져 있는 것을 확인할 수 있다. (이미 적용된 후 다른 system에서 확인을 하다보니 일부 library가 다른 것은 양해 부탁드립니다.)
[gigasurv@gep-base ~]$ ldd $(which ffmpeg)
linux-vdso.so.1 => (0x00007ffd1c3db000)
libavdevice.so.58 => /usr/local/lib/libavdevice.so.58 (0x00007f2fab7c1000)
libavfilter.so.7 => /usr/local/lib/libavfilter.so.7 (0x00007f2fab2be000)
libavformat.so.58 => /usr/local/lib/libavformat.so.58 (0x00007f2faae6d000)
libavcodec.so.58 => /usr/local/lib/libavcodec.so.58 (0x00007f2fa9802000)
libpostproc.so.55 => /usr/local/lib/libpostproc.so.55 (0x00007f2fa95e2000)
libswresample.so.3 => /usr/local/lib/libswresample.so.3 (0x00007f2fa93c5000)
libswscale.so.5 => /usr/local/lib/libswscale.so.5 (0x00007f2fa913b000)
libavutil.so.56 => /usr/local/lib/libavutil.so.56 (0x00007f2fa8e2e000)
libm.so.6 => /lib64/libm.so.6 (0x00007f2fa8b2c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2fa8910000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2fa8542000)
libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f2fa8283000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f2fa8073000)
libz.so.1 => /lib64/libz.so.1 (0x00007f2fa7e5d000)
libfdk-aac.so.2 => /usr/local/lib/libfdk-aac.so.2 (0x00007f2fa7b16000)
libmp3lame.so.0 => /usr/local/lib/libmp3lame.so.0 (0x00007f2fa7888000)
libx264.so.157 => /usr/local/lib/libx264.so.157 (0x00007f2fa7370000)
libx265.so.173 => /usr/local/lib/libx265.so.173 (0x00007f2fa6c78000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2fab9cf000)
libpng15.so.15 => /lib64/libpng15.so.15 (0x00007f2fa6a4d000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2fa6849000)
librt.so.1 => /lib64/librt.so.1 (0x00007f2fa6641000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f2fa633a000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2fa6124000)
- 아래 링크 참조 (시도해 봤으나 시간이 상당히 걸려서 포기)
ffmpeg: error while loading shared libraries: libavdevice.so.56: cannot
sudo updatedb -v | while read
> do
> if (( ++i % (count/20) == 0 )); then
> printf "%3d\r" $((100 * i / count))
> fi
> done
94
94 는 진행률 결과
반응형
'[Develope] > Cloud&Docker' 카테고리의 다른 글
[4] aws-cli 설치 (0) | 2021.04.01 |
---|---|
[3] Amazon EC2 XShell로 연결하기 (0) | 2021.04.01 |
[2] Amazon EC2 인스턴스 시작하기 (0) | 2021.04.01 |
[1] Amazon EC2 사용 설정 (0) | 2021.04.01 |
How to Deploy Your Project with Docker (0) | 2020.04.01 |