【问题标题】:Convert video with ffmpeg using gpu使用 gpu 使用 ffmpeg 转换视频
【发布时间】:2013-08-19 15:05:11
【问题描述】:

我有视频共享网站并使用 ffmpeg 转换视频,但转换需要很多时间。 怎么做又快又安全? 我认为当 ffmpeg 与 GPU 匹配时,它对我有帮助,但我没有找到很好的使用参考。 哪个应用程序或参考可以帮助我获得良好的性能。

【问题讨论】:

  • 你试过什么?如果您提供您尝试过的代码,您将有更多机会获得帮助。
  • 我从未听说过 ffmpeg 中的 GPU 优化编解码器 .... 在我看来,./configure 没有 --enable 选项来支持 cusa、opencl 或其他。对不起!
  • h264转换格式使用VDPAU加速但不知道如何开启使用。
  • VDPAU(Unix 的视频解码和演示 API)不确定它对编码是否有用……看起来更像是解码和播放视频的东西!

标签: video ffmpeg gpu video-processing video-conversion


【解决方案1】:

2017 年第四季度更新。自从我最初的回答以来,基于 GPU 的编码已广泛使用。如果你有一个现代的NVIDIA video card and can compile ffmpeg,那么你应该很高兴。 感谢Dmytro Dzyubak 指出FFmpeg docs 指出确实“基于CPU 的编码通常比基于GPU 的编码产生更好的质量。”

--

基于 GPU 的编码特定于编解码器/GPU 计算标准(CUDA、OpenCL),因此您需要指定在您的情况下使用的是什么。 ffmpeg 是 x264 和 VP8 等流行编解码器的包装器。

到目前为止,所有使用 x264 的尝试最多都产生了不同的结果。没有任何东西可以传递到生产中。

主要概念提供了一个可用于基于 H264 GPU 的编码的 SDK。你可以在这里阅读more information。我没有看到他们的 SDK 的价格标签,但我猜它可能很贵。

根据您使用的编解码器,您最好调整编码设置以权衡质量与速度。另一方面,基于 CPU 的编码往往比基于 GPU 的编码产生更好的质量。

【讨论】:

  • “基于 CPU 的编码比基于 GPU 的编码产生更好的质量。” - 需要引用。
  • “硬件编码器生成的输出质量通常明显低于 x264 等优质软件编码器” - trac.ffmpeg.org/wiki/HWAccelIntro
【解决方案2】:

如果您使用的是 NVidia GPU,这可能会有所帮助:

https://developer.nvidia.com/nvidia-codec-libraries

【讨论】:

    【解决方案3】:

    它可能仍在“开发中”,但是当“LookAhead”功能“在 GPU 上”时,我发现几个 doom9 线程对 x264 编码器(lib ffmpeg 使用)进行了巨大改进,但它使用 OpenCL.

    这可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-12-19
      • 2011-06-05
      • 2010-12-26
      • 2020-08-25
      • 2011-04-25
      • 2014-03-02
      • 2021-06-18
      • 2012-01-16
      相关资源
      最近更新 更多