10

У меня есть фильм на 4,3 Гб в формате 720p, и я хочу преобразовать этот MKV со звуком DTS в видео MP4 со звуком AAC или AC3.

Иногда я получал "ffmpeg: unrecognized option '-c: v" "и" aac unrecognized "и другие вещи.

Я хочу, чтобы этот фильм был небольшого размера, как на торрент-сайтах.

4 ответа4

17

Убедитесь, что вы используете последнюю версию 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
2

MKV это просто контейнер. Вы можете иметь видео mpeg-4 внутри контейнера .mkv.

Мое предложение таково:

отправьте файл в контейнер .mkv:

mkvmerge -o newfile.mkv inputfile.m4v

Получить скрипт можно здесь: https://github.com/JakeWharton/mkvdts2ac3

Запустите это:mkvdts2ac3.sh newfile.mkv

Готово! Мой телевизор поддерживает AC3, но не DTS, так что эта настройка делает чудеса для меня.

Обратите внимание, что mkvdts2ac3.sh имеет некоторые требования к зависимости, которые являются очень основными. Вы увидите их, когда запустите скрипт.

0

Вы можете сделать это:

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
0

Как сказал @UtahJarhead, MKV - это контейнер. По сути, вы хотите конвертировать аудио DTS в AC3 или AAC.

Лучший способ сделать это - использовать FFmpeg для аудио и MKVToolNix для объединения аудио и видео.

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

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