Show pagesourceOld revisionsBacklinksODT exportBack to top Recent ChangesSend via e-MailPrintPermalink × Table of Contents Get in Touch Icecast Matroska Ingest Stream-Format ffmpeg example RTMP Ingest Stream-Format URLs ffmpeg example OBS-studio example How to test SRT Ingest Stream-Format URLs OBS ffmpeg example How to test Direct Upload Recommended encoder settings 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 For detailed recommendations see bottom of the page Audio-Streams: (atleast 1, up to 3) AAC LC, Stereo, 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 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 Transport: RTMP Container: FLV Video-Streams: H.264**, 1920×1080, 25 fps For detailed recommendations see bottom of the page Audio-Streams: AAC LC, Stereo, 48KHz, 192kbit/s URLs Hosts: ingest.c3voc.de ingest2.c3voc.de Publish/Play: rtmp://{host}/stream/{your_endpoint}?auth={key} Note: Play is currently always possible without auth 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 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: 1 seconds Video Base (Canvas) Resolution: 1920×1080 Output (Scaled) Resolution: 1920×1080 Integer FPS Value: 25 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 Transport: SRT Container: MPEG-TS Video-Streams: H.264**, 1920×1080, 25 fps For detailed recommendations see bottom of the page Audio-Streams: (atleast 1, up to 3) AAC LC, Stereo, 48KHz, 192kbit/s URLs Hosts: ingest.c3voc.de ingest2.c3voc.de Publish: srt://{host}:1337?streamid=publish/{your_endpoint}/{auth_key} Play: srt://{host}:1337?streamid=play/{your_endpoint}/{auth_key} OBS Same settings as with RTMP, but use the following in Settings → Stream: Service: Custom… Server: srt://{host}:1337?streamid=publish/{your_endpoint}/{auth_key} Audio: Use this OBS Fork (compiled version) to be able to stream multiple audio Streams (for translations). ffmpeg example <code> ffmpeg -y -re -nostdin -hidebanner \ -threadqueuesize 512 -i … \ -c:v libx264 -preset:v veryfast -profile:v main -pixfmt 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/{yourendpoint}/{authkey} </code> 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: A HLS master playlist at http://baseurl/hls/native_hd.m3u8 Segments must be in MPEG-TS format with .ts file ending Segments must be inside http://baseurl/hls/ A MPEG-DASH manifest at http://baseurl/dash/manifest.mpd Segments must be in WebM format with .webm file endings Segments must be inside http://baseurl/dash/ A 1920×1080 (or full-res) JPEG poster image at http://baseurl/thumbnail/poster.jpeg Poster images should ideally not exceed 150k in size The poster image will be shown in the stopped player A 213×120 JPEG thumbnail at http://baseurl/thumbnail/thumb.jpeg The thumbnail will be shown in the stream list 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: http://cdn.c3voc.de/dash/yourname/manifest.mpd http://cdn.c3voc.de/hls/yourname/native_hd.m3u8 http://cdn.c3voc.de/thumbnail/yourname/poster.jpeg http://cdn.c3voc.de/thumbnail/yourname/thumb.jpeg Recommended encoder settings H.264: GOP-Size (Keyframe Interval): 3s Encoding-Mode: VBR (Variable Bitrate) Max-Bitrate 6Mbit/s (more is possible if your uplink allows it, but please stay below 20Mbit/s. If you want to push even more please ask.) howto/3rdparty_ingest.txt Last modified: 2021/12/21 16:38by derchris