2

Я использую программу для жесткого кодирования подпрограмм в файл AVI. Проблема в том, что он сжимает видео с помощью кодека. Я не понимаю, почему это необходимо и вызывает заметную потерю качества. Есть ли программа, которая вставит сабвуферы без необходимости повторного сжатия видео, чтобы не было потери качества видео?

4 ответа4

8

Нет. Хардсабы изменяют видеоконтент, поэтому необходима его повторная компрессия.

2

Я думаю, что при обычном использовании жесткие субтитры означают, что они встроены в данные изображения, что по определению требует повторного сжатия. Мягкие субтитры добавляются в виде отдельных файлов, например .srt. Однако во встроенных субтитрах есть средний путь. Встроенные субтитры добавляются в контейнер видео как отдельная дорожка, что означает, что они будут включены в файл, но не требуют повторного сжатия.

Для Divx-формата лучшим инструментом является приложение для Windows на базе AVIAddXSubs. Он может встраивать субтитры Idx/Sub/Srt.

Для MP4 и некоторых других альтернатив, Handbrake может вставлять мягкие субтитры. Узнайте больше на их вики

1

Вы можете использовать mplayer для воспроизведения видео с субтитрами, а затем выводить все в необработанный файл yuv (-vo yuv4mpeg). Если вы воспроизводите фильм, этот выводимый файл будет очень большим, сотни гигабайт, поэтому убедитесь, что он не вызовет проблем.

После вывода файла его можно сжать с помощью ffmpeg, а затем кодека H264.

0

Повторное сжатие необходимо, потому что вы изменяете данные кадра, если накладываете текст на сам кадр. Таким образом, рабочий процесс идет Decompress frame > Modify it to add text > recompress frame .

Вы можете использовать кодек без потерь для файла с добавленными субтитрами. Один из них будет huffyuv, h.264 и Dirac, похоже, также имеют профили без потерь. (Это приведет к тому же качеству, что и исходный файл, с гораздо большим размером файла)

Теоретически, возможно написать приложение, которое перекодирует только те блоки, которые были изменены субтитрами, но это, вероятно, необходимо глубоко внедрить в кодек ... Это должно позволить ограничить области, на которые влияет качество ... Я не знаю ничего такого, что существует, хотя ... (Это также должно было бы быть написано специально для каждого кодека, в то время как изменение распакованного кадра позволяет использовать существующие библиотеки кодера и декодера, а также повторное сжатие в другом формате)

В идеале, вы должны использовать сжатые файлы без потерь до завершения редактирования и экспортировать окончательный файл с предпочтительным сжатием. Однако это работает только для видео, которые вы производите.

Другой вариант, который может быть приемлемым, заключается в добавлении субтитров в качестве дополнительного потока данных (хотя это позволит их отключить). MPEG-4 синхронизированный текст - один из таких форматов субтитров, Ogg Writ - другой. (Но ни один из них, похоже, не поддерживает контейнер AVI) (С их помощью субтитры - это просто еще одна дорожка, как аудио и видео, которые воспроизводятся при воспроизведении файла)

Это может также сработать для повторного сжатия с использованием лучшего кодека (вероятно, Dirac, H.264 или H.265, в зависимости от формата ввода), чтобы попытаться ограничить потерю качества без огромного увеличения размера файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .