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

13

Eu tenho um filme de 720p de 4,3 GB e quero converter esse MKV com som DTS em vídeo MP4 com áudio AAC ou AC3.

Às vezes eu recebo:

ffmpeg: unrecognized option '-c:v'

…e:

aac unrecognized

E outras coisas semelhantes.

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

dale
fonte
Você pode nos ajudar por favor e nos fornecer o comando exato que está usando e a saída completa e sem cortes que o FFmpeg produz? Em qual sistema operacional você está? E por último: você precisa usar o FFmpeg? Por favor edite sua pergunta.
Slhck

Respostas:

19

Certifique-se de executar a versão mais recente do FFmpeg . Para Windows e Linux, compilações estáticas estão disponíveis na página inicial. Para o 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

Definindo a qualidade do vídeo

Para controlar a qualidade do vídeo, defina o crfparâmetro , cujo padrão é 23. Menor 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 certa taxa de bits, dependendo do tamanho do arquivo que deseja. 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 múltiplos canais

Se o seu fluxo de áudio estiver usando vários canais (por exemplo, som 5.1), você precisará usar outro codificador AAC ( libfdk_aac). Esse 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 fluxos

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 0para instruir o ffmpeg a obter todos os fluxos do arquivo de entrada (consulte o FFmpeg Wiki para obter mais informações). Isso é útil para manter diferentes idiomas e legendas que possam estar no original.

ffmpeg -i input.mkv -c:v libx264 -c:a aac -map 0 out.mp4
slhck
fonte
2

MKV é apenas um contêiner. Você pode ter um vídeo MPEG-4 dentro de um .mkvcontêiner.

Minha sugestão é esta:

Envie o arquivo para um .mkvcontêiner:

mkvmerge -o newfile.mkv inputfile.m4v

Obtenha o mkvdts2ac3.shscript disponível aqui e execute este comando:

mkvdts2ac3.sh newfile.mkv

Feito!

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

Observe que mkvdts2ac3.shhá alguns requisitos de dependência muito básicos. Você os verá quando executar o script.

UtahJarhead
fonte
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 (' Desligue seus Hang-Ups '), construído em 29 de dezembro de 2009 00:24:14 Erro: O arquivo de origem' inputfile.m4v 'não pôde ser aberto com êxito ou a recuperação do tamanho buscando o final não funcionou. root @ Frenzen: ~ / downloads / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS #
dale
Parece um arquivo de entrada corrompido.
UtahJarhead
@dale Você poderia incluir a saída que pedi no comentário sobre sua pergunta original? Isso nos ajudaria a solucionar seu problema.
Slhck
Além disso, UtahJarhead, o OP parece querer um arquivo de resultado MP4 a partir de um arquivo de entrada MKV. Ele não possui um m4varquivo e é por isso que seu comando não funciona. Além disso, dale usou a sintaxe errada, especificando seu arquivo existente como saída e fornecendo inputfile.m4vcomo entrada, o que obviamente não existe.
slhck
mp4 é um codec, não um contêiner. MKV é um contêiner, não um codec. É como dizer que eles querem fazer uma garagem com um Cadillac. Qual codec é o arquivo .mkv de entrada, porque isso pode fazer a diferença.
amigos estão dizendo sobre uberlândia
1

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 for 5.1, surround e as vozes são difíceis de ouvir, é porque a caixa de diálogo está no canal central e você está ouvindo apenas o microfone dos canais de R & L, mas a música e os efeitos sonoros estão crescendo.

Você pode compensar isso com o filtro dolby-II para reduzir o canal surround e o canal central se dividir em estéreo e combiná-los nos 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
Chris Reid
fonte
0

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

A melhor maneira de fazer isso é usar o FFmpeg para o áudio e o 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 de vídeo .

IvanRF
fonte
1
Você deve descrever o processo aqui e, somente então, forneça o link de download. Para o aplicativo.
Ramhound 16/03/19
@Ramhound I acabou de editar a resposta
IvanRF