mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-03 01:35:22 +03:00
Return full output of ffprobe process
This commit is contained in:
parent
8a39f42255
commit
0b2f4ea525
@ -619,31 +619,31 @@ def ffprobe(camera_name):
|
||||
|
||||
if len(config.ffmpeg.inputs) > 1:
|
||||
# user has multiple streams
|
||||
output = ""
|
||||
output = []
|
||||
|
||||
for input in config.ffmpeg.inputs:
|
||||
output += f"{input.roles}\n"
|
||||
ffprobe = ffprobe_stream(input.path)
|
||||
|
||||
if ffprobe:
|
||||
output += f"{ffprobe}\n"
|
||||
else:
|
||||
output += "error getting stream\n"
|
||||
output.append(
|
||||
{
|
||||
"input_roles": input.roles,
|
||||
"return_code": ffprobe.returncode,
|
||||
"stderr": ffprobe.stderr,
|
||||
"stdout": ffprobe.stdout,
|
||||
}
|
||||
)
|
||||
|
||||
return jsonify(output, "200")
|
||||
else:
|
||||
# user has single stream
|
||||
ffprobe = ffprobe_stream(config.ffmpeg.inputs[0].path)
|
||||
if not ffprobe:
|
||||
return jsonify(
|
||||
{
|
||||
"success": False,
|
||||
"message": f"ffprobe unable to get info for {camera_name}",
|
||||
},
|
||||
"500",
|
||||
"input_roles": config.ffmpeg.inputs[0].roles,
|
||||
"return_code": ffprobe.returncode,
|
||||
"stderr": ffprobe.stderr,
|
||||
"stdout": ffprobe.stdout,
|
||||
}
|
||||
)
|
||||
else:
|
||||
return jsonify(ffprobe, "200")
|
||||
|
||||
|
||||
@bp.route("/<camera_name>")
|
||||
|
||||
@ -712,7 +712,7 @@ def get_cpu_stats() -> dict[str, dict]:
|
||||
return usages
|
||||
|
||||
|
||||
def ffprobe_stream(path: str) -> str:
|
||||
def ffprobe_stream(path: str) -> sp.CompletedProcess:
|
||||
"""Run ffprobe on stream."""
|
||||
ffprobe_cmd = [
|
||||
"ffprobe",
|
||||
@ -724,13 +724,7 @@ def ffprobe_stream(path: str) -> str:
|
||||
"quiet",
|
||||
path,
|
||||
]
|
||||
p = sp.run(ffprobe_cmd, capture_output=True)
|
||||
|
||||
if p.returncode != 0:
|
||||
logger.error(f"ffprobe unable to get result for stream: {p.stderr}")
|
||||
return None
|
||||
else:
|
||||
return p.stdout.decode().strip()
|
||||
return sp.run(ffprobe_cmd, capture_output=True)
|
||||
|
||||
|
||||
class FrameManager(ABC):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user