Stream IRL: Smartphone ➡️ SRT (h265) ➡️ OBS ➡️ Twitch

in #hive-1963963 years ago

Hello

Aujourd'hui c'est: partage de mon expérience (plutôt récente) sur les Live IRL (In Real Life) sur Twitch.

On m'a déjà demandé plusieurs fois qu'elle était ma configuration pour faire mes Live IRL Twitch, comme par exemple les streamers Twitch @itharagaian ou destropp, je me suis donc dit que ce serait bien de faire un tutoriel et retour d'expérience sur le sujet 😉

Je vous préviens tout de suite, je n'ai absolument rien inventé, ayant suivi les excellentes vidéos youtube sur le sujet du Twitcheur Croate sprEEEzy


live_irl_srt_obs_twitch.jpg


Today it's: sharing my (rather recent) experience on Live IRL (In Real Life) on Twitch.

I've already been asked several times what my setup is, for doing my travel & outdoor IRL stream on Twitch, so I thought it would be nice to do a tutorial and feedback on the subject 😉

I warn you right away, I didn't create anything! My setup simply reflects the excellent advice of the Croatian Twitcher sprEEEzy through its series of videos on Youtube on the subject. Then for my English reader who will be interested, I suggest you follow his videos and I will continue my post only in French.


Prerequis

Pour mettre en place cette solution peu honéreuse mais de qualité vous aurez besoin de:

  • 1 connexion 4G ou 5G suffisante pour pouvoir uploader 1500kbps par secondes. Pour vous donner une idée un stream de 5 heures va utiliser 7Go de votre forfait (1.4Go par heure de stream)

  • 1 smartphone avec une bonne qualité photo/video

  • 1 PC/Mac/Linux à la maison (pas besoin d'un foudre de guerre)


Le Concept

Le concept de cette configuration est d'utiliser votre smartphone pour envoyer directement un flux vidéo compressé en HEVC (H265) via le protocol Open Source SRT (plus optimisé pour le stream IRL que le protocol RTMP) sur votre PC/Mac/Linux à la maison qui se chargera via OBS de le décoder et le renvoyer à Twitch.

Nous mettrons en place aussi un logiciel surveillant la qualité de la réception du stream sur le PC/Mac/Linux grace au websocket d'OBS qui basculera automatiquement sur une scène OBS spécifique en cas de coupure de flux ou de mauvaise qualité de bande passante.

Pourquoi HEVC (H265) et pas H264 ?

Tout simplement pour le gros gain en poids de la compression HEVC (H265) allant de 25% à 50%

Tableau de comparaison

ResolutionH.264H.265
480p1.5 mbps0.75 mbps
720p3 mbps1.5 mbps
1080p6 mbps3 mbps
4K32 mbps15 mbps

Pourquoi SRT et pas RTMP ?

SRT qui est un protocol Open Source et sécurisé (128/256 bit AES encryption) a l'avantage sur la faible latence (délai entre le moment d'envoi du flux et sa réception) rendu possible du fait qu'il est beaucoup plus rapide pour transférer les données et dispose aussi d'une meilleure gestion d'erreur.


Le Smartphone

Avoir un smartphone avec une bonne optique (notamment pour le soir en basse lumière) voir une stabilisation est un plus. Vous pouvez aussi opter en option pour un stabilisateur 3 axes pour donner plus de confort à vos viewers comme le DJI OM 4 SE, ici en Thailande il est actuellement à 85 euros car DJI sort le nouveau modèle 5 SE (140 euros grosse différence hein!)

Dessus il vous faut installer:

Deuxième smartphone

Si vous décidez d'utiliser un second smartphone pour controler et piloter votre stream comme c'est le cas pour moi je vous conseil d'y installer:

  • l'application IRL Chat (que sur Android) qui vous permet de rajouter tout un tas de lien api twitch (evenements, follow...) en plus du tchat dont vous pouvez d'ailleurs définir la taille de police (bien pratique en plein soleil ou pour les bigleux comme moi)

  • Un lien vers l'url d'OBS Remote Tablet qui est Open Source (lien github) et vous permettra de démarrer/arrêter le Stream et/ou l'enregistrement ainsi que de changer de scène manuellement


Le PC/Mac/Linux

Sur votre PC/Mac/Linux à la maison, en plus d'avoir OBS Studio d'installé il vous faut aussi installer:

OBS WebSocket

Qui permet de controler OBS par websocket (que du bonheur pour les dev)

type: Open Source
Lien: https://github.com/obsproject/obs-websocket/releases/tag/4.9.1

Node.js

Le moteur d’exécution JavaScript V8 capable d'exécuter le code JavaScript en dehors d'un navigateur Web.

type: Open Source
Lien: https://nodejs.org/en/download/

SRT Stats Monitor

Un programme d'aide au streaming IRL pour les sites de streaming tels que Twitch, utilisant OBS Studio.

type: Open Source
lien: https://github.com/loopy750/SRT-Stats-Monitor


Configuration

Maintenant que nous avons installé tout ce dont nous avions besoin nous pouvons maintenant procéder à la Configuration.

Système & Réseau

Commençons par le plus compliqué comme cela ce sera fait 😉

Firewall

Vous devez authoriser l'accès aux ports udp 4444 et 8081 dans votre firewall pour que depuis l'extérieur l'on puisse accèder à OBS (websocket et SRT).

Configuration NAT (Network Address Translation)

Vous devez configurer la redirection de ports udp 4444 et 8081 sur votre box internet, configuration NAT (Network Address Translation), pour rediriger les arrivées sur ces port vers votre PC/Mac/Linux.

DNS

Vu que probablement l'adresse IP de votre box internet change régulièrement il vous faut passer par un service de gestion de DNS pour adresse IP dynamique comme Duck DNS (gratuit), no-ip (gratuit), DynDns (payant) ou autre au choix.

OBS

Serveur Websocket

Allez dans le menu Tools puis choisissez WebSockets Server Setting

tools.jpg

Spécifiez un mot de passe super secret pour votre serveur websocket

websocket_server.jpg

Scène LIVE

Créé une nouvelle scène que nous allons appeler live, dans celle-ci, dans source, ajoutez un media source.

Décochez local File et restart playback when source becomes active puis dans input mettez:

srt://[votre adresse ip local ex: 192.168.1.2]:8081?mode=listener&passphrase=[un autre super mot de passe]&connect_timeout=3000&latency=2000000&listen_timeout=5000000&smoother=live&transtype=live&timeout=5000000

remarque: votre PC/Mac/Linux doit avoir une adresse IP fixe sur le réseau local

Mettez le reconnect delay à 1 S

Vous pouvez maintenant rajouter à votre scène les overlays que vous voulez.

Scène LOW BITRATE

Pour que SRT Stats Monitor fonctionne correctement et bascule votre scène en cas de low bitrate, celle-ci doit impérativement s'appeler comme votre scène de live suivi d'un espace puis LBR.

Il vous faut donc créer une nouvelle scène que l'on va nommer live LBR dans notre cas.

Dedans mettez y ce que vous voulez, pour ma part j'y ai mis une vidéo en boucle + quelques infos tel que le tchat, info de mauvaise connexion ...

screenshot_2022_05_29_203044.jpg

Scène NO BANDWITH

Pour la scène en cas de perte total de connexion c'est le même principe, la seule différence est que vous pouvez l'appeler comme vous le désirez.

Scènes supplémentaires

Vous pouvez aussi créer une scène supplémentaire pour l'intro ainsi que tout autres scènes que vous voudriez utiliser manuellement via le OBS Remote Tablet

SRT Stats Monitor

Il est maintenant temps de nous occuper de l'appli SRT Stats Monitor. Les fichiers de configuration se trouvent dans Documents\Loopy SRT Monitor sous Windows, vous y trouverez aussi un readme.txt expliquant les options.

Editez le fichier config.ini qui s'y trouve et mettez les valeurs comme suis:

[config]
StreamFailDelay=5
xWindowPosition=480
yWindowPosition=320
SceneOK=live
SceneFail=[nom de Scène NO BANDWITH]
SceneIntro=live
SceneBypass=none
MediaSource1=SRTmain
MediaSource2=SRTmain
WebSocketAddress=127.0.0.1:4444
WebSocketPassword=[mot de passe super secret]
ConnectionsLog=true
FileStatusOutput=false
SceneLBREnabled=true
Scene2LBRDisabled=false
NodejsFileSystem=2
CheckUpdateOnStartup=false

[multi-camera-switch]
MultiCameraSwitch=false
TitleScene1=Main
TitleScene2=Main 2
TitleScene12=Main 1+2
ReturnPreviousScene=false
ReturnPreviousSceneRemember=false

Pour ma part j'ai choisi l'option 2 pour NodejsFileSystem m'obligeant a fermer la fenetre de commande manuellement (rien ne vous empêche d'essayer la valeur 1)

N'hésitez pas à vous référer au fichier readme.txt si vous voulez changer des valeurs.

Larix Broadcaster

Il est maintenant temps de nous occuper de notre smartphone en configurant Larix Broadcaster.

Lancez l'App puis allez dans Settings

screenshot_20220529_205112.jpg

Puis Connections

screenshot_20220529_205117.jpg

Et enfin New Connection. Dans Name mettez LIVE ou le nom que vous voulez et dans URL:

srt://[votre nom de domaine dynamique]:8081

Pour le reste c'est:

  • Mode: Audio + Video
  • SRT sender mode: Caller
  • Latency: 4 x le RTT
    Le RTT etant le temps que met un ping entre votre smartphone à faire l'aller/retour avec votre PC/Mac/Linux à la maison. Dans mon cas l'allez/retour prends 160ms j'ai donc mis ma Latency a 640
  • passphrase: [un autre super mot de passe]
  • pbkeylen: 16
  • streamid:
  • Retransmission algorithm: reduced
  • maxbw:

Et enfin validez. Maintenant que notre connexion est créé passons à la suite de la configuration, dans Settings choisissez Video puis mettez les parametres suivants:

  • Start app with: Rear Camera

  • Resolution: 1280x720
    Mes viewers n'ayant jamais le choix de résolution de mon stream je suis partie sur cette résolution pour ne lèser personne.

  • FPS: 30 fixed rate

  • Orientation: Landscape

  • Live rotation: désactivé

  • Keep streaming when not in focus: [depends de vous]
    Si vous utilisez un seul smartphone (pour streamer et gérer votre stream) cela vous permet de réduire Larix Broadcaster et lancer d'autres app sans couper le stream (tourne en arriere plan)

  • Focus Mode: Continuous auto focus

  • White balance: Auto

  • Anti-flicker: off

  • Exposure compensation: 0

  • Bitrate matches resolution: désactivé

  • Bitrate: 1500 Kbps
    Si vous passez en 1080p montez à 2250, après à vous de faire vos tests car je pense que la qualité varie selon les smartphones

  • Bitrate mode: hybrid

  • Keyframe frequency: 2 sec

  • Format: HEVC

  • HEVC profile: Main

Il se peut que vous ayez des options supplémentaires ou légèrement différentes (cela semble varier d'un appareil à un aute)

C'est pareil, ne prenez pas pour argent comptant mes valeurs, je n'ai pas encore essayé toute les valeurs possible et ce qui me conviens ne vous conviendra peut être pas donc n'hésitez pas à faire pas mal de test.


Debuggage

Tout est maintenant prêt, lancez OBS, SRT Stats Monitor et Larix Broadcaster. Lancer le flux dans Larix Broadcaster et l'image devrait apparaitre dans votre scène live sur OBS

Si tel n'est pas le cas procédez comme suit:

Connectez votre smartphone à votre réseau wifi, dans Larix Broadcaster éditer la connexion et remplacez [votre nom de domaine dynamique] dans srt://[votre nom de domaine dynamique]:8081 par l'adresse IP local de votre PC/Mac/Linux et réessayez.

  • Cas 1: cela ne fonctionne pas! Avez vous bien ajouté la règle sur le firewall de votre PC/Mac/Linux? Oui? Ok alors vous avez une erreur dans la config, essayez sans le passphrase (à retirer a la fois dans OBS et dans Larix Broadcaster) au cas ou vous auriez fait une erreur sur le mot de passe. Cela ne fonctionne toujours pas? Vous pouvez tout reprendre depuis le début

  • Cas 2: cela fonctionne sur le réseau local! Dans ce cas soit vous avez mal fait la redirection de port (NAT) sur votre box internet soit vous avez une erreur avec votre service DNS dynamique

Si vous avez des remaques ou des questions n'hésitez pas à laisser un commentaire

sep.png

Merci d'être arrivée jusqu'ici
@mintrawa :)

Merci pour votre soutien et votre confiance
en tant que producteur de blocs HIVE (témoin).

Mon post d'introduction de producteur de blocks HIVE

sep.png

Thanks for your support and trust as a HIVE block producer (witness)

My HIVE block producer (witness) introduction post

sep.png

ukrukr
NFT for Peace
NFT for Peace


Vote for my HIVE block producer account (witness): click here (via HiveSigner)

Sort:  


The rewards earned on this comment will go directly to the people(@mintrawa) sharing the post on Twitter as long as they are registered with @poshtoken. Sign up at https://hiveposh.com.

Congratulations @mintrawa! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s):

You published more than 40 posts.
Your next target is to reach 50 posts.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Check out the last post from @hivebuzz:

Hive Power Up Day - June 1st 2022

Merci beaucoup...
Malheureusement je ne pourrai pas l'appliquer tel quel car je n'ai pas le forfait adéquat, mais je pourrais tenter un truc du genre pour en WIFI :)

MErci !

!PIZZA

Tu peux tout a fait le faire pour du stream en wifi comme jardinage ou bricolage par exemple 😉

They literally have attempeted my murder and are trying to kill me with V2K and RNM. Five years this has been happening to me, it started here, around people that are still here. Homeland security has done nothing at all, they are not here to protect us. Dont we pay them to stop shit like this? The NSA, CIA, FBI, Police and our Government has done nothing. Just like they did with the Havana Syndrome, nothing. Patriot Act my ass. The American government is completely incompetent. The NSA should be taken over by the military and contained Immediately for investigation. I bet we can get to the sources of V2K and RNM then. https://ecency.com/fyrstikken/@fairandbalanced/i-am-the-only-motherfucker-on-the-internet-pointing-to-a-direct-source-for-voice-to-skull-electronic-terrorism ..... https://ecency.com/gangstalking/@acousticpulses/electronic-terrorism-and-gaslighting--if-you-downvote-this-post-you-are-part-of-the-problem

Yay! 🤗
Your content has been boosted with Ecency Points, by @mintrawa.
Use Ecency daily to boost your growth on platform!

Support Ecency
Vote for new Proposal
Delegate HP and earn more