gpt4 book ai didi

ffmpeg - 我是否必须减少零延迟流的 GOP 大小?

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

我正在以相当慢的速度(每秒 1 个)将帧传输到 FFmpeg,我想以非常低的延迟将它们流出来。

不仅有一些来源(例如 herehere )没有提到我需要将 GOP 大小( keyint )设置为一个很小的值,甚至还有一些来源(例如 herehere ) 明确表示我 不要必须将 GOP 大小设置为较小的值。

但是,到目前为止,我发现减少真正长的启动延迟的唯一方法是将 GOP 大小实际减少到 1。

无论如何,这是我当前的命令行:

ffmpeg -f image2pipe
-probesize 32
-i -
-c:v libx264
-preset veryfast
-crf 23
-vsync 2
-movflags "frag_keyframe+empty_moov"
-profile baseline
-x264-params "intra-refresh=1"
-tune zerolatency
-f mp4
-

(我还尝试将 :bframes=0:force-ctr:no-mbtree:sync-lookahead=0:sliced-threads:rc-lookahead=0 添加到 -x264-params ( -tune zerolatency 应该这样做),因为其中一些值没有出现在调试输出中,但正如预期的那样,它没有效果。)

正如您在此处看到的,我们已经在流中输入了 182 帧(= 3 分钟挂钟),但它仍然没有发出任何内容(从一开始大小为 1kB)。

frame=  182 fps=1.0 q=20.0 size=       1kB time=00:00:07.24 bitrate=   0.8kbits/s speed=0.0402x


This实际上谈论的是第一张照片的时间,但这似乎没什么大不了的。 ;) 这是给我的,所以也许我必须让第一个 GOP 1 帧长,然后我可以切换到更长的 GOP? FFmpeg 能做到吗?

最佳答案

添加 -force_key_frames expr:eq(n,1)将在第二帧强制执行 KF。

由于您的速率是 1 fps,我建议使用 lt(n,5) 的 expr .此外,默认的 keyint 是 250和 min-keyint 是 40 .因此,如果您想离开并重新加入流,可能需要很长时间才能重新启动。考虑减少 keyint。

关于ffmpeg - 我是否必须减少零延迟流的 GOP 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44469219/

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