Fichiers MKV

Création

Copie integrale

ffmpeg -i Upside_Down.mp4 -vcodec copy -acodec copy -f matroska Upside_Down.mkv

On copie la video et on transcode le son

ffmpeg -i S1-02\ Les\ Dalton\ twistés.mkv -vcodec copy -acodec mp3 S1-02\ Les\ Dalton\ twistés\ -\ 2.mkv
for i in *.mkv; do ffmpeg -i "$i" -vcodec copy -acodec mp3 "transcode/$i"; done
ffmpeg -i Upside_Down.mp4 -vcodec copy -acodec mp3 -f matroska Upside_Down.mkv

Ajout de sous-titre

mkvmerge -o 7x23-24\ -\ The\ Magician\ s\ Code.final.mkv 7x23-24\ -\ The\ Magician\ s\ Code.mkv 7x23-24\ -\ The\ Magician\ s\ Code.srt
mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut --default-track 3 without-lang-codes.mkv --language 0:eng english.srt --default-track 0 --language 0:fre --sub-charset 0:ISO-8859-15 french.srt

On met la deuxieme piste audio d'un fichier en premier et par defat + ajout de sous-titres

mkvmerge -o refait/01-video.mkv -a 2 -S --default-track 2 01 - embouteillage.mkv -a 1 -D -S 01 - embouteillage.mkv --language 0:fre fre-srt/01 - Traffic Jam (2).PDTV.fr.srt --language 0:eng eng-srt/01 - Traffic Jam (2).en.srt

Decoupage de fichier

mkvextract tracks 01* 0:extr/01-video.avi 1:extr/01-fre.rm 2:extr/01-end.rm

Transformation d'un fichier avi en anglais vers un mkv avec ajout de sous-titre

mkvmerge -o "newFile.mkv" --title "${name}" --track-name 1:"Anglais" --language 1:eng "File.avi" --language 0:fre --sub-charset 0:ISO-8859-15 --track-name 0:"Francais" --default-track 0 "fre.srt" --language 0:eng --sub-charset 0:ISO-8859-15 --track-name 0:"Anglais" "eng.srt"

Modification des propriétés du fichier (titre, nom langues, ...)

le programme mkvpropedit permet de modifier à la volée les propriétés d'un fichier mkv. Voici un exemple où je ne modifie que le titre du film

mkvpropedit --edit info film.mkv -s title="Titre du film"

On modifie les nom des pistes audio/sous-titre : les pistes 2 et 3 (cf mkvinfo) en francais, les pistes 3 et 4 en anglais :

mkvpropedit film.mkv --edit track:3 --set name=Anglais --set language=eng -e track:2 -s name=Francais -s language=fre -e track:4 -s name=Anglais -s language=eng -e track:5 -s name=Francais -s language=fre

Enlever les chapitres, enlever le language d'un track, son nom

mkvpropedit film.mkv --chapters ''
mkvpropedit film.mkv -e track:1 -d name -d language

Mettre le language par defaut sur le track 2 et pas le 3

mkvpropedit film.mkv -e track:2 -s flag-default=1 --e track:3 -s flag-default=0

Réencodage

Avant de réencoder un fichier, il faut connaitre les flux disponibles :

avprobe fichier.mkv

Voici un exemple pour réencoder en h264 la video sans modifier les autres éléments (audio, sous-titre) ni changer l'ordre des flux (options map)

ffmpeg -i fichier.mkv -c:v libx264 -c:a copy -c:s copy -map 0:0 -map 0:1 -map 0:2 -map 0:3 -f matroska out.mkv

Voici une bonne doc sur ffmpeg.

Création depuis un dvd

Source ubuntu source ffmpeg.org

pkg debian :

transcode dvdrip

i variable de titre de dvd

Extraction vob

mplayer -dvd-device MALCOLM_S3D1_Full_up.MetatroN.iso -dumpstream dvd://${i} -dumpfile Malcolm_S3D1/Video_${i}.vob
mplayer -dvd-device MALCOLM_S3D1_Full_up.MetatroN.iso -nocache -dumpstream dvdnav://${i} -dumpfile Malcolm_S3D1/Video_${i}-2.vob

A partir de la on est dans le repertoire Malcolm_S3D1

Encodage de l'audio en AAC MP3 et AC3(Recommandée)

ffmpeg -i Extr_${i}.vob -map 0:2 -vn -sn -acodec libfaac Audio_en_${i}.aac
ffmpeg -i Extr_${i}.vob -map 0:1 -vn -sn -acodec libfaac Audio_fr_${i}.aac
ffmpeg -i Extr_${i}.vob -map 0:2 -vn -sn -acodec libmp3lame Audio_fr_${i}.mp3
ffmpeg -i Extr_${i}.vob -map 0:3 -vn -sn -acodec libmp3lame Audio_en_${i}.mp3
ffmpeg -i Extr_${i}.vob -map 0:2 -vn -sn -acodec copy Audio_fr_${i}.ac3
ffmpeg -i Extr_${i}.vob -map 0:3 -vn -sn -acodec copy Audio_en_${i}.ac3

Compression video 2 passes

ffmpeg -i Video_${i}.vob -an -sn -pass 1 -vcodec libx264 -b 800k -threads 0 Video_${i}.pass1.avi
ffmpeg -i Video_${i}.vob -an -sn -pass 2 -vcodec libx264 -b 800k -threads 0 Video_${i}.avi

Extraction des sous-titres

2 etapes :

.vob + .ifo (à copier depuis le dvd monté) → .sub : utilisation de dvdrip

.sub + .idx → .srt : vobsub2srt soustitres (dans le répertoire contenant soustitres.sub et soustitres.idx)

Mise en forme MKV

mkvmerge -o Video_${i}.mkv --title "${name}" Video_${i}.avi --language 0:eng Audio_en_${i}.aac --language 0:fre Audio_fr_${i}.aac

<note> L'extraction des sous-titres et des vob peut se faire avec dvdrip. Il faut également copier les fichier IFO (après montage du DVD) dans le répertoire tmp/ifo/ pour l'extraction des sous-titres.

C'est plus simple </note>

Modification des information : Changement du titre

mkvpropedit -s title="Nouveau titre" Fichier.mkv

Edition de sous-titre

Logiciel Gaupol