Итак, я скачал бесплатное приложение, созданное фанатами.Звездный путь продолжается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
субтитрами и знаю, что DVD-Sub — это изображения, поэтому я подумал, что этот canvas_size
параметр может быть полезен, но это не имеет значения.
Заметка 2:Да, это не совсем вопрос по ОС Ubuntu, но вот по темевидео.seне получаюлюбое внимание, даже с вознаграждениемпоэтому попробуйте здесь, если кто-то занимается конвертацией видео и столкнулся с такой же ситуацией.
решение1
Техническисамый чистыйсмотреть с этими субтитрами было бы так:
- Извлечь субтитры
- Преобразуйте их в текст с помощью вашего любимого приложения OCR.
- Внимательно просмотрите и отредактируйте текст.
- Запишите их обратно в медиапоток в выбранном вами размере, цвете, ориентации и формате.
Это большая и трудоемкая работа, котораяЯ лично предпринимал в прошломно, вероятно,переборв этом случае.
Theлучшевариант - просто добавить опцию FFmpeg -fix_sub_duration
(помещеннуюдовходной файл) и это исправит двойные субтитры, как я проиллюстрировал ниже, и сделает субтитры легко читаемыми:
Подробную информацию об этой -fix_sub_duration
опции можно найти на страницах руководства FFmpeg-all, но я взял на себя смелость процитировать эти данные здесь:
-fix_sub_duration
Исправьте длительность субтитров. Для каждого субтитра дождитесь следующего пакета в том же потоке и отрегулируйте длительность первого, чтобы избежать наложения. Это необходимо для некоторых кодеков субтитров, особенно субтитров DVB, поскольку длительность в исходном пакете является лишь приблизительной оценкой, а конец фактически отмечен пустым кадром субтитров. Неиспользование этой опции при необходимости может привести к преувеличенной длительности или сбоям мультиплексирования из-за немонотонных временных меток.
Обратите внимание, что эта опция задержит вывод всех данных до тех пор, пока не будет декодирован следующий пакет субтитров: это может значительно увеличить потребление памяти и задержку.
Вы заметите, что этопервыйиз дополнительных опций субтитров,второйбудучи -canvas_size
тем, что вы уже использовали...