mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-05-01 02:57:41 +03:00
Improve clip buffer and remove outdated comments
This commit is contained in:
parent
b51fca88b2
commit
63b3b86005
@ -598,7 +598,7 @@ def recording_clip(
|
|||||||
if clip.start_time < start_ts:
|
if clip.start_time < start_ts:
|
||||||
file.write(f"inpoint {int(start_ts - clip.start_time)}\n")
|
file.write(f"inpoint {int(start_ts - clip.start_time)}\n")
|
||||||
|
|
||||||
# if this is the ending clip and end trim is enabled, add an outpoint
|
# if this is the ending clip, add an outpoint
|
||||||
if clip.end_time > end_ts:
|
if clip.end_time > end_ts:
|
||||||
file.write(f"outpoint {int(end_ts - clip.start_time)}\n")
|
file.write(f"outpoint {int(end_ts - clip.start_time)}\n")
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,7 @@ import {
|
|||||||
TooltipContent,
|
TooltipContent,
|
||||||
TooltipTrigger,
|
TooltipTrigger,
|
||||||
} from "@/components/ui/tooltip";
|
} from "@/components/ui/tooltip";
|
||||||
import { ReviewSegment } from "@/types/review";
|
import { REVIEW_PADDING, ReviewSegment } from "@/types/review";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import Chip from "@/components/indicators/Chip";
|
import Chip from "@/components/indicators/Chip";
|
||||||
import { capitalizeAll } from "@/utils/stringUtil";
|
import { capitalizeAll } from "@/utils/stringUtil";
|
||||||
@ -1229,11 +1229,14 @@ export function VideoTab({ search }: VideoTabProps) {
|
|||||||
const { data: reviewItem } = useSWR<ReviewSegment>([
|
const { data: reviewItem } = useSWR<ReviewSegment>([
|
||||||
`review/event/${search.id}`,
|
`review/event/${search.id}`,
|
||||||
]);
|
]);
|
||||||
const endTime = useMemo(() => search.end_time ?? Date.now() / 1000, [search]);
|
|
||||||
|
|
||||||
// subtract 2 seconds from start_time to account for keyframes and any differences in the record/detect streams
|
const clipTimeRange = useMemo(() => {
|
||||||
// to help the start of the event from not being completely cut off
|
const startTime = search.start_time - REVIEW_PADDING;
|
||||||
const source = `${baseUrl}vod/${search.camera}/start/${search.start_time - 2}/end/${endTime}/index.m3u8`;
|
const endTime = (search.end_time ?? Date.now() / 1000) + REVIEW_PADDING;
|
||||||
|
return `start/${startTime}/end/${endTime}`;
|
||||||
|
}, [search]);
|
||||||
|
|
||||||
|
const source = `${baseUrl}vod/${search.camera}/${clipTimeRange}/index.m3u8`;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@ -1272,7 +1275,7 @@ export function VideoTab({ search }: VideoTabProps) {
|
|||||||
<TooltipTrigger asChild>
|
<TooltipTrigger asChild>
|
||||||
<a
|
<a
|
||||||
download
|
download
|
||||||
href={`${baseUrl}api/${search.camera}/start/${search.start_time}/end/${endTime}/clip.mp4?trim=end`}
|
href={`${baseUrl}api/${search.camera}/${clipTimeRange}/clip.mp4`}
|
||||||
>
|
>
|
||||||
<Chip className="cursor-pointer rounded-md bg-gray-500 bg-gradient-to-br from-gray-400 to-gray-500">
|
<Chip className="cursor-pointer rounded-md bg-gray-500 bg-gradient-to-br from-gray-400 to-gray-500">
|
||||||
<FaDownload className="size-4 text-white" />
|
<FaDownload className="size-4 text-white" />
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user