mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-01-31 08:22:20 +03:00
Add per camera directory support
This commit is contained in:
parent
893e6b40a7
commit
892668640c
@ -183,6 +183,10 @@ save_clips:
|
||||
# Optional: Location to save cache files for creating clips. (default: shown below)
|
||||
# NOTE: To reduce wear on SSDs and SD cards, use a tmpfs volume.
|
||||
cache_dir: /cache
|
||||
# Optional: Create a per camera directory for saved clips (default: false)
|
||||
# set to true for per camera dir named after the camera,
|
||||
# false for clips all in the same directory
|
||||
per_camera_dir: False
|
||||
|
||||
# Optional: Global ffmpeg args
|
||||
# "ffmpeg" + global_args + input_args + "-i" + input + output_args
|
||||
|
||||
@ -112,7 +112,12 @@ class EventProcessor(threading.Thread):
|
||||
if clip['start_time']+clip['duration'] > playlist_end:
|
||||
playlist_lines.append(f"outpoint {int(playlist_end-clip['start_time'])}")
|
||||
|
||||
clip_name = f"{camera}-{event_data['id']}"
|
||||
per_camera_dir = self.config.get('save_clips', {}).get('per_camera_dir', False)
|
||||
if per_camera_dir:
|
||||
os.makedirs(os.path.join(self.clip_dir, camera), exist_ok=True)
|
||||
clip_name = os.path.join(camera, f"{event_data['id']}") if per_camera_dir else f"{camera}-{event_data['id']}"
|
||||
clip_path = os.path.join(self.clip_dir, clip_name)
|
||||
|
||||
ffmpeg_cmd = [
|
||||
'ffmpeg',
|
||||
'-y',
|
||||
@ -126,7 +131,7 @@ class EventProcessor(threading.Thread):
|
||||
'-',
|
||||
'-c',
|
||||
'copy',
|
||||
f"{os.path.join(self.clip_dir, clip_name)}.mp4"
|
||||
f"{clip_path}.mp4"
|
||||
]
|
||||
|
||||
p = sp.run(ffmpeg_cmd, input="\n".join(playlist_lines), encoding='ascii', capture_output=True)
|
||||
@ -134,7 +139,7 @@ class EventProcessor(threading.Thread):
|
||||
print(p.stderr)
|
||||
return
|
||||
|
||||
with open(f"{os.path.join(self.clip_dir, clip_name)}.json", 'w') as outfile:
|
||||
with open(f"{clip_path}.json", 'w') as outfile:
|
||||
json.dump(event_data, outfile)
|
||||
|
||||
def run(self):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user