关于使用ffmpeg加速硬件的几个问题(我认为这与this one不同):
从转码过程输出的
谢谢。
发布于 2022-08-04 15:44:52
如果您的CPU支持,例如Intel,您可以使用硬件加速显着地减少CPU负载(在我下面的测试案例中,使用libx264从90%减少到使用h264_qsv的20% )。在启用硬件加速解码后,CPU负载从20%减少到4%。总之,从90%到4%。但是负载也取决于其他因素,如比特率、分辨率和CPU/硬件。
编码
首先,您需要知道在您的FFmpeg版本中启用了哪些编码器。要检查这一点,只需执行
ffmpeg -codecs在这种情况下,您应该找到目标编解码器(h264):
[...]
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid ) (encoders: libx264 libx264rgb h264_amf h264_mf h264_nvenc h264_qsv )
[...]把你的注意力放在“编码器”上。有些是软件,有些是硬件编码器。在FFmpeg编译期间,此列表依赖于您的操作系统和已启用的编码器。要获得每个编码器的简短说明,您可以执行:
ffmpeg -encoders
[...]
V....D libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
V....D libx264rgb libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
V....D h264_amf AMD AMF H.264 Encoder (codec h264)
V....D h264_mf H264 via MediaFoundation (codec h264)
V....D h264_nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... h264_qsv H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
[...]注意:并不是所有的编码器都能工作。如果您没有NVIDIA显卡,h264_nvenc将无法工作。
在我的Windows机器上,我将选择"h264_qsv“(英特尔快速同步视频加速)编码器。在macOS上,您要使用"h264_videotoolbox":
ffmpeg -i mysource -c:v h264_qsv -c:a copy output.mp4注意输出质量:默认情况下,libx264可能比硬件加速编码器具有更好的质量。因此,请确保使用定义的比特率(6MBit为-b:v 6M )完成编码。
这使用的h264编码器对输入进行编码(因为-c:v选项)。请查找关于https://trac.ffmpeg.org/wiki/HWAccelIntro的更多细节
解码
在输入(-i)尝试使用硬件加速解码之前,使用“-i自动”选项:
ffmpeg -hwaccel auto -i mysource .....如果硬件解码器可用,则自动使用。如果没有,那么FFmpeg将返回到软件解码器。检查控制台输出,看看会发生什么:
[hevc @ 00000176c91d0fc0] Using auto hwaccel type dxva2 with new default device.https://stackoverflow.com/questions/73208088
复制相似问题