gpt4 book ai didi

ffmpeg - 如何使ffmpeg以正确的速率输出帧到毫秒

转载 作者:行者123 更新时间:2023-12-04 23:03:14 24 4
gpt4 key购买 nike

使用 ffmpeg,我使用以下命令从 udp 流(25 fps 的 hd264)中获取帧:

ffmpeg -loglevel debug -i udp://231.20.20.146:2005 -fflags nobuffer -r 1 -preset ultrafast -vf scale=432:243 -f image2pipe -vcodec ppm pipe:1

在管道的另一端,我正在运行一个非常简单的二进制文件,它输出它接收帧的时间。

然而,即使我指定 fps 1,帧进入管道有一些延迟,有 100-200 毫秒的延迟。

是什么导致了这种延迟?是帧的解码和 ppm 图像的编码吗?以及如何强制 ffmpeg 至少以正确的距离发送图像,以便每一帧在前一帧之后恰好 1000 毫秒到达?

附言。前 6 帧被缓冲并几乎立即进入管道。这是记录的 ms 值的示例:

5350
5368
5385
5493
5599
5676
5785
6221
7243
8235
9218
10219
11227
12268
13268
14242
15288
16219
17297
18222
19284
20272

最佳答案

最接近解决方案的是在视频过滤器中使用 fps:

ffmpeg -analyzeduration 100000 -i udp://231.20.20.146:2005  -r 8 -fflags nobuffer -preset ultrafast -vf "scale=432:243, fps=8, realtime" -f image2pipe -vcodec ppm pipe:1

仍然有一些 1-3 毫秒关闭的情况,但这可能是由于 cpu 缩放或将流转换为 ppm..

关于ffmpeg - 如何使ffmpeg以正确的速率输出帧到毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41768839/

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