Converta MKV com som DTS para vídeo MP4 com áudio AAC ou AC3

9

Tenho um filme de 4,3 GB a 720p e quero converter este MKV com som DTS para vídeo MP4 com áudio AAC ou AC3.

Às vezes eu recebo "ffmpeg: opção não reconhecida '-c: v'" e "aac não reconhecido" e outras coisas.

Eu quero que esse filme tenha um tamanho pequeno como os encontrados em sites de torrent.

    
por dale 02.10.2012 / 20:41

4 respostas

15

Certifique-se de executar a versão mais recente do FFmpeg . Para Windows e Linux, as compilações estáticas estão disponíveis na página inicial. Para macOS, você pode instalar o FFmpeg através do Homebrew .

Em seguida, no caso mais simples, execute:

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

Definir qualidade de vídeo

Para controlar a qualidade do vídeo, defina o parâmetro crf , cujo padrão é 23. Lower significa melhor qualidade, mas maior tamanho de arquivo. Tente valores entre 19 e 26 para ver o que melhor se encaixa. Você também pode definir uma determinada taxa de bits, dependendo do tamanho de arquivo desejado. Aqui, por exemplo, 500 kBit / s:

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

Para áudio, você também pode definir a taxa de bits com -b:a .

Áudio de vários canais

Se o fluxo de áudio estiver usando vários canais (por exemplo, som 5.1), será necessário usar outro codificador AAC ( libfdk_aac ). Este codificador não está disponível nas compilações estáticas, mas pode ser obtido com as versões pré-empacotadas / Homebrew do ffmpeg.

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

Copiando todos os streams

Caso seu arquivo de entrada tenha mais de um fluxo de vídeo, áudio e legenda, o ffmpeg por padrão não converte todos eles.

Use -map 0 para instruir o ffmpeg a pegar todos os streams do arquivo de entrada (veja o Wiki do FFmpeg para maiores informações ). Isso é útil para reter diferentes idiomas e legendas que possam estar no original.

ffmpeg -i input.mkv -c:v libx264 -c:a aac -map 0 out.mp4
    
por 02.10.2012 / 21:34
2

MKV é apenas um contêiner. Você pode ter um vídeo mpeg-4 dentro de um container .mkv.

Minha sugestão é esta:

envie o arquivo para um contêiner .mkv:

mkvmerge -o newfile.mkv inputfile.m4v

Obtenha o script disponível aqui: link

Execute isto: mkvdts2ac3.sh newfile.mkv

Feito! Minha TV suporta AC3, mas não DTS, então essa configuração faz maravilhas para mim.

Por favor note que mkvdts2ac3.sh tem alguns requisitos de dependência que são muito básicos. Você os verá quando executar o script.

    
por 02.10.2012 / 22:35
0

Como @UtahJarhead disse, MKV é o contêiner. Basicamente, o que você quer é converter áudio DTS em AC3 ou AAC.

A melhor maneira de fazer isso é usar FFmpeg para o áudio e MKVToolNix para mesclar áudio e vídeo.

Se você preferir uma GUI em vez de comandos, descrevi como fazer isso aqui: Converta áudio não suportado do vídeo .

    
por 16.03.2016 / 02:39
0

Você pode fazer isso:

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

Ou, se não houver alegria, tente corrigir o fluxo de bits interno

Conversão para estéreo e asc:

ffmpeg -i input.mkv -c:v copy -c:a libfaac    \
-bsf:a aac_adtstoasc -ac 2 -ar 48000 -ab 256k \
out.mkv

Se é 5.1, surround e as vozes são difíceis de ouvir, porque a caixa de diálogo está no canal central e você só está ouvindo o microfone fora do R & L canais, mas a música e efeitos sonoros estão crescendo.

Você pode compensar isso com o filtro dolby-II para cortar o canal surround e dividir o canal central em estéreo e combiná-los em canais estéreo direito e esquerdo.

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
    
por 08.08.2017 / 10:05