Convertir MKV avec son DTS en vidéo MP4 avec audio AAC ou AC3

13

J'ai un film de 4,3 Go 720p et je veux convertir ce MKV avec son DTS en vidéo MP4 avec audio AAC ou AC3.

Je reçois parfois:

ffmpeg: unrecognized option '-c:v'

…et:

aac unrecognized

¬et autres trucs similaires.

Je veux que ce film soit de petite taille comme ceux que l'on trouve sur les sites torrent.

vallée
la source
Pouvez-vous nous aider s'il vous plaît et nous donner la commande exacte que vous utilisez et la sortie complète et non coupée que FFmpeg produit? Sur quel système d'exploitation êtes-vous? Et enfin: Est - ce que vous avez à utiliser FFmpeg? Veuillez modifier votre question.
slhck

Réponses:

19

Assurez-vous que vous exécutez la dernière version de FFmpeg . Pour Windows et Linux, les versions statiques sont disponibles à partir de la page d'accueil. Pour macOS, vous pouvez installer FFmpeg via Homebrew .

Ensuite, dans le cas le plus simple, exécutez:

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

Définition de la qualité vidéo

Pour contrôler la qualité vidéo, définissez le crfparamètre , qui est réglé par défaut sur 23. Plus faible signifie une meilleure qualité, mais une taille de fichier plus élevée. Essayez des valeurs comprises entre 19 et 26 pour voir ce qui convient le mieux. Vous pouvez également définir un certain débit binaire, selon la taille de fichier que vous souhaitez. Ici, par exemple, 500 kBit / s:

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

Pour l'audio, vous pouvez également régler le débit binaire avec -b:a.

Audio multicanaux

Si votre flux audio utilise plusieurs canaux (par exemple, le son 5.1), vous devez utiliser un autre encodeur AAC ( libfdk_aac). Cet encodeur n'est pas disponible dans les versions statiques, mais peut être obtenu avec les versions pré-packagées / Homebrew de ffmpeg.

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

Copie de tous les flux

Si votre fichier d'entrée contient plusieurs flux vidéo, audio et de sous-titres, ffmpeg par défaut ne les convertit pas tous.

Utilisez -map 0pour demander à ffmpeg de prendre tous les flux du fichier d'entrée (voir le Wiki FFmpeg pour plus d'informations). Ceci est utile pour conserver différentes langues et sous-titres qui pourraient être dans l'original.

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

MKV n'est qu'un conteneur. Vous pouvez avoir une vidéo MPEG-4 à l'intérieur d'un .mkvconteneur.

Ma suggestion est la suivante:

Poussez le fichier dans un .mkvconteneur:

mkvmerge -o newfile.mkv inputfile.m4v

Obtenez le mkvdts2ac3.shscript disponible ici et exécutez cette commande:

mkvdts2ac3.sh newfile.mkv

Terminé!

Mon téléviseur prend en charge AC3, mais pas DTS, donc cette configuration fait des merveilles pour moi.

Veuillez noter que mkvdts2ac3.shcertaines exigences de dépendance sont très basiques. Vous les verrez lorsque vous exécuterez le script.

UtahJarhead
la source
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 (' Raccrochez vos raccords ') construit le 29 décembre 2009 00:24:14 Erreur: le fichier source' inputfile.m4v 'n'a pas pu être ouvert avec succès, ou la récupération de sa taille en cherchant à la fin n'a pas fonctionné. root @ Frenzen: ~ / Téléchargements / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS #
dale
Cela ressemble à un fichier d'entrée corrompu.
UtahJarhead
@dale Pourriez-vous s'il vous plaît inclure la sortie que je vous ai demandée dans le commentaire de votre question d'origine? Cela nous aiderait à résoudre votre problème.
slhck
En outre, UtahJarhead, l'OP semble vouloir un fichier de résultats MP4 à partir d'un fichier d'entrée MKV. Il n'a pas de m4vfichier, c'est pourquoi votre commande ne fonctionne pas. De plus, dale a utilisé la mauvaise syntaxe, spécifiant son fichier existant comme sortie et donnant inputfile.m4vcomme entrée, qui n'existe évidemment pas.
slhck
mp4 est un codec, pas un conteneur. mkv est un conteneur, pas un codec. C'est comme dire qu'ils veulent faire un garage avec une Cadillac. Quel codec est le fichier .mkv d'entrée car cela peut faire une différence.
UtahJarhead
1

Vous pouvez faire ceci:

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

Ou s'il n'y a pas de joie, essayez de réparer le train de bits interne

Conversion en stéréo et asc:

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

Si c'est 5.1, le surround et les voix sont difficiles à entendre, c'est parce que la boîte de dialogue est sur le canal central et que vous n'entendez que le micro des canaux R & L mais la musique et les effets sonores sont en plein essor.

Vous pouvez compenser cela avec le filtre Dolby-II pour réduire le canal surround et diviser le canal central en stéréo, et les combiner tous en canaux stéréo droit et gauche.

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
la source
0

Comme l'a dit @UtahJarhead , MKV est le conteneur. Fondamentalement, ce que vous voulez, c'est convertir l'audio DTS en AC3 ou AAC.

La meilleure façon de le faire est d'utiliser FFmpeg pour l'audio et MKVToolNix pour fusionner l'audio et la vidéo.

Si vous préférez une interface graphique au lieu de commandes, j'ai décrit comment procéder ici: Convertir l'audio non pris en charge à partir de la vidéo .

IvanRF
la source
1
Vous devez décrire le processus ici, puis et seulement ensuite, fournir le lien de téléchargement à l'application.
Ramhound
@Ramhound Je viens de modifier la réponse
IvanRF