Après avoir galéré avec ffmpeg, j'ai trouvé une autre solution pour encoder en ligne de commande des vidéos pour des sites web mobiles, lisibles à la fois sur les terminaux Android, les iPhones et les BlackBerry.
La démarche est pour Ubuntu, mais un outils graphique est dispo sous Windows, via le logiciel Handbrake.
Ajouter les dépôts pour Handbrake
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 62D38753
sudo bash -c 'echo "deb http://ppa.launchpad.net/handbrake-ubuntu/ppa/ubuntu jaunty main" > /etc/apt/sources.list.d/launchpad_handbrake.list'
(Jaunty est pour Ubuntu 9.04. A vous d'adapter selon votre distribution.)
Installer HandBrake
sudo apt-get update
sudo apt-get install handbrake-cli
Pour la démarche en mode graphique, voir le post http://www.commentcamarche.net/faq/18915-linux-ubuntu-convertir-un-dvd-…
Pour tester que tout marche bien, lancer la commande suivante, en remplacant INPUTVIDEO et OUTPUTVIDEO :
HandBrakeCLI -i "INPUTVIDEO" -t 1 -c 1 -o "OUTPUTVIDEO.mp4" -f mp4 -O -X 320 -e x264 -b 1000 -a 1 -E faac -6 dpl2 -R 48 -B 128 -D 0.0 -x cabac=0:ref=2:me=umh:bframes=0:subq=6:8x8dct=0:trellis=0:weightb=0 -v 1
Ainsi, en PHP, on passera cette commande par la fonction exec, à savoir :
$command = '/usr/bin/HandBrakeCLI -i "'.$inputfile.'" -t 1 -c 1 -o "'.$outputfile.'" -f mp4 -O -X 320 -e x264 -b 1000 -a 1 -E faac -6 dpl2 -R 48 -B 128 -D 0.0 -x cabac=0:ref=2:me=umh:bframes=0:subq=6:8x8dct=0:trellis=0:weightb=0 -v 1';
exec($command, $return, $return_code);
Articles en lien avec ce sujet :
http://www.linux.com/archive/feature/114130
http://www.broken-links.com/2010/07/30/encoding-video-for-android/
7 commentaire