mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
Add specific presets for restream and record with audio (#5094)
* Add more ffmpeg presets * Update docs * Update tests * Update docs to optimize setup
This commit is contained in:
parent
65bc644d03
commit
99577a57e6
@ -29,12 +29,13 @@ Input args presets help make the config more readable and handle use cases for d
|
|||||||
See [the camera specific docs](/configuration/camera_specific.md) for more info on non-standard cameras and recommendations for using them in Frigate.
|
See [the camera specific docs](/configuration/camera_specific.md) for more info on non-standard cameras and recommendations for using them in Frigate.
|
||||||
|
|
||||||
| Preset | Usage | Other Notes |
|
| Preset | Usage | Other Notes |
|
||||||
| ------------------------- | ----------------------- | --------------------------------------------------- |
|
| ------------------------- | ------------------------- | --------------------------------------------------- |
|
||||||
| preset-http-jpeg-generic | HTTP Live Jpeg | Recommend restreaming live jpeg instead |
|
| preset-http-jpeg-generic | HTTP Live Jpeg | Recommend restreaming live jpeg instead |
|
||||||
| preset-http-mjpeg-generic | HTTP Mjpeg Stream | Recommend restreaming mjpeg stream instead |
|
| preset-http-mjpeg-generic | HTTP Mjpeg Stream | Recommend restreaming mjpeg stream instead |
|
||||||
| preset-http-reolink | Reolink HTTP-FLV Stream | Only for reolink http, not when restreaming as rtsp |
|
| preset-http-reolink | Reolink HTTP-FLV Stream | Only for reolink http, not when restreaming as rtsp |
|
||||||
| preset-rtmp-generic | RTMP Stream | |
|
| preset-rtmp-generic | RTMP Stream | |
|
||||||
| preset-rtsp-generic | RTSP Stream | This is the default when nothing is specified |
|
| preset-rtsp-generic | RTSP Stream | This is the default when nothing is specified |
|
||||||
|
| preset-rtsp-restream | RTSP Stream from restream | Use when using rtsp restream as source |
|
||||||
| preset-rtsp-udp | RTSP Stream via UDP | Use when camera is UDP only |
|
| preset-rtsp-udp | RTSP Stream via UDP | Use when camera is UDP only |
|
||||||
| preset-rtsp-blue-iris | Blue Iris RTSP Stream | Use when consuming a stream from Blue Iris |
|
| preset-rtsp-blue-iris | Blue Iris RTSP Stream | Use when consuming a stream from Blue Iris |
|
||||||
|
|
||||||
@ -67,9 +68,10 @@ cameras:
|
|||||||
Output args presets help make the config more readable and handle use cases for different types of streams to ensure consistent recordings.
|
Output args presets help make the config more readable and handle use cases for different types of streams to ensure consistent recordings.
|
||||||
|
|
||||||
| Preset | Usage | Other Notes |
|
| Preset | Usage | Other Notes |
|
||||||
| --------------------------- | --------------------------------- | --------------------------------------------- |
|
| -------------------------------- | --------------------------------- | --------------------------------------------- |
|
||||||
| preset-record-generic | Record WITHOUT audio | This is the default when nothing is specified |
|
| preset-record-generic | Record WITHOUT audio | This is the default when nothing is specified |
|
||||||
| preset-record-generic-audio | Record WITH audio | Use this to enable audio in recordings |
|
| preset-record-generic-audio-aac | Record WITH aac audio | Use this to enable audio in recordings |
|
||||||
|
| preset-record-generic-audio-copy | Record WITH original audio | Use this to enable audio in recordings |
|
||||||
| preset-record-mjpeg | Record an mjpeg stream | Recommend restreaming mjpeg stream instead |
|
| preset-record-mjpeg | Record an mjpeg stream | Recommend restreaming mjpeg stream instead |
|
||||||
| preset-record-jpeg | Record live jpeg | Recommend restreaming live jpeg instead |
|
| preset-record-jpeg | Record live jpeg | Recommend restreaming live jpeg instead |
|
||||||
| preset-record-ubiquiti | Record ubiquiti stream with audio | Recordings with ubiquiti non-standard audio |
|
| preset-record-ubiquiti | Record ubiquiti stream with audio | Recordings with ubiquiti non-standard audio |
|
||||||
|
@ -47,8 +47,11 @@ One connection is made to the camera. One for the restream, `detect` and `record
|
|||||||
cameras:
|
cameras:
|
||||||
test_cam:
|
test_cam:
|
||||||
ffmpeg:
|
ffmpeg:
|
||||||
|
output_args:
|
||||||
|
record: preset-record-audio-copy
|
||||||
inputs:
|
inputs:
|
||||||
- path: rtsp://127.0.0.1:8554/test_cam # <--- the name here must match the name of the camera
|
- path: rtsp://127.0.0.1:8554/test_cam?video=copy&audio=aac # <--- the name here must match the name of the camera
|
||||||
|
input_args: preset-rtsp-restream
|
||||||
roles:
|
roles:
|
||||||
- record
|
- record
|
||||||
- detect
|
- detect
|
||||||
@ -65,8 +68,11 @@ Two connections are made to the camera. One for the sub stream, one for the rest
|
|||||||
cameras:
|
cameras:
|
||||||
test_cam:
|
test_cam:
|
||||||
ffmpeg:
|
ffmpeg:
|
||||||
|
output_args:
|
||||||
|
record: preset-record-audio-copy
|
||||||
inputs:
|
inputs:
|
||||||
- path: rtsp://127.0.0.1:8554/test_cam # <--- the name here must match the name of the camera
|
- path: rtsp://127.0.0.1:8554/test_cam?video=copy&audio=aac # <--- the name here must match the name of the camera
|
||||||
|
input_args: preset-rtsp-restream
|
||||||
roles:
|
roles:
|
||||||
- record
|
- record
|
||||||
- path: rtsp://192.168.1.5:554/stream # <--- camera high res stream
|
- path: rtsp://192.168.1.5:554/stream # <--- camera high res stream
|
||||||
|
@ -247,6 +247,13 @@ PRESETS_INPUT = {
|
|||||||
"-use_wallclock_as_timestamps",
|
"-use_wallclock_as_timestamps",
|
||||||
"1",
|
"1",
|
||||||
],
|
],
|
||||||
|
"preset-rtsp-restream": _user_agent_args
|
||||||
|
+ [
|
||||||
|
"-rtsp_transport",
|
||||||
|
"tcp",
|
||||||
|
TIMEOUT_PARAM,
|
||||||
|
"5000000",
|
||||||
|
],
|
||||||
"preset-rtsp-udp": _user_agent_args
|
"preset-rtsp-udp": _user_agent_args
|
||||||
+ [
|
+ [
|
||||||
"-avoid_negative_ts",
|
"-avoid_negative_ts",
|
||||||
@ -311,7 +318,7 @@ PRESETS_RECORD_OUTPUT = {
|
|||||||
"copy",
|
"copy",
|
||||||
"-an",
|
"-an",
|
||||||
],
|
],
|
||||||
"preset-record-generic-audio": [
|
"preset-record-generic-audio-aac": [
|
||||||
"-f",
|
"-f",
|
||||||
"segment",
|
"segment",
|
||||||
"-segment_time",
|
"-segment_time",
|
||||||
@ -327,6 +334,20 @@ PRESETS_RECORD_OUTPUT = {
|
|||||||
"-c:a",
|
"-c:a",
|
||||||
"aac",
|
"aac",
|
||||||
],
|
],
|
||||||
|
"preset-record-generic-audio-copy": [
|
||||||
|
"-f",
|
||||||
|
"segment",
|
||||||
|
"-segment_time",
|
||||||
|
"10",
|
||||||
|
"-segment_format",
|
||||||
|
"mp4",
|
||||||
|
"-reset_timestamps",
|
||||||
|
"1",
|
||||||
|
"-strftime",
|
||||||
|
"1",
|
||||||
|
"-c",
|
||||||
|
"copy",
|
||||||
|
],
|
||||||
"preset-record-mjpeg": [
|
"preset-record-mjpeg": [
|
||||||
"-f",
|
"-f",
|
||||||
"segment",
|
"segment",
|
||||||
|
@ -136,10 +136,10 @@ class TestFfmpegPresets(unittest.TestCase):
|
|||||||
def test_ffmpeg_output_record_preset(self):
|
def test_ffmpeg_output_record_preset(self):
|
||||||
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["output_args"][
|
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["output_args"][
|
||||||
"record"
|
"record"
|
||||||
] = "preset-record-generic-audio"
|
] = "preset-record-generic-audio-aac"
|
||||||
frigate_config = FrigateConfig(**self.default_ffmpeg)
|
frigate_config = FrigateConfig(**self.default_ffmpeg)
|
||||||
frigate_config.cameras["back"].create_ffmpeg_cmds()
|
frigate_config.cameras["back"].create_ffmpeg_cmds()
|
||||||
assert "preset-record-generic-audio" not in (
|
assert "preset-record-generic-audio-aac" not in (
|
||||||
" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"])
|
" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"])
|
||||||
)
|
)
|
||||||
assert "-c:v copy -c:a aac" in (
|
assert "-c:v copy -c:a aac" in (
|
||||||
|
Loading…
Reference in New Issue
Block a user