Day[33/100] #100DaysOfCloud – Jonnychipz – Live Streaming with Azure!

Hi All, so over the last few months I have slowly been building up my knowledge and home set up with a view to at some point getting a bit more active in the community with some Youtube videos around Azure and maybe looking at the concept of live streaming. Not with anything specific in mind, but purely to educate myself on the technologies involved, help myself gain more confidence with public speaking, and also to help me articulate complicated technology solutions in as elegant way as possible! Basically I’m looking to utilise the medium of Live video conferencing and streaming to help with my personal development as a technologist and a Microsoft Azure enthusiast!

So Why the post John?

I thought I would draft up this initial post and title it ‘Live Streaming with Azure!’ to highlight some of the capabilities and maybe explore why you might want to utilise Azure to assist with your Live Streaming.

My thoughts with this post were to consolidate all the learnings of Live Streaming I have encountered over the last few months and relate them to learnings that I have covered off around Azure Media Services (AMS)! So I will start off with a few prerequisites and assumptions as to where you might need to be before looking at AMS.

Starting Point

So……. you have decided that your 7 year old child might be onto something and that actually becoming a YouTuber is not necessarily a bad place to be?! (Did I hear a few more sniggers and chuckles?!) I’m sure I did, but honestly hear me out before you start judging 🙂

I know we don’t need to stray too far under the current climate to realise the importance and stamp of approval video conference platforms such as Microsoft Teams and Zoom have gained over the last few months, and how much of a positive impact they have played in ensuring businesses have been able to continue to function, Doctors have been able to conduct virtual meetings, our schools have used the technology for teaching our children. The positive impact of such technology is not that hard to find. So where does ‘Live Streaming’ or YouTube videos come into play? What exactly do my kids mean when they say ‘I want to be a YouTuber’, or that they are ‘Streaming on Twitch’, or they have a ‘Discord’? Lets dig a bit more!

I’m sure the vast majority of people know the answers to these questions! Well I’m sure that they think they know the answers as that is exactly where I was about 3-4 months ago, and I was well, quite simply wrong! There is far more to it than meets the eye. I’m not going to go deep on other points, but hopefully it’s enough to get you thinking!! So hopefully this post will help others!

Im not going to dwell too much on the ‘why’ of becoming a ‘Streamer’ as there will invariably be so many different reasons, for me like I said, its to learn more about the state of the landscape in this seemingly more and more widespread adoption!

So you have a laptop with a camera and a microphone, this is all you need to start on your live streaming adventures……. well and a place to stream to (We will get back to this point later!)

Why Stream or Create YouTube Content? Why cant I just use Zoom or Teams?

Ok again, such a broad scope of question here, so Ill try and summarise:

Live Stream: Public Broadcast conducted from a single point (usually your PC, Mac or Phone) to a streaming service, (typically YouTube, Twitch, FaceBook Live, Twitter, Instagram) for consumption by your adoring fanbase/audience. Usually the broadcast will include some elements of broadcasting capabilities, like multi camera, overlays, lower thirds for information, graphics, live transitions and a mixture of Scenes and collections of stream element sources that can be real time displayed on a Live Stream. Live streams can persist or disappear once the user stops broadcasting.

Image result for twitch logo
Image result for facebook live
Image result for youtube logo

YouTube Content: Usually a well prepared piece of content, recorded and edited using video editing software, may be similar in content as a live stream, but just pre-recorded. More time and care can be given to the production of the Video Content, but generally these pieces of content persist online not just in YouTube, but on many publicly available web services.

Image result for teams logo

Teams and Zoom: Completely different generally speaking. Of course you could use Teams or Zoom to create a pre recorded piece of content, or you could make a teams or zoom call open to the public and invite anyone to join. But typically these services are aligned more to Business or personal calling and video conferencing. Yes they do have elements to enable Live Broadcasting, but I would typically relate these tools more towards the Business world and are tools to engage and arrange meetings between colleagues, business partners or personal friends and family to keep in touch.

Image result for zoomlogo

I don’t profess to be a social media expert, but more of an avid user! Now we know that social media has moved, changed, grown like everything else over the years and it will inevitably continue to evolve.

Laptop with a camera and Microphone, is that ‘all’ I need?

Technically, yes sort of, however, I would suggest that if you are looking into live streaming, then you will at least be wanting to offer an upgrade to a basic web camera and sound. If like me you laptop fan stays on high whenever you ask it to do more than print a word document, you soon realise that having a call using the internal mic sounds like a helicopter landing in the background to other participants, so you might want to consider an external condenser microphone.

Again I’ll not dwell on what kit you have or don’t have but lets just assume you have the following bits of equipment:

Image result for scarlett 4i4
Image result for webcam brio
Image result for condenser mic
  • Audio Interface (for one or more external microphones or audio inputs)
  • HDMI Capture Card(s) to capture a games console, or other video camera as an input
  • WebCam or DSLR Camera – Maybe you want to increase the quality of your camera footage, or maybe you want multiple camera angles
  • Lighting – Maybe to light your face up, or some funky lighting affects in the background of your shot.
  • Microphone(s) – A nice phantom powered Condenser microphone that gives your voice that warm silky tone as you speak to your audience, maybe you have another dynamic microphone or wireless microphone for different video shots.
  • A PC or MAC, basically to plug all of this stuff into to help piece your stream together!
  • Another necessary piece of software would be some Video Broadcast software, that allows you to pull all of the Cameras and Microphones together, maybe show a PowerPoint slide or image overlay on a video, maybe you want to use a chroma key to fad out the back ground and make a generic image float on top of your video (chroma key = green screen). There are many pieces of software capable of creating this broadcast. The one I use as its Free, is Open Broadcast Software (OBS).
  • Once you have all of this sorted you finally need to find a place to stream to!!! – Public? Private? Which outlet – The three main platforms for live streaming at the moment seem to be – YouTube, Twitch, Facebook Live.
  • *Sorry – Finally – You need content but we wont worry about this just yet!

Connect OBS to a Streaming Endpoint

Ok so Im not going to use this an a point to learn about OBS, YouTube is ull of some great content, or who knows, maybe I will do a couple of video s on that subject!! But basically, once you have your scenes and sources all configured and ready to GO Live, you nee dto tell OBS where you are going to stream to.

Under settings, you can see the number of options you have built into OBS, this is just half of them:

So if we select, Twitch, this implies you have a Twitch account and you can get a copy of the stream key, which is essentially like a secret that your OBS software knows to give Twitch when t starts streaming so Twitch knows which account it needs to display the stream to!

So I click the Connect Account button, log into Twitch, and Im all set!

Twitch even brings in a few elements from my Twitch Stream, like a way to name my stream from OBS and a way to monitor the chat on my Twitch channel directly in OBS, which is great!

WAIT WAIT STOP JOHN…….. I though you said that this was about Live Streaming using Azure?!

Image result for azure media services

Ok yes I did, but I just wanted to show you that every step of the way with Live streaming, from changing you microphone, to getting a different camera, to adding a second or third camera, can my iPhone be used as a 4th camera…..what software do I want to use? What scene or transition do I want to use? There are so many questions and options of ways to work!

Lets rewind a bit, lets stop at the part where we are choosing where we want to stream to and how we want our audience to consume our broadcasts. Has our broadcast matured a bit, or significantly? Are we now at the point where just streaming to Facebook or YouTube doesn’t offer the level of credibility or security that you now need for your streams? Maybe you want to develop your own streaming platform that you completely manage yourself and utilise for your own ends? Maybe you want to develop a streaming platform and website where you can define access to content base don a user name and password? Maybe you want to hook it up to a paid content and ticketing services? OK so, yes there are other 4rd party providers that offer these services, however what If you wanted to build your own?! Maybe you want to analyse and send your videos through an automated AI an ML Model to do something unique for your business!!!! Enter, Azure Media Services (AMS).

Azure Media Services (AMS)

The above schematic can be viewed in the following way……. lets say that the signal into the Live Event is coming from your Laptop with OBS installed and the streaming endpoint is the function that our OBS connects into, that is what we can set up in AMS.

  • OBS on my laptop
  • Live Event in Azure
  • Output to AN Archive and our streaming endpoint
  • Watched and consumed by users

Lets firstly create an instance in our Azure Subscription of AMS:

Next lets ensure that the default Streaming Endpoint is started (note that this is where you can enable a CDN to ensure your media is available to the nearest source for your global audience!)

We now configure our Live Event:

We ensure our live event is running:

We create our output to store our copy of the live stream to enable users to rewind and reply our stream for up to 8 hours, this data is held in a storage account, we also create a locator that describes how our stream can be played back by our users:

FInally we copy the input URL and paste this into our OBS:

If we click on settings in OBS, then select stream, we can choose the custom option and paste our Input URL:

Note that the stream key can be anything, it has to have something in there so this can be a bunch of random text!

Lets GO Live!!!!

And there we have it! This has been a bit of an introduction to streaming and how this can be utilised in Azure.

Summary

Clearly cost will be the obvious point to note when it comes to running live streams in Azure, and clearly if YouTube and Twitch suit your needs then that’s great. However, hopefully you will have a better understanding how you can build your streaming endpoints into Azure and utilise other Azure features to conduct video analysis, over a secure using DRM service, or paid for services, or simply start up your own streaming business and offering Video on Demand! I hope you have found this article useful.

Please do reach out if you have any questions and I will do my best to answer.

Next steps from here would be to work out how you want your consumers to consume your video content. There is a default Azure Media Player and also Azure Media Indexer that can be explored in line with additional Media Locaters to ensure you have the right configuration to understand how your customers can consume these services!

Happy Streaming!!!

100DaysOfCloud Overview

My Main ReadMe Page is all set up with a bit about me!

The guys at 100DaysofCloud have set up the GitHub repo to be cloned and also have a great repo containing ideas and areas to collaborate on: https://github.com/100DaysOfCloud/100DaysOfCloudIdeas

My Github Journey tracker can be found here: https://github.com/jonnychipz/100DaysOfCloud

Please Watch/Star my repo and feel free to comment of contribute to anything I push! I really look forward to hearing from anyone who is going to jump on the journey around the same time as me! Lets see where I get to in 100 days!

I would encourage others to jump on this journey, I’m not sure that I will be able to commit every day for 100 days, but as long as I can complete 100 days that will be great!

http://www.100daysofcloud.com

Leave a comment