Ffmpeg GPU 编码无法加快处理速度

Ffmpeg GPU 编码无法加快处理速度

ffmpeg -framerate 29.97 -hwaccel cuda -start_number 200000 -i %06d.tif -c:v libx264 -preset veryslow -tune film -profile:v high -pix_fmt yuv420p -level 4.1 -crf 17 -r 29.97 -threads 2 -frames:v 5000 ade-20000_202559_ArtemisHQ_tiff.mkv

我正在使用上述命令行将视频增强程序生成的 TIFF 文件合并在一起,以生成最终视频。我在 Linux 版本 20 上使用 2080ti GPU。Ffmpeg 已使用 Nvidia 视频编码在线教程进行编译。我的问题是使用 -hwaccel cuda 运行命令不会大大提高处理速度。我使用 NVTOP 检查 GPU 是否正在使用。它显示 1% GPU 和 200% CPU。如果没有 -hwaccel cuda,NVTOP 显然不会显示任何数据。

是的,是为了加快编码速度。正如第二个答案所说,可能因为文件读取频繁而无法做到。我还是会尝试用 nvenc 命令替换。

感谢三位老师的及时回复。

所以我尝试了:

ffmpeg -framerate 29.97 -hwaccel cuda -start_number 200000 -i %06d.tif -c:v h264_nvenc -preset veryslow -tune film -profile:v high -pix_fmt yuv420p -level 4.1 -crf 17 -r 29.97 -threads 2 -frames:v 5000 ade-20000_202559_ArtemisHQ_tiff.mkv 我得到:

为输出文件 #0 (ade-20000_202559_ArtemisHQ_tiff.mkv) 指定的编解码器 AVOption crf(选择恒定质量模式的质量)尚未用于任何流。最可能的原因是类型错误(例如,没有视频流的视频选项)或者它是某个编码器的私有选项,而实际上并未用于任何流。为输出文件 #0 (ade-20000_202559_ArtemisHQ_tiff.mkv) 指定的编解码器 AVOption tune(将编码调整为特定场景)尚未用于任何流。最可能的原因是类型错误(例如,没有视频流的视频选项)或者它是某个编码器的私有选项,而实际上并未用于任何流。运行命令时我得到:

[h264_nvenc @ 0x559577472b40] [Eval @ 0x7ffd3759cc40] 未定义常量或“veryslow”中缺少“(” [h264_nvenc @ 0x559577472b40] 无法解析选项值“veryslow” [h264_nvenc @ 0x559577472b40] 将选项预设为值 veryslow 时出错。初始化输出流 0:0 时出错——打开输出流 #0:0 的编码器时出错——可能是 bit_rate、rate、width 或 height 等参数不正确 转换失败!


所以我尝试了:

ffmpeg -framerate 29.97 -hwaccel cuda -start_number 200000 -i \%06d.tif  -c:v h264_nvenc -preset veryslow -tune film -profile:v high -pix_fmt yuv420p -level 4.1 -crf 17 -r 29.97 -threads 2 -frames:v 5000 ade-20000_202559_ArtemisHQ_tiff.mkv

我有:

Codec AVOption crf (Select the quality for constant quality mode) specified for output file #0 (ade-20000_202559_ArtemisHQ_tiff.mkv) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Codec AVOption tune (Tune the encoding to a specific scenario) specified for output file #0 (ade-20000_202559_ArtemisHQ_tiff.mkv) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.

当命令运行时我得到:

[h264_nvenc @ 0x559577472b40] [Eval @ 0x7ffd3759cc40] Undefined constant or missing '(' in 'veryslow'
[h264_nvenc @ 0x559577472b40] Unable to parse option value "veryslow"
[h264_nvenc @ 0x559577472b40] Error setting option preset to value veryslow.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

这可能是我放置命令的地方吗?您可能会猜到我不擅长 Linux 或 ffmpeg。

相关内容