web-dev-qa-db-fra.com

Essayer de convertir MKV en MP4 avec avconv, en échouant

J'essaie de convertir un fichier MKV en MP4 pour qu'il soit compatible avec ma PS3. J'utilise: avconv -i file.mkv -c copy file.mp4

Cela échoue et j'obtiens l'erreur suivante:

[mp4 @ 0x8a17c00] pts < dts in stream 0 av_interleaved_write_frame(): Invalid argument

Le fichier est vidéo h264 et audio ac3.

6

Je crois que

avconv -i file.mkv -c:v copy -c:a copy file.mp4

est la commande correcte. Vous devez spécifier la propriété de copie de codec pour les flux que vous souhaitez copier séparément.

2
ixtmixilix

Obtenir le logiciel nécessaire

Sudo apt-get install gpac mkvtoolnix

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

Vous devez d’abord vérifier les pistes que contient le fichier matroska 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 Mux 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 parce que MP4Box n'a pas détecté correctement les images par seconde. En fonction de l'utilisation, AC3 la piste audio doit être ré-encodée dans un autre fichier avant de multiplexer.

Maintenant, vous avez remodelé les flux du conteneur matroska dans le conteneur mp4 sans perte de qualité.

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

4
stampede

Je cherchais muxing mp4 avec m4a. L'habituel ffmpeg commandes pour l'encodage n'a pas fonctionné. J'ai essayé MP4Box & cela a fonctionné comme un charme. :-)

0
kkdeep