Table of Contents

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:

  1. configure your ingest endpoint
  2. provide appropriate transcoding-capacity
  3. 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

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 12M \
    -map 0:v:0 \
    \
    -c:a aac -b:a 192k -ar 48000 -ac 2 \
    -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

URLs

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 12M \
	-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

How to test

You can play back your stream at the same endpoint you pushed to, e.g.:

mpv rtmp://ingest.c3voc.de/stream/{your_endpoint}

SRT Ingest

SRT is a relatively new streaming protocol featuring ARQ, which can theoretically support a wide range of container formats. Currently however only MPEG-TS is widely used.

Stream-Format

URLs

OBS

Same settings as with RTMP, but use the following in Settings → Stream:

Audio: Use this OBS Fork (compiled version) to be able to stream multiple audio Streams (for translations).

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 12M \
	-map 0:v:0 \
	\
	-c:a aac -b:a 192k -ar:a 48000 -ac:a 2 \
	-map 0:a:0 \
	\
        -f mpegts \
        srt://ingest.c3voc.de:1337?streamid=publish/{your_endpoint}/{auth_key}

How to test

You can play back your stream at the same endpoint you pushed to, e.g.:

mpv srt://ingest.c3voc.de:1337?streamid=play/{your_endpoint}

Direct Upload

If you have agreed with us on directly uploading muxed stream to our CDN-master we will provide you with HTTP-credentials and a base-URL to upload to. You will have to provide the following formats:

The upload path supports GET/PUT/DELETE aswell as directory listing. The baseurl is currently assembled as follows:

host/upload/yourname/

You can test your uploaded content at: