IP Library Granted Patent US 12,499,684
Granted Patent B2
US 12,499,684 · App. 18/678,481 · Granted Dec 16, 2025

Simultaneous playback of continuous video recordings from multiple recording devices

Inventors: Meredith Arrison (Dumfries, VA); Sean Gallahan (Washington, DC); Adam Brandfass (Pittsburgh, PA)
Assignee: Alarm.com Incorporated
G06V20/49G06F16/743G06F16/7867G06V20/44G06V20/46G06V20/52
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,499,684
App. No.
18/678,481
Granted
Dec 16, 2025
Kind
B2
Abstract

Methods and systems, including computer programs encoded on a computer storage medium, are disclosed for simultaneous playback of continuous video recordings from multiple recording devices. A system obtains respective video data generated by multiple recording devices. Each video data includes multiple image frames. For each recording device: based on a time value, the system identifies events captured in the video data generated by the recording device. Based on an input variable corresponding to the events, the system: i) identifies an event stream that coincides with occurrence of a particular event captured in the video data; ii) determines a control value for segmenting image frames of the event stream; and iii) based on the control value, generates a video segment in response to isolating image frames of the event stream coinciding with the particular event. A graphical interface is generated that concurrently outputs each video segment for each recording device.

Claims (51)

1 . A computer-implemented method, comprising:

maintaining, by a computing device, a screen size of a display of the computing device used to determine a control value for determining a quantity of two or more video segments into which a contiguous video sequence is split;

receiving, by the computing device and for each of the two or more video segments of a contiguous video sequence captured by a single camera and that were generated using i) the control value determined using the screen size of the display of the computing device and ii) data indicating types of events of interest, a corresponding video segment, wherein the contiguous video sequence was split into the two or more video segments and a combination of the two or more video segments forms the contiguous video sequence; and

presenting, by the computing device and in a corresponding portion of a grid presented on the display, a respective one of the two or more video segments.

2 . The method of claim 1 , comprising:

presenting, at the computing device and using the display, each of the two or more video segments at a corresponding portion of the grid.

3 . The method of claim 2 , wherein at least a first video segment and a second video segment are of substantially equal length.

4 . The method of claim 3 , wherein a number of video segments was computed using at least one of a time of the contiguous video sequence or a duration of the contiguous video sequence; and

a number of portions in the grid was computed using the number of video segments.

5 . The method of claim 1 , comprising:

presenting, in a first frame of the grid and using a first identifier, a first one of the of two or more video segments that includes video data from a first time range; and

presenting, in a second frame of the grid and using a second identifier, a second one of the two or more video segments that includes video data from a second time range that is adjacent to and after the first time range.

6 . The method of claim 1 , comprising:

receiving one or more segment parameters comprising data indicative of a plurality of segments formatted for output to a grid comprising a plurality of frames, each segment of the plurality of segments configured for output to one frame of the plurality of frames, wherein presenting the respective one of the two or more video segments uses the one or more segment parameters.

7 . The method of claim 6 , wherein a number of the plurality of frames corresponds to a number of video segments.

8 . The method of claim 1 , comprising:

receiving instructions to display a first video segment two or more video segments to a first portion of the grid; and

receiving instructions to display a second video segment two or more video segments to a second portion of the grid.

9 . The method of claim 1 , comprising:

receiving, at the computing device, the control value, wherein the control value is indicative of:

i) a software configuration of a graphical interface of the computing device, and

ii) a hardware configuration or a software configuration of the display of the computing device used to output the two or more video segments.

10 . The method of claim 1 , comprising:

transmitting, from a computing device, one or more parameters corresponding to a type of computing device; and

receiving, at the computing device, the two or more video segments that were generated using the one or more parameters corresponding to the type of the computing device.

11 . The method of claim 1 , wherein:

receiving the two or more video segments comprises receiving the two or more video segments that were generated using the control value determined by comparing a type of the display of the computing device with a type criteria.

12 . The method of claim 1 , wherein:

receiving the two or more video segments comprises receiving the two or more video segments that were generated using the control value determined by comparing the screen size of the display of the computing device with a size criterion.

13 . A system, comprising:

one or more processing devices; and

one or more non-transitory machine-readable storage devices storing instructions that are executable by the one or more processing devices to cause performance of operations comprising:

maintaining, by a computing device, a screen size of a display of the computing device used to determine a control value for determining a quantity of two or more video segments into which a contiguous video sequence is split;

receiving, by the computing device and for each of the two or more video segments of a contiguous video sequence captured by a single camera and that were generated using i) the control value determined using the screen size of the display of the computing device and ii) data indicating types of events of interest, a corresponding video segment, wherein the contiguous video sequence was split into the two or more video segments and a combination of the two or more video segments forms the contiguous video sequence; and

presenting, by the computing device and in a corresponding portion of a grid presented

on the display, a respective one of the two or more video segments.

14 . The system of claim 13 , comprising:

presenting, at the computing device and using the display, each of the two or more video segments at a corresponding portion of the grid.

15 . The system of claim 14 , wherein at least a first video segment and a second video segment are of substantially equal length.

16 . The system of claim 15 , wherein a number of the two or more video segments was computed using at least one of a time of the contiguous video sequence or a duration of the contiguous video sequence.

17 . The system of claim 13 , comprising:

a first frame of the grid includes video data from time range t to t+(d/n), where t indicates a start time of the corresponding video segment, d indicates a duration of the corresponding video segment, n indicates a number of video segments among the two or more video segments, wherein a first one of the of two or more video segments is indicated for display in the first frame; and

a second frame of the grid includes video data from time range t+(d/n) to t+2 (d/n).

18 . The system of claim 13 , comprising:

receiving one or more segment parameters comprising data indicative of a plurality of segments formatted for display to an output grid comprising a plurality of frames, each segment of the plurality of segments configured for display in one frame of the plurality of frames.

19 . One or more non-transitory machine-readable storage devices storing instructions that are executable by one or more processing devices to cause performance of operations comprising:

maintaining, by a computing device, a screen size of a display of the computing device used to determine a control value for determining a quantity of two or more video segments into which a contiguous video sequence is split;

receiving, by the computing device and for each of the two or more video segments of a contiguous video sequence captured by a single camera and that were generated using i) the control value determined using the screen size of the display of the computing device and ii) data indicating types of events of interest, a corresponding video segment, wherein the contiguous video sequence was split into the two or more video segments and a combination of the two or more video segments forms the contiguous video sequence; and

presenting, by the computing device and in a corresponding portion of a grid presented on the display, a respective one of the two or more video segments.

20 . The one or more non-transitory machine-readable storage devices of claim 19 , comprising:

presenting, at the computing device and using the display, each of the two or more video segments at a corresponding portion of the grid.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2024
From: ARRISON, MEREDITH; GALLAHAN, SEAN; BRANDFASS, ADAM
To: ALARM.COM INCORPORATED
Reel/Frame 067595/0187 →
Continuity (3)
Continuation 17490834 · Sep 30, 2021
Provisional Application 63085678 · Sep 30, 2020
Related Publication 20250095368A1 · Mar 20, 2025
References Cited (14)
US 6760536B1 · Amir et al. · 2004 [cited by applicant]
US 10897642B2 · Grigore · 2021 [cited by examiner]
US 20040236805A1 · Gordon · 2004 [cited by examiner]
US 20080124055A1 · Shahraray et al. · 2008 [cited by applicant]
US 20100169786A1 · O'Brien et al. · 2010 [cited by applicant]
US 20120050617A1 · Mizutani · 2012 [cited by examiner]
US 20140055610A1 · Ko et al. · 2014 [cited by applicant]
US 20150255044A1 · Hirasawa · 2015 [cited by examiner]
US 20160261928A1 · Sarda · 2016 [cited by examiner]
US 20170262697A1 · Kaps et al. · 2017 [cited by applicant]
US 20170330038A1 · Chan · 2017 [cited by examiner]
US 20180113577A1 · Burns et al. · 2018 [cited by applicant]
US 20180232592A1 · Stewart et al. · 2018 [cited by applicant]
US 20200314477A1 · Grigore · 2020 [cited by examiner]