Перетворення MKV з DTS-звуком у MP4-відео з AAC або AC3-аудіо


13

У мене є фільм розміром 720p 7,3 пікселів та хочу перетворити цей MKV з DTS-звучанням у MP4-відео з аудіо AAC або AC3.

Я інколи отримую:

ffmpeg: unrecognized option '-c:v'

… І:

aac unrecognized

¬і інші подібні речі.

Я хочу, щоб цей фільм мав невеликі розміри, як ті, що знайдені на торент-сайтах.


Чи можете ви допомогти нам, будь ласка, і дати нам точну команду, яку ви використовуєте, і повний, необрізаний вихід, який виробляє FFmpeg? На якій операційній системі ви працюєте? І , нарешті: У вас є використовувати FFmpeg? Будь ласка , змініть ваше запитання.
slhck

Відповіді:


19

Переконайтеся, що ви запускаєте останню версію FFmpeg . Для Windows та Linux статичні збірки доступні на домашній сторінці. Для macOS можна встановити FFmpeg через Homebrew .

Потім у найпростішому випадку запустіть:

ffmpeg -i input.mkv -c:v libx264 -c:a aac out.mp4

Налаштування якості відео

Для контролю якості відео, встановіть в crfпараметр , який по замовчуванням 23. Lower означає кращу якість, але більший розмір файлу. Спробуйте значення між 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 Wiki для отримання додаткової інформації). Це корисно для збереження різних мов та субтитрів, які можуть бути в оригіналі.

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

Отримайте сюдиmkvdts2ac3.sh скрипт і запустіть цю команду:

mkvdts2ac3.sh newfile.mkv

Готово!

Мій телевізор підтримує AC3, але не DTS, тому ця настройка робить для мене чудеса.

Зверніть увагу, що mkvdts2ac3.shдеякі вимоги до залежності, які є дуже базовими. Ви побачите їх під час запуску сценарію.


root @ Frenzen: ~ / Завантаження / 2.Days.In.New.York.2012.720p.BluRay.X264- 7SinS # mkvmerge -o 7s-2days-in-ny-720p.mkv inputfile.m4v mkvmerge v3.0.0 (' Повісьте свій Hang-Ups '), побудований 29 грудня 2009 00:24:14 Помилка: вихідний файл' inputfile.m4v 'не вдалося відкрити успішно або отримати його розмір, не прагнучи до кінця, не вдалося. root @ Frenzen: ~ / Завантаження / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS #
dale

Звучить як пошкоджений вхідний файл.
UtahJarhead

@dale Ви можете, будь ласка, включити висновок, про який я вас попросив, у коментарі до вашого оригінального запитання? Це допоможе нам вирішити вашу проблему.
slhck

Крім того, UtahJarhead, ОП, схоже, хоче отримати файл результату MP4 з вхідного файлу MKV. У нього немає m4vфайлу, через що ваша команда не працює. Крім того, dal використовував неправильний синтаксис, вказавши свій існуючий файл як вихідний і даючи inputfile.m4vяк вхідний, чого, очевидно, не існує.
slhck

mp4 - кодек, а не контейнер. mkv - контейнер, а не кодек. Це як би сказати, що хочуть зробити гараж із Каділака. Що кодек - це вхідний файл .mkv, тому що це може змінити ситуацію.
UtahJarhead

1

Ви можете зробити це:

ffmpeg -i input.mkv -c:v copy -c:a libfaac out.mp4

Або якщо немає радості, спробуйте виправити внутрішній бітовий потік

Перетворення на стерео і підйомник:

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 для об'єднання аудіо та відео.

Якщо ви віддаєте перевагу графічний інтерфейс замість команд, я описав, як це зробити тут: Перетворити непідтримуваний аудіо з відео .


1
Ви повинні описати процес тут, і тоді лише після цього надайте посилання для завантаження програми.
Рамхаунд

@Ramhound Я щойно відредагував відповідь
IvanRF
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.