Конвертируйте MKV со звуком DTS в видео MP4 с аудио AAC или AC3
У меня есть фильм с разрешением 4,3 ГБ в формате 720p и я хочу преобразовать этот MKV со звуком DTS в видео MP4 со звуком AAC или AC3.
Иногда я получал "ffmpeg: unrecognized option '-c:v" "и"aac unrecognized"и другие вещи.
Я хочу, чтобы этот фильм был небольшого размера, как на торрент-сайтах.
4 ответа
Убедитесь, что вы используете последнюю версию FFmpeg. Для Windows и Linux статические сборки доступны на домашней странице. Для macOS вы можете установить FFmpeg через Homebrew.
Затем в простейшем случае запустите:
ffmpeg -i input.mkv -c:v libx264 -c:a aac out.mp4
Настройка качества видео
Для контроля качества видео установите crf
параметр, который по умолчанию равен 23. Чем ниже, тем лучше качество, но больше размер файла. Попробуйте значения между 19 и 26, чтобы увидеть, что подходит лучше всего. Вы также можете установить определенную скорость передачи данных, в зависимости от того, какой размер файла вы хотите. Вот, например, 500 кбит / с:
ffmpeg -i input.mkv -c:v libx264 -crf 23 …
ffmpeg -i input.mkv -c:v libx264 -b:v 500k …
Для аудио вы также можете установить скорость -b:a
,
Многоканальный звук
Если ваш аудиопоток использует несколько каналов (например, звук 5.1), вам необходимо использовать другой кодер AAC (libfdk_aac
). Этот кодировщик недоступен в статических сборках, но его можно получить с помощью предварительно упакованных / Homebrew версий ffmpeg.
ffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a libfdk_aac -b:a 384k out.mp4
Копирование всех потоков
Если ваш входной файл содержит более одного потока видео, аудио и субтитров, ffmpeg по умолчанию не преобразует их все.
использование -map 0
дать команду ffmpeg взять все потоки из входного файла (для получения дополнительной информации см. вики FFmpeg). Это полезно для сохранения разных языков и субтитров, которые могут быть в оригинале.
ffmpeg -i input.mkv -c:v libx264 -c:a aac -map 0 out.mp4
Вы можете сделать это:
ffmpeg -i input.mkv -c:v copy -c:a libfaac out.mp4
Или, если нет радости, попробуйте исправить внутренний поток битов
Преобразование в стерео и asc:
ffmpeg -i input.mkv -c:v copy -c:a libfaac \
-bsf:a aac_adtstoasc -ac 2 -ar 48000 -ab 256k \
out.mkv
Если это 5.1, объемный звук и голоса плохо слышны, это потому, что диалог находится на центральном канале, и вы слышите только микрофон с каналов R & L, но музыка и звуковые эффекты быстро развиваются.
Вы можете компенсировать это с помощью фильтра Dolby-II, чтобы уменьшить объемный канал, а центральный канал разделить на стерео, и объединить их в правый и левый стереоканалы.
ffmpeg -i input.mkv -c:v copy -c:a libfaac -bsf:a aac_adtstoasc \
-af aresample=matrix_encoding=dplii -ac 2 -ar 48000 -ab 256k \
out.mkv
MKV это просто контейнер. Вы можете иметь видео mpeg-4 внутри контейнера.mkv.
Мое предложение таково:
отправьте файл в контейнер.mkv:
mkvmerge -o newfile.mkv inputfile.m4v
Получить скрипт можно здесь: https://github.com/JakeWharton/mkvdts2ac3
Запустите это:mkvdts2ac3.sh newfile.mkv
Готово! Мой телевизор поддерживает AC3, но не DTS, так что эта настройка делает чудеса для меня.
Обратите внимание, что mkvdts2ac3.sh имеет некоторые базовые требования к зависимости. Вы увидите их, когда запустите скрипт.
Как сказал @UtahJarhead, MKV - это контейнер. По сути, вы хотите конвертировать аудио DTS в AC3 или AAC.
Лучший способ сделать это - использовать FFmpeg
для аудио и MKVToolNix
объединить аудио и видео.
Если вы предпочитаете графический интерфейс вместо команд, я описал, как это сделать здесь: Преобразование неподдерживаемого аудио из видео.