Quindi, ho un comando che converte RTSP in HLS per me:
sudo ffmpeg -fflags nobuffer -rtsp_transport udp -i rtsp://admin:'password'@10.2.10.201/video1 -vsync 0 -copyts -vcodec copy -movflags frag_keyframe+empty_moov -an -hls_flags delete_segments+append_list -f segment -segment_list_flags live -segment_time 3 -segment_list_size 10 -segment_format mpegts -segment_list /mnt/hls2/stream2.m3u8 -segment_list_type m3u8 /mnt/hls2/%d.ts
Sembra funzionare bene, ma nella console, riceverò errori casuali insieme a un avviso occasionale su DTS non monotono nel flusso di output.
Quando ricevo gli errori rossi, sembra fermare lo streaming ovunque io lo stia visualizzando (pagina Web, VLC, ecc. Anche per iOS sembra essere peggio) ma tornerà bene se aggiorno la pagina web o fare in modo che VLC recuperi nuovamente il flusso. Qualcuno potrebbe offrire qualche idea su cosa sta succedendo e su come prevenire ritagli casuali durante la conversione di RTSP in HLS?
Sto usando Nginx 1.15.3 su Ubuntu 18.04 se ciò aiuta ciò che è impostato per gestire i flussi HLS e li gestirà bene da fonti non RTSP.
Modifica: A volte noto che appena dopo essere andato giù prenderà una clip casuale da un altro flusso HLS gestito da nginx, questo potrebbe suggerire più di un problema di nginx? Quel flusso sta semplicemente usando ffmpeg per trasmettere HLS al server direttamente dalla videocamera di un Raspberry Pi e non dovrebbe influenzare nulla su questo flusso.