Объединение видео и файлов субтитров в одно видео?

14

У меня есть видео файл (в формате .mp4, .mkv, .avi или любой другой) и файл субтитров (.srt). Я хочу встроить файл субтитров в видеофайл, чтобы у меня был только один файл - видеофайл в отличие от видео и файла субтитров.

Является ли это возможным? Как?


источник
1
Мягкие встроенные сабвуферы, которые можно отключить, - это путь, который может быть реализован (хотя с AVI это невозможно сделать); жесткие сабвуферы действительно раздражают, и не только добавление их приводит к потере качества, но и их удаление невозможно без дальнейшей значительной потери.
Каран

Ответы:

8

MKVtoolnix - еще одна простая в использовании опция, поскольку у вас уже есть нужные файлы. Вы можете объединить их в контейнер MKV без каких-либо изменений оригиналов. Он имеет приятный графический интерфейс, чтобы помочь вам в процессе комбинирования.

Я вижу, что user1301428 упомянул Handbrake, который также является очень распространенным / популярным инструментом. Я не настолько знаком с этим, но если он не перекодирует ваш исходный AVI, то это должно быть здорово.

Melikoth
источник
22

Бесплатное кроссплатформенное решение с FFmpeg , которое выполняет битовое копирование и поэтому занимает не более нескольких секунд, даже для больших файлов:

ffmpeg -i input.mp4 -i subtitles.srt -c:s mov_text -c:v copy -c:a copy output.mp4

Это работает для MP4. Помните, что некоторые форматы субтитров могут не быть автоматически совместимы с выбранными выходными форматами, поэтому вы должны изменить кодек после -c:s:

  • MP4: Используйте mov_textкодек субтитров (как в примере выше), который реализует MPEG-4 Part 17 .

  • MKV: Используйте srt, subrip, ssaили ass. MKV не поддерживает mov_text.

  • AVI: очень проблематично со встроенными субтитрами. Теоретически они поддерживают субтитры SubRip и SSA / ASS, но только через стороннее программное обеспечение.

Посмотрите Википедию для списка контейнеров и их поддерживаемых форматов субтитров .

Использование специализированных программ кодирования видео, таких как Handbrake, перекодирует ваше видео, что снижает его качество и может занять несколько часов для кодирования - вот почему вы должны проверить, поддерживают ли инструменты копирование видео и аудио битовых потоков.

slhck
источник
1
-f srtИногда я обнаружил, что это необходимо, в противном случае это здорово!
Стивен Пенни
1
Если ваш файл субтитров имеет *.vttформат, используйте -c:s webvttпараметр, например так:ffmpeg -i input.webm -i input.vtt -c:s webvtt -c:v copy -c:a copy output.webm
user3405291
0

Вы можете использовать Ручной тормоз . На вкладке «Субтитры» вам просто нужно выбрать файл субтитров и запустить кодировку.

user1301428
источник
2
Это перекодирует видео, что а) отнимает много времени и б) ухудшает качество.
slhck
-1
ffmpeg -i video.avi -vf subtitles=subtitle.srt out.avi
SivaPhani
источник