gpt4 book ai didi

ffmpeg - H.264 的 scencut 功能是否会增加文件大小?

转载 作者:行者123 更新时间:2023-12-04 23:00:18 26 4
gpt4 key购买 nike

当我使用这个命令时:

ffmpeg -i original.mp4 -codec:v:0 libx264  -b:v 650k -crf 21 -minrate:v 0k -maxrate:v 750k -bufsize:v 5000k -r 30 -preset slow -x264opts "no-scenecut" -vcodec libx264 -force_key_frames "expr:bitor(eq(t,0),gte(t,prev_forced_t+5))" -f mp4 test.mp4

我总是得到比这个命令更小的文件大小(相同的命令但没有:-x264opts“no-scenecut”):
ffmpeg -i original.mp4 -codec:v:0 libx264  -b:v 650k -crf 21 -minrate:v 0k -maxrate:v 750k -bufsize:v 5000k -r 30 -preset slow -vcodec libx264 -force_key_frames "expr:bitor(eq(t,0),gte(t,prev_forced_t+5))" -f mp4 test.mp4

我认为只有在使用 P 或 B 帧的 I 帧更有效时,scencut 才会放置 I 帧。
在什么情况下我们需要使用 scencut 功能?

最佳答案

当一个 scenecut触发它放置 印尼盾 如果距离大于 min-keyint工字架否则。

这是doom9.org forum上发布的一些伪代码(在此处添加以供将来引用):

encode current frame as (a really fast approximation of) a P-frame and an I-frame.

if ((distance from previous keyframe) > keyint) then
set IDR-frame
else if (1 - (bit size of P-frame) / (bit size of I-frame) < (scenecut / 100) * (distance from previous keyframe) / keyint) then
if ((distance from previous keyframe) >= minkeyint) then
set IDR-frame
else
set I-frame
else
set P-frame

encode frame for real.

您应该使用 scenecut当您不需要固定的 GOP/强制关键帧时。如果您尝试为 ABR 交付进行编码,那么您也可以使用两遍编码并在 pass-1 上生成最高分辨率的 stat 文件,然后在 pass-2 上为每个再现重复使用它。

关于ffmpeg - H.264 的 scencut 功能是否会增加文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33608667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com