我正在为我的视频转码过程使用 ffmpeg 和 NVIDIA。
所以我有一个问题。
看下图:
一个进程只使用我的第二个 GPU 的 263MiB。不完全使用它!
这是不好的。我认为应该有一种方法可以消除 gpu 进程的这种限制。
我运行的 ffmpeg 命令是:
ffmpeg -y -loglevel info -hwaccel cuda -hwaccel_output_format cuda -hwaccel_device 1 -i "MYVIDEO" -vf scale_npp=w=426:h=240 -c:v h264_nvenc -profile:v main -b:v 400k -sc_threshold 0 -g 25 -keyint_min 25 -bf 2 -c:a aac -b:a 64k -ar 48000 -f hls -hls_time 6 -hls_playlist_type vod -hls_allow_cache 1 -hls_segment_filename f-0-seg-%d.ts f-0.m3u8
最佳答案
这里没有限制,至少与内存无关。
您将视频缩放到 426x240 假设 4:2:0 子采样,即每帧 153K。编码器最多需要 16 帧。这比 2MB 多一点。 GPU 的使用量是其 100 倍以上。
关于ffmpeg 进程有 GPU 使用限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66637229/