Як "записати" доріжку субтитрів у відео-файл mp4


10

Я хотів би зробити файл субтитрів частиною відео-файлу mp4, так що мені не доведеться мати справу з двома окремими файлами.

Я уявляю два способи:

  • Зробіть підзаголовком невід'ємну частину відео. Для цього знадобиться перекодування відео.
  • Зробіть підзаголовок окремим потоком, але все-таки вбудованим у той самий відео-файл. Це набагато краще, тим більше, що я можу його відключити (на відміну від іншого підходу) або навіть грати з типом / розміром шрифту.

Як я можу робити речі другим способом? Було б також цікаво знати, як працює перший підхід.


1
Я ще не працював над цим, але мені дуже цікаво ... Схоже, контейнер mp4 (MPEG-4) може обробляти окремі потоки супідтлетів, що випромінюються .. так що (для мене) це було б шляхом. Якщо ви жорстко переносите субтитри на саме відео, вам потрібно перекодувати відео, і вони будуть вбудовані назавжди ... Єдиною перевагою жорстких "закодованих" субтитрів є те, що відеоплеєру не потрібно бути mp4-субтитром-потоком відомо ... Це досить прямо вперед, щоб жорстко кодувати AVI, але у мене ще не було потреби використовувати потоки sutitle (поки :). Де формат ваших субтитрів?
Пітер.O

@fred Мій файл субтитрів закінчується .srt, і Nautilus повідомляє мені, що формат - субтитри SubRip (application / x-subrip).
tshepang

Відповіді:


9

Формат контейнера Matroska (mkv) підтримує текстові субтитри, вбудовані у файл окремим потоком.

Ви можете використовувати mkvmerge для перетворення файлу в .mkv та включення субтитрів у висновок, який ви можете увімкнути / відключити під час відтворення відео. Зауважте, що цей метод НЕ перекодує відео чи аудіо, він просто вводить ті самі дані в інший формат контейнера, тому це не знизить якість відео.

mkvmerge -o output.mkv video.mp4 subtitles.srt

Працював як шарм, і так швидко я подумав, що він зазнав аварії на старті!
Томіслав Накіч-Альфіревич

3

У пакеті, що називається gpac, є утиліта CLI, що називаєтьсяMP4Box

Ось приклад того, що працювало для мене ..

MP4Box  -add ~/file.noaudio.mp4 \
        -add ~/file.mp3 \
        -add ~/file.srt \
             ~/file.MP4Box.mp4   

Я використовував лише відео та лише аудіо, але, безумовно, (?) Буде працювати з нормальним аудіо + відео "фільмом" .... Дуже пізно, тому я просто залишу це на цьому ...

Примітка: Субтитри працюють у Totem, але не в SMPlayer ...


1

Спробуйте щось на кшталт:

mencoder -oac copy -ovc copy -sub subs.srt video.mp4 -o new_video.mp4

Це не працює. Це призводить до забрудненого аудіо та відео, а відео відсікається (початковий файл ~ 1,6 ГБ, а отриманий файл - 200 Мб). Я використовую mencoder 1.0-rc3.
thepang

У мене є mp4 файл та srt. Але з цими аргументами підзаголовок не з’являється в отриманому файлі. :(
TrueY

Подивився саме те, що я шукав. Спробував це з WebM-відео (відео-трек VP8, аудіо-запис VORBIS), і в результаті вийшло поломке відео. Сором. : \
Томіслав Накіч-Алфіревич
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.