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

mencoder [2012/11/20 11:16]
mart
mencoder [2019/04/02 11:14]
Ligne 1: Ligne 1:
-====== MEncoder ====== 
- 
-Quelques lignes de commande pour faire du traitement video avec [[http://​www.mplayerhq.hu/​DOCS/​HTML/​en/​encoding-guide.html|MEncoder]],​ encodeur très puissant de MPlayer. 
- 
-===== Rotation ===== 
- 
-Quand un **** fait un film en tenant son iPad à l'​envers,​ on se retrouve avec un fichier .mov et un torticolis. 
- 
-<​code>​mencoder -ovc lavc -vf rotate=1 -oac pcm movie.mov -o movie-90.mov 
-mencoder -ovc lavc -vf rotate=1 -oac pcm movie-90.mov -o movie-180.mov</​code>​ 
- 
-Oui je sais c'est con, on sait pas faire 180° d'un coup. 
- 
-<​code>​0 ​   Rotate by 90 degrees clockwise and flip (default). 
-1    Rotate by 90 degrees clockwise. 
-2    Rotate by 90 degrees counterclockwise. 
-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. 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>​ 
  
mencoder.txt · Dernière modification: 2019/04/02 11:14 (modification externe)