Diffusion vidéo live - streaming

4397f1.png 4397f1.png

Le Streaming ça marche comment ?

Caméra + micro > ordinateur > logiciel d'encodage > internet > serveur de streaming »> internautes qui regardent ou écoutent le flux
Attention, comme nous sommes principalement connecté au net grace à de l'ADSL, nous avons moins de débit pour envoyer du flux (encoder) que pour le regarder

Utiliser des portails de streaming

Ces portails permettent de faire de la diffusion de vidéo en direct sur son site sans plus de matériel qu'une caméra ou une webcam et un ordinateur connecté à Internet, le tout en quelques clics.

Possibilité de copier coller un code dans un billet de blog pour intégrer ce flux vidéo dans l'une de vos pages

Portails gratuits

  • http://bambuser.com/ : Bambuser permet de faire du streaming depuis son téléphone portable (moderne), soit en 3G soit connecté à un réseau wifi
  • http://qik.com/ : un deuxième !
  • http://www.flixwagon.com/ : équivalent à Bambuser et permettant en plus de suivre votre position si votre téléphone est équipé d'un GPS

Intégrer des Widgets vidéo dans son site

une beau stock de widgets par le cher Loic Hay : http://widgetolab.weebly.com/

Visioconférence, réunions virtuelles

Faire du streaming sur son ordinateur / serveur

Plate forme de streaming gratuite

Distribution Linux adaptées au streaming et utilisables sans installation

streaming.jpg

Logiciels pour encoder la vidéo

  • OBS Studio : le petit dernier, plein de fonctions, facile à utiliser, marche sur les 3 OS
  • Theora Streaming Studio : facile à utiliser et performant
  • MPEG4Live : à tester …
  • VLC permet depuis la version 9 de faire du stream, en utilisant notamment l'interface graphique et le bouton “Diffuser” en ayant sélectionné auparavant dans le menu fichier le “Périphérique de capture”
  • fig:Icecast_vlc.png
**Avec OBS Studio vers un serveur Icecast**

Pour compléter la config et donner un genre, un titre au stream, dans les “Paramètres du muxer”, on peut mettre :

content_type=video/m2ts ice_genre='numerique' ice_name='je m appelle stream' ice_description=beau ice_url='https://labomedia.org'
**sinon en ligne de commande**
vlc -vv /home/bbk/dvd/movie.avi :sout=#transcode{vcodec=theora,vb=256,scale=1,acodec=vorbis,ab=32,channels=1}:std{access=shout,mux=ogg,url=videosource:passwd@laboratoryplanet.org:8000}
:sout=#transcode{vcodec=theo,vb=400,scale=0.5,acodec=mp3,ab=128,channels=2}:duplicate{dst=std{access=shout,mux=ogg,dst=passwd@laboratoryplanet.org:8000/testuo.ogg}}
  vlc -vv "E:\Tetsuo.2_(Divx5.fr).avi" :sout=#transcode{vcodec=theo,vb=400,scale=0.5,acodec=mp3,ab=128,channels=2}:duplicate{dst=std{access=shout,mux=ogg,dst=passwd@laboratoryplanet.org:8000/laaab.ogg}}
vlc [[file://E:\Tetsuo.2_(Divx5.fr).avi|  file://E:\Tetsuo.2_(Divx5.fr).avi]]   --sout=#transcode{vcodec=theo,vb=400,scale=0.5,acodec=mp3,ab=128,channels=2}:duplicate{dst=std{access=shout,mux=ogg,dst=source:passwd@88.191.69.150:8000/laaab.ogg}}
vlc [[file://E:\Tetsuo.2_(Divx5.fr).avi|  file://E:\Tetsuo.2_(Divx5.fr).avi]]   --sout=#transcode{vcodec=theo,vb=400,scale=0.5}:std{access=shout,mux=ogg,dst=source:passwd@88.191.69.150:8000/laaab.ogg}

Entrée live audio video v4l

vlc v4l:// :v4l-vdev=/dev/video0 :v4l-adev=/dev/dsp :v4l-norm=0 :v4l-frequency=0 :v4l-caching=500 :v4l-vdev="/dev/video0" :v4l-adev="/dev/dsp" :v4l-chroma="" :v4l-fps=-1 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-norm=3 :v4l-frequency=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=0 :v4l-height=0 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 :sout=#transcode{vcodec=theo,vb=100,scale=0.5,acodec=mp3,ab=32,channels=2}:duplicate{dst=std{access=shout,mux=ogg,dst=source:*****@laboratoryplanet.org:8000//amaisonpop.ogg}}
vlc v4l:// :v4l-vdev=/dev/video0 :v4l-adev=/dev/dsp :v4l-norm=0 :v4l-frequency=0 :v4l-caching=500 :v4l-vdev="/dev/video0" :v4l-adev="/dev/dsp" :v4l-chroma="" :v4l-fps=-1 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-norm=3 :v4l-frequency=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=0 :v4l-height=0 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout '#transcode{vcodec=theo,vb=100,scale=1,acodec=mp3,ab=32,channels=2}:duplicate{dst=std{access=shout,mux=ogg,dst=source:**********@laboratoryplanet.org:8000//labo.ogg}}'
option finale --loop ???

Entrée live audio video v4l2

vlc v4l2:// :v4l2-dev=/dev/video0 :v4l2-width=640 :v4l2-height=480 --sout "#transcode{vcodec=theo,vb=300,scale=1,acodec=vorb,ab=64,channels=2,samplerate=22050}:std{access=shout,mux=ogg,dst=source:*********@labomedia.org:8000/atest.ogv}" :no-sout-rtp-sap :no-sout-standard-sap :sout-all :ttl=1 :sout-keep

put “source” as username or login, followed by a column and a password.it seems putting “source” make work vlc

example : :sout=#transcode{acodec=vorb,ab=128,channels=2,samplerate=44100}:std{access=shout,mux=ogg,dst=source:0000@192.168.1.4:8000/live}

Macos

/Applications/VLC.app/Contents/MacOS/VLC qtcapture:// --sout='#duplicate{dst=display,dst="transcode{vcodec=theo,vb=256,acodec=vorb,ab=64,vfilter=canvas{width=320,height=240,canvas-aspect=4:3}}:standard{mux=ogg,dst=source:****@laboratoryplanet.org:8000/labo.ogg,access=shout}"}' 

Macos essai laviemanifeste : comment choisir la deuxième webcam ?

/Applications/VLC.app/Contents/MacOS/VLC qtcapture:// --sout='#duplicate{dst=display,dst="transcode{vcodec=theo,vb=128,acodec=vorbVLC qtcapture://,ab=32,vfilter=canvas{width=320,height=240,canvas-aspect=4:3}}:standard{mux=ogg,dst=source:rclabo01@labomedia.org:8000/labo.ogg,access=shout}"}'

Intégrer son stream video dans une page web

Mode HTML5

<video width="320" height="240" controls="" src="http://laboratoryplanet.org:8000/labo.ogg" autoplay="" tabindex="0">
</video>

Code pour compatibilité HTML4 avec applet cortado comme lecteur alternatif

<video width="480" height="360" controls="" src="http://laboratoryplanet.org:8000/labo.ogg" autoplay="" tabindex="0">

<applet width="480" height="360" mayscript="" id="cortado" archive="cortado.jar" codebase="http://giss.tv/dmmdb//cortado" code="com.fluendo.player.Cortado.class"><param value="http://laboratoryplanet.org:8000/labo.ogg" name="url"><param value="true" name="local"><param value="true" name="keepAspect"><param value="true" name="video"><param value="true" name="audio"><param value="64" name="bufferSize"><param value="16" name="statusHeight"><param value="auto" name="showStatus"><param value="true" name="seekable"><param value="113" name="duration"></applet><a_espace_href=“http://giss.tv/dmmdb//com.fluendo.player.Cortado.class” class=“rlarqfzxhwppnvznpczc”></a>

</video>

Attention, remplacer dans le code précédent <a_espace_href=“http://giss.tv/dmmdb//com par “a href”

http://laboratoryplanet.org:8000/labo.ogg

Faire du streaming vers les smartphones et tablettes via la balise video en HTML5

Etat des lieux des possibilités

Exemples de pipeline gstreamer

Stream vers un serveur icecast basse qualité à partir d'une webcam gst-launch-0.10 v4l2src ! queue ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! theoraenc quality=16 ! queue ! oggmux name=mux alsasrc ! audio/x-raw-int,rate=22050,channels=1,depth=8 ! queue ! audioconvert ! vorbisenc ! queue ! mux. mux. ! queue ! shout2send ip=labomedia.org port=8000 password=** mount=/trial5.ogg

gst-launch-0.10   v4l2src   device=/dev/video0   !   queue   !   ffmpegcolorspace   !   videoscale   !   video/x-raw-yuv,width=320,height=240   !   videorate   skip-to-first=1   !   video/x-raw-yuv,framerate=25/1   !   vp8enc   threads=2   quality=4   speed=0   max-latency=25   mode=vbr   !   queue   !   webmmux   streamable=true   name=mux   jackaudiosrc   connect=none   !   audio/x-raw-float,   channels=2   !   queue   !   audioconvert   !   vorbisenc   quality=0.1   !   queue   !   mux.   mux.   !   queue   !   shout2send   ip=xxxx   port=xxxx   username=xxx   password=xxx   mount=/video.webm   streamname=xxxx   description=xx   genre=xxx   -   See   more   at: [[http://forum.sourcefabric.org/discussion/comment/27755#sthash.XS4JT0MG.dpuf|  http://forum.sourcefabric.org/discussion/comment/27755#sthash.XS4JT0MG.dpuf]]

serveur de stream

  • Sa chaine de télé chez free
  • le multicast, IPV6
  • L'alternative open source : freej comme régie de montage/tournage en ligne
  • diffusion_video_live_-_streaming.txt
  • Dernière modification: 2018/09/27 17:51
  • par serge