Преобразование ATSC TS в MKV, включая все звуковые дорожки и субтитры из FFMPEG

Я предполагаю, что это можно сделать как-то, потому что я видел программы, которые являются графическим интерфейсом для FFMPEG, которые по существу делают это, но я пытаюсь понять это из командной строки в Ubuntu. Я хочу перекодировать из видеопотока MPEG2 с записи ATSC в h264, но просто сохранить все аудиоканалы как есть. Я также хотел бы преобразовать субтитры в трек субтитров в финальной оболочке MKV. Кроме того, можно ли отметить хотя бы основную звуковую дорожку и дорожки субтитров как "English"? Чтобы сделать его еще более удивительным, сделав это скрипт BASH, где я могу назвать входной файл и сохранить его как то же имя, но изменить его .mkv сделает его идеальным. Я не разбираюсь в написании сценария с нуля и не знаю соответствующих переменных для команды FFMPEG.

23
задан PCSO SAR COMM
17.12.2022 1:54 Количество просмотров материала 2466
Распечатать страницу

1 ответ

это немного сложно, но вот метод работы:

INFILE=input.ts
OUTFILE=output.mkv
ffmpeg \
  -i "${INFILE}" \
  -f lavfi -i movie="${INFILE}[out+subcc]" \
  -map 0 -map 1:s \
  -codec:v libx264 \
  -codec:a copy \
  -codec:s srt \
  -metadata:s:s:0 language=eng \
  "${OUTFILE}"

здесь input.ts и output.mkv ваши желаемые входные MPEG-TS и выходные Matroska файлы, соответственно. Обобщение на сценарий остается упражнением для читателя.

интерпретация параметров построчно:

-i ... входной файл.

-f lavfi -i ... позволяет извлечь встроенный поток субтитров.

-map 0 -map 1:s выбор потока для выход.

-codec:v libx264 говорит ffmpeg конвертировать видео в H. 264.

-codec:a copy копирует все аудио потоки на выход без изменений.

-codec:s srt указывает ffmpeg преобразовать встроенные заголовки в SRT.

-metadata:s:s:0 language=eng устанавливает язык потока субтитров на английский.

Примечания:

  • я использовал это только с воздушными потоками ATSC, включая то, что я предполагаю, являются заголовками EIA-608. Я понятия не имею, работает ли он с QAM (кабельное) записи, хотя я ожидаю, что это так.
  • могут возникнуть проблемы с именами входных файлов, содержащих определенные символы, даже если имя файла заключено в кавычки.
  • это скопирует все звуковые потоки. Если вам нужен только первый, вам нужно явно отобразить отдельные потоки из ввода 0.
  • скорее всего, звуковые потоки уже имеют набор языков. Если они этого не делают, добавьте другой параметр-metadata, чтобы установить язык аудиопотока, слишком.
  • вы, вероятно, захотите поэкспериментировать с качеством кодирования видео с помощью опции-crf. Если входное видео чересстрочное, вы также можете деинтерлейс и масштабировать до 720p, добавив -filter:v bwdif=0,scale=1280:720 после -map строка(ы).
0
отвечен Scott Reynolds 2022-12-18 09:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх