181 votes

Comment convertir un fichier .mkv en fichier .mp4 sans perte de qualité ?

Je dois convertir un fichier vidéo du conteneur Matroska en conteneur mp4. Le fichier Matroska contient une piste vidéo h.264 et une piste audio AC3. Il devrait être possible de le faire sans perte de qualité, mais comment le faire avec les outils natifs d'Ubuntu?

La transcodage n'est pas une option.

262voto

miguel Points 1537

Peut-être l'outil le plus simple pour cela est ffmpeg, ou avconv du paquet libav-tools. Libav est un fork de FFmpeg, vers lequel Ubuntu a basculé pendant quelques années jusqu'à Ubuntu 15.04. C'est l'un des backends de nombreux outils GUI mentionnés dans d'autres réponses.

Changer de conteneur sans réencoder le contenu ne pourrait pas être plus simple :

ffmpeg -i input.mkv -codec copy output.mp4
  • Il détecte automatiquement une conversion de conteneur Matroska en MP4 en fonction des noms de fichiers d'entrée/sortie.

  • -codec copy copie de flux, ou "remuxage", les flux de l'entrée vers la sortie sans réencoder. Pensez-y comme un copier-coller.

  • Le comportement par défaut de sélection de flux est de sélectionner un seul flux par type de flux. Par exemple, si votre entrée a deux flux vidéo et un flux audio, alors seul le flux vidéo avec la plus grande taille d'image sera sélectionné. Ajoutez -map 0 si vous voulez sélectionner tous les flux de l'entrée.

  • Certains conteneurs peuvent ne pas prendre en charge certains formats. Vérifiez donc si votre format de conteneur choisi, que ce soit mkv, mp4 ou même avi, prend en charge tout le contenu de vos fichiers (vidéo, audio, sous-titres, données, etc). Par exemple, le mp4 ne prend pas en charge les sous-titres SubRip (fichiers .srt).

30voto

Seppo Erviälä Points 5243

Obtenir le logiciel nécessaire

sudo apt-get install gpac mkvtoolnix

Extraire la vidéo et l'audio d'un fichier matroska

Tout d'abord, vous devez vérifier les pistes contenues dans le fichier matroska avec

mkvmerge --identify video.mkv

Fichier 'video.mkv' : conteneur : Matroska
Piste ID 1 : vidéo (V_MPEG4/ISO/AVC)
Piste ID 2 : audio (A_AC3)

Ensuite, extrayez la vidéo et l'audio en fonction de leurs pistes avec :

mkvextract tracks video.mkv 1:video.h264 2:audio.ac3

Extraction de la piste 1 avec le CodecID 'V_MPEG4/ISO/AVC' vers le fichier 'video.h264'. Format du conteneur : flux élémentaire AVC/h.264
Extraction de la piste 2 avec le CodecID 'A_AC3' vers le fichier 'audio.ac3'. Format du conteneur : Dolby Digital (AC3)
Progression : 100%

Multiplexer l'audio et la vidéo dans un conteneur mp4

MP4Box -fps 24 -add video.h264 -add audio.ac3 video.mp4

Importation AVC-H264 - taille de l'image 1280 x 720 à 24,000 FPS
Résultats de l'importation : 31671 échantillons - Tranches : 5672 I 125048 P 122648 B - 32288 SEI - 4936 IDR
Importation AC3 - taux d'échantillonnage 48000 - 6 canaux
Enregistrement dans video.mp4 : 0,500 secondes d'interpolation

J'ai dû ajouter l'option -fps 24 car MP4Box n'a pas détecté correctement le nombre d'images par seconde de la vidéo. Selon l'utilisation, la piste audio AC3 devrait être réencodée en un autre format avant le multiplexage.

Maintenant, vous avez réencodé les flux du conteneur matroska dans un conteneur mp4 sans perdre en qualité.

MODIFICATION : MP4 ne prend pas officiellement en charge l'audio AC3, donc la piste audio doit être convertie en un format pris en charge (par ex. AAC, MP3) si vous voulez que le fichier puisse être lu avec autre chose que VLC.

14voto

loksena Points 196

Vous pouvez utiliser Avidemux

Il possède une bonne interface GUI.

Lors de la conversion de mkv en mp4, il n'est pas réencodé.

La conversion est effectuée en moins d'une minute (pour une vidéo de 60 minutes).

  1. sudo apt-get install avidemux

  2. Ouvrez le fichier mkv dans avidemux.

  3. Sélectionnez le mode sans échec si demandé.

  4. Laissez la vidéo en copie.

  5. Choisissez Fichier-> Propriétés. Vérifiez si le codec audio est aac.

    1. Si le codec audio n'est PAS aac, sélectionnez aac(faac).
    2. Sinon, laissez-le en tant que copie. (Parfois, en utilisant cette option, le son peut être décalé ou déformé, dans ce cas, sélectionnez aac(faac) à la place.)
  6. Sélectionnez mp4 pour le format.

  7. Sélectionnez enregistrer, choisissez l'emplacement et saisissez un nom de fichier avec .mp4 comme extension.

Remarque: Parfois (~10% de chances) cela peut échouer. Ensuite, utilisez handbrake(re-encode).

Remarque 2: Il existe deux liens qui peuvent vous aider:

http://www.ubuntugeek.com/avidemux-free-video-editor-designed-for-simple-cutting-filtering-and-encoding-tasks.html

http://www.ubuntugeek.com/how-to-convert-mkv-file-into-mp4-file-using-avidemux.html

5voto

mdalacu Points 600

entrez une description de l'image ici

Vous pouvez utiliser mon application, dmMediaConverter. Il suffit de laisser "copy" pour les deux flux cochés (pas de transcodage) et d'ajouter .mp4 au nom du fichier de sortie. C'est tout. Très simple. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html

0voto

5hifaT Points 518

En utilisant ffmpeg, j'écris un script python qui convertira tous les fichiers mkv du répertoire actuel en fichiers mp4, car les convertir un par un est ennuyeux.

Vous pouvez l'utiliser si nécessaire.

Convertir MKV en MP4

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X