Archives de catégorie : ubuntu

Convertir ses vidéos avec Linux

J’utilise aujourd’hui sur mon ordinateur la distribution Linux Kubuntu (Ubuntu avec le gestionnaire de bureaux KDE) comme système d’exploitation principal, et il m’arrive de vouloir convertir des vidéos dans un tel ou tel format pour pouvoir les visionner sur le web ou sur mon ipod ou encore sur ma platine DVD/DivX.
Heureusement pour moi, Linux regorge de logiciels très puissant de conversion de vidéo.

Les essais suivants ont été réalisés sur une Debian Sarge Stable.

Prérequis :

Vous devez avoir les logiciels et librairies adéquates.
Vous devez installer Mencoder, ffmpeg, et des librairies annexes (les codecs w32, mp3, etc…)
Sur une debian j’ai utilisé les repositories suivants :
/etc/apt/sources.list :

deb http://security.debian.org/ stable/updates main non-free contrib
deb-src http://security.debian.org/ stable/updates main contrib non-free

deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free

deb ftp://ftp.debian.org/debian/ sarge main non-free contrib
deb-src ftp://ftp.debian.org/debian/ sarge main non-free contrib

deb http://www.debian-multimedia.org stable main
deb-src http://www.debian-multimedia.org stable main

#apt-get install mencoder ffmpeg w32codecs lame libavcodeccvs51 libavutilcvs49 libdvdread3 libpostproccvs51 libxvidcore4 mplayer-doc

N’hésitez pas à poster en commentaires les sources pour une distribution !

Convertir une video pour la lire sur platine DivX Kiss DP 1500

Le problème :

La platine KISS DP 1500 est un lecteur DVD/DivX (et Xvid) de salon qui a la particularité de pouvoir lire des fichiers videos se situant sur un réseau local (elle dispose d’un port ethernet pour cela). Ainsi pas besoin de graver ses films pour les regarder…
Malheureusement, les formats d’encodage (codecs) MPEG 4 évoluent et le constructeur de ma platine, KISS, n’est pas très sérieux et ne remet plus à jour le firmware de la platine.(d’ailleurs ce n’est pas l’unique problème avec eux, ils ont aussi violé une licence GPL).
Ainsi ma platine ne lit désormais que très peu de fichiers videos…

La solution :
Convertir mes vidéos dans un format qu’elle supporte! (en l’occurence du XviD/MP3 avec un bitrate de 1200 et en 4/3 –> ne change pas l’aspect de l’image)
Avec mencoder :

mencoder fichier_a_convertir.avi -ovc xvid -xvidencopts bitrate=1200 -oac mp3lame -aspect 4:3 -o nom_du_fichier_resultat.avi

Pour « industrialiser » le processus, voici le script shell qui vous permettra de convertir par lots :

if [ -z « $1 » ]; then
echo « Usage: $0 list_of_video_files »
exit 1
fi
# video encoding bit rate
V_BITRATE=1200
while [ « $1″ ]; do
MENC_OPTS= »-ovc xvid -xvidencopts bitrate=$V_BITRATE -oac mp3lame -aspect 4:3″
mencoder « $1 » $MENC_OPTS -o « `basename $1 .avi`_convertie.avi »
shift
done

Vous pouvez le télécharger en utilisant le lien ci-dessous :
mencoder_video_to_kiss_dp_1500.sh

Pour utiliser ce script, il vous suffit de taper :
sh mencoder_video_to_kiss_dp_1500.sh file1.avi file2.avi ./
Pour convertir les fichiers file1.avi et file2.avi en file1_convertie.avi et file2_convertie.avi (dans le répertoire courant)

Convertir une video pour la lire sur un Ipod Video (5ème génération)

Encore une fois, MEncoder va nous aider à transporter nos vidéos favorites dans notre poche.

Le problème
L’Ipod Video ne supporte qu’un format très limité de formats de vidéos

La solution
Cette simple ligne nous suffira :

ffmpeg -i fichier_d_entre.avi -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 192 -s 320×240 -aspect 4:3 fichier_de_sortie.mp4

Je l’ai récupéré sur le site suivant :Video Ipod And Linux
Pour « industrialiser » le processus, et laisser tourner la conversion pendant la nuit par exemple, j’ai concocté le petit script shell suivant :

#!/bin/sh
if [ -z « $1 » ]; then
echo « Usage: $0 list_of_video_files »
exit 1
fi

while [ « $1″ ]; do
FFMPEG_OPTS= »-f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 192 -s 320×240 -aspect 4:3″
ffmpeg -i « $1 » $FFMPEG_OPTS « `basename $1 .avi`.mp4 »
shift
done

Vous pouvez le télécharger en utilisant le lien ci-dessous :
ffmpeg_video_to_ipod_video.sh

Pour utiliser ce script, il vous suffit de taper :
sh ffmpeg_video_to_ipod_video.sh file1.avi file2.avi ./
Pour convertir les fichiers file1.avi et file2.avi en file1.mp4 et file2.mp4 (dans le répertoire courant), tout juste prêtes à être transférées sur votre ipod.
A ce propos, j’utilise encore iTunes pour transférer les vidéos, mais des personnes ont déjà réussi avec libgpod et amarok (LE lecteur de musique sous Linux); je reviendrai dessus quand j’aurai réussi ;-)

Convertir une video avec FFMPEG pour la lire sur le web avec un player flash

Le problème
Vous avez tourné un film de quelques minutes et forcément çà prend un peu de place…
Alors oui, avec l’ADSL çà va assez vite à télécharger, encore faut il que la personne qui la télécharge dispose des bons codecs sur son ordinateur…
Et en général, dans la famille, tout le monde ne sait pas installer de nouveaux codecs et/ou installer VLC.
Ou alors il faut encoder en Windows Media (oui mais y’a que sous Windows qu’on trouve les derniers encodeurs) ou encore en Real ou encore Quicktime (en fait c’est pas tout le monde qui les a installés sur son ordinateur..)
Pas de panique ! Macromedia (pardon, Adobe…) avec son Flash propriétaire a compris qu’il pouvait profiter de son parc installé de lecteur Flash (pour mémo, 98% des internautes ont Flash sur leur machine aujourd’hui).
Ainsi les videos au format Flash s’impose sur le Web…
Mais alors pourquoi se fatiguer à les convertir soit même lorsque YouTube, GoogleVideos et consorts ont une super interface super ergonomique pour le faire ?
Et bient tout simplement, pour éviter de passer par un tiers qui prend le temps qui veut pour convertir la vidéo et qui surtout disposera de votre contenu sur ses serveurs (que vous ne contrôlez à priori pas trop)…

La solution
Commençons par convertir la vidéo en flv (format de video de flash)
ffmpeg -i movie.avi -s 320x240 -r 15 -b 250 -ar 22050 -ab 48 movie.flv
Vous remarquerez que la video movie.avi est ici convertie en 324×240 en 15 images/seconde, bitrate video de 250 kbps et le son échantillonné à 22 050Hz au bitrate 48kbps.
Bref, vous pouvez modifier ces paramètres à volonté.
Pour faire bien, nous allons prendre un cliché de la video :
ffmpeg -i movie.avi -f mjpeg -t 0.001 movie.jpg

Pour lire cette vidéo, nous avons besoin d’un lecteur de flv, au format Flash (SWF).
Il existe le lecteur Flash libre FlowPlayer afin de lire ces vidéos.
Pour l’utiliser, une fois qu’il est téléchargé, écrivez ce code dans un fichier HTML en faisant (bien) attention aux chemins :

<object type= »application/x-shockwave-flash » data= »[your site]/FlowPlayer.swf » width= »320″ height= »263″ id= »FlowPlayer »>
<param name= »allowScriptAccess » value= »sameDomain »/>
<param name= »movie » value= »[your site]/FlowPlayer.swf »/>
<param name= »quality » value= »high »/>
<param name= »scale » value= »noScale »/>
<param name= »wmode » value= »transparent »/>
<param name= »flashvars » value= »baseURL=[base URL]&videoFile=movie.flv
&autoPlay=false&loop=false&autoBuffering=false
&splashImageFile=movie.jpg »/>
</object>

Et le tour est joué !!!
Pour parfaire le résultat, vous pouvez aussi ajouter un index à vos vidéos pour pouvoir afficher une barre de défilement.
Vous pouvez alors utiliser l’outil libre FlvTool2, écrit en Ruby.
Il vous faut alors installer ruby sur votre système (sur debian quelques apt-get sur ruby suffisent…) et télécharger la tarball de Flvtool2, l’ouvir avec

tar xvzf flvtool2-1.0.6.tgz

et lire les instructions du README.
Cela étant fait, le rajout de vos index se feront simplement avec la commande :
flvtool2 -U movie.flv
Attention à ce que les noms de fichiers ne soient pas trop longs !!!
Tout ceci est « industrialisé » dans le script shell suivant :

#!/bin/sh
if [ -z « $1 » ]; then
echo « Usage: $0 list_of_video_files »
exit 1
fi
while [ « $1 » ]; do
ffmpeg -i $1 -s 320×240 -r 15 -b 250 -ar 22050 -ab 48 $1.flv
ffmpeg -i $1 -f mjpeg -t 0.001 $1.jpg
flvtool2 -U $1.flv
shift
done

Ce dernier tutorial sur l’encodage d’une video en flash est une traduction libre de l’article :
Posting Flash Videos with FFmpeg and FlowPlayer
par Scott Yang