Vidéo avec Linux

De Centre de Ressources Numériques - Labomedia
Révision de 4 juin 2015 à 08:41 par Serge (discussion | contributions)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

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

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


D'autres ressources