Conversion mkv -> mp4

Les fichiers mkv contiennent beaucoup de flux differents vidéo, audio et sous-titres mais ils sont volumineux.

Avec ffmpeg on peut convertir en fichier mp4 contenant uniquement les flux qui nous intéressent.

Lecture des caractéristiques du fichier mkv

ffprobe La.Casa.De.Papel.S01E01.mkv

Les infos utiles

Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Stream #0:1(fre): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default)
Stream #0:2(spa): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Stream #0:3(fre): Subtitle: subrip (default)
Stream #0:4(fre): Subtitle: subrip
Stream #0:5(spa): Subtitle: subrip

Répartition des pistes.

la première piste c’est la vidéo.

la première piste audio est en français.

la deuxième piste audio est en espagnol.

la première piste de sous-titres par défaut forcée est en français mais ce ne sont que les traductions des textes affichés à l’image pas les dialogues.

la deuxième piste de sous-titres est en français, ce sont les dialogues.

la troisième piste de sous-titres est en espagnol, ce sont les dialogues.

Conversion en mp4.

Avec choix de la première piste ( index 0) pour la vidéo, l’audio et les sous-titres, avec réduction de taille.

Pour éviter l’erreur « moov atom not found » : option -movflags +faststart

ffmpeg -i La.Casa.De.Papel.S01E01.mkv -map 0:v:0 -map 0:a:0 -map 0:s:0 -c:v libx264 -filter:v scale=w=720:h=468 -profile:v baseline -pix_fmt yuv420p   -c:a aac -ar 44100 -c:s mov_text -movflags +faststart -map_metadata -1  La.Casa.De.Papel.S01E01.mp4
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (ac3 (native) -> aac (native))
  Stream #0:3 -> #0:2 (subrip (srt) -> mov_text (native))
Output #0, mp4, to 'La.Casa.De.Papel.S01E01.mp4':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(tv, progressive), 720x468 [SAR 52:45 DAR 16:9], q=2-31, 25 fps, 12800 tbn (default)
    Metadata:
      encoder         : Lavc58.134.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc58.134.100 aac
  Stream #0:2: Subtitle: mov_text (tx3g / 0x67337874) (default)
    Metadata:
      encoder         : Lavc58.134.100 mov_text

Exemple d’une fin de traitement.

[mp4 @ 0x5615a0d4fd80] pts has no value
[mp4 @ 0x5615a0d4fd80] Starting second pass: moving the moov atom to the beginning of the file   
frame=61805 fps= 29 q=-1.0 Lsize=  227137kB time=00:41:12.36 bitrate= 752.6kbits/s speed=1.15x    
video:186933kB audio:38657kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.685704%
[libx264 @ 0x5615a0d52680] frame I:899   Avg QP:19.66  size: 16439
[libx264 @ 0x5615a0d52680] frame P:60906 Avg QP:23.12  size:  2900
[libx264 @ 0x5615a0d52680] mb I  I16..4: 44.4%  0.0% 55.6%
[libx264 @ 0x5615a0d52680] mb P  I16..4:  2.3%  0.0%  1.3%  P16..4: 37.1%  8.1%  2.5%  0.0%  0.0%    skip:48.6%
[libx264 @ 0x5615a0d52680] coded y,uvDC,uvAC intra: 33.6% 51.9% 13.1% inter: 7.3% 12.4% 0.3%
[libx264 @ 0x5615a0d52680] i16 v,h,dc,p: 47% 18% 11% 25%
[libx264 @ 0x5615a0d52680] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 15% 19%  5%  7%  8%  5%  6%  3%
[libx264 @ 0x5615a0d52680] i8c dc,h,v,p: 58% 14% 23%  4%
[libx264 @ 0x5615a0d52680] ref P L0: 77.3% 13.7%  9.1%
[libx264 @ 0x5615a0d52680] kb/s:619.43
[aac @ 0x5615a0d59c80] Qavg: 601.578

Vérification.

ffprobe La.Casa.De.Papel.S01E01.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'La.Casa.De.Papel.S01E01.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.76.100
  Duration: 00:47:28.32, start: 0.000000, bitrate: 779 kb/s
  Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 720x468 [SAR 52:45 DAR 16:9], 646 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
  Stream #0:2(und): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s (default)
    Metadata:
      handler_name    : SubtitleHandler

Taille des fichiers.

-rw-r--r--  862645311 20 oct.  09:03 La.Casa.De.Papel.S01E01.mkv

-rw-r--r-- 277552747 20 oct.  15:06 La.Casa.De.Papel.S01E01.mp4

277552747÷862645311=0,32 le fichier vidéo à eté réduit de 2/3.

Par Bidouille De Bian

Bidouilleur sur Linux Debian 10 (Buster). Débutant dans le blog sur Wordpress.