Comment convertir un fichier .mkv en fichier .mp4 sans perte?

106

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. Cela devrait être possible de le faire sans perte, mais comment le faire avec les outils natifs Ubuntu?

Le transcodage n’est pas une option.

    
posée Seppo Erviälä 25.06.2011 - 01:22
la source

6 réponses

139

L'outil le plus simple pour cela est ffmpeg , ou avconv du package libav-tools . Libav est un fork de FFmpeg, sur lequel Ubuntu est passé quelques années jusqu’à Ubuntu 15.04. C’est l’un des moteurs de la plupart des outils graphiques cités dans d’autres réponses.

Changer de conteneur sans renfermer de contenu ne pourrait être plus simple:

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

  • -codec copy copies de flux, ou "re-muxes", les flux de l'entrée à la sortie sans réencodage. Pensez-y comme à un copier-coller.

  • Le comportement de sélection de flux par défaut consiste à sélectionner un seul flux par type de flux. Par exemple, si votre entrée comporte deux flux vidéo et un flux audio, seul le flux vidéo présentant la plus grande taille d'image sera sélectionné. Ajoutez -map 0 si vous souhaitez sélectionner tous les flux de l’entrée.

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

réponse donnée MestreLion 02.10.2012 - 01:59
la source
24

Obtenir le logiciel requis

sudo apt-get install gpac mkvtoolnix

Extraire la vidéo et l'audio du fichier matroska

Vous devez d’abord vérifier quelles pistes le fichier matroska contient avec

mkvmerge --identify video.mkv

File 'video.mkv': container: Matroska
Track ID 1: video (V_MPEG4/ISO/AVC)
Track ID 2: audio (A_AC3)

Extrayez ensuite la vidéo et l'audio en fonction de leurs pistes avec:

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

Extracting track 1 with the CodecID 'V_MPEG4/ISO/AVC' to the file 'video.h264'. Container format: AVC/h.264 elementary stream
Extracting track 2 with the CodecID 'A_AC3' to the file 'audio.ac3'. Container format: Dolby Digital (AC3)
Progress: 100%

Audio et vidéo multiplex dans le conteneur mp4

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

AVC-H264 import - frame size 1280 x 720 at 24.000 FPS
Import results: 31671 samples - Slices: 5672 I 125048 P 122648 B - 32288 SEI - 4936 IDR
AC3 import - sample rate 48000 - 6 channels
Saving to video.mp4: 0.500 secs Interleaving

J'ai dû ajouter l'option -fps 24 car MP4Box n'a pas détecté les images par seconde correctement. En fonction de l'utilisation, la piste audio AC3 doit être ré-encodée avant de procéder au multiplexage.

Vous avez maintenant remodelé les flux d'un conteneur matroska vers un conteneur mp4 sans perdre la qualité.

EDIT: MP4 ne prenant pas officiellement en charge l’audio AC3, la piste audio doit donc être convertie dans un format compatible (p. Ex. AAC, MP3) si vous voulez que le fichier puisse être lu avec autre chose que VLC.

    
réponse donnée Seppo Erviälä 25.06.2011 - 13:03
la source
12

Vous pouvez utiliser Avidemux

Il a une bonne interface graphique.

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

La conversion est effectuée dans la 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 vous y êtes invité.

  4. Conservez 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 comme copy . (Parfois, en utilisant cette option, l'audio peut désynchronisé 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 tapez un nom de fichier avec .mp4 comme extension.

Remarque: Parfois (environ 10% de chance), il peut échouer. Ensuite, utilisez handbrake(re-encode) .

Note2: , deux liens vous aident:

lien

lien

    
réponse donnée loksena 03.08.2012 - 18:43
la source
2

Vouspouvezutilisermonapplication, dmMediaConverter . Laissez simplement " copier " pour les deux flux cochés (sans transcodage) et insérez .mp4 dans le nom du fichier de sortie. C'est tout. Très simple. lien

    
réponse donnée mdalacu 21.06.2017 - 08:17
la source
-2

Etant donné que MPEG Part 14 prend en charge les formats h.264 et AC3 de manière native sans transcodage, vous pouvez simplement renommer le fichier afin qu’il ait une extension .mp4 au lieu d’une extension .mkv .

    
réponse donnée Richard 26.12.2013 - 16:21
la source
-2

Vous pouvez essayer HANDBRAKE en ajoutant son PPA en tapant ce code dans le terminal:

sudo add-apt-repository ppa:stebbins/handbrake-releases
    
réponse donnée 13east 25.06.2011 - 05:13
la source

Lire d'autres questions sur les étiquettes