Outils pour utilisateurs

Outils du site


diffusion_video_live_-_streaming

Ceci est une ancienne révision du document !


Diffusion vidéo live - streaming

Diffuser de la vidéo en direct sur le net : le streaming ou webcasting live

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 et / ou youtube

Open Broadcast Studio est un super soft libre pour le streaming audio vidéo https://obsproject.com/fr

Pour utiliser OBS pour envoyer un stream à icecast, il faut feinter et utiliser la fonction enregistrement plutôt que streaming (du coup ça permet de streamer vers icecast et youtube en même temps !), avec les paramètres ci-dessous

Les configurations :

  • Type : Sortie Personnalisée (FFmpeg)
  • Chemin d'accès ou URL

icecast:source:@labomedia.org:8000/video.ts * Format du conteneur : mpegts * Paramètre du muxer content_type=video/m2ts ice_genre='Hidden' ice_name='Flusser' ice_description=event ice_url='https://p-node.org' * Débit vidéo : voir les débits conseillés sur youtube en fonction de la résolution 4500 Kbps * Intervalle d'images clefs 50 * Encodeur vidéo : libx264 * Débit audio 160 Kbps * Encodeur audio : aac 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' Pour compiler OBS sous Debian 9, il faut upgrader CMAKE comme cela : https://askubuntu.com/questions/829310/how-to-upgrade-cmake-in-ubuntu === 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  –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  –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:8000amaisonpop.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:8000labo.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}”}' * ffmpeg2theora : en mode ligne de commande, légéreté assurée ! * Les ressources de giss.tv : http://giss.tv/wiki/index.php/Streaming_Tools === Intégrer son stream video dans une page web === Mode HTML5 <code html> <HTML> <video width=“320” height=“240” controls=”” src=“http://laboratoryplanet.org:8000/labo.ogg” autoplay=“” tabindex=“0”> </video> </HTML> </code> Code pour compatibilité HTML4 avec applet cortado comme lecteur alternatif <code html> <HTML> <video width=“480” height=“360” controls=“” src=“http://laboratoryplanet.org:8000/labo.ogg” autoplay=“” tabindex=“0”> </HTML> <html><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></html><a_espace_href=“http://giss.tv/dmmdb//com.fluendo.player.Cortado.class” class=“rlarqfzxhwppnvznpczc”><html></a></html> <HTML> </video> </HTML> </code> 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 === * blogs.technet.com: html5 ce qu'il faut savoir sur la balise video * http://www.flumotion.com/blog/the-current-state-of-html5-video Du stream en H264 * via gstreamer: gstreamer.freedesktop.org gst plugins ugly plugins x264enc * d'autres ressources sur gstreamer http://blog.nicolargo.com/gstreamer * installer toutes les composantes de gstreamer sous ubuntu http://blog.nicolargo.com/2010/05/installation-de-tout-les-composants-gstreamer-sous-ubuntu.html  sudo add-apt-repository ppa:gstreamer-developers * * gstreamer et le h264 http://blog.nicolargo.com/2009/06/gstreamer-et-le-codec-x264.html * gstreamer vs caméra axis ip http://blog.nicolargo.com/2009/04/gstreamer-aime-les-cameras-ip-axis.html * transcodage http://blog.nicolargo.com/2010/07/scripts-de-transcodage-de-de-videos.html * une bonne ressource avec des exemples de pipeline http://blog.nicolargo.com/2009/02/jai-streame-avec-gstreamer.html Du stream avec vmc * Une ressource : http://stackoverflow.com/questions/6297348/vlc-record-webcam-and-stream-to-chrome-linux === 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 ==== serveur de stream ==== * Icecast2 : indétronable, accepte du stream audio vidéo (au format théora en ogg) en nombre selon les capacités du serveur et du tuyau internet qui y est raccordé * flumotion : une suite d'outils opensource avec éventuellement un support commercial par flumotion.com * Configuration http://blog.nicolargo.com/2010/04/configuration-pas-a-pas-dun-serveur-de-streaming-flumotion.html * kaltura : une application coté serveur qui peut être combinée à du Red5 pour faire du stream live, version payante plus complète que la version open source dite Community CE * Apple Darwin Streaming Server : permet de streamer du h264 sur une base MacOS ===== L'avenir du futur ===== * Sa chaine de télé chez free * le multicast, IPV6 * L'alternative open source : freej comme régie de montage/tournage en ligne ===== Réf ===== * Logiciels windows, Mac Os, Linux fonctionnant avec icecast (lecture et encodage) * Le Wiki de radio404 et sa mediabox404

diffusion_video_live_-_streaming.1588889164.txt.gz · Dernière modification : 2020/05/07 22:06 de Benjamin Labomedia