各位大大好,最近在尝试 ffmpeg 打算用其试验下推流直播。但遇到个问题,不知如何让其循环推送列表文件。 大致语句是这样的:ffmpeg -f concat -re -stream_loop -1 -i "list.txt" ....
类似上述这样的命令,结果发现貌似 stream_loop 不适合合并播放? 每次列表执行完提示: illegal seek Failed to update header with correct duration. Failed to update header with correct filesize.
不知道是不是 list 文件内是否缺少循环语句?或是循环并不支持合并类的操作?还是我没有找到其它办法?
当然播放单一文件是可以循环的,列表也可以执行,只是结合起来就出现了问题。 想请教下大大们,这种是本身不支持,还是我的操作遗漏了什么,谢谢。
1
danRen 2019-11-25 15:37:31 +08:00
用 shell 写个循环就 OK
|
2
lsdir 2020-10-09 09:45:10 +08:00
问题解决了吗?
遇到同样问题 |
3
ReZer0 OP @lsdir 之前 FFMPEG 不支持没得解决,现在不清楚了。之前解决思路是有 2 种,一种是复制大法把 list 列表内部进行手动循环。第二种是写个进程监测脚本,监测到 FFMPEG 退出后执行启动脚本重新播放,较第一种简单方便,缺点是重启间隙会无信号几秒。(当然你可以设置监测脚本每 1 秒监测)
|
4
lsdir 2020-10-09 17:28:46 +08:00
@ReZer0 #!/bin/bash
while true do ffmpeg -f concat -safe 0 -re -i "/root/www/1.txt" -vcodec copy -acodec aac -b:v 3500k -b:a 320k -r 60 -f flv "rtmp://******11/hls/home" done 网上找到的这个脚本,但是好像这个有个问题,具体好像是播放完一部以后就会生成大量的 TS 文件然后就不能播放了。 |
5
ReZer0 OP |