Skip to main content

Streaming

Streaming (live video broadcasting) - real-time video transmission with public or private viewer access.
The output video stream can be delivered to viewers in different protocols and quality levels.
Live transcoding converts the source video into various formats before delivering to viewers.

Stream Object

The system creates a stream object to manage the service. Key parameters:

  • Output protocols: llhls, webrtc
  • Resolution options (for player quality selection): 480p, 720p, 1080p, 1440p, bypass (no transcoding)

Setup

When configuring, specify desired output parameters: protocols and resolutions.
The system will then generate unique URLs for broadcasters and viewers.

For broadcasters:

  • rtmp://<uuid-1>.stream.arviol.com:1935/<uuid-2>/stream-key
  • rtmps://<uuid-1>.stream.arviol.com:1940/<uuid-2>/stream-key

For viewers:

  • llhls - https://<uuid-1>.play.arviol.com:443/<uuid-2>/stream-key/llhls.m3u8
  • webrtc - wss://<uuid-1>.play.arviol.com:3334/<uuid-2>/stream-key/webrtc

Publishing Streams

Multiple applications support stream publishing.
We recommend Open Broadcaster Software - a popular free, open-source solution for video recording and live streaming.

Configure these settings in your streaming application: OBS Settings

Recommended OBS encoder output settings: OBS Encoder Settings

Viewing Streams

Use any online player to view streams by entering the viewer URL unchanged.

llhls players:

webrtc players:

Player URL Example

Signed URLs

Signed URLs (signed policy) control access for both broadcasters and viewers.

Use cases for signed URLs:

  • Restrict publishing/viewing to specific IP addresses
  • Set URL expiration to prevent unauthorized distribution
  • Schedule URL activation to prevent premature access
  • Combine multiple restrictions as needed

Each stream can have custom restriction parameters.
To generate signed URLs, specify the stream and rule set:

  • url_expire (datetime): URL expiration time
  • url_activate (datetime, optional): URL activation time
  • stream_expire (datetime, optional): Stream expiration time
  • allow_ip (str, optional): Allowed IP range (CIDR notation)

Resulting URLs format:

  • rtmp://<uuid-1>.stream.arviol.com:1935/<uuid-2>/stream-key?policy=eyJ1xfZX&signature=tBmYnA
  • rtmps://<uuid-1>.stream.arviol.com:1940/<uuid-2>/stream-key?policy=eyJ1xfZX&signature=fod0iB
  • https://<uuid-1>.play.arviol.com:443/<uuid-2>/stream-key/llhls.m3u8?policy=eyJxfZXhJ&signature=NALnlHMqy
  • wss://<uuid-1>.play.arviol.com:3334/<uuid-2>/stream-key/webrtc?policy=eyJ1c1MH0&signature=wMMPy-LBFal2E

Restreaming

Restreaming (push publishing) forwards incoming streams to third-party platforms like Twitch, YouTube, VKVideo, etc.

Enabling/disabling restreaming creates/removes push_publisher objects.
When active, streams sent to Arviol servers automatically forward to specified external services. Viewers can access content through both the original stream URL and platforms like Twitch.

Multiple restreams can run simultaneously for a single stream object.

note

Stopping the source stream doesn't delete push_publisher objects. Restarting the main stream automatically resumes restreaming with previous settings.

Stream Recording

When stream recording is enabled, video is saved in original quality as 1-minute fragments and uploaded to file storage. Videos are available for download for 1 month after upload. All recordings are private - only the stream owner can get access links.

note

There is a delay when uploading recordings to file storage.

Stream recording can be enabled or disabled at any time.