FFMPEG генерирует пустой мастер-плейлист - PullRequest
0 голосов
/ 23 октября 2019

Я использую следующую команду FFMPEG для создания списков воспроизведения и мастер-списка воспроизведения для последующей вставки в проигрыватель с поддержкой HLS:

ffmpeg/ffmpeg.exe -i input/test.mp4 
-preset fast  
-g 150 
-sc_threshold 0 
-threads 4 
-map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 
-filter:v:0 scale=h=240:w=-2  -minrate:v:0 75k  -maxrate:v:0 218k  -bufsize:v:0 300k -b:v:0 150k  
-filter:v:1 scale=h=360:w=-2  -minrate:v:1 138k -maxrate:v:1 400k -bufsize:v:1 552k -b:v:1 276k 
-filter:v:2 scale=h=480:w=-2 -minrate:v:2 375k -maxrate:v:2 1088k -bufsize:v:2 1500k -b:v:2 750k 
-filter:v:3 scale=h=720:w=-2  -minrate:v:3 512k -maxrate:v:3 1485k -bufsize:v:3 2048k -b:v:3 1024k 
-var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3" 
-master_pl_name master.m3u8 
-f hls -hls_time 6 -segment_time 6 -hls_list_size 0 -segment_format mpegts 
-hls_playlist_type vod -hls_segment_filename "output/conversion/K8eYn1X1/res-%v/segment-%d.ts"  output/conversion/K8eYn1X1/res-%v/playlist.m3u8 

Основываясь на информации из различных источников, эта командная строка должна выполнить следующее:

  1. взять видеопоток из входного файла,

  2. применить фильтры с различными настройками четыре раза,

  3. объединить его в один поток,

  4. разрезать на фрагменты TS на 6 секунд,

  5. записать информацию о каждом разрешении вplaylist.m3u8,

  6. создать мастер-плейлист и записать в него информацию о будущих плейлистах

Все работает правильно, НО: фрагменты созданыплейлисты созданы, но мастер-файл пуст

Если вы играете с командной строкой, точнее, оставляете только один фильтр, то все работает нормально: фрагменты обрезаются, плейлисты создаются и мастер-файлыplayliТакже создается st

Кроме того, я заметил, что если я смотрел папку, в которой хранятся все файлы, я заметил одну вещь: при использовании команды, приведенной выше, создается файл 7 КБ, а затем вв ту же секунду, кажется, очищается. Почему так происходит, я не понимаю

По завершении обработки в журнале последняя строка:

[hls @ 000001ff73b87200] Opening 'output/conversion/K8eYn1X1/master.m3u8' for writing

Может я что-то не так делаю? Может быть, команды в неправильном порядке? Подскажите, кто знает?

Спасибо

...