关于ffmpeg推流报错 丢包问题解决
问题现象
示例代码
@echo off
title 可见光视频流
:: todo
:StartTag
ffmpeg -i "rtsp://admin:password@192.168.1.1/h264/ch1/sub/av_stream" -c:v libx264 -c:a copy -s 384*288 -rtsp_transport tcp -stimeout 15000000 -max_delay 500000 -f rtsp -r 50 -an "rtsp://www.baidu.com/94fea02d64444399ac4546e5298eec96_kejian"
goto :StartTag
解决方法:
在代码中加入 -rtsp_transport tcp 即可解决,推流好几个小时无报错
@echo off
title 可见光视频流
:: todo
:StartTag
ffmpeg -rtsp_transport tcp -i "rtsp://admin:password@192.168.1.1/h264/ch1/sub/av_stream" -c:v libx264 -c:a copy -s 384*288 -rtsp_transport tcp -stimeout 15000000 -max_delay 500000 -f rtsp -r 50 -an "rtsp://www.baidu.com/94fea02d64444399ac4546e5298eec96_kejian"
goto :StartTag
原因:这是rtsp协议默认使用udp导致的问题,所以rtsp强制使用tcp方式可以一定程度避免丢包。
如果是拉rtsp转rtmp,命令是
ffmpeg -rtsp_transport tcp -i rtsp://admin:password@192.168.1.1:554 -vcodec copy -f flv -an rtmp://localhost/live/tests