Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
howto:3rdparty_ingest [2021/12/11 12:23] ischluffhowto:3rdparty_ingest [2026/07/26 22:17] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== HowTo: Third-Party Stream Ingest ======+###### 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. 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) (Recordings have to be dealt with separately)
  
-===== Get in Touch ======+##### 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: 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   - configure your ingest endpoint
Line 10: Line 10:
   - adapt the streaming website   - 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.+When we have provided you with an ingest endpoint name to use you need to configure your encoder for one of the formats below.
  
-===== Icecast Matroska Ingest ===== +##### Ingest Formats 
-This is our preferred format for origin streams, because it supports open codecs and multiple audio/video-channels in single-stream.+#### SRT Ingest 
 +SRT is our preferred method of ingest, because it performs well even over flaky networks. 
 +Please note however that SRT won't prevent you from saturating your uplink, so choose streaming bitrate appropriate for your ISPs bandwidth.
  
-=== Stream-Format === +### Stream-Format 
- * Transport: Icecast + * Transport: SRT 
- * Container: mkv (Matroska)+ * Container: MPEG-TS
  * Video-Streams:  * Video-Streams:
    * H.264**\*\***, 1920x1080, 25 fps    * H.264**\*\***, 1920x1080, 25 fps
-   * For detailed recommendations see bottom of the page+   * For detailed recommendations see "Recommended encoder settings" at the bottom of the page
  * Audio-Streams:  * Audio-Streams:
    * (atleast 1, up to 3)    * (atleast 1, up to 3)
-   * AAC LC, Stereo, 48KHz, 192KBit/s+   * AAC LC, Stereo, 48KHz, 192kbit/s
  
-=== ffmpeg example ===+ 
 +### 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 [[howto:3rdparty_ingest#obs-studio_example|RTMP]], but use the following in **Settings -> Stream**: 
 + 
 +* Service: `Custom…` 
 +* Server: `srt://{host}:1337?streamid=publish/{your_endpoint}/{auth_key}` 
 + 
 +**Audio:** Use [[https://github.com/lukas2511/obs-studio|this OBS Fork]] ([[https://cloud.cccv.de/s/bczAqcWHXX8EkL6|compiled version]]) to be able to stream multiple audio Streams (for translations). 
 +### ffmpeg example
 <code> <code>
-ffmpeg -re -y -nostdin -hide_banner \ +ffmpeg -y -re -nostdin -hide_banner \ 
-    -thread_queue_size 512 -i … \ + -thread_queue_size 512 -i … \ 
-    -c:v libx264 -preset:v veryfast -profile:v main -pix_fmt yuv420p -flags +cgop \ + -c:v libx264 -preset:v veryfast -profile:v main -pix_fmt yuv420p -flags +cgop \ 
-    -threads:v 0 -aspect 16:9 \ + -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 \ + -r:v:0 25 -g:v:0 75 -crf:v:0 23 -maxrate:v:0 4M -bufsize:v:0 12M \ 
-    -map 0:v:0 \ + -map 0:v:0 \ 
-    +
-    -c:a aac -b:a 192k -ar 48000 -ac 2 \ + -c:a aac -b:a 192k -ar:a 48000 -ac:a 2 \ 
-    -map 0:a:0 \ + -map 0:a:0 \ 
-    +
-    -f matroska +        -f mpegts 
-    -content_type video/webm \ +        srt://ingest.c3voc.de:1337?streamid=publish/{your_endpoint}/{auth_key}
-    -password {your_password} \ +
-    icecast://ingest.c3voc.de:8000/{your_endpoint}+
 </code> </code>
  
 +### How to test
 +You can play back your stream at the same endpoint you pushed to, e.g.:
 +<code>
 +mpv srt://ingest.c3voc.de:1337?streamid=play/{your_endpoint}
 +</code>
 +
 +The transcoded stream should be available via
 +<code>
 +mpv http://cdn.c3voc.de/hls/yourname/native_hd.m3u8
 +</code>
  
-===== RTMP Ingest  =====+#### 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. 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 ===+### Stream-Format
  * Transport: RTMP  * Transport: RTMP
  * Container: FLV  * Container: FLV
  * Video-Streams:  * Video-Streams:
    * H.264**\*\***, 1920x1080, 25 fps    * H.264**\*\***, 1920x1080, 25 fps
-   * For detailed recommendations see bottom of the page+   * For detailed recommendations see "Recommended encoder settings" at the bottom of the page
  * Audio-Streams:  * Audio-Streams:
    * AAC LC, Stereo, 48KHz, 192kbit/s    * AAC LC, Stereo, 48KHz, 192kbit/s
  
-=== ffmpeg example ===+ 
 +### 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
 <code> <code>
 ffmpeg -y -re -nostdin -hide_banner \ ffmpeg -y -re -nostdin -hide_banner \
Line 74: Line 112:
 </code> </code>
  
-=== OBS-studio example ===+### OBS-studio example
   * Settings   * Settings
     * Stream     * Stream
Line 87: Line 125:
           * Rate-Control: VBR (if selectable)           * Rate-Control: VBR (if selectable)
           * Bitrate: 4000 Kbps           * Bitrate: 4000 Kbps
-          * Keyframe Interval: seconds+          * Keyframe Interval: seconds
     * Video     * Video
       * Base (Canvas) Resolution: 1920x1080       * Base (Canvas) Resolution: 1920x1080
Line 93: Line 131:
       * Integer FPS Value: 25       * Integer FPS Value: 25
  
- +### How to test 
- +You can play back your stream at the same endpoint you pushed toe.g.:
-===== SRT Ingest  ===== +
-SRT is a relatively new streaming protocol featuring ARQwhich can theoretically support a wide range of Currently mostly MPEG-TS is used as  +
- +
-=== Stream-Format === +
- * Transport: SRT +
- * Container: MPEG-TS +
- * Video-Streams: +
-   * H.264**\*\***, 1920x1080, 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 ===+
 <code> <code>
-ffmpeg -y -re -nostdin -hide_banner \ +mpv rtmp://ingest.c3voc.de/stream/{your_endpoint}
- -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}+
 </code> </code>
  
  
-==== Direct Upload ====+#### 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: 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   * A HLS master playlist at http://baseurl/hls/native_hd.m3u8
Line 143: Line 155:
 The baseurl is currently assembled as follows: <code>host/upload/yourname/</code> The baseurl is currently assembled as follows: <code>host/upload/yourname/</code>
  
-You can test your uploaded content at: +##### Output Formats 
-  * http://cdn.c3voc.de/dash/yourname/manifest.mpd +Per default we transcode uploaded streams into an SD and a HD stream (+ potentially a slide only stream)
-  * http://cdn.c3voc.de/hls/yourname/native_hd.m3u8 + 
-  * http://cdn.c3voc.de/thumbnail/yourname/poster.jpeg +They are served over different protocols as documented here[[:cdn#stream-urls]]
-  * http://cdn.c3voc.de/thumbnail/yourname/thumb.jpeg+
  
-==== Recommended encoder settings ====+##### Recommended encoder settings
  
   * H.264:   * H.264:
  • howto/3rdparty_ingest.1639225388.txt.gz
  • Last modified: 2021/12/11 12:23
  • by ischluff