Convertir un DVD en mkv
- Tout d'abord il s'assurer de n'avoir qu'un seul vob :
$ cat *.VOB > input.vob
- Ensuite on regarde les flux disponibles, pour cela les options “-analyzeduration 100M -probesize 100M” sont nécessaires pour que ffmpeg aperçoivent tous les flux, sous-titres compris :
$ ffmpeg -analyzeduration 100M -probesize 100M -i input.vob Input #0, mpeg, from 'output.vob': Duration: 01:50:40.99, start: 0.287267, bitrate: 7581 kb/s Stream #0:0[0x1bf]: Data: dvd_nav_packet Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s Stream #0:3[0x89]: Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 768 kb/s Stream #0:4[0x82]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s Stream #0:5[0x21]: Subtitle: dvd_subtitle Stream #0:6[0x20]: Subtitle: dvd_subtitle
- On peut maintenant lancer la conversion :
$ ffmpeg \ -analyzeduration 100M -probesize 100M \ -i input.vob \ -map 0:1 -map 0:3 -map 0:4 -map 0:5 -map 0:6 \ -metadata:s:a:0 language=ita -metadata:s:a:0 title="Italian stereo" \ -metadata:s:a:1 language=eng -metadata:s:a:1 title="English stereo" \ -metadata:s:s:0 language=ita -metadata:s:s:0 title="Italian" \ -metadata:s:s:1 language=eng -metadata:s:s:1 title="English" \ -codec:v libx264 -crf 21 \ -codec:a libmp3lame -qscale:a 2 \ -codec:s copy \ output.mkv
Explication :
-map 0:1 -map 0:3 -map 0:4 -map 0:5 -map 0:6
signifie qu'on conserve ces flux.
-metadata
permet d'ajouter des indications sur les flux en question. “s:a:0” est le 1er flux audio, “s:s:0” est le 1er flux de sous-titres.
-codec:v libx264 -crf 21
concerne la conversion du flux vidéo.
-codec:a libmp3lame -qscale:a 2
concerne la conversion du flux audio.
-codec:s copy
permet de copier sans conversion les flux des sous-titres.
J'ai rédigé cette page en m'appuyant presque intégralement sur celle de **internal / pointers