まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

jeudi, 20 mai 2010

Authoring DVD

Bon ben je crois en avoir fait le tour de ces logiciels d'Authoring DVD :

  • ManDVD : dispo dans les dépôts sur Ubuntu 10.04 (j'ai activé universe, multiverse, mais je sais pas si c'était utile pour lui).

Il date un peu, du coup c'est pas sexy et c'est limité en terme de possibilités (pas trouvé de moyen pour faire des sous-menu) mais il est fiable et stable, de ce que j'en ai testé, tout fonctionne bien.

  • 2ManDVD : se compile facilement et rapidement sur Ubuntu 10.04 via le tuto.

Très prometteur en terme de fonctionnalités, ce soft n'est pas sec… (actuellement, version 1.3.4)
En plus d'être lourd, il foire la génération du DVD systématiquement.

  • Bonobo DVD : dispo dans les dépôts sur 10.04.

Pas testé plus que ça, vu que dés que j'ai voulu mettre une vidéo provenant de ma cam, il m'a dit «nan j'en veux pas!»… alors qu'il veut bien du montage généré par Cinelerra.

  • DVD Styler : dispo dans les dépôts sur 10.04.

Des tutos ici http://www.framasoft.net/article12.html et là http://egroc.free.fr/
Vraiment bien avec de nombreuses possibilités… enfin une fois qu'on a perdu sa journée dessus à comprendre empiriquement qu'on ne pouvait pas mettre plus d'environ 45 fichiers mpeg, sinon la génération du DVD freeze le soft; et que même si on peut en mettre autant qu'on veut, le nombre de boutons est limités à 12 par menu (par exemple 9 vignettes, un Bouton «menu», un bouton «précédent» et un bouton «suivant». (serait-ce une limitation du format DVD ?)
Au delà il ne sont pas cliquable dans le DVD.
Enfin, qu'il faut éviter de copier/coller les vignettes, pour par exemples en avoir plusieurs identiques et gagner du temps plutôt que de se taper les caractéristiques de chacune et ensuite glisser dessus les clips qu'on voudrait y voir…
Non, contre toute attente, alors que tout est cohérent, des erreurs surviendront durant la génération du DVD.

ERR:  That form of jumping is not allowed
ERR:  in VTSM pgc 1, button button03
Echec

Moralité, plutôt que de mettre le montage plus les rushs tel quel sur le DVD, j'ai dû faire un bout à bout des 56 fichiers de rush pour en fabriquer un seul fichier qu'il a ensuite fallut chapitrer pour reconstituer l'intervalle entre chaque clips.

Et y associer la vignette correspondante obtenue par ce script maison :

#!/bin/sh
for i in *.mpg *.MPG *.MPEG *.mpeg *.mp4 *.MP4 *.avi *.AVI *.ogv *.OGV *.flv *.FLV *.wmv *.WMV
do 
    ffmpeg -i "$i" -vcodec mjpeg -vframes 1 -an -f rawvideo -s 200x150 -ss 2 "vignettes/${i%.*}.jpg"
done

Y'a des jours où vraiment je maudis l'informatique et ses aléas inhérents; c'est pas encore une science exacte… rien n'est parfait en ce monde, mais quand on cumule qu'est-ce qu'on perd comme temps pour ces conneries !!! Surtout quand on est tenace ^^;;

vendredi, 16 avril 2010

Screencast, capturer son écran avec ffmpeg

Screencast ou capturer une vidéo de son écran est bien utile quand on veut faire des démonstrations vidéo.
Plusieurs logiciel existent, comme istanbul ou recordmydesktop qui capturent puis compressent une vidéo de l'écran directement en ogg (théora+vorbis)
Mais malgré tous les tests effectués aucun d'eux ne m'a donné satisfaction… trop d'images perdues, vidéo saccadée, résolution trop petite… etc

J'ai alors lut parlé qu'on pouvait faire la même chose avec ffmpeg, en ligne de commande donc… ahhh cette fameuse ligne de commande Ô combien puissante et pratique, qui fait si peur aux noob et nous fait passer pour des bêtes curieuses.

Seulement voila, de base, la version de ffmpeg disponible dans mon système d'exploitation ne dispose pas de ce qu'il faut pour capturer l'écran, c'est à dire x11grab.
Il faut donc compiler les source de ffmpeg avec les options nécessaire… après pas mal de tentatives infructueuses, j'ai découvert sur le Planet Ubuntu qu'il fallait des sources patchées.

j'étais tellement content de l'avoir trouvé que j'ai repris une partie de cet article ^^
http://planet.ubuntu-fr.org/post/2006/09/21/Faire-du-screencast-sous-Ubuntu

On installe les paquets nécessaires :

   $ sudo apt-get install build-essential xlibs-dev ffmpeg

On crée le répertoire nécessaire :

   $ mkdir screencap && cd screencap

On récupère le fichier de source et on l'extrait :

   $ wget http://lecoindespotes.free.fr/ubuntu/screencast/ffmpeg-0.4.9-p20051216.tar.bz2 && tar xjfv ffmpeg-0.4.9-p20051216.tar.bz2 && cd ffmpeg-0.4.9-p20051216

Il faut maintenant le patcher afin de lui permettre de faire du screen capture :

   $ wget http://lecoindespotes.free.fr/ubuntu/screencast/ffmpeg-0.4.9-p20051216.diff && patch -Np1 -i ffmpeg-0.4.9-p20051216.diff

Il ne nous reste plus qu'à compiler :

    $ ./configure --extra-ldflags=-L/usr/X11R6/lib --enable-x11grab --enable-gpl && make

Il se peut que la compilation se passe mal, vérifiez que vous ayez un executable ffmpeg, le reste du paquet ne nous intéresse pas vraiment. On obtient alors un exécutable 'ffmpeg'

Pour lancer une capture, il suffit de taper ce genre de commande :

   $ ./ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024x768 ~/test.avi

La puissance de la «ligne de commande», c'est qu'on va pouvoir customiser la capture !
Par exemple, j'ai utilisé ça :

$ ./ffmpeg -acodec pcm_s16le -vcodec mpeg4 -b 1000 -r 25 -g 300 -vd x11:0,0 -s 1280x960 ~/screencast004.avi

La capture sonore en PCM 16 bits à été ajoutée :

  • -acodec pcm_s16le

La capture vidéo est en MPEG4

  • -vcodec mpeg4

25 images/secondes sont capturées :

  • -r 25

La taille de la vidéo est adaptée à la résolution de mon écran :

  • -s 1280x960

Même commande, sans l'audio, qui m'a servit à capturer le tuto cinelerra

$ ./ffmpeg -an -vcodec mpeg4 -b 1000 -r 25 -g 300 -vd x11:0,0 -s 1280x960 ~/screencast008.avi

La commande

$ ./ffmpeg -formats

donne la liste des codecs utilisable à la capture, reste à tester et choisir ceux qui vous conviennent !

Malgré ces paramètres exigeant en ressources, la capture est parfaite, alors que les logiciels cités plus haut ont étés bien incapable de faire le 1/4 de ce qu'a réalisé cette commande ffmpeg :)

mardi, 13 avril 2010

Conférence de Benjamin Bayart à l'Ubuntu party 9.10

J'y étais, et comme la vidéo est enfin en ligne, je la recommande
source http://ubuntu-party.org/neutralite-du-net

mardi, 2 mars 2010

Compiler

compiler.png[1] Compiler un logiciel pour rien durant toute une soirée, ça vous dirait ?

Nan parce-que je crois que j'aime çà...

En rentrant, j'avais donc dans l'idée de compresser en deux passes la vidéo du billet précédent, histoire d'améliorer la qualité d'image.
Et comme je suis flémard, je voulais trouver des exemples de commandes pour ffmpeg2theora... mais en fait, je suis tombé sur ce blog :
http://libre-ouvert.toile-libre.org/?article2/mes-outils-pour-bloguer-gerer-les-fichiers-multimedias
Et cette phrase qui fit basculer ma soirée dans la folie :

Dans tous les cas, veillez à utiliser la version 1.1 (nom de code : Thusnelda) ou supérieur de l'encodeur Theora qui bénéficie de sérieuses optimisations.


J'utilise Ubuntu 8.04LTS, qui est livré avec ffmpeg2theora 0.19 ou 0.21, je sais plus... mais j'étais déjà allé sur le site de projet pour utiliser les binaires récents, le 0.25, puis 0.26 sans savoir (ni m'inquiéter) qu'ils étaient livrés tout en un, du moins c'est ce que j'ai découvert …!

Donc la fameuse phrase m'apprit que la dernière version des librairies était top moumoutte pour la qualité d'image, et je lisais ailleurs que le ratio poids/qualité des fichiers avait, pour les mêmes paramètres d'encodages, gagné 20% !!!
À condition donc de disposer de la version 1.1 des librairies...

Me voilà parti à compiler depuis les sources... http://theora.org/downloads/

D'abord :
Installer le paquet libSDL 1.2 via synaptic, puis compiler (./configure, sudo make, sudo make install, ldconfig) libogg-1.1.4, libvorbis-1.2.3 et enfin libtheora-1.1.1

Et puis hop, je lance une compression de la vidéo d'hier, m'attendant à voir son poids de 52,4Mio perdre 10Mio

Mais en fait, nan, rien...

Mince... je cherche, explore plusieurs pistes... les softs se sont installés dans /usr/local/lib au lieu de /usr/lib... çà parait normal, mais doute sur le fait que ça soit pris en compte... pourtant la commande ldconfig est là pour ça... et dans /etc/ld.so.conf/libc.conf il y a bien le chemin /usr/local/lib

Mais toujours rien... alors je supprime tous les fichiers fraîchement installés, et leurs homologues anciennes versions dans /usr/bin !! Normalement, l'encodage de vidéos ne devrait alors plus marcher...

Et bah sisi, ça compresse tranquille...
C'est là que j'ai compris que le binaire de ffmpeg2theora faisait à lui seul tout le travail...
Pour vérifier, il fallu compiler à son tour ffmpeg2theora (en vrai j'ai fini par utiliser un fichier pris dans un PPA, parce que la compilation ne pouvait satisfaire des dépendances avec cette version d'Ubuntu, ni pomper le SVN de ffmpeg qui a déménagé...) pour enfin avoir un logiciel qui interagisse avec les librairies (re)installées par la compilation précédente (/usr/local/lib) et restaurées (les anciennes de /usr/lib) !

Hop nouvel essai d'encodage vidéo... ... ... ... et Ô-Surprise...!!! le fichier est plus lourd de 10Mio, pour faire 63Mio -_- arfffff visiblement ce ffmpeg2theora utilise les anciennes librairies

Ahahah la bonne blague... 5h de paumées... pour un doute alors j'avais déjà tout ce qu'il me fallait avec le binaire sans être vraiment au courant.
Voilà ce qui arrive quand on est stupidement tenace...
Mais bon, en jouant au hacker, j'aurais encore appris pas mal de trucs au passage ^^
Et j'ai toujours pas fait les deux passes...

Notes

[1] Compil, personnage de Davy Mourier utilisé dans l'émission Compiler sur Nolife

- page 5 de 8 -