howto:3rdparty_ingest

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 [2020/12/13 20:54] ischluffhowto:3rdparty_ingest [2026/02/24 23:07] (current) ischluff
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
  
 +
 +=== 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 === === 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.
  
Line 53: Line 82:
  * 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
 +
 +
 +=== 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 example ===
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
       * Output (Scaled) Resolution: 1920x1080       * Output (Scaled) Resolution: 1920x1080
       * Integer FPS Value: 25       * Integer FPS Value: 25
 +
 +=== How to test ===
 +You can play back your stream at the same endpoint you pushed to, e.g.:
 +<code>
 +mpv rtmp://ingest.c3voc.de/stream/{your_endpoint}
 +</code>
  
  
Line 108: Line 152:
     * The thumbnail will be shown in the stream list     * The thumbnail will be shown in the stream list
  
-==== **Recommended encoder settings ====+The upload path supports GET/PUT/DELETE aswell as directory listing. 
 +The baseurl is currently assembled as follows: <code>host/upload/yourname/</code> 
 + 
 +===== Output Formats ===== 
 +Per default we transcode uploaded streams into an SD and a HD stream (+ potentially a slide only stream). 
 + 
 +They are served over different protocols as documented here: [[:cdn#stream-urls]] 
 + 
 +===== Recommended encoder settings =====
  
   * H.264:   * H.264:
     * GOP-Size (Keyframe Interval): 3s     * GOP-Size (Keyframe Interval): 3s
     * Encoding-Mode: VBR (Variable Bitrate)     * Encoding-Mode: VBR (Variable Bitrate)
-    * Max-Bitrate 4Mbit/s (more is possible if your uplink allows it, but please stay below 10Mbit/s. If you want to push even more please ask.)+    * 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.1607889258.txt.gz
  • Last modified: 2020/12/13 20:54
  • by ischluff