Итак, я скачал бесплатно созданный фанатом Star Trek Continues Blue-Ray ISO для Эпизодов 1-3 , и я пытаюсь конвертировать FHD 1920x1080 в SD 960x540 чтобы иметь возможность смотреть на моем телефоне:
ffmpeg -canvas_size 960x540 \
-i /media/STC_VOL1_BR/BDMV/STREAM/00000.m2ts \
-map_metadata -1 \
-c:v libx264 -map 0:0 -strict -2 -r 24 -s 960x540 \
-c:a libmp3lame -map 0:1 -b:a 384K \
-metadata:s:s:0 language=EN -c:s dvdsub -map 0:2 \
/media/Videos/Star\ Trek\ Continues/S01E01\ Pilgrim\ Of\ Eternity.mkv
, но после нескольких секунд просмотра преобразованного mkv субтитры становятся:
Что я делаю не так?
Примечание 1: Я имею Я имел дело только с субтитрами srt
, и я знаю, что dvdsubs являются изображениями, поэтому я подумал, что параметр canvas_size
может помочь, но это не имеет значения.
Примечание 2: Да, это не совсем вопрос о Ubuntu OS, а об video.se не привлекают никакого внимания, даже с наградой так что пытайтесь здесь, если кто-нибудь сделает какое-либо преобразование видео и столкнулся с той же ситуацией.
Технически самый чистый вид с этими субтитрами должен был бы:
Это большой и трудоемкий процесс. работу, которую я лично выполнял в прошлом , но, вероятно, излишне в этом случае.
Опция лучше состоит в том, чтобы просто добавить опцию FFmpeg -fix_sub_duration
(поместить перед входным файлом), и это исправит дублированные субтитры, как показано ниже, и сделать субтитры легко читаемыми:
Подробности опции -fix_sub_duration
можно найти на страницах справки FFmpeg-all, но я взял на себя смелость процитировать эти детали здесь:
-fix_sub_duration
Исправить длительность субтитров. Для каждого субтитра дождитесь следующего пакета в том же потоке и настройте продолжительность первого, чтобы избежать наложения. Это необходимо для некоторых кодеков субтитров, особенно для субтитров DVB, поскольку длительность в исходном пакете является лишь приблизительной оценкой, а конец фактически отмечен пустым кадром субтитров. Отказ от использования этой опции в случае необходимости может привести к преувеличенной продолжительности или сбоям мультиплексирования из-за немонотонных меток времени.
Обратите внимание, что эта опция будет задерживать вывод всех данных до декодирования следующего пакета субтитров: это может значительно увеличить потребление памяти и задержку.
Вы заметите, что это первый из опций Advanced Subtitle, второй является -canvas_size
, который вы уже использовали ...