RaspberryPi 3의 FFMPEG 성능 문제

RaspberryPi 3의 FFMPEG 성능 문제

문제: 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%입니다.

그 밖에 주의해야 할 사항이 있나요? 아니면 일주일 넘게 이 문제를 해결하지 못했기 때문에 도움을 주시면 대단히 감사하겠습니다.

관련 정보