Собственно вот такое недоразумение или не знаю что. Есть не очень удобный mjpeg-поток очень бюджетно использующий трафик. Из него делается для телефонного просмотра hls, заодно и архив.
ffmpeg -- -r 4.0 -rtbufsize 90000k -analyzeduration 0 -an -f mjpeg -i http://www.video.domen/Video.mjpg -c:v libx264 -an -strict -2 -crf 23 -profile:v baseline -maxrate 900k -bufsize 2835k -pix_fmt yuv420p -flags -global_header -hls_time 10 -hls_list_size 10 -use_localtime 1 -strftime 1 -use_localtime_mkdir 1 -hls_segment_filename '%F/video-%F-%T%z.mp4' /video.m3u8
Это работает. И каталоги «посуточные» создаются, и пишется приемлимо. То есть создаётся каталог yyy-mm-dd и в нём хранятся файлы video-yyyy-mm-dd-HH:MM:SSTZ.mp4 Но вот возникла хотелка убрать из имени сегментов плей-листа двоеточие и добавить разделение не только по суткам, но и по часам. По идее параметр hls_segment_filename должен быть таким
%F/%H/video-%F-%H-%M-%S%z.mp4
Но %H с какого-то неожиданного испуга определяется натурально как hostname Ну, вот если хост - это mycomp, то сегмент становится примерно таким
2022-01-12/mycomp/video-2022-01-12-mycomp-39-21+0600.mp4
Попробовал для проверки заменить %H на %k . %k работает (получается то, что надо, но не нужныпробелы), но из-за своего предназначения (дополнения пробелом) не годится категорически. Но работает. Я совершенно не понимаю как и почему у ffmpeg вместо «Час» выходит «хост». И во ffmpeg-е ли вообще тут проблема? Может, кто чего подскажет: в какую сторону хоть поискать.