Lorsque j'essaie de convertir mkv en mp4 à l'aide de ffmpeg, l'erreur suivante se produit:
version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Jun 12 2012 16:52:09 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use
avconv instead. [matroska,webm @ 0x1e939c0] max_analyze_duration
reached [matroska,webm @ 0x1e939c0] Estimating duration from
bitrate, this may be inaccurate Input #0, matroska,webm, from
'input.mkv': Duration: 00:01:00.76, start: 0.000000, bitrate: 384
kb/s
Stream #0.0(eng): Video: h264 (High), yuv420p, 1280x544, PAR 1:1 DAR 40:17, 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s (default)
Stream #0.2(eng): Subtitle: [0][0][0][0] / 0x0000 Output #0, iPod, to 'output.m4v': Metadata:
encoder : Lavf53.21.0
Stream #0.0(eng): Video: libx264, yuv420p, 1280x544 [PAR 1:1 DAR 40:17], q=2-31, 25 tbn, 25 tbc (default)
Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, 384 kb/s (default) Stream mapping: Stream #0.0 -> #0.0 Stream #0.1 -> #0.1
Press ctrl-c to stop encoding [iPod @ 0x1e9b740] Application
provided invalid, non monotonically increasing dts to muxer in stream
0: -2 >= -2 av_interleaved_write_frame(): Invalid argument
J'ai utilisé cette commande pour convertir le fichier:
ffmpeg -i input.mkv -vcodec copy -acodec copy -absf aac_adtstoasc output.m4v
Le fichier d'entrée présente les caractéristiques suivantes:
mediainfo input.mkv
>General
>
>Unique ID : 200459305952356554213392832683163418790 (0x96CF0ED8DB5914CBB9E18163689280A6)
>Complete name : input.mkv
>Format : Matroska
>Format version : Version 2
>File size : 1.46 GiB
>Duration : 1h 5mn
>Overall bit rate : 3 168 Kbps
>Encoded date : UTC 2010-09-26 21:44:02
>Writing application : mkvmerge v2.9.5 ('Tu es le seul') built on >Jun 17 2009 16:28:30
>Writing library : libebml v0.7.8 + libmatroska v0.8.1
>
>Video
>ID : 1
>Format : AVC
>Format/Info : Advanced Video Codec
>Format profile : [email protected]
>Format settings, CABAC : Yes
>Format settings, ReFrames : 4 frames
>Codec ID : V_MPEG4/ISO/AVC
>Duration : 1h 5mn
>Bit rate : 2 910 Kbps
>Width : 1 280 pixels
>Height : 720 pixels
>Display aspect ratio : 16:9
>Frame rate : 25.000 fps
>Color space : YUV
>Chroma subsampling : 4:2:0
>Bit depth : 8 bits
>Scan type : Progressive
>Bits/(Pixel*Frame) : 0.126
>Stream size : 1.31 GiB (90%)
>Writing library : x264 core 105 r1724 b02df7b
>Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=6 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=18 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=0 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc=2pass / mbtree=0 / bitrate=2910 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00
>
>Default : Yes
>Forced : No
>
>Audio
>ID : 2
>Format : AC-3
>Format/Info : Audio Coding 3
>Mode extension : CM (complete main)
>Codec ID : A_AC3
>Duration : 1h 5mn
>Bit rate mode : Constant
>Bit rate : 256 Kbps
>Channel(s) : 2 channels
>Channel positions : Front: L R
>Sampling rate : 48.0 KHz
>Bit depth : 16 bits
>Compression mode : Lossy
Stream size : 121 MiB (8%)
Language : English
Default : Yes
Forced : No
Étant nouveau pour ffmpeg, je ne suis pas sûr de la signification de l'erreur ni de la façon de la corriger.
Merci!
Comme j'ai déjà écrit ici , je vous suggère de modifier quelques détails dans votre ligne de commande:
ffmpeg
par avconv
, car il s'agissait de la fourche utilisée par Ubuntu pendant quelques années (voir les commentaires).-absf aac_adtstoasc
? Il avait quelques problèmes qui n'ont peut-être pas été corrigés dans le ffmpeg actuel d'Ubuntu. Je vous suggère d'essayer sans elle en premier.-vcodec copy -acodec copy
peut être simplifié en -codec copy
ou -c copy
. Cela éviterait également d'altérer d'autres flux que la vidéo et l'audio, comme les sous-titres.Donc le gagnant est ...
ffmpeg -i input.mkv -c copy output.m4v
Si cela ne fonctionne pas, veuillez poster toutes les sorties du terminal.
Je sais que c'est un très vieux sujet, mais j'ai trouvé une solution pour exécuter avec succès ffmpeg. N'utilisez pas -vcodec copy -acodec copy
, utilisez simplement ffmpeg -i input.mkv output.m4v
à la place. Il va commencer à courir.
Mais dans mon cas, je convertis un .mkv en .mp4, le résultat obtenu n’est que de la corbeille. Il perd la précision des images.
Pour convertir automatiquement tous les fichiers d'un dossier de MKV en MP4, vous pouvez créer un alias:
alias mkv2mp4="for f in ./**/*.mkv; do ffmpeg -n -i \"\$f\" -c copy \"\${f%.mkv}.mp4\" && rm \"\$f\"; done"
Cette commande effectue les étapes suivantes:
Ceci a été obtenu avec Xubuntu 14.04 lorsque vous essayez de graver un DVD de MP4 avec DVDStyler; Bombono produit la même erreur. ffmpeg # 1154 suggère que cela aurait pu être corrigé dans ffmpeg
, mais peut-être pas dans avconv
? libav # 478 est toujours marqué ouvert.
Voir aussi: https://unix.stackexchange.com/questions/127522/avconv-error-av-interleaved-write-frame
J'ai déposé Launchpad # 133998 ; En résumé, utilisez une version actuelle de ffmpeg
et non pas avconv
.
Essayez celui-ci :: Libav sous Linux
Installation: commande d'exécution
Sudo apt-get install libav-tools
Commande de conversion vidéo :: Aller au dossier contient la vidéo et exécuté dans le terminal
avconv -i oldvideo.mkv -ar 22050 convertedvideo.mp4
il y a déjà une réponse à ce sujet Comment convertir un fichier .mkv en fichier .mp4 sans perte?
le concept de base est que MKV et MP4 sont des conteneurs, ils ne sont que des conteneurs. Vous devez en principe décompresser et reconditionner les pistes audio et vidéo si vous souhaitez basculer entre les deux.