HowTo: Third-Party Stream Ingest

You want your live content to be streamed over the C3VOC infrastructure during CCCongress or another large event? Here's how.

(Recordings have to be dealt with separately)

Get in Touch

To make sure your stream works on day 1 of the event we need to know of it beforehand so we can:

configure your ingest endpoint

provide appropriate transcoding-capacity

adapt the streaming website

When we have provided you with an ingest endpoint name to use you just need to configure your encoder for one of the formats below.

Icecast Matroska Ingest

This is our preferred format for origin streams, because it supports open codecs and multiple audio/video-channels in a single-stream.

Stream-Format

Transport: Icecast

Container: mkv (Matroska)

Video-Streams:

H.264, 1920×1080, 25 fps

Audio-Streams:

(atleast 1, up to 3)

AAC LC, Mono, 48KHz, 192KBit/s

ffmpeg example

ffmpeg -re -y -nostdin -hide_banner \
-thread_queue_size 512 -i … \
-c:v libx264 -preset:v veryfast -profile:v main -pix_fmt yuv420p -flags +cgop \
-threads:v 0 -aspect 16:9 \
\
-r:v:0 25 -g:v:0 75 -crf:v:0 23 -maxrate:v:0 4M -bufsize:v:0 18M \
-map 0:v:0 \
\
-c:a aac -b:a 192k -ar 48000 -ac 1 \
-map 0:a:0 \
\
-f matroska \
-content_type video/webm \
-password {your_password} \
icecast://ingest.c3voc.de:8000/{your_endpoint}

RTMP Ingest

RTMP is the most widely used format for origin streams and is supported by many hardware/software-encoders. It is however limited to H264 video and Stereo MP3/AAC audio.

Stream-Format

Transport: RTMP

Container: FLV

Video-Streams:

H.264, 1920×1080, 25 fps

Audio-Streams:

AAC LC, Stereo, 48KHz, 192KBit/s

ffmpeg example

ffmpeg -y -re -nostdin -hide_banner \
-thread_queue_size 512 -i … \
-c:v libx264 -preset:v veryfast -profile:v main -pix_fmt yuv420p -flags +cgop \
-threads:v 0 -aspect 16:9 \
\
-r:v:0 25 -g:v:0 75 -crf:v:0 23 -maxrate:v:0 4M -bufsize:v:0 18M \
-map 0:v:0 \
\
-c:a aac -b:a 192k -ar 48000 -ac 2 \
-map 0:a:0 \
\
-f flv \
rtmp://ingest.c3voc.de:1935/stream/{your_endpoint}?auth={key}

OBS-studio example

Settings

Stream

Service: Custom

Server: rtmp://ingest.c3voc.de/stream/

Stream Key: {your_endpoint}?auth={key}

Output

Output Mode: Advanced

Streaming

Encoder: Your choice (x264, vaapi, nvenc)

Encoder Settings:

Rate-Control: VBR (if selectable)

Bitrate: 4000 Kbps

Keyframe Interval: 3 seconds

Video

Base (Canvas) Resolution: 1920×1080

Output (Scaled) Resolution: 1920×1080

Integer FPS Value: 25

**Required H.264 encoder settings

The stream needs to adhere to a certain GOP-Size/Keyframe Interval to work properly with the DASH-/HLS-Chunker. We can reencode your stream to fix that, but this degrades quality and requires additional capacity on our part.

GOP-Size (Keyframe Interval): 3s

Encoding-Mode: VBR (Variable Bitrate)

Maximum Bitrate: 4Mbit/s