Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Nvenc编码器提高解码速度? 我试图用C++中的FFMPEG提高H264视频到MP4视频的解码速度。我已经找到了一个CLI命令,可以做,但我仍然不完全理解命令在C++中复制它,所以我希望你们能给我解释。p>_C++_Ffmpeg - Fatal编程技术网

为什么Nvenc编码器提高解码速度? 我试图用C++中的FFMPEG提高H264视频到MP4视频的解码速度。我已经找到了一个CLI命令,可以做,但我仍然不完全理解命令在C++中复制它,所以我希望你们能给我解释。p>

为什么Nvenc编码器提高解码速度? 我试图用C++中的FFMPEG提高H264视频到MP4视频的解码速度。我已经找到了一个CLI命令,可以做,但我仍然不完全理解命令在C++中复制它,所以我希望你们能给我解释。p>,c++,ffmpeg,C++,Ffmpeg,我发现的命令使用h264_nvenc编码器来提高使用GPU的速度。然而,我无法理解为什么h264编码器会提高解码h264视频的速度(或者可能编码到mp4帧)。有人能给我一个详细的解释吗 以下是我找到的cli命令: ffmpeg -hwaccel cuvid -r 120 -i <input_file> -c:v h264_nvenc -preset fast -b:v 8M -vf scale=960:1080 -pix_fmt yuv420p <output_file>

我发现的命令使用h264_nvenc编码器来提高使用GPU的速度。然而,我无法理解为什么h264编码器会提高解码h264视频的速度(或者可能编码到mp4帧)。有人能给我一个详细的解释吗

以下是我找到的cli命令:

ffmpeg -hwaccel cuvid -r 120 -i <input_file> -c:v h264_nvenc -preset fast -b:v 8M -vf scale=960:1080 -pix_fmt yuv420p <output_file> -y
不带选项“-c:v h264\u nvenc”的命令日志


好的,解码是一个快得多的过程,因此通常速率受到进一步处理的限制,主要是编码器,但也受到滤波器的限制。通过运行查看s/w h264解码器的全速

ffmpeg -r 120 -i <input_file> -an -f null -
ffmpeg-r 120-i-an-f空值-
添加筛选以估计由于筛选而导致的速度减慢

ffmpeg -r 120 -i <input_file> -vf scale=960:1080 -pix_fmt yuv420p -an -f null -
ffmpeg-r 120-i-vf scale=960:1080-pix_fmt yuv420p-an-f null-
这是因为ffmpeg以顺序方式执行转码:


解复用->解码->过滤->编码->复用->返回到步骤1…

它只是使用了特殊的NVidia功能,用于GPU加速正常的h264编码/解码作业。什么意思?在C++中复制它?@本尼·麦克尼,我理解它使用的是特殊的Nvidia特性。但是它使用的是h264编码器,用于加速h264的编码。那么,为什么它提高了解码H264的速度或者将它编码成MP4格式?我试图理解这是如何工作的,这样我就可以在FC++中使用FFMPEG库来完成这个操作,并且它既加快了速度,又因为编码器和解码器都被称为“NVENC”。编码器为“nvdec”或“cuvid”,而非“nvenc”。另外,由于某些原因,解码器不能在我的硬件上工作。这就是我研究编码器的原因。这似乎是合理的,我将测试它tmr。谢谢
ffmpeg -r 120 -i <input_file> -an -f null -
ffmpeg -r 120 -i <input_file> -vf scale=960:1080 -pix_fmt yuv420p -an -f null -