@@ -63,6 +63,16 @@ fn start_ffmpeg_listening(channel: Channel, restream_dir: PathBuf) -> Result<Chi
63
63
. arg ( "6" )
64
64
. arg ( "-hls_flags" )
65
65
. arg ( "delete_segments" )
66
+ . arg ( "-reconnect" )
67
+ . arg ( "1" )
68
+ . arg ( "-reconnect_at_eof" )
69
+ . arg ( "1" )
70
+ . arg ( "-reconnect_streamed" )
71
+ . arg ( "1" )
72
+ . arg ( "-reconnect_on_network_error" )
73
+ . arg ( "1" )
74
+ . arg ( "-reconnect_max_retries" )
75
+ . arg ( "3" )
66
76
. arg ( playlist_dir)
67
77
. stdout ( Stdio :: null ( ) )
68
78
. stderr ( Stdio :: null ( ) )
@@ -72,18 +82,20 @@ fn start_ffmpeg_listening(channel: Channel, restream_dir: PathBuf) -> Result<Chi
72
82
73
83
async fn start_web_server (
74
84
restream_dir : PathBuf ,
85
+ port : u16 ,
75
86
) -> Result < ( Sender < bool > , tokio:: task:: JoinHandle < ( ) > ) > {
76
87
let file_server = warp:: fs:: dir ( restream_dir) ;
77
88
let ( tx, rx) = oneshot:: channel :: < bool > ( ) ;
78
89
let ( _, server) =
79
- warp:: serve ( file_server) . bind_with_graceful_shutdown ( ( [ 0 , 0 , 0 , 0 ] , 3000 ) , async {
90
+ warp:: serve ( file_server) . bind_with_graceful_shutdown ( ( [ 0 , 0 , 0 , 0 ] , port ) , async {
80
91
rx. await . ok ( ) ;
81
92
} ) ;
82
93
let handle = tokio:: spawn ( server) ;
83
94
return Ok ( ( tx, handle) ) ;
84
95
}
85
96
86
97
pub async fn start_restream (
98
+ port : u16 ,
87
99
state : State < ' _ , Mutex < AppState > > ,
88
100
app : AppHandle ,
89
101
channel : Channel ,
@@ -93,7 +105,7 @@ pub async fn start_restream(
93
105
let restream_dir = get_restream_folder ( ) ?;
94
106
delete_old_segments ( & restream_dir) . await ?;
95
107
let mut ffmpeg_child = start_ffmpeg_listening ( channel, restream_dir. clone ( ) ) ?;
96
- let ( web_server_tx, web_server_handle) = start_web_server ( restream_dir) . await ?;
108
+ let ( web_server_tx, web_server_handle) = start_web_server ( restream_dir, port ) . await ?;
97
109
let _ = app. emit ( "restream_started" , true ) ;
98
110
while !stop. load ( std:: sync:: atomic:: Ordering :: Relaxed )
99
111
&& ffmpeg_child
0 commit comments