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 [2021/12/12 14:20] andihowto: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
Line 96: 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 106: Line 135:
 <code> <code>
 mpv rtmp://ingest.c3voc.de/stream/{your_endpoint} mpv rtmp://ingest.c3voc.de/stream/{your_endpoint}
-</code> 
- 
- 
-===== 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**\*\***, 1920x1080, 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}` 
- 
- 
-=== ffmpeg example === 
-<code> 
-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} 
-</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> </code>
  
Line 175: 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.1639315220.txt.gz
  • Last modified: 2021/12/12 14:20
  • by andi