Vidéo avec Linux
Sommaire
Les distributions de Linux spécialisées dans la Vidéo
- Dyne:bolic 2.4 avec kino, cinelerra (montage) effecTV (effets temps réels) et mp4live (stream) installés
- Ubuntu Studio et Tango Studio sont toutes les deux basees sur la Ubuntu LTS et sont dédiées au son. Des programmes vidéos, de 3d, de stop motion en font partie
- AV Linux, basée sur Debian Squeeze (32bit)
- OpenArtist ( ? faîtes vous plaisir http://openartisthq.org/ )
Les logiciels de montage vidéo sous Linux
- Kdenlive : http://www.kdenlive.org/ A noter que kdenlive (bien installer la dernière version issue du PPA) peut monter également nativement de la video HD (AVCHD) mais la prévisualisation est fort laborieuse
- Open Shot Vidéo
- Pitivi (distribué par défaut avec Ubuntu depuis la 10.04)
- EKD : http://ekd.tuxfamily.org/
- Blender qui comporte un éditeur vidéo stable et performant : http://wiki.blender.org/index.php/Doc:Manual/Sequencer, vidéo démo http://www.youtube.com/watch?v=caIg7sIX6d4 mais qui a le défaut de mal gérer l'audio dans les métastrips
- VLC, à suivre, un éditeur vidéo est prévu : http://trac.videolan.org/vlmc/
- Cinellera http://cinelerra.org/
Streaming Vidéo sous Linux
> Encodage depuis un camera DV en direct et forwarde vers un serveur icecast2 En gros :
+ " dvgrab --format raw - \\\n" + " | ffmpeg2theora -f dv -x 160 -y 128 -o /dev/stdout - \\\n" + " | oggfwd iccast2server 8000 password /theora.ogg\n"
Source : http://lists.xiph.org/pipermail/commits/2007-July/011700.html
temporaire : une autre version de cette page : http://news.povray.org/povray.binaries.utilities/attachment/%3Cweb.4273d6d6d14aebcba8399d8d0@news.povray.org%3E/rename.pov.txt
ffmpeg2theora videoclip.avi (will write output to videoclip.avi.ogg)
cat something.dv | ffmpeg2theora -f dv -o output.ogg -
Live encoding from a DV camcorder (needs a fast machine) dvgrab - | ffmpeg2theora -f dv -x 352 -y 288 -o output.ogg -
Live encoding and streaming to icecast server: dvgrab --format raw - | \ ffmpeg2theora -f dv -x 160 -y 128 -o /dev/stdout - | \ oggfwd iccast2server 8000 password /theora.ogg
Acquisition et encodage (+metatags) en détails : http://free-electrons.com/community/videos/mini-howto
Exemple de parametrage de Icecast pour streaming video en theora/ogg (a lire avec vlc par exemple car pas de pb de codecs ni d'OS) : http://www.oddsock.org/guides/video.php
Avec MP4Live (bofbof) : http://mpeg4ip.sourceforge.net/screenshots/index.php
Montage Video en HD (AVCHD)
Le format des nouvelles caméras HD n'est pas optimisé pour le montage. Open Shot Vidéo peut ouvrir des fichiers à ce format, mais le montage devient ardu en termes de précision comme de rapidité d'exécution. Il vaut mieux pour cela exporter au préalable la vidéo dans un format facile à monter. A noter que kdenlive (bien installer la dernière version issue du PPA) peut monter également nativement du AVCHD mais la prévisualisation est aussi fort laborieuse, il existe la fonction "proxy" pour faire le montage en basse qualité et exporter en HD qui fonctionne ou la méthode précédemment évoquée (encoder dans un autre format).
Script pour convertir tout un dossier contenant des fichiers MTS vers des fichiers QuickTime avec le codec MJPEG et l'audio en PCM 48khz que l'on peut appeler ainsi:
$ ./avc2mjpeg.sh /chemin/vers/dossier/*.MTS
#!/bin/bash while [ "$1" ] do FILE=${1%.***} #conversion de l'audio+video pour monter $(ffmpeg -i "$1" -acodec pcm_s16be -ar 48000 -ac 2 -vcodec mjpeg -r 25 -deinterlace -y "$(basename "$FILE").mov") shift done
Pour encoder un seul fichier:
ffmpeg -i nomdufichier.MTS -acodec pcm_s16be -ar 48000 -ac 2 -vcodec mjpeg -r 25 -deinterlace -y fichierdesortie.mov
Quelques autres exemples de commande ffmpeg pour convertir des vidéos AVCHD en d'autres formats:
En MPEG4
ffmpeg -deinterlace -y -r 25 -s 1920x1080 -i 480G0962_05.MOV -f avi -vcodec mpeg4 -b 50000k -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -acodec libmp3lame -ab 320k Testxvid2.mp4
En Xvid
ffmpeg -deinterlace -y -r 25 -s 1920x1080 -i 480G0961_01.MOV -f avi -vcodec libxvid -b 50000k -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -acodec libmp3lame -ab 320k Testxvid.avi
Recompression pour vimeo HD en 1280x720 avec une video source en 1440x1080 .mts AVCHD
$ ffmpeg -i nomdufichier.MTS -deinterlace -s 1280x720 -pix_fmt yuv420p -vcodec mpeg4 -sameq -b 6000k -f mp4 -acodec copy fichierdesortie.mp4
Configuration et Astuces
Utilisation de mencoder
Convertir une vidéo pour l'utiliser dans Pure Data / PDP / GEM
mencoder SubliminalInfluence001.mov -mf fps=25 -o SubliminalInfluence003mjpeg.mov -nosound -ovc lavc -lavcopts vcodec=mjpeg -of lavf -lavfopts format=mov -vf pp=ci,scale=640:480 -ofps 25
mencoder SubliminalInfluence001.mov -o SubliminalInfluence001mjpeg.mov -nosound -ovc lavc -lavcopts vcodec=mjpeg -of lavf -lavfopts format=mov
Convertir une vidéo avec le codec h264 pour l'utiliser dans Puredata + Gem'
ffmpeg -an -y -i DSCN0716.MOV -r 25 -s 960x540 -f avi -vcodec libx264 -b:v 50000k -g 1 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 /bigfiles/DSCN0176.mp4
à tester le paramètre important est -g 1 pour forcer la création d'une image-clé pour chaque image ce qui facilite la décompression
Per a little forum post here are the available deinterlacers for mencoder. Code:
-vf lavcdeint -vf kerndeint -vf filmdint -vf pp=lb -vf pp=li -vf pp=ci -vf pp=md -vf pp=fd
I've had good luck when using them with scale, as long as you scale after the deinterlace.
Code:
-vf pp=ci,scale=640:480
Transformer une video en .avi format dv
mencoder original.avi -o nouveau.avi -vf scale=720:576 -ovc libdv -oac pcm
Autres exemples
mencoder warondemocracymjpeg1.avi -mf fps=25 -o warodemojpeg1.avi -ovc lavc -lavcopts vcodec=jpegls -ofps 25 -nosound
mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4
mencoder "mf://*.jpg" -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o sortie.avi
Pour pré-retailler des images :
mkdir output; for i in *.JPG; do convert -resize 800x600 -strip -quality 50 -interlace line "$i" "output/$i"; done
mencoder warondemocracymjpeg1.avi -mf fps=25 -o warodemojpeg1.avi -ovc lavc -lavcopts vcodec=ljpeg -ofps 25 -nosound ok mais croute dans Pd
encoder AGPZY3GhtWA.flv -o AGPZY3GhtWA.mov -oac pcm -ovc lavc -lavcopts vcodec=mjpeg -of lavf -lavfopts format=mov -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames
mencoder 08389ainthome.avi -o ainthome.mov -oac pcm -ovc lavc -lavcopts vcodec=mjpeg -of lavf -lavfopts format=mov
mencoder -vf lavcdeint,hqdn3d -aspect 4:3 sl_405.avi -oac copy -ovc lavc -lavcopts vcodec=huffyuv:vstrict=-1:vhq:psnr -noskip -ss 20:00 -endpos 0:30 -o huffy.avi
mencoder -vf lavcdeint,hqdn3d -aspect 4:3 sl_405.avi -oac copy -ovc lavc -lavcopts vcodec=ffv1:vstrict=-1:vhq:psnr -ss 20:00 -noskip -endpos 0:30 -o ffv1.avi
mencoder -vf lavcdeint,hqdn3d -aspect 4:3 sl_405.avi -oac copy -ovc copy -ss 20:00 -endpos 0:30 -noskip -o copy.avi
mencoder -vf lavcdeint,hqdn3d -aspect 4:3 sl_405.avi -oac copy -ovc lavc -lavcopts vcodec=mjpeg:vhq:psnr:vbitrate=16000 -noskip -ss 20:00 -endpos 0:30 -o mjpeg.avi
mencoder -vf lavcdeint,hqdn3d -aspect 4:3 sl_405.avi -oac copy -ovc lavc -lavcopts vcodec=ljpeg:vhq:psnr:vstrict=-1 -noskip -ss 20:00 -endpos 0:30 -o ljpeg.avi
This gave me a file with the original source material, as well as using a couple of other codecs. I also found that the -vf options cleaned the video up quite a bit.
btw, u can improve the compression rate of huffyuv significantly by using 2pass mode (its just used for finding optimal huffman tables so u can savely run the first pass on a short and completly different video as long as its from the same source) u can also use context=1:coder=1 for ffv1 or pred=2 for huffyuv to improve compression rate further, but it would be slower
Utilisation de GStreamer
- http://www.metal3d.org/ticket/2012/08/1 … -gstreamer
- http://www.metal3d.org/ticket/2012/08/1 … r-la-suite
- http://blog.nicolargo.com/2009/01/intro … media.html (et plus sur ce blog)
- http://noraisin.net/diary/?p=40
- http://wiki.oz9aec.net/index.php/Gstreamer_cheat_sheet (recommandé)
- http://www.espaciolinux.com/2012/07/gst … -tutorial/
D'autres ressources
- http://pingouindoc.tuxfamily.org/wordpress/?p=70
- Matrice d'encodage pour FFMPEG : les différents formats https://develop.participatoryculture.org/index.php/ConversionMatrix
- Plein de commandes pour intégrer les sous-titres à une vidéo, extraire l'audio, compresser http://activearchives.org/wiki/Cookbook