gpt4 book ai didi

ffmpeg - 如何强制 ffmpeg 更频繁地刷新覆盖图像?

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

我正在尝试使用 ffmpeg 进行体育直播。正在从服务器获取流式匹配的分数并转换为 png。此 png 必须出现在视频顶部。

ffmpeg 允许使用 image2 解复用器在视频流上放置一个覆盖。如果我使用 -loop1,此覆盖图大约每 5 秒更新一次。如何强制 ffmpeg 更频繁地从磁盘读取它?

我当前尝试每 5 秒更新一次叠加层(用于测试目的的 mp4 视频):

nice -n -19 ffmpeg \
-re -y \
-i s.mp4 \
-f image2 -loop 1 -i http://127.0.0.1:3000/img \
-filter_complex "[0:v][1:v]overlay" \
-threads 4 \
-v 0 -f mpegts -preset ultrafast udp://127.0.0.1:23000 \
&

附言
我知道,我可以在网站上制作 youtube 流媒体小部件,并仅使用 html/css/js 将分数放在上面。但不幸的是,它必须直接在视频流中完成。

P.P.S
我知道,我可以使用 ffmpeg drawtext。但这不是我想要的。我有专门设计的 png,它必须尽可能频繁地更新(1-2 秒一次就好了)

最佳答案

三件事:

1) -re每个输入都应用,因此 ffmpeg 当前正在以相对于视频异步的速率读取您的图像。由于视频是实时读取的,图像阅读器将循环图像的数据包排队,直到过滤器图可以使用它们。因此,更新后的图像将被消耗得更晚,并且分配的时间戳比实际更新时更大。添加 -re图片前-i纠正这一点。

2) 跳过-loop 1并使用 -stream_loop -1因为如果在尝试读取输入时输入被阻塞或为空(由于更新),image2 解复用器可能会中止。虽然,由于输入是通过网络协议(protocol)读取的,这对您来说可能不是问题。

3) 您在输出选项中没有指定编码器。由于格式是MPEG-TS,ffmpeg会选择mpeg2video默认比特率为 200 kbps。 ultrafast预设不适用于此编码器。您可能想添加 -c:v libx264 .

关于ffmpeg - 如何强制 ffmpeg 更频繁地刷新覆盖图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55876001/

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