在没有硬件加速的情况下使用ffmpeg(C ++)

时间:2018-02-12 15:18:19

标签: c++ video ffmpeg

我正在使用ffmpeg 3.4库进行视频编码的应用程序(c ++ / Linux)。由于版本3.3硬件加速在默认情况下启用(如果平台支持)。我的开发系统中的显卡具有硬件加速支持,但该工具也必须在没有的旧系统上运行。 如何配置ffmpeg以禁用视频编码的硬件加速?有大量关于启用的信息,但我无法找到如何禁用它。

PS。 已经存在类似的问题:How to turn off ffmpeg hardware acceleration但它已有一年的历史,但遗憾的是仍然没有答案。

1 个答案:

答案 0 :(得分:2)

我找不到任何引用,所以我认为默认情况下会启用支持硬件加速(有configure选项禁用它,{{1 }})。您仍然需要编码以实现它。 wiki涵盖了我可以看到的命令行用法。

解码(内部):

  • 对于内部硬件解码器,您必须遵循--disable-hwaccels
  • 中的示例

解码/编码(外部)

  • 您必须使用doc/examples/hw_decode.c / avcodec_find_decoder_by_name函数
  • 专门选择硬件加速编码器/解码器
  • 这些编码器的命名约定通常为avcodec_find_encoder_by_name(例如:codec_api),并且它们具有基于其使用的SDK的特定选项。
  • 没有软件后备,因此您必须事先检查设备功能。