YOGYUI

Raspberry Pi - ffmpeg + ffserver 동작환경 설정하기 본문

Hardware/Raspberry Pi

Raspberry Pi - ffmpeg + ffserver 동작환경 설정하기

요겨 2021. 7. 30. 19:41
반응형

 

ffserver는 ffmpeg 패키지 빌드 N-89274-g6b35a83(2018-01-06) 버전부터 제외되었다

때문에 최신 버전 라즈비안에서는 ffserver를 사용할 수 없다

라즈비안에 포함된 ffmpeg 버전
ffserver가 없다...

 

ffserver가 포함된 최종 commit 버전은 2ca65fc이므로 git에서 소스를 클론해서 수동으로 빌드해줘야 한다

사용시 필요한 애드온들도 있으니 전부 설치하는 과정을 기록해본다 (Vivek Maskara 블로그 참고)

 

명령어들은 모두 lxterminal에서 실행하면 되며, 전체 과정은 상당히 오래 걸리니 인내심을 가지고 한 스텝씩 진행하면 된다


1. 패키지 업그레이드

sudo apt update
sudo apt upgrade

2. 필수 라이브러리 설치

sudo apt -y install autoconf automake build-essential cmake doxygen git graphviz imagemagick libasound2-dev libass-dev libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libfreetype6-dev libgmp-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libopus-dev librtmp-dev libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev libsnappy-dev libsoxr-dev libssh-dev libssl-dev libtool libv4l-dev libva-dev libvdpau-dev libvo-amrwbenc-dev libvorbis-dev libwebp-dev libx264-dev libx265-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-xfixes0-dev libxcb1-dev libxml2-dev lzma-dev meson nasm pkg-config python3-dev python3-pip texinfo wget yasm zlib1g-dev libdrm-dev

3. 애드온 설치

애드온 소스코드를 다운로드받을 로컬 디렉터리를 만들어준다

mkdir ~/ffmpeg-libraries

중요: 330MB 이상 디스크 여유공간이 필요하다

3.1. fdk-aac 설치

git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git ~/ffmpeg-libraries/fdk-aac
cd ~/ffmpeg-libraries/fdk-aac
autoreconf -fiv
./configure
make -j$(nproc)
sudo make install

3.2. dav1d 설치

git clone --depth 1 https://code.videolan.org/videolan/dav1d.git ~/ffmpeg-libraries/dav1d
mkdir ~/ffmpeg-libraries/dav1d/build
cd ~/ffmpeg-libraries/dav1d/build
meson ..
ninja
sudo ninja install

3.3. kvazaar 설치

git clone --depth 1 https://github.com/ultravideo/kvazaar.git ~/ffmpeg-libraries/kvazaar
cd ~/ffmpeg-libraries/kvazaar
./autogen.sh
./configure
make -j$(nproc)
sudo make install

3.4. aom 설치

git clone --depth 1 https://aomedia.googlesource.com/aom ~/ffmpeg-libraries/aom
mkdir ~/ffmpeg-libraries/aom/aom_build
cd ~/ffmpeg-libraries/aom/aom_build
cmake -G "Unix Makefiles" AOM_SRC -DENABLE_NASM=on -DPYTHON_EXECUTABLE="$(which python3)" -DCMAKE_C_FLAGS="-mfpu=vfp -mfloat-abi=hard" ..
sed -i 's/ENABLE_NEON:BOOL=ON/ENABLE_NEON:BOOL=OFF/' CMakeCache.txt
make -j$(nproc)
sudo make install

3.5. zimg 설치

git clone https://github.com/sekrit-twc/zimg.git ~/ffmpeg-libraries/zimg
cd ~/ffmpeg-libraries/zimg
git submodule update --init --recursive
sh autogen.sh
./configure
make
sudo make install

3.6. 공유라이브러리 캐시 재설정

sudo ldconfig

4. FFmpeg 설치

ffmpeg 2ca65fc 버전 소스코드를 별도의 경로 (home/pi/ffmpeg)에 클론한 뒤 빌드한다
중요: 970MB 이상 디스크 여유공간이 필요하다

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
git checkout 2ca65fc7b74444edd51d5803a2c1e05a801a6023
./configure
make -j4

설치가 모두 마무리되면 ffmpeg 디렉터리에 바이너리들이 설치된 것을 확인할 수 있다

ffmpeg 수동 빌드 결과

ffmpeg 버전을 확인해보자

ffserver가 제외되기 이전 버전인 N-89723-g2ca65fc7b7임을 확인할 수 있다

 

ffserver도 해당 경로에 있는 바이너리로 실행할 수 있다

 

끝~!

 

[참고]

https://maskaravivek.medium.com/how-to-install-ffmpeg-and-ffserver-on-raspberry-pi-ed0eddf86f88

https://superuser.com/questions/1296377/why-am-i-getting-an-unable-to-find-a-suitable-output-format-for-http-localho/1297419#1297419

반응형