我正在使用 FFMPEG 将我的 rtsp 流转换为 HLS 流,以便可以使用播放器 js 在我的网站上的所有浏览器上播放它。如果与 rtsp 流的互联网连接中断一分钟,FFMPEG 就会死机,这会导致问题。有没有办法让它重新连接?我尝试在 -i 标志之前使用 -reconnect 标志,但我得到的回复是未找到该命令。
ffmpeg -i rtsp://rtspstreamaddress/1 -fflags flush_packets -max_delay 2 -flags -global_header -hls_time 2 -hls_list_size 3 -vcodec copy -y /var/www/video.m3u8
然后我有一个使用 playwerjs 来显示直播的网站。如何确保直播持续进行,而无需手动登录 VPS 并重新运行脚本。
答案1
我能够创建以下脚本,它似乎对我有用。到目前为止,它一直对我有用。
!/bin/bash while : do ffmpeg -i rtsp://rtspstreamaddress/1 -fflags flush_packets -max_delay 2 -flags -global_header -hls_time 2 -hls_list_size 3 -vcodec copy -y /var/www/video.m3u8 done
答案2
选项:
-reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_on_network_error 1 -reconnect_on_http_error 1 -reconnect_delay_max 4096
需要放在 -i 选项后面,如下所示:
ffmpeg -i rtsp://rtspstreamaddress/1 -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_on_network_error 1 -reconnect_on_http_error 1 -reconnect_delay_max 4096 -fflags flush_packets -max_delay 2 -flags -global_header -hls_time 2 -hls_list_size 3 -vcodec copy -y /var/www/video.m3u8