Envek / dockerized-browser-streamer

Stream video of any website (but WebRTC things works best) to RTMP endpoint. Launch it in Docker. Pray if it works.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Streaming websites from dockerized browser

Based on this example: https://github.com/aws-samples/amazon-chime-sdk-recording-demo

Description: https://medium.com/@afrimadonidinata/setup-online-meeting-recording-with-aws-chime-sdk-60c6e1f360c4

How it works

  1. Launches Xvfb–virtual display
  2. Launches PulseAudio–audio server
  3. Launches Firefox and points it into some website (specified by MEETING_URL environment variable)
  4. Launches FFMpeg which captures video from virtual display and sound from virtual sink and streams it into RTMP endpoint (specified by RTMP_URL environment variable)

Building

docker build . -t webrtc-streamer

Running

docker run -it --rm \
  --env "MEETING_URL=https://v3demo.mediasoup.org/?roomId=vviqj99m" \
  --env "RTMP_URL=rtmp://user:pass@host.docker.internal:1935/live/testStream" \
  -v $(pwd):/home/user/app \
  -p 5900:5900 \
  webrtc-streamer

Debugging

Watch virtual framebuffer contents with VNC:

vncviewer -encodings 'copyrect tight zrle hextile' 127.0.0.1:5900

In Firefox you can open devtools with Ctrl+Shift+I, also you can open new tab with Ctrl+T and enter about:webrtc in it.

About

Stream video of any website (but WebRTC things works best) to RTMP endpoint. Launch it in Docker. Pray if it works.


Languages

Language:Shell 81.6%Language:Dockerfile 18.4%