Streaming Methods#
what are targets?#
- resolution
- latency
- bandwith
- ease of use
- not more languages (not php)
Methods#
Comparison different Types:\
https://flashphoner.com/how-to-broadcast-webrtc-rtsp-and-rtmp-streams-to-media-source-extensions-via-the-websocket-protocol/\
https://www.ipcamlive.com/faqs
- get an ip camera ? for surveillance so perhaps not good latency
- UV4L
- GStreamer
- RPI-Cam-Web-Interface
- stream-headless-chrome
- Raspivid
- motion
- RemoteMe
- v4l2
- ffmpeg
- https://en.wikipedia.org/wiki/FFmpeg ( what is avconv last news blog 12.02.2018)
- netcat (nc ) for streaming / vlc else
- RazTot gstreamer janus interessting setup.sh file
- didn't work -> janus threw errors (also libnice problem with configure.ac (got it from other repository ))
Other stuff#
good collection
https://raspberrypi.stackexchange.com/questions/7446/how-can-i-stream-h-264-video-from-the-raspberry-pi-camera-module-via-a-web-serve/7657#7657
info about ribbon cables and camera
https://picamera.readthedocs.io/en/latest/fov.html
http://www.netzmafia.de/skripten/hardware/RasPi/kamera/index.html
raspivid not prefered method anymore now v4l2 is prefered src: https://qastack.com.de/raspberrypi/7446/how-can-i-stream-h-264-video-from-the-raspberry-pi-camera-module-via-a-web-serve
mpeg is veraltet -> bad compression and single images
h264 mjpeg dash-mpeg rtsp/rtmp/rtp m3u8(utf8 variante von m3u) hls difference?
hls dash mse create segments -> seconds of lag
some info
https://flussonic.com/blog/news/html5-streaming/
h264 hardware support on raspberry pi
- webrtc? webRTC
- turn/stun server?
- websockets
whats ffmpeg
concern that needs to be addressed
- restart stream (or close on lost connection)
- not sure which protocol but some had problems with that (ffmpeg perhaps)
- how to display h264 (raw)
- https://blog.ronnyvdb.net/2019/01/20/howto-stream-html5-video-h264-encoded-video-encapsulated-in-mp4-from-the-raspberry-pi-to-any-web-browser/ not sure if needed does some raspivid gstreamer stuff
boardcasting stuff
thought there was something possible with janus as a server
MedienServer
- Medooze-Media-Server für NodeJs: Compiling Fails https://openbase.io/js/medooze-media-server
Janus MCU Server (http://meetecho.com)
Kurento MCU Server (http://www.kurento.org/)
balena -
lag 1-3 sec
good setup/maintenance
fallback to mjpeg needs flag in chrome/firefox -> rly bad
restreamer
docker run -d --restart always --name restreamer -e "RS_USERNAME=fn" -e "RS_PASSWORD=pwd" -e "RS_MODE=RASPICAM" -p 8080:8080 -v /mnt/restreamer/db:/restreamer/db -v /opt/vc:/opt/vc --privileged datarhei/restreamer-armv7l:latest
major delay
Gstreamer complexity of multiplexers
Matthew Waters - GStreamer WebRTC.pdf
big problem wit surveillance solutions -> bad latency
- Use Python Server
- Node Server
- Just other Server
some python server picamera / streams
https://picamera.readthedocs.io/en/release-1.13/api_streams.html
collection of soutions mjpeg uv4l ffmpeg
https://projects-raspberry.com/video-streaming-on-flask-server-using-rpi/
https://raspberrypi.stackexchange.com/questions/27381/streaming-from-rpi-over-vlc
https://raspberrypi.stackexchange.com/questions/4412/streaming-h264-with-logitech-c920
https://qastack.com.de/raspberrypi/23182/how-to-stream-video-from-raspberry-pi-camera-and-watch-it-live
https://raspberrypi.stackexchange.com/questions/23182/how-to-stream-video-from-raspberry-pi-camera-and-watch-it-live/32521#32521
something about using camera well
Getting the most out of your V2 camera with UV4L.
no idea
to read
https://www.avisec.ch/teil-11-wie-webcam-website-integrieren/
not interesting
price https://www.ipcamlive.com
https://restream.io/pricing
other commercial solutions comercialstreamingsolutions
Berrymse#
Similar to Berrymse#
https://www.codeinsideout.com/blog/pi/stream-picamera-h264/
https://github.com/vuquangtrong/pi_streaming
MSE#
https://stackoverflow.com/questions/36364943/frame-by-frame-decode-using-media-source-extension
https://bugs.chromium.org/p/chromium/issues/detail?id=465324
Webtransport#
This is a new UDP HTTP/3 based alternative to websockets.
https://web.dev/webtransport/
https://www.w3.org/TR/webtransport/
Needs https (problems with a lan)
No good Server implementation yet.
https://centrifugal.github.io/centrifugo/blog/quic_web_transport/
quic-webtransport was the precursor and is deprecated.
Webcodecs#
Webcodecs is a low level API to do fast encoding and decoding on the fly.
https://www.w3.org/TR/webcodecs/
https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_API
https://web.dev/webcodecs/
https://chromestatus.com/feature/5669293909868544