Копирование нескольких дорожек субтитров PGS с помощью FFmpeg

Копирование нескольких дорожек субтитров PGS с помощью FFmpeg

Я использую Debian 9. У меня есть файл с несколькими звуковыми дорожками и субтитрами в PGS. Я хотел бы передать видео в h265 и сохранить все звуковые дорожки и субтитры как есть в контейнере .mkv, поскольку, как я понимаю, mp4 не поддерживает субтитры на основе изображений.

Я использую следующую команду:

ffmpeg -i entrada.264.mkv -c:v libx265 -f matroska -map 0 salida.265.mkv

но я получаю эту ошибку в ffmpeg:

[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 6 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 7 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 8 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 9 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 10 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 11 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Only SUBTITLE_ASS type supported.
Subtitle encoding failed

А если вы захотите скопировать их по одному, просто сожгите первый.

Здесьданные рассматриваемого файла:

В итоге:

Ожидаемый результат: перекодировать видеофайл в h265 и скопировать все аудио и субтитры, не изменяя их, или записать их в видео, чтобы иметь возможность выбрать, какой из них использовать.

Полученный результат: Ошибка из-за отсутствия параметров для субтитров.

Есть ли способ сделать это напрямую из ffmpeg, не извлекая субтитры по одному, а затем не добавляя их к видео через какую-нибудь программу типа mkvmerge?

решение1

Потоковая копия(ремультиплекс) всего, кроме видео:

ffmpeg -i entrada.264.mkv -map 0 -c copy -c:v libx265 salida.265.mkv

-map 0включает все потоки от входа до выхода вместо того, чтобы полагаться наповедение выбора потока по умолчаниюкоторый включает только один поток каждого типа потока.

решение2

Это не ошибка. Это предупреждающее сообщение. -loglevel warningВозвращает сообщение:

ffmpeg -i entrada.264.mkv -loglevel warning -c:v libx265 -f matroska -map 0 salida.265.mkv

И -loglevel errorподавляет его:

ffmpeg -i entrada.264.mkv -loglevel error -c:v libx265 -f matroska -map 0 salida.265.mkv

Я проверил все субтитры моего собственного выходного mkv-файла черезРедактировать субтитрыи они все целы. Я думаю, это предупреждение отображается только для того, чтобы предупредить вас, если вы решите перекодировать эти субтитры позже.

Связанный контент