Ci-dessous, les différences entre deux révisions de la page.
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:54] mart [Rotation] |
mencoder [2019/04/02 11:14] (Version actuelle) |
||
---|---|---|---|
Ligne 18: | Ligne 18: | ||
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. | 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 | ||
+ |