==== Streamer avec OBS Studio vers un serveur Icecast et / ou youtube - Peertube ====
Open Broadcast Studio est un super soft libre pour le streaming audio vidéo https://obsproject.com/fr
* Un bon tutoriel : https://epir.at/2018/03/08/obs-icecast-streaming/
* Un paquet Obs-studio prêt à l'emploi pour Debian Stretch {{ media_09:obs-studio_20190420-git-1_amd64.deb |}}
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
{{media_10:osbconfig.png?direct&600|}}
{{media_10:obsstudioconfigicecastlabomedia.png?direct&600|}}
**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='6-Hidden' ice_name='labomedia video stream' ice_description=event ice_url='https://labomedia.org'
Débit vidéo : voir [[https://support.google.com/youtube/answer/2853702?hl=en|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 [[https://github.com/obsproject/obs-studio/wiki/Install-Instructions#debian-based-build-directions|OBS sous Debian 9]], il faut upgrader CMAKE comme cela : https://askubuntu.com/questions/829310/how-to-upgrade-cmake-in-ubuntu
Pour envoyer un flux depuis OBS-Studio: [[https://obsproject.com/forum/resources/obs-studio-send-an-udp-stream-to-a-second-pc-using-obs.455/|Send an UDP Stream to a second PC using OBS]]
==== Transcoder un stream provenant de OBS via Icecast et l'intégrer dans une page web avec un player HTML5 ====
On transcode la vidéo provenant de OBS pour la transformer au format HLS, du stream transporté par HTTP
ffmpeg -i http://stream.p-node.org/flusser.ts -s 640x400 -c:v libx264 -f ssegment -hls_flags delete_segments -segment_list playlist.m3u8 -segment_list_type hls -segment_list_size 10 -segment_list_flags +live -segment_time 10 out_%6d.ts
On intégre la vidéo transcodée à l'aide d'un player HTML5 + javascript
videojs-contrib-hls embed
Video.js Example Embed
la ligne de commande brute de transcodage coté serveur : ffmpeg -i http://stream.p-node.org/flusser.ts -s 640x400 -c:v libx264 -f ssegment -hls_flags delete_segments -segment_list playlist.m3u8 -segment_list_type hls -segment_list_size 10 -segment_list_flags +live -segment_time 10 out_%6d.ts à lancer dans le répertoire où se trouve la page
Voir plus plus d'infos :
* http://videojs.github.io/videojs-contrib-hls/
* https://stackoverflow.com/questions/39431714/ffmpeg-transcode-to-live-stream
* https://docs.videojs.com/tutorial-setup.html
* https://github.com/videojs/videojs-contrib-hls
* Tuner icecast pour OBS https://epir.at/2018/03/08/obs-icecast-streaming/
==== Streaming vidéo sur Android ====
* Possible avec [[https://f-droid.org/en/packages/info.dvkr.screenstream/|ScreenStream logiciel Android]] qui envoie l'écran de l'Android (pas le son) en streaming
==== Faire du streaming vers les smartphones et tablettes via la balise video en HTML5 ====
=== Etat des lieux des possibilités ===
* [[http://blogs.technet.com/b/stanislas/archive/2011/06/21/html5-ce-qu-il-faut-savoir-sur-la-balise-video.aspx|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: [[http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly-plugins/html/gst-plugins-ugly-plugins-x264enc.html|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| http://forum.sourcefabric.org/discussion/comment/27755#sthash.XS4JT0MG.dpuf]]
==== serveur de stream ====
* [[http://www.icecast.org/|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é
* [[http://flumotion.net/|flumotion]] : une suite d'outils opensource avec éventuellement un support commercial par [[http://www.flumotion.com/en/|flumotion.com]]
* Configuration http://blog.nicolargo.com/2010/04/configuration-pas-a-pas-dun-serveur-de-streaming-flumotion.html
* [[http://www.kaltura.or|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
* [[http://dss.macosforge.org/post/40/|Apple Darwin Streaming Server]] : permet de streamer du h264 sur une base MacOS
* [[https://owncast.online/|Owncast is a self-hosted live video and web chat server]] for use with existing popular broadcasting software : un petit nouveau à regarder
===== L'avenir du futur =====
* Sa chaine de télé chez [[http://www.free.fr/adsl/pages/television/tv-perso.html|free]]
* le multicast, IPV6
* L'alternative open source : freej comme régie de montage/tournage en ligne
===== Réf =====
* [[http://www.icecast.org/3rdparty.php|Logiciels windows, Mac Os, Linux fonctionnant avec icecast (lecture et encodage)]]
* [[http://rezal404.org/wikini/wakka.php?wiki=FaireSaRadioMenu|Le Wiki de radio404 et sa mediabox404]]
{{tag>bj streaming video}}