RaspberryPi 3 上的 FFMPEG 性能问题

RaspberryPi 3 上的 FFMPEG 性能问题

问题:RPI 上未启用 FFMPEG GPU/硬件加速。 FFPlay 不稳定、不稳定,CPU 占用率接近 100%。

描述:mpeg4 文件的视频流非常慢(视频流像幻灯片一样播放)并且消耗在 95% 到 97% 之间。 CPU消耗随着屏幕尺寸的增加而增加。 RPI 上的其他工具(例如内置的 Webbrowser)可以流畅地显示相同的 MPEG4 文件,事实上,Webbrowser 可以很好地显示高清 (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 上遵循的过程:

  • 下载 mp4 视频文件 1080P 分辨率。
  • 按照上述步骤安装 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 上流式传输高清视频时,CPU 占用率为 30-35%。

还有什么需要注意的吗?或者任何帮助都非常感谢,因为我在这个问题上停留了一个多星期。

相关内容