From 676ec25a7f9bd7db70b74b709340593512ee0f82 Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Sat, 25 Feb 2023 19:35:14 +0300 Subject: [PATCH] Update readme --- README.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b3a04b8d..502a5022 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ Available source types: - [rtsp](#source-rtsp) - `RTSP` and `RTSPS` cameras with [two way audio](#two-way-audio) support - [rtmp](#source-rtmp) - `RTMP` streams -- [http](#source-http) - `HTTP-FLV`, `MPEG TS`, `JPEG` (snapshots), `MJPEG` streams +- [http](#source-http) - `HTTP-FLV`, `MPEG-TS`, `JPEG` (snapshots), `MJPEG` streams - [ffmpeg](#source-ffmpeg) - FFmpeg integration (`HLS`, `files` and many others) - [ffmpeg:device](#source-ffmpeg-device) - local USB Camera or Webcam - [exec](#source-exec) - advanced FFmpeg and GStreamer integration @@ -215,7 +215,7 @@ Support Content-Type: - **HTTP-FLV** (`video/x-flv`) - same as RTMP, but over HTTP - **HTTP-JPEG** (`image/jpeg`) - camera snapshot link, can be converted by go2rtc to MJPEG stream - **HTTP-MJPEG** (`multipart/x`) - simple MJPEG stream over HTTP -- **MPEG TS** (`video/mpeg`) - legacy [streaming format](https://en.wikipedia.org/wiki/MPEG_transport_stream) +- **MPEG-TS** (`video/mpeg`) - legacy [streaming format](https://en.wikipedia.org/wiki/MPEG_transport_stream) ```yaml streams: @@ -438,9 +438,9 @@ By default, go2rtc establishes a connection to the source when any client reques ```yaml ffmpeg -re -i BigBuckBunny.mp4 -c copy -f flv http://localhost:1984/api/stream.flv?dst=camera1 ``` -- MPEG TS with H264 codec +- MPEG-TS with H264 codec ```yaml - ffmpeg -re -i BigBuckBunny.mp4 -c copy -f flv http://localhost:1984/api/stream.ts?dst=camera1 + ffmpeg -re -i BigBuckBunny.mp4 -c copy -f mpegts http://localhost:1984/api/stream.ts?dst=camera1 ``` #### Stream to camera @@ -696,7 +696,7 @@ Provides several features: 1. MSE stream (fMP4 over WebSocket) 2. Camera snapshots in MP4 format (single frame), can be sent to [Telegram](https://github.com/AlexxIT/go2rtc/wiki/Snapshot-to-Telegram) -3. MP4 "file stream" - bad format for streaming because of high start delay. This format doesn't work in all Safari browsers, but go2rtc will automatically redirect it to HLS/fMP4 it this case. +3. HTTP progressive streaming (MP4 file stream) - bad format for streaming because of high start delay. This format doesn't work in all Safari browsers, but go2rtc will automatically redirect it to HLS/fMP4 it this case. API examples: @@ -788,7 +788,7 @@ PS. Additionally WebRTC will try to use the 8555 UDP port for transmit encrypted go2rtc can automatically detect which codecs your device supports for [WebRTC](#module-webrtc) and [MSE](#module-mp4) technologies. -But it cannot be done for [RTSP](#module-rtsp), [stream.mp4](#module-mp4), [HLS](#module-hls) technologies. You can manually add a codec filter when you create a link to a stream. The filters work the same for all three technologies. Filters do not create a new codec. They only select the suitable codec from existing sources. You can add new codecs to the stream using the [FFmpeg transcoding](#source-ffmpeg). +But it cannot be done for [RTSP](#module-rtsp), [HTTP progressive streaming](#module-mp4), [HLS](#module-hls) technologies. You can manually add a codec filter when you create a link to a stream. The filters work the same for all three technologies. Filters do not create a new codec. They only select the suitable codec from existing sources. You can add new codecs to the stream using the [FFmpeg transcoding](#source-ffmpeg). Without filters: @@ -809,7 +809,7 @@ Some examples: `AVC/H.264` video can be played almost anywhere. But `HEVC/H.265` has a lot of limitations in supporting with different devices and browsers. It's all about patents and money, you can't do anything about it. -| Device | WebRTC | MSE | stream.mp4 | +| Device | WebRTC | MSE | HTTP Progressive Streaming | |---------------------|-------------------------------|------------------------|-----------------------------------------| | *latency* | best | medium | bad | | Desktop Chrome 107+ | H264, OPUS, PCMU, PCMA | H264, H265*, AAC, OPUS | H264, H265*, AAC, OPUS, PCMU, PCMA, MP3 | @@ -834,8 +834,8 @@ Some examples: **Apple devices** -- all Apple devices don't support MP4 stream (they only support progressive loading of static files) -- iPhones don't support MSE technology because it competes with the HLS technology, invented by Apple +- all Apple devices don't support HTTP progressive streaming +- iPhones don't support MSE technology because it competes with the HTTP Live Streaming (HLS) technology, invented by Apple - HLS is the worst technology for **live** streaming, it still exists only because of iPhones ## Codecs negotiation @@ -872,6 +872,8 @@ streams: - [Frigate 12+](https://frigate.video/) - open source NVR built around real-time AI object detection - [ring-mqtt](https://github.com/tsightler/ring-mqtt) - Ring devices to MQTT Bridge - [EufyP2PStream](https://github.com/oischinger/eufyp2pstream) - A small project that provides a Video/Audio Stream from Eufy cameras that don't directly support RTSP +- [Proxmox Helper Scripts](https://tteck.github.io/Proxmox/) +- [Unraid](https://unraid.net/community/apps?q=go2rtc) ## Cameras experience