From 164b865ad4797ccc2e163031f87fb6b80505a02a Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 18 Jan 2023 08:02:00 -0700 Subject: [PATCH] Update restream.md --- docs/docs/configuration/restream.md | 90 ++++++++++------------------- 1 file changed, 32 insertions(+), 58 deletions(-) diff --git a/docs/docs/configuration/restream.md b/docs/docs/configuration/restream.md index 482c1b9b7..83e5d8bc4 100644 --- a/docs/docs/configuration/restream.md +++ b/docs/docs/configuration/restream.md @@ -21,26 +21,36 @@ In previous Frigate versions RTMP was used for re-streaming. RTMP has disadvanta Some cameras only support one active connection or you may just want to have a single connection open to the camera. The RTSP restream allows this to be possible. -### RTSP Streams - -#### With Single Stream +### With Single Stream One connection is made to the camera. One for the restream, `detect` and `record` connect to the restream. ```yaml go2rtc: streams: - test_cam: - - rtsp://192.168.1.5:554/live0 # <- stream which supports video & aac audio. This is only supported for rtsp streams, http must use ffmpeg - - ffmpeg:test_cam#audio=opus # <- copy of the stream which transcodes audio to opus + rtsp_cam: # <- for RTSP streams + - rtsp://192.168.1.5:554/live0 # <- stream which supports video & aac audio + - ffmpeg:rtsp_cam#audio=opus # <- copy of the stream which transcodes audio to the missing codec (usually will be opus) + http_cam: # <- for http streams + - "ffmpeg:http://192.168.50.155/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=user&password=password#video=copy#audio=copy#audio=opus" # <- http streams must use ffmpeg to set all types cameras: - test_cam: + rtsp_cam: ffmpeg: output_args: record: preset-record-generic-audio-copy inputs: - - path: rtsp://127.0.0.1:8554/test_cam?video=copy&audio=aac # <--- the name here must match the name of the camera in restream + - path: rtsp://127.0.0.1:8554/rtsp_cam?video=copy&audio=aac # <--- the name here must match the name of the camera in restream + input_args: preset-rtsp-restream + roles: + - record + - detect + http_cam: + ffmpeg: + output_args: + record: preset-record-generic-audio-copy + inputs: + - path: rtsp://127.0.0.1:8554/htp_cam?video=copy&audio=aac # <--- the name here must match the name of the camera in restream input_args: preset-rtsp-restream roles: - record @@ -54,77 +64,41 @@ Two connections are made to the camera. One for the sub stream, one for the rest ```yaml go2rtc: streams: - test_cam: + rtsp_cam: - rtsp://192.168.1.5:554/live0 # <- stream which supports video & aac audio. This is only supported for rtsp streams, http must use ffmpeg - - ffmpeg:test_cam#audio=opus # <- copy of the stream which transcodes audio to opus - test_cam_sub: + - ffmpeg:rtsp_cam#audio=opus # <- copy of the stream which transcodes audio to opus + rtsp_cam_sub: - rtsp://192.168.1.5:554/substream # <- stream which supports video & aac audio. This is only supported for rtsp streams, http must use ffmpeg - - ffmpeg:test_cam_sub#audio=opus # <- copy of the stream which transcodes audio to opus + - ffmpeg:rtsp_cam_sub#audio=opus # <- copy of the stream which transcodes audio to opus + http_cam: + - "ffmpeg:http://192.168.50.155/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=user&password=password#video=copy#audio=copy#audio=opus" # <- http streams must use ffmpeg to set all types + http_cam_sub: + - "ffmpeg:http://192.168.50.155/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=user&password=password#video=copy#audio=copy#audio=opus" # <- http streams must use ffmpeg to set all types cameras: - test_cam: + rtsp_cam: ffmpeg: output_args: record: preset-record-generic-audio-copy inputs: - - path: rtsp://127.0.0.1:8554/test_cam?video=copy&audio=aac # <--- the name here must match the name of the camera in restream + - path: rtsp://127.0.0.1:8554/rtsp_cam?video=copy&audio=aac # <--- the name here must match the name of the camera in restream input_args: preset-rtsp-restream roles: - record - - path: rtsp://127.0.0.1:8554/test_cam_sub?video=copy&audio=aac # <--- the name here must match the name of the camera_sub in restream + - path: rtsp://127.0.0.1:8554/rtsp_cam_sub?video=copy&audio=aac # <--- the name here must match the name of the camera_sub in restream input_args: preset-rtsp-restream roles: - detect -``` - -### HTTP/RTMP Streams - - -#### With Single Stream - -One connection is made to the camera. One for the restream, `detect` and `record` connect to the restream. - -```yaml -go2rtc: - streams: - test_cam: - - rtsp://192.168.1.5:554/live0 # <- stream which supports video & aac audio. This is only supported for rtsp streams, http must use ffmpeg - - ffmpeg:test_cam#audio=opus # <- copy of the stream which transcodes audio to opus - -cameras: - test_cam: + http_cam: ffmpeg: output_args: record: preset-record-generic-audio-copy inputs: - - path: rtsp://127.0.0.1:8554/test_cam?video=copy&audio=aac # <--- the name here must match the name of the camera in restream + - path: rtsp://127.0.0.1:8554/http_cam?video=copy&audio=aac # <--- the name here must match the name of the camera in restream input_args: preset-rtsp-restream roles: - record - - detect -``` - -#### With Sub Stream - -Two connections are made to the camera. One for the sub stream, one for the restream, `record` connects to the restream. - -```yaml -go2rtc: - streams: - test_cam: ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=username&password=password#video=copy#audio=copy#audio=opus - test_cam_sub: ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=username&password=password#video=copy#audio=copy#audio=opus - -cameras: - test_cam: - ffmpeg: - output_args: - record: preset-record-generic-audio-copy - inputs: - - path: rtsp://127.0.0.1:8554/test_cam?video=copy&audio=aac # <--- the name here must match the name of the camera in restream - input_args: preset-rtsp-restream - roles: - - record - - path: rtsp://127.0.0.1:8554/test_cam_sub?video=copy&audio=aac # <--- the name here must match the name of the camera_sub in restream + - path: rtsp://127.0.0.1:8554/http_cam_sub?video=copy&audio=aac # <--- the name here must match the name of the camera_sub in restream input_args: preset-rtsp-restream roles: - detect