![RaspberryPi 3의 FFMPEG 성능 문제](https://linux55.com/image/111172/RaspberryPi%203%EC%9D%98%20FFMPEG%20%EC%84%B1%EB%8A%A5%20%EB%AC%B8%EC%A0%9C.png)
문제: FFMPEG GPU/하드웨어 가속이 RPI에서 활성화되지 않습니다. FFPlay는 불안정하고 불안정하며 CPU 사용량이 100%에 가깝습니다.
설명: mpeg4 파일의 비디오 스트리밍은 매우 느리고(비디오 스트림은 슬라이드쇼처럼 재생됨) 95%에서 97% 사이를 소모합니다. CPU 소비는 화면 크기에 따라 증가합니다. 내장된 Webbrowser와 같은 RPI의 다른 도구는 동일한 MPEG4 파일을 원활하게 표시할 수 있으며 실제로 Webbrowser는 HD(720p) 품질의 비디오를 매우 잘 표시할 수 있으며 약 30-35%의 CPU를 사용합니다.
환경: RPI3, FFMPEG. FFMEG는 MMAL 디코더가 활성화되고 확인된 상태로 컴파일됩니다. 조나단에게서 한 발짝만 나가면https://john.ly/rpi-h264-hw-acceleration/#comment-723"사용된.
이유: RPI 3에서 FFMEG MMAL 디코더의 속도를 높여야 하는 이유는 PJSIP 영상 통화를 사용하고 있기 때문입니다. PJSIP은 FFMPEG를 사용하는데 이는 화상 통화에 너무 느립니다(같은 이유로 FFMEG도 느리다고 생각합니다).
설정 및 테스트: johnathan의 의견에 따라 ffmpeg를 구성할 때 h264_mmal 및 h264_omx를 활성화하여 각각 비디오를 디코딩하고 인코딩했습니다. rpi3에서 수행되는 프로세스는 다음과 같습니다.
- 1080P 해상도의 mp4 비디오 파일을 다운로드하세요.
- ffmpeg를 설치하려면 위 단계를 따르세요.
다음 명령이 실행되었습니다.
1)
ffmpeg -f -i test.mp4 -s 320*240 -c:v h264_omx test_h264_mmal.mp4
2)
ffplay -vcodec h264_mmal test.mp4
3)
ffplay -vcodec h264_mmal test_h264_mmal.mp4
(320*240, 640*480 등 다양한 해상도)4) gpu_mem 값을 128과 256으로 설정
ffmpeg의 구성은 다음과 같습니다.
$ ffmpeg -decoders | grep h264
ffmpeg version git-2017-05-05-3c085c1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.9.2 (Raspbian 4.9.2-10)
configuration: --prefix=/usr --enable-mmal --enable-omx --enable-omx-rpi --enable-decoder=h264_mmal --enable-decoder=mpeg2_mmal --enable-encoder=h264_omx --enable-encoder=h264_omx --enable-libx264 --enable-nonfree --enable-gpl --enable-avresample --enable-shared --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libzvbi
libavutil 55. 61.100 / 55. 61.100
libavcodec 57. 94.101 / 57. 94.101
libavformat 57. 72.101 / 57. 72.101
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 88.100 / 6. 88.100
libavresample 3. 6. 0 / 3. 6. 0
libswscale 4. 7.101 / 4. 7.101
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
VFS..D h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
V..... h264_mmal h264 (mmal) (codec h264)
V....D h264_vdpau H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration) (codec h264)
테스트 결과: ffplay를 사용할 때 CPU 사용량이 100%에 가까워지면서 불안한 비디오 이미지 슬라이드쇼를 보았습니다.
참고: 기본 브라우저와 Chrome을 사용하여 RPI3에서 HD 비디오를 스트리밍할 때 CPU 사용량은 30-35%입니다.
그 밖에 주의해야 할 사항이 있나요? 아니면 일주일 넘게 이 문제를 해결하지 못했기 때문에 도움을 주시면 대단히 감사하겠습니다.