Convert MKV with DTS sound to MP4 video with AAC or AC3 audio

36627
dale

I've got a 4.3 GB 720p movie and want to convert this MKV with DTS sound to MP4 video with AAC or AC3 audio.

I sometimes got "ffmpeg: unrecognized option '-c:v'" and "aac unrecognized" and other stuff.

I want this movie to have small size like those found on torrent sites.

9
Можете ли вы помочь нам, пожалуйста, и дать нам точную команду, которую вы используете, и полный, необрезанный вывод, который производит FFmpeg? На какой операционной системе вы работаете? И, наконец, вы должны использовать FFmpeg? Пожалуйста [отредактируйте] свой вопрос. slhck 11 лет назад 0

4 ответа на вопрос

15
slhck

Make sure you run the latest version of FFmpeg. For Windows and Linux, static builds are availabe from the homepage. For macOS, you can install FFmpeg through Homebrew.

Then, in the simplest case run:

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

Setting video quality

For controlling video quality, set the crf parameter, which defaults to 23. Lower means better quality, but higher file size. Try values between 19 and 26 to see what fits best. You can also set a certain bit rate, depending on which file size you want. Here, for example, 500 kBit/s:

ffmpeg -i input.mkv -c:v libx264 -crf 23 … ffmpeg -i input.mkv -c:v libx264 -b:v 500k … 

For audio, you can set the bit rate too, with -b:a.

Multiple channel audio

If your audio stream is using multiple channels (e.g. 5.1 sound), you need to use another AAC encoder (libfdk_aac). This encoder is not available in the static builds, but can be obtained with the pre-packaged / Homebrew versions of ffmpeg.

ffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a libfdk_aac -b:a 384k out.mp4 

Copying all streams

In case your input file has more than one video, audio and subtitle stream, ffmpeg by default does not convert all of them.

Use -map 0 to instruct ffmpeg to take all streams from the input file (see the FFmpeg Wiki for more info). This is useful for retaining different languages and subtitles that might be in the original.

ffmpeg -i input.mkv -c:v libx264 -c:a aac -map 0 out.mp4 
http://pastie.org/private/umwtqq7wib6fbn6sboui1w dale 11 лет назад 0
http://pastie.org/4905747 dale 11 лет назад 0
Как я уже сказал, убедитесь, что вы запустили последнюю версию FFmpeg (например, с http://ffmpeg.gusari.org/static/) и попробуйте снова. Вашей версии более трех лет! slhck 11 лет назад 0
2
UtahJarhead

MKV is just a container. You can have an mpeg-4 video inside of a .mkv container.

My suggestion is this:

push the file to a .mkv container:

mkvmerge -o newfile.mkv inputfile.m4v

Get the script available here: https://github.com/JakeWharton/mkvdts2ac3

Run this: mkvdts2ac3.sh newfile.mkv

Done! My TV supports AC3, but not DTS so this setup does wonders for me.

Please note that mkvdts2ac3.sh has some dependency requirements that are very basic. You'll see them when you run the script.

root @ Frenzen: ~ / Downloads / 2.Days.In.New.York.2012.720p.BluRay.X264- 7SinS # mkvmerge -o 7s-2days-in-ny-720p.mkv inputfile.m4v mkvmerge v3.0.0 (' Повесьте свои зависания », созданный 29 декабря 2009 г. 00:24:14 Ошибка: исходный файл« inputfile.m4v »не может быть успешно открыт, или получение его размера путем поиска до конца не работает. корень @ Frenzen: ~ / Загрузки / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS # dale 11 лет назад 0
Звучит как поврежденный входной файл. UtahJarhead 11 лет назад 0
@ dale Не могли бы вы включить вывод, о котором я вас просил, в комментарии к вашему первоначальному вопросу? Это поможет нам решить вашу проблему. slhck 11 лет назад 0
Кроме того, UtahJarhead, OP, кажется, хочет получить файл результатов MP4 из входного файла MKV. У него нет файла `m4v`, поэтому ваша команда не работает. Кроме того, Дейл использовал неправильный синтаксис, указав существующий файл в качестве выходных данных и указав в качестве входных данных `inputfile.m4v`, которого, очевидно, не существует. slhck 11 лет назад 0
mp4 - это кодек, а не контейнер. mkv - это контейнер, а не кодек. Это все равно что сказать, что они хотят сделать гараж из Кадиллака. Какой кодек является входным .mkv файлом, потому что это может иметь значение. UtahJarhead 11 лет назад 0
http://pastie.org/private/bjecc3qxl6qcfjfacgosa http://pastie.org/private/nhkbxzvif1hg0i8ikcjfw вот что я пытался сделать dale 11 лет назад 0
http://pastie.org/private/sprfh76gziyptnikgxpbdq dale 11 лет назад 0
mkvdts2ac3 prob http://pastie.org/private/xnblpyvwnevypjlosw3lug dale 11 лет назад 0
MP4 (MPEG-4 Part 14) - это не кодек, это мультимедийный контейнер. Если вы имеете в виду MPEG-4, то это стандарт, который включает MPEG-4 Part 2 (визуальное кодирование) и MPEG-4 Part 10 (Advanced Video Coding), последний также широко известен как h.264. slhck 11 лет назад 0
0
IvanRF

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

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

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

Вы должны описать процесс здесь, тогда и только тогда, предоставьте ссылку на скачивание приложения. Ramhound 8 лет назад 1
@ Ramhound Я только что отредактировал ответ IvanRF 8 лет назад 0
0
Chris Reid

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

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 

Похожие вопросы