Bonsoir,
J’ai vu passer quelques topics sur le HLS et avec un peu de chance il y aura peut-être des connaisseurs dans les parages
Je cherche à streamer un flux RTSP via du HLS en ne conservant qu’un nombre n de segments maximum (pour n’avoir accès qu’à la dernière heure par exemple)
Ma commande est la suivante :
ffmpeg -rtsp_transport tcp -i rtsp://x.x.x.x/ -acodec copy -vcodec copy -f hls -hls_time 10 -hls_list_size 3 -hls_flags delete_segments -hls_flags program_date_time stream.m3u8 -loglevel debug -v verbose
Si j’ouvre le fichier stream.m3u8
je n’ai bien que 3 segments référencés comme spécifié par hls_list_size 3
:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:6
#EXTINF:9.986000,
#EXT-X-PROGRAM-DATE-TIME:2022-04-23T23:46:01.694+0200
stream6.ts
#EXTINF:9.985000,
#EXT-X-PROGRAM-DATE-TIME:2022-04-23T23:46:11.680+0200
stream7.ts
#EXTINF:0.320000,
#EXT-X-PROGRAM-DATE-TIME:2022-04-23T23:46:21.665+0200
stream8.ts
#EXT-X-ENDLIST
Cependant, malgré la présence du paramètre hls_flags delete_segments
et la valeur par défaut de hls_delete_threshold
à 1 (source), cela ne supprime pas les anciens segments de mon disque dur (stream0 à stream5 devraient être supprimés !) :
>ls
-stream0.ts
-stream1.ts
-stream2.ts
-stream3.ts
-stream4.ts
-stream5.ts
-stream6.ts
-stream7.ts
-stream8.ts
Suis-je le seul à faire face à ce problème ? Dois-je ouvrir un ticket sur ffmpeg ?
J’ai connaissance du paramètre hls_wrap
mais je ne souhaite pas l’utiliser puisqu’il rend moins pratique l’organisation des fichiers…
Merci d’avance pour votre aide !