我有一个视频共享网站,并使用 FFmpeg 转换视频,但转换需要很多时间。
怎样才能又快又安全?
我认为当 FFmpeg 使用 GPU 时它对我有帮助,但我没有找到关于如何使用 GPU 的好的参考。
哪个应用程序或参考可以帮助我实现良好的性能?
更新 2017 年第四季度。自从我最初的回答以来,基于 GPU 的编码已被广泛使用。如果您有现代的 NVIDIA 显卡并且可以编译 ffmpeg 那么您应该可以开始了。 感谢 Dmytro Dzyubak 指出 FFmpeg 文档 指出,确实“基于 CPU 的编码通常比基于 GPU 的编码产生更好的质量。”
--
基于 GPU 的编码特定于编解码器/GPU 计算标准(CUDA、OpenCL),因此您需要指定在您的情况下使用的内容。 ffmpeg 是流行编解码器(如视频 x264 和 VP8)的包装器。
使用 x264 迄今为止的所有尝试充其量都产生了好坏参半的结果。没有任何可以传递到生产环境的东西已经面世。
主要概念提供了一个可用于基于 H264 GPU 编码的 SDK。您可以在这里阅读更多信息。我没有看到他们的 SDK 的价格标签,但我猜它可能会很贵。
根据您使用的编解码器,您最好调整编码设置以权衡质量和速度。 另一方面,基于 CPU 的编码往往比基于 GPU 的编码产生更好的质量。
如果您使用的是 NVidia GPU,这可能会有所帮助:
它可能仍在“开发中”,但我发现几个doom9线程在“LookAhead”功能“在GPU上”时对x264编码器(lib ffmpeg使用)进行了巨大改进,但它使用了OpenCL。
可能有帮助。