Archive

Articles taggués ‘mencoder’

Rotation d’une vidéo avec mencoder

Quand on prend des vidéos avec son appareil photo sans réfléchir, il arrive que l’on prenne son appareil en mode portrait et du coup la vidéo, une fois sur le PC ou la télévision, se retouve dans le mauvais sens.

Plutôt que de basculer l’écran sur le côté, il suffit de lancer une commande avec mencoder…

Pour tourner dans le sens horaire :
mencoder video_originale.mpg -o video_sortie.mpg -oac copy - ovc lavc -vf rotate=1

Pour tourner dans le sens anti-horaire :
mencoder video_originale.mpg -o video_sortie.mpg -oac copy - ovc lavc -vf rotate=2

Categories: Multimédia Tags: ,

Couper une vidéo avec mencoder

Quand j’enregistre quelque chose à la télévision, je prévois toujours que le programme puisse commencer en avance (plutôt rare mais on ne sait jamais…) et finir en retard. Je me retrouve donc avec des fichiers vidéos contenant la fin du programme précédent au début et le commencent du programme suivant à la fin.
Il me faut donc couper la vidéo au début et à la fin.

Couper le début d’une vidéo

Imaginons qu’il y ait 12 minutes et 14 secondes à couper au début de cette vidéo.
La commande serait alors :
mencoder -ss 00:12:14 fichier.avi -oac copy -ovc copy -o fichier_tmp.avi

Explications :

  • -ss indique l’endroit où commence la vidéo en hh:mm:ss
  • -oac copy copie le flux audio tel quel
  • -ovc copy copie le flux vidéo tel quel
  • -o fichier_tmp.avi indique le nom du fichier de sortie. Ce fichier ne sera qu’un fichier temporaire puisqu’il nous faudra encore couper la fin de la vidéo.

Couper la fin d’une vidéo

Imaginons que le programme enregistré dure 52 minutes et 35 secondes.
La commande sera la suivante :
mencoder -endpos 00:52:35 fichier_tmp.avi -oac copy -ovc copy -o fichier_final.avi

Explications :

  • -endpos indique l’endroit où se termine la vidéo en hh:mm:ss
  • -oac copy copie le flux audio tel quel
  • -ovc copy copie le flux vidéo tel quel
  • -o fichier_final.avi indique le nom du fichier de sortie.
Categories: Multimédia Tags: ,

Ripper un DVD avec mencoder

Pré-requis :

Avoir copier l’arborescence du dvd sur son PC, surtout le dossier VIDEO_TS.

1ère étape : identifier les pistes audio.

mplayer -v VTS_01_1.VOB | grep aid
Cela va lancer le film avec mplayer et afficher les paramètres dans le terminal, l’option grep aid permet de filtrer tout ceci et de n’afficher que les langages présents sur le dvd.
Nous allons donc avoir quelque chose comme ceci dans le terminal :

[open] audio stream: 0 audio format: ac3 (5.1) language: en aid: 128
[open] audio stream: 1 audio format: ac3 (5.1) language: fr aid: 129

2ème étape : identifier les sous titres (facultatif)

Les sous titres sont identifiés par sid donc la commande mplayer -v VTS_01_1.VOB | grep sid devrait donner ceci à quelque chose près :

[open] subtitle ( sid ): 0 language: en
[open] subtitle ( sid ): 1 language: fr
[open] subtitle ( sid ): 2 language: es
[open] subtitle ( sid ): 3 language: nl

3ème étape : préparation des fichiers VOB

Nous allons réunir les fichiers VOB pour qu’ils n’en fassent plus qu’un.
Si le dvd est issu d’une série il va avoir plusieurs fichiers correspondant à plusieurs épisodes.
Par exemple pour un dvd contenant 4 épisodes :
cat VTS_01_1.VOB VTS_01_2.VOB > episode1.VOB
cat VTS_02_1.VOB VTS_02_2.VOB > episode2.VOB
cat VTS_03_1.VOB VTS_03_2.VOB > episode3.VOB
cat VTS_04_1.VOB VTS_04_2.VOB > episode4.VOB

Exemple pour un film :
cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB VTS_01_5.VOB > film.VOB

4ème étape : encodage

Pour ce faire je vais utiliser le codec x264, je sais x264 c’est le mal !
Mais en attendant j’ai fais plusieurs essais avec xvid et je n’ai jamais réussi à avoir une qualité correcte (même avec plusieurs passes) et Theora et WebM ne sont pas supportés par le disque dur multimédia qui va accueillir ces fichiers…
Donc solution de repli : x264.

mencoder film.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o film.avi

Et voilà, un dvd rippé en avi d’une qualité tout à fait convenable.

5ème étape : Automatisation (facultatif)

Pour un film il suffit donc de deux commandes :
- une pour concaténer les fichiers VOB
- une pour encoder le VOB en avi
Alors que pour un dvd comportant des épisodes d’une série il faut deux commandes par épisode, un dvd contenant généralement 4 épisodes il faut 8 commandes par dvd.
Et il faut attendre que la commande soit finie pour lancer la suivante.

Pour automatiser la transformation d’un dvd de serie on peut fait un script sh qui ressemblerai à ceci :
cat VTS_01_1.VOB VTS_01_2.VOB > episode1.VOB
cat VTS_02_1.VOB VTS_02_2.VOB > episode2.VOB
cat VTS_03_1.VOB VTS_03_2.VOB > episode3.VOB
cat VTS_04_1.VOB VTS_04_2.VOB > episode4.VOB
mencoder episode1.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o episode1.avi
mencoder episode2.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o episode2.avi
mencoder episode3.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o episode3.avi
mencoder episode4.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o episode4.avi

On place ce script dans le répertoire VIDEO_TS et on le lance par la commande :
sh script-encodage.sh

6ème étape : Options (facultatif)

Analysons une commande d’encodage :
mencoder film.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o film.avi

Comme vu plus haut -aid xxx permet de choisir la piste audio.
Si l’on veut rajouter des sous titres, il faut rajouter -sid x.

Le format natif d’un dvd étant 720×576 pixels l’option -vf scale=720:576 permet de garder ce format pour le fichier de sortie.

Options audio

-oac copy indique qu’il faut copier le flux audio si on veut le réencoder il faut modifier cette option.
Par exemple pour une piste audio en mp3 à un débit constant de 128 kbps il faut faudrait mettre :
-oac mp3lame -lameopts mode=2:cbr:br=128

Si le son est trop faible ou trop fort on peut ajouter :vol=x si x=0 le son restera pareil que sur la vidéo d’origine sinon une valeur positive ou négative fera changer la gain/
Donc si le son est trop faible on peut mettre -oac mp3lame -lameopts mode=2:cbr:br=128:vol=3

Options x264

bitrate=950 : indique que l’on souhaite encoder la vidéo en 950kbps, il faut donc jouer sur ce paramètre pour modifier la qualité de la vidéo.
turbo : le mode turbo permet de réaliser l’encodage plus rapidement mais entraîne une légère baisse de la qualité.
pass=1 ou pass=2 : permet de faire plusieurs passes afin d’avoir une qualité optimale.
threads=x : indique qu’il faut utiliser x cores de votre CPU. Sans cette option un seul core est utilisé.

xvid

Pour faire un encodage en deux passes en xvid les commandes ressemblerait à ceci :
mencoder film.VOB -aid 129 -vf scale=720:576 -oac copy -ovc xvid -xvidencopts bitrate=1000:pass=1 -ovc lavc -lavcopts "threads=2" -o /dev/null
mencoder film.VOB -aid 129 -vf scale=720:576 -oac copy -ovc xvid -xvidencopts bitrate=1000:pass=2 -ovc lavc -lavcopts "threads=2" -o video.avi

On retrouve les mêmes options qu’avec le x264 sauf le mode turbo.
Le multithreading est aussi pris en charge mais avec une syntaxe différente :
- en x264 on aurait -x264encopts bitrate=950:threads=2
- en xvid on a -xvidencopts bitrate=950 -ovc lavc -lavcopts "threads=2"

Categories: Multimédia, Tutoriels Tags: ,

Insérer des sous titres avec mencoder

mencoder -sub soustitres.srt -fontconfig -font Arial -subfont-text-scale 4 -oac copy -ovc xvid -xvidencopts bitrate=900 video.avi -o videoST.avi

L’option -ovc lavc -lavcopts "threads=2" qui permettrait d’utiliser deux coeurs du CPU afin de faire l’encodage plus rapidement ne fonctionnent pas chez moi.

Cela m’incruste deux fois les sous-titres et de tailles différentes…

Categories: Multimédia Tags:

Réencoder vidéo flv en xvid avec mencoder

mencoder video.flv -oac mp3lame -ovc xvid -xvidencopts bitrate=900 -ovc lavc -lavcopts "threads=2" -o video.avi

Cela fonctionne avec n'importe quel type de vidéo.

Categories: Multimédia Tags: