大佬们好,我用
ffmpeg -re -rtsp_transport tcp -stimeout 5000000 -i rtsp://xxxx -c:v libx264 -f flv rtmp://xxx
上面这个指令,在一切正常的时候没有问题,但是当输入的 RTSP 中断了一会,这个推流就会处于一个跑飞了的状态,不再推送有效数据,并且进程也没有终止;
然后我网上搜说用rw_timeout
参数可破,可是我将指令修改为
ffmpeg -re -rtsp_transport tcp -rw_timeout 5000000 -stimeout 5000000 -i rtsp://xxxx -c:v libx264 -f flv rtmp://xxx
可是整个指令根本跑不起来。提示-rw_timeout
不存在,除非输入换成 RTMP ,但是加了这个参数其实也不好使。
由于输出的地址不是我们自己管控的,所以不像保存文件一样能定期检测文件大小是否变化来判断是不是应该 kill 掉进程,所以要怎么才能在他没数据传输的时候干掉他,或者能通过配置参数让他自己退?
先谢谢大佬们
1
jifengg 2 天前 1
|
2
vivisidea 2 天前 1
https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs
ffmpeg 可以有多个 output 的,试试输出一个到 rtmp ,再输出另一个到本地文件,然后监控这个本地文件变化情况? |