ffmpeg - 如何使用 ffmpeg 在相机和直播之间添加延迟,因为 -vf tpad=start_duration 并没有真正延迟网络流输出?
问题描述
在尝试在多个摄像机和输入 OBS 的直播之间添加 10 秒延迟时,我希望能够在某些事件发生之前切换流,并且 10 秒延迟将允许这样做。
我发现使用以下形式的命令:
ffmpeg -i input -vf tpad=start_duration=10 -af adelay=10000|10000 stream-out
将在视频流的开头插入 10 秒的空白内容,但它会在前几秒内流出所有空白内容,以便传出的直播有效地赶上传入的摄像头流。
查看传出的网络流量,当流开始发送前 10 秒的数据时,我会看到大量的网络流量,然后网络流量稳定到视频流的通常恒定流量水平。
如果我从一开始就开始观看传出的流,那么在我观看的过程中,直播会有 10 秒的延迟。如果我丢失了流并重新连接或在它已经运行后开始观看流,那么 10 秒的延迟将不再存在。
我真的试图让ffmpeg及时延迟发送输出流,以便它始终缓冲10秒的数据,而 -vf tpad=start_duration=10 -af adelay=10000|10000 命令不这样做.
是否有另一个 ffmpeg 命令会强制 ffmpeg 的实际输出流量保持延迟?
解决方案
推荐阅读
- tensorflow - 如何在 TF 2.0 上运行这个在 TF 1.0 中构建的自定义 AttentionLSTM 类?
- python - 订单数小于 E-1 的随机数
- numpy - 使用 numpy 计算 3D 矩阵乘法的有效方法
- python - WebCrawl - python selenium - 使用的意义何在。当它似乎没有必要时
- cordova - 如何在 Ionic/Cordova 应用程序中向权限对话框添加本地化
- c - 如何使用变量参数同时打印两个变量?有没有更好的方法来做到这一点?
- flutter - DioError [DioErrorType.other]:HttpException:在收到完整标头之前连接已关闭
- graphql - 内容丰富的graphql嵌套结构
- kubernetes - 在 pod 启动后执行命令而不覆盖图像入口点
- python - Pytorch Memory高效实现索引矩阵乘法