Connecting using JWT
Embedded player
Provide the auth token via query param.
<iframe
width="640"
height="360"
src="https://player.vindral.com/?channelId=your_channel_id&auth.token=your_signed_token"
frameborder="0"
allow="autoplay; fullscreen"
allowfullscreen
></iframe>
Web SDK
Provide the auth token via options.
const vindral = new Vindral({
authenticationToken: "your_signed_token",
url: "https://lb.cdn.vindral.com",
channelId: "your_channel_id",
minBufferTime: 1000, // configures the target buffer time in milliseconds
});
A token with only a channelGroupId claim will also work as long as the requested channel is part of that group.
RTMP
Instead of using the streamKey for publishing, use the channelId, and a token with ingest permission and pass along the token as &authToken=<token>
Examples are provided where u can replace the <channelId> and <token> for your specific channel values.
Example - FFmpeg
docker run --rm -it jrottenberg/ffmpeg -re -f lavfi -i testsrc="1280x720:rate=25" -f lavfi -i "sine=f=1000:sample_rate=48000, aformat=channel_layouts=stereo" -af "volume=0\:enable=gt(mod(t\, 1)\, 0.1)" -acodec aac -b:a 64k -vcodec libx264 -preset veryfast -tune zerolatency -profile:v baseline -pix_fmt yuv420p -g 25 -f flv "rtmp://rtmp.global.cdn.vindral.com/publish/<channelId>?authToken=<token>"
Example - OBS Studio
Custom service
Vindral service
SRT
Replace the normal streamKey placed in the streamId using r=, with the channelId such as: r=<channelId>.
Add the token with ingest permission using the key jwt so the full streamId results in #!::r=<channelId>,jwt=<token>,m=publish
Examples are provided where you can replace the <channelId> and <token> for your specific channel values.
Example - FFmpeg
FFmpeg example using docker image, where you can replace the <channelId> and <token> for your specific channel values.
docker run --rm -it jrottenberg/ffmpeg:8-alpine -re -f lavfi -i testsrc="1280x720:rate=25" -f lavfi -i "sine=f=1000:sample_rate=48000, aformat=channel_layouts=stereo" -af "volume=0\:enable=gt(mod(t\, 1)\, 0.1)" -acodec aac -b:a 64k -vcodec libx264 -preset veryfast -tune zerolatency -profile:v baseline -pix_fmt yuv420p -g 25 -f mpegts 'srt://srt.global.cdn.vindral.com:3333?streamid=#!::r=<channelId>,jwt=<token>,m=publish'
Example - OBS Studio
Custom service
Requesting live thumbnails
Provide the auth token via auth.token query param.
https://lb.cdn.vindral.com/api/thumbnail?channelId=<your_channel_id>&auth.token=<your_signed_token>
A token with only a channelGroupId claim will also work as long as the requested channel is part of that group.
WebRTC
Full example for JWT with WebRTC ingest, can be found at the WebRTC documentation