====== 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 [[https://wiki.debian.org/fr/ffmpeg|doc]] sur ffmpeg. ===== Création depuis un dvd ===== [[http://doc.ubuntu-fr.org/encodage_dvd_mkv|Source ubuntu]] [[https://trac.ffmpeg.org/wiki/Encode/MPEG-4/|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 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 Modification des information : Changement du titre mkvpropedit -s title="Nouveau titre" Fichier.mkv ===== Edition de sous-titre ===== Logiciel [[http://home.gna.org/gaupol/|Gaupol]] Récuperation simple des informations sur les pistes mkvmerge -i nom_du_fichier.mkv File 'nom_du_fichier.mkv': container: Matroska Track ID 1: video (V_MS/VFW/FOURCC, DIV3) Track ID 2: audio (A_MPEG/L3) Track ID 3: audio (A_VORBIS) Track ID 4: subtitles (S_TEXT/UTF8) Extraire les pistes d'un mkv mkvextract tracks nom_du_fichier.mkv 4:soustitres.srt mkvextract tracks nom_du_fichier.mkv 3:audio.ogg