WebRTC streamer

The WebRTC Streamer microservice is an important component of a system that is used for live video streaming over WebRTC. It is responsible for receiving MPEG-TS video streams over multicast UDP and sending them out over WebRTC, either as a h264 passthrough payload or transcoded to VP8. One of the key features of the WebRTC Streamer microservice is its ability to provide low latency video, allowing users to view live video with minimal delay. To accomplish this, the WebRTC Streamer microservice uses a combination of hardware acceleration and software optimization techniques. This allows it to efficiently process and transmit video streams, even at high resolutions and frame rates. The microservice also provides transcoding capabilities, allowing it to convert video streams to the VP8 format for transmission over WebRTC. This ensures that the video stream is compatible with a wide range of devices and web browsers, while also providing high-quality video with minimal latency. Overall, the WebRTC Streamer microservice is a critical component of any system that requires live video streaming over WebRTC. By providing low-latency video with efficient encoding and transmission, it helps to ensure that users are able to view high-quality video in real-time, making it ideal for use in applications such as video conferencing, online gaming, and more.

Streaming without KLV

By default, the WebRTC Streamer microservice expects a STANAG 4609 stream, which contains MISB KLV data. If your stream does not contain this type of data, you must disable KLV processing in the .env file in order to view the video. Set NO_KLV: "true" as shown below.

  webrtc-streamer:   
    image: impleo/stserver-webrtc-streamer:1.4.0
    container_name:  webrtc-streamer
    restart: always  
    depends_on:
      - broker
      - stsupervisor
    environment:
      STSERVER_NAME: ${SERVER_NAME}
      VIDEO_BITRATE: "3500000"
      VIDEO_RESOLUTION: "1280x720"
      WEBRTC_SERVICE: "stanag2webrtc"
      KLV_SAMPLING: "300"
      NO_KLV: "true"
    network_mode: host
    volumes:
      - ./data/:/app/data/