Outils pour utilisateurs

Outils du site


mencoder

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
mencoder [2012/11/20 09:32]
mart [Rotation]
mencoder [2019/04/02 11:14] (Version actuelle)
Ligne 16: Ligne 16:
 2    Rotate by 90 degrees counterclockwise. 2    Rotate by 90 degrees counterclockwise.
 3    Rotate by 90 degrees counterclockwise and flip</​code>​ 3    Rotate by 90 degrees counterclockwise and flip</​code>​
 +
 +Le problème est que l'on obtient des pertes de qualité sur le fichier non négligeable. L'​option ''​-ovc copy''​ (copie du flux vidéo sans décompresser) ne fonctionne pas avec des filtres.
 +
 +
 +===== Ripp DVD =====
 +
 +Un vieux script utilisé pour récupérer toutes les épisodes d'un DVD d'une série, les récupérer en .vob (sans perte) et puis les convertir en .mkv avec les pistes de sous-titre. Une petite copie privée en soit.
 +
 +==== Récupérer les pistes ====
 +
 +On détecte toutes les pistes présentes sur le DVD. On peut les jouer pour être sûr de récupérer la bonne.
 +
 +<​code>​dvdxchap -t 4 /dev/hda > chapters.txt
 +mplayer -dvd-device /dev/hda dvd://1
 +mplayer -dvd-device /dev/hda dvd://2
 +...</​code>​
 +
 +==== Récupérer le .vob ====
 +
 +Pour récupérer la première piste dans un fichier (attention assez volumineux).
 +
 +<​code>​mplayer -dvd-device /dev/hda -dumpstream dvd://1 -dumpfile myfile1.vob</​code>​
 +
 +A répéter pour chaque piste voulue (sans doute moyen d'​automatiser ça).
 +
 +==== Conversion ====
 +
 +Le script ci dessous est à lancer dans le dossier contenant tous les fichiers .vob.
 +
 +Pour chaque fichier, on récupère la piste audio fr et en qui sera encodée en vorbis, les sous-titres,​ la piste vidéo qui sera encodée en deux passes en x264 (je sais, j'​aurais du utiliser Theora ou VP8). Le tout est ensuite mit dans un fichier .mkv.
 +
 +<​code>#​!/​bin/​bash
 +#script pour convertir tout les fichiers vob en mkv
 +#apres avoir extrait les 2 bandes son et sous-titre
 +
 +for NAME in *.vob;
 +do
 +    # vob -> en.wav -> en.ogg
 +    if [ -e ${NAME%.vob}en.wav ]
 +    then
 + if [ -e ${NAME%.vob}en.ogg ]
 + then
 +     echo "​----${NAME%.vob}en wav and ogg already present"​
 + else
 +     echo "​----${NAME%.vob}en wav only already present"​
 +     oggenc -q 8 ${NAME%.vob}en.wav
 +     echo "​-----file ${NAME%.vob}en.ogg created"​
 +     notify-send "file ${NAME%.vob}en.ogg created"​
 + fi
 +    else 
 + mplayer $NAME -aid 129 -ao pcm:​file=${NAME%.vob}en.wav -vc null -vo null
 + echo "​-----fichier ${NAME%.vob}en.wav créé"​
 + oggenc -q 8 ${NAME%.vob}en.wav
 + echo "​-----fichier ${NAME%.vob}en.ogg créé"​
 + notify-send "​fichier ${NAME%.vob}en.ogg créé"​
 +    fi
 +
 +    # vob -> fr.wav -> fr.ogg
 +    if [ -e ${NAME%.vob}fr.wav ]
 +    then
 + if [ -e ${NAME%.vob}fr.ogg ]
 + then
 +     echo "​----${NAME%.vob}fr wav and ogg already present"​
 + else
 +     echo "​----${NAME%.vob}fr wav only already present"​
 +     oggenc -q 8 ${NAME%.vob}fr.wav
 +     echo "​-----file ${NAME%.vob}fr.ogg created"​
 +     notify-send "file ${NAME%.vob}fr.ogg created"​
 + fi
 +    else
 + mplayer $NAME -aid 128 -ao pcm:​file=${NAME%.vob}fr.wav -vc null -vo null
 + echo "​-----fichier ${NAME%.vob}fr.wav créé"​
 + notify-send "​fichier ${NAME%.vob}fr.wav créé"​
 + oggenc -q 8 ${NAME%.vob}fr.wav
 + echo "​-----fichier ${NAME%.vob}fr.ogg créé"​
 + notify-send "​fichier ${NAME%.vob}fr.ogg créé"​
 +    fi
 +    ​
 +    # vob -> sub
 +    if [ -e ${NAME%.vob}.sub ]
 +    then
 + echo "​----fichier ${NAME%.vob}.sub existe deja"
 +    else
 + mencoder $NAME -vobsubout ${NAME%.vob} -vobsuboutindex 0 -sid 1 -o /dev/null -nosound -ovc frameno
 + echo "​-----fichier ${NAME%.vob}.sub créé"​
 + notify-send "​fichier ${NAME%.vob}.sub créé"​
 +    fi
 +    ​
 +    # vob -> avi
 +    if [ -e ${NAME%.vob}.avi ]
 +    then
 + echo "​----fichier ${NAME%.vob}.avi existe deja"
 +    else
 + if [ -e divx2pass.log ]
 + then
 +     echo "​----pass 1 de ${NAME%.vob}.avi deja realisee"​
 + else
 +     echo "​----début pass 1 de ${NAME%.vob}.avi"​
 +     mencoder $NAME -o /dev/null -ovc x264 -x264encopts subq=1:​frameref=1:​pass=1:​threads=auto -nosound -vf crop=720:​576:​0:​0
 +     echo "​------pass 1 de ${NAME%.vob}.avi réalisée"​
 +     notify-send "pass 1 de ${NAME%.vob}.avi réalisée"​
 + fi
 + echo "​----début pass 2 de ${NAME%.vob}.avi"​
 + mencoder $NAME -o ${NAME%.vob}.avi -ovc x264 -x264encopts subq=6:​frameref=5:​pass=2:​threads=auto:​bitrate=1000 -nosound -vf crop=720:​576:​0:​0
 + echo "​------pass 2 de ${NAME%.vob}.avi réalisée"​
 + notify-send "pass 2 de ${NAME%.vob}.avi réalisée"​
 +    fi
 +
 +    # all -> mkv
 +    if [ -e ${NAME%.vob}final.mkv ]
 +    then
 + echo "​----fichier ${NAME%.vob}.mkv existe deja"
 +    else
 + echo "​----début encodage ${NAME%.vob}.mkv"​
 + mkvmerge -o "​${NAME%.vob}final.mkv"​ "​${NAME%.vob}.avi"​ --language 0:eng "​${NAME%.vob}en.ogg"​ --language 0:fre "​${NAME%.vob}fr.ogg"​ --language 0:fre "​${NAME%.vob}.idx"​ --title "​${NAME%.vob}"​
 +    fi
 +    ​
 +    echo "​--------${NAME%.vob} fini !!!!"
 +    notify-send "​${NAME%.vob} fini !!!!"
 +done</​code>​
 +
 +
 +===== Liens =====
 +
 +  * http://​www.mplayerhq.hu/​DOCS/​HTML-single/​en/​MPlayer.html#​mencoder
 +  * http://​www.mplayerhq.hu/​DOCS/​HTML/​en/​menc-feat-x264.html
 +  * http://​doc.ubuntu-fr.org/​encodage_dvd_mkv
 +  * http://​doc.ubuntu-fr.org/​mencoder
 +  * http://​forum.hardware.fr/​hfr/​VideoSon/​Traitement-Video/​topic-unique-mencoder-sujet_87558_1.htm
 +  * http://​forum.ripp-it.com/​index.php?​showtopic=17950&​pid=263481&​st=0&#​entry263481
 +  * http://​www.brad-x.com/​2007/​05/​19/​yet-another-linuxnix-video-h264-howto
 +
mencoder.1353400324.txt.gz · Dernière modification: 2019/04/02 11:14 (modification externe)