Streaming

WebRTC Hardware Encoding and Streaming with the Osprey Talon

SUMMARY

Hardware encoders can now natively support WebRTC thanks to WHIP, allowing for low-delay broadcast quality streams to browsers, apps, and smart TVs.


From its inception WebRTC has been synonymous with speed and quality, prompting broadcasters and content owners to rethink their real-time streaming workflows. This is especially true in markets that cater content for browsers, apps, smart TVs, and game consoles where users demand “real” real-time streaming for live events such as concerts and sports. 

It is no surprise then that the creation of a WebRTC-HTTP ingestion protocol (WHIP) has encouraged hardware manufacturers to begin natively supporting WebRTC encoding, hoping to power the next generation of broadcasting. One such company, Osprey Video, was an early adopter of WHIP providing multiple WHIP-enabled hardware encoders and partnering with a number of WebRTC service providers.

In this guide, we’ll be demonstrating how you can connect and deliver a 1080p H.264 WebRTC stream with an Osprey Talon 4k-SC encoder using Dolby.io Streaming.

Image of the author via the camera, connected to the encoder which is streaming WebRTC to an online viewer. The image highlights the trip statistics including a round trip time of 18 ms for a 1080p stream.
An example of a stream, captured in 1080p and delivered to a browser using the Osprey Talon encoder with a Round Trip Time (RTT) of only 18ms.

Setting up an Osprey Encoder to stream WebRTC

To natively encode WebRTC and stream it, you will need three things:

To get started we first must set up the camera and the encoder. The camera can be connected to the encoder via an HDMI or SDI cable and the encoder can be connected to your local network via an ethernet cord. Next, you can power on the encoder by connecting the power cord and pressing the power button on the front of the device.

The image highlights the author holding the Osprey Talon encoder where the display on the encoder says the stream has started and the power button is lit up.
The Osprey Talon 4K-SC Encoder with WHIP support for WebRTC streaming powered on.
The image depicts the back of the encoder including an ethernet connection, usb connection, SDI out connection, SDI in connection, HDMI in connection, and a 12VDC 2.5A power connection.
The back of the Osprey Talon encoder including all inputs and outputs.

With the device powered and connected, it is now discoverable on your local network. You can connect to it using a computer after downloading and running the Talon Boss interface.

The image shows the Osprey BOSS user interface where you can see the encoder connected via the local network.
The Talon BOSS Pro interface with the Encoder connected via the local network.

Click on your device and launch the Osprey Web Interface. To log in you will use the default credentials Username: admin and Password: osprey, which can be changed once you log in. If your device isn’t appearing on the Talon BOSS interface, refer to the Talon Pro Encoder Manual for a list of common issues and fixes.

From here, the web interface will open, and we can begin configuring our encoder.

An image of the Osprey Web Interface dashboard providing information on the encoder, connections, and thermals of the device.
The Osprey Web Interface connected to the Talon Encoder.

To configure the encoder, we must first click on Channels then Channel 1. From here need to specify the protocol, in this case, WebRTC, which we can do by setting the Protocol to Dolby.io. With the protocol defined, we can switch over to our Dolby.io dashboard to find our Stream Name and Publishing Token.

The channels tab of the web interface with the protocol highlighted to indicate that the protocol should be set to WebRTC Dolby.io. Additionally the stream name and publishing tokens are blurred out.
Set the protocol to Dolby.io (WebRTC) on Channel 1 of the Web Interface.

If you haven’t already created a free Dolby.io account, now is a great time to do so. From your Dolby.io dashboard switch over to Streaming and create a token by clicking the purple plus icon in the top right corner.

The Dolby.io streaming dashboard token creation widget. The token label is set to WHIP otherwise all other settings are ignored on the image.
Create a Dolby.io Streaming token for the Encoder.

In this case, we can leave the settings set to default, however, there are a number of different options you can alter for securing tokens, recording, and even specifying which Dolby.io Streaming cluster region to use. To learn more check out the documentation or this guide on securing Streaming tokens. Otherwise, we can click Ok and create the token. Click on the Manage Token button, select the API tab, and copy our Stream Name and Publishing Token.

Image highlights the API tab of the newly created token where you can access your stream name and publishing token.
Get your stream name and Publishing token from the API tab of the newly created token.

We can paste these credentials in the corresponding sections and switch back to the main dashboard where we should see the Output Channel Status and the option to start the stream. Once started, the stream will load a preview picture and begin streaming out to the viewer.

Image of the Osprey web interface dashboard. The output channel status now says the stream has started and includes a preview image captured by the camera.
By pressing start the encoder is now streaming content to the Dolby.io Streaming servers.

The hosted streaming player can be found by formatting a URL with your Dolby.io streaming credentials as below:

https://viewer.millicast.com?streamId=<YOUR_ACCOUNT_ID>/<YOUR_STREAM_NAME>
Image of the author via the camera, connected to the encoder which is streaming WebRTC to an online viewer. The image highlights the trip statistics including a round trip time of 18 ms for a 1080p stream.
Here we can see the output of the encoder streaming to the Dolby.io web viewer. The media statistics on the left side highlight Round Trip Time (RTT) and Video Resolution.

In addition to using the viewer, you can also ingest the content into OBS for remote live production or create your own live stream viewer app.

WebRTC Encoders are a Perfect Match

By natively encoding WebRTC the Osprey Talon ensures that quality and speed are prioritized allowing the streams to be used for all kinds of solutions such as remote live productionsportscasting, and even live auctions. In addition to WebRTC, the encoder can also be used for a number of other streaming protocols that Dolby.io supports including Secure Reliable Transport or SRT streaming and Real-Time Messaging Protocol or RTMP streaming

Braden Riggs

Developer Advocate

Born and Raised in Australia and now Living in San Francisco, Braden joined the Developer Relations team in 2021 after graduating from UC San Diego with a degree in data science. Braden loves to create apps and content for the Dolby.io Blog, YouTube channel, and the samples GitHub. When not working you can find Braden surfing, hiking, or exploring San Francisco.

Get Started

Drive real-time interactions and engagement with sub-second latency

We are more than just a streaming solutions provider; we are a technology partner helping you build a streaming ecosystem that meets your goals. Get started for free and as you grow, we offer aggressive volume discounts protecting your margins.

Developer Resources

Explore learning paths and helpful resources as you begin development with Dolby.io.

Copy link
Powered by Social Snap