
У меня есть много каталогов файлов видеофрагментов TS, которые я хотел бы преобразовать в файлы H.264 в MP4. Каждый каталог состоит из нескольких фрагментов, которые составляют одно видео, и есть индексный файл m3u8 для их последовательности.
index.m3u8
segment1_0_av.ts
segment2_0_av.ts
segment3_0_av.ts
segment4_0_av.ts
segment5_0_av.ts
segment6_0_av.ts
segment7_0_av.ts
segment8_0_av.ts
segment9_0_av.ts
Я работаю на Mac и могу использовать homebrew для установки всего необходимого. Какую командную строку я могу использовать для преобразования вышеизложенного в один файл H.264? Командная строка позволит мне создать скрипт для автоматического преобразования нескольких папок позже.
решение1
Сначала нужно объединить сегменты, а затем кодировать. Файлы TS можно объединить так же просто, как и сцепить их. Поэтому попробуйте:
$ cat segment*.ts > onefile.ts
$ ffmpeg -i onefile.ts -c:v libx264 -preset medium -tune film -crf 23 \
-strict experimental -c:a aac -b:a 192k output.mp4
В приведенном выше примере вам, очевидно, нужно получить «ffmpeg» из homebrew или macports или из свободно доступных двоичных файлов OSX.
Измените "-crf 23" на меньшее целое число в два шага 21,19, ... для более высокого качества, если вы не удовлетворены результатами - но значение по умолчанию 23 должно быть вполне приемлемым. Однако не опускайтесь ниже 16, потому что это "практически без потерь" для нормальных стандартов человеческого восприятия.
Веселиться.