У меня есть тонна MKV-файлов, которые мне нужно конвертировать в MP4, и выбранное мной программное обеспечение - Handbrake.
Я застрял на том, какие настройки будут лучше для преобразования. Я хочу сохранить полное качество. Должен ли я просто конвертировать с исходными настройками и ничего не менять, или мне нужно что-то изменить?
video-conversion
mp4
matroska
handbrake
оранжевый
источник
источник
Ответы:
В чем проблема с ручником?
Когда вы используете Handbrake для преобразования из одного формата контейнера в другой (например, MKV в MP4 в вашем случае), Handbrake перекодирует видео. См. Также соответствующий запрос функции , который включил бы передачу видео:
Таким образом, каждый раз, когда вы меняете контейнеры с помощью Handbrake, ваше видео будет перекодировано, а это означает, что а) занимает время и б) может привести к потере качества.
Должен ли я перекодировать? Разве я не могу просто поменять контейнер?
Поскольку проход невозможен, спросите себя: нужно ли мне перекодировать? Если вы хотите изменить только контейнер с MKV на MP4, вам обычно не нужно ничего кодировать , вы просто меняете «обертку» вокруг видео. Это не теряет качества, и это будет намного быстрее.
Вы можете легко поменять контейнеры с помощью FFmpeg - вам просто нужно указать это для копирования видео и аудио потоков:
Есть также инструменты, такие как MP4Box, которые также могут создавать контейнеры MP4 - то же самое существует для MKV с MKVtoolnix .
Однако есть большая оговорка: это работает, только если аудио и видео кодеки поддерживаются в целевом (MP4) контейнере, что имеет место, например, для H.264 / H.265 и AAC, но не для многих других. Кроме того, поддержка формата субтитров для MP4 отличается от MKV и на самом деле довольно ограничена, поэтому эта команда может завершиться ошибкой.
Если эта команда не работает и если ваш ввод использует неправильные кодеки для выходного контейнера, вам, вероятно, придется перекодировать . В этом случае кодеки будут адаптированы к выходному контейнеру.
Чтобы понять, почему это необходимо, важно изучить разницу между видеокодеками и контейнерами . Это поможет вам понять, почему смена контейнеров работает и почему контейнеры MP4 и MKV имеют мало общего с видеокодеками.
В любом случае, почему перекодировка плохая?
Вы можете (обычно) не сохранять полное качество при кодировании видео, которое уже было закодировано. Это связано с тем, что оригинал уже был сжат, выбрасывая информацию, и, повторяя ее, вы вносите потерю поколения .
Зачастую вы хотите перекодировать видео, когда, например, изменяются его размеры, или вам нужна определенная скорость передачи данных для сжатия вашего видеопотока, или ваше исходное видео использует кодек, который вы не можете воспроизвести по какой-либо причине.
Итак, если вы загрузите свое видео MKV в Handbrake и перекодируете его с помощью x264, который использует Handbrake кодера H.264, сохраните его в контейнере MP4, вы потеряете качество независимо от того, что, если вы не установите битрейт или добротность настолько высока, что вы (действительно) не увидите разницу. Но тогда размер файла также будет больше.
В идеальном случае вы конвертируете видео в несжатое видео, которое не потеряет вас в качестве, но даст вам файлы размером в дюжину гигабайт, даже на несколько минут видеоматериала.
Хорошо, но мне действительно нужно перекодировать!
Если вам действительно нужно перекодировать, не устанавливайте среднюю скорость передачи, а выбирайте коэффициент постоянной скорости , который напоминает «постоянное качество». Точно так же, как «переменная скорость передачи данных» для MP3: он будет тратить биты на нужные видео части и улучшать общее качество - при том же размере файла.
Нормальные значения CRF составляют от 19 до 24, где более низкое значение означает «лучше». Таким образом, вы можете попробовать с коэффициентом скорости 19. Кроме того, убедитесь, что вы установили «Высокий» профиль, который позволяет кодировщику использовать все сигналы тревоги и свистки и оптимизировать качество для данной скорости передачи данных.
источник
ffmpeg -i input.mp4 -c copy output.mkv
и у тебя все будет хорошо.Это работает очень хорошо для меня. Ниже приведен код для преобразования всех файлов .mkv в .mp4 в Windows.
Сохраните в файле с именем convert.bat.
источник
for %%a in ("*.mkv") do %~dp0ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"