# US 9,521,357 B2 · System and method for streaming and recording video

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,521,357 B2
- Document ID: US9521357B2
- Status: Granted
- Kind: B2
- Application number: 14/509,715
- Filed: 2014-10-08
- Published: 2016-04-14
- Granted: 2016-12-13
- Earliest claimed: 2014-10-08
- Applicants: Joseph Robert Marchese
- Inventors: Joseph Robert Marchese
- Web page: https://patentgrep.com/patent/US9521357B2

## CPC

- G11B 27/28: by using information signals recorded by the same method as the main recording {(G11B27/22 takes precedence)}
- H04N 5/91: Television signal processing therefor
- H04N 9/8042: {involving data reduction}
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

In at least one embodiment, a method and a computer system for implementing the method are provided. The method may include streaming temporal video to obtain a streamed temporal video having a current incomplete segment and dynamically buffering the current incomplete segment to store data associated thereto and a current incomplete segment buffer. The method may further include receiving first and second inputs to obtain start and end time markers for a first video segment and continuously recording the streamed temporal video based on receipt of the first input and until receipt of the second input to obtain a raw recorded first video segment. A recorded first video segment may be generated based on the raw recorded first video segment and the current incomplete segment data. The method may be used to generate recordings of discontinuous events from streaming video, for example, individual plays during sporting events.

## Claims

### Claim 1

A computer system for recording a number of segments of a discontinuous activity comprising a computer having non-transitory memory for storing machine instructions that are to be executed by the computer, the machine instructions when executed by the computer implement the following functions:
streaming temporal video of the discontinuous activity to obtain a streamed temporal video having a current incomplete segment;
dynamically buffering the current incomplete segment to store data associated thereto and a current incomplete segment buffer;
receiving first and second inputs to obtain start and end time markers for a first segment of the number of segments;
continuously recording the streamed temporal video based on receipt of the first input and until receipt of the second input to obtain a raw recorded first video segment; and
generating a recorded first video segment based on the raw recorded first video segment and the current incomplete segment data;
wherein dynamically buffering includes buffering an I-frame and one or more P-frames of a number of P-frames, the I-frame having an associated I-frame time marker and the one or more P-frames having one or more associated P-frame time markers and the P-frames having associated time markers between the I-frame and the start time marker are included in the current incomplete segment.

### Claim 2 (depends on 1)

The system of claim 1, wherein the functions further comprise buffering header information of the streamed temporal video and including the header information in the recorded first video segment.

### Claim 3 (depends on 1)

The system of claim 1, wherein only a most recent I-frame relative to the start time marker is dynamically buffered.

### Claim 4 (depends on 1)

The system of claim 1, wherein the functions further comprise clearing the current incomplete segment buffer when a new I-frame is generated.

### Claim 5 (depends on 1)

The system of claim 1, wherein dynamically buffering includes expanding or contracting a size of the current incomplete segment buffer based on a size of or the number of P-frames.

### Claim 6 (depends on 5)

The system of claim 5, wherein the functions further comprise returning the size of the current incomplete segment buffer to an initial size after it has been cleared.

### Claim 7 (depends on 1)

The system of claim 1, wherein the functions further comprise adjusting a time offset of the recorded first video segment.

### Claim 8

A method comprising:
streaming temporal video to obtain a streamed temporal video having a current incomplete segment;
receiving a start time marker; and
dynamically buffering the current incomplete segment to store data associated thereto and a current incomplete segment buffer;
the dynamically buffering step including buffering an I-frame and one or more P-frames of a number of P-frames, the I-frame having an associated I-frame time marker and the one or more P-frames having one or more associated P-frame time markers and the P-frames having associated time markers between the I-frame and the start time marker are included in the current incomplete segment;
wherein dynamically buffering includes expanding or contracting a size of the current incomplete segment buffer based on a size of or the number of P-frames or a size of the I-frame.

### Claim 9 (depends on 8)

The method of claim 8, further comprising buffering header information of the streamed temporal video.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
receiving first and second inputs to obtain start and end time markers for a first video segment;
continuously recording the streamed temporal video based on receipt of the first input and until receipt of the second input to obtain a raw recorded first video segment; and
generating a recorded first video segment based on the raw recorded first video segment and the current incomplete segment data.

### Claim 11 (depends on 10)

The method of claim 10, wherein the functions further comprise adjusting a time offset of the recorded first video segment.

### Claim 12 (depends on 8)

The method of claim 8, wherein only a most recent I-frame relative to the start time marker is dynamically buffered.

### Claim 13 (depends on 8)

The method of claim 8, further comprising clearing the current incomplete segment buffer when a new I-frame is generated.

### Claim 14 (depends on 8)

The method of claim 8, further comprising returning the size of the current incomplete segment buffer to an initial size after it has been cleared.

### Claim 15

A computer system comprising a computer having non-transitory memory for storing machine instructions that are to be executed by the computer, the machine instructions when executed by the computer implement the following functions:
streaming temporal video to obtain a streamed temporal video having a current incomplete segment;
receiving a start time marker; and
dynamically buffering the current incomplete segment to store data associated thereto and a current incomplete segment buffer;
the dynamically buffering step including buffering an I-frame and one or more P-frames of a number of P-frames, the I-frame having an associated I-frame time marker and the one or more P-frames having one or more associated P-frame time markers and the P-frames having associated time markers between the I-frame and the start time marker are included in the current incomplete segment;
wherein dynamically buffering includes expanding or contracting a size of the current incomplete segment buffer based on a size of or the number of P-frames or a size of the I-frame.

### Claim 16 (depends on 15)

The system of claim 15, wherein the functions further comprise returning the size of the current incomplete segment buffer to an initial size after it has been cleared.

### Claim 17 (depends on 15)

The system of claim 15, wherein only a most recent I-frame relative to the start time marker is dynamically buffered.

### Claim 18 (depends on 15)

The system of claim 15, wherein the functions further comprise clearing the current incomplete segment buffer when a new I-frame is generated.

### Claim 19

A computer system comprising a computer having non-transitory memory for storing machine instructions that are to be executed by the computer, the machine instructions when executed by the computer implement the following functions:
streaming temporal video to obtain a streamed temporal video having a current incomplete segment;
receiving a start time marker;
dynamically buffering the current incomplete segment to store data associated thereto and a current incomplete segment buffer;
the dynamically buffering step including buffering an I-frame and one or more P-frames of a number of P-frames and expanding or contracting a size of the current incomplete segment buffer based on a size of or the number of P-frames;
receiving first and second inputs to obtain the start time marker and an end time marker for a first video segment;
continuously recording the streamed temporal video based on receipt of the first input and until receipt of the second input to obtain a raw recorded first video segment; and
generating a recorded first video segment based on the raw recorded first video segment and the current incomplete segment data.

### Claim 20 (depends on 19)

The system of claim 19, wherein the I-frame has an associated I-frame time marker and the one or more P-frames have one or more associated P-frame time markers and the P-frames having associated time markers between the I-frame and the start time marker are included in the current incomplete segment.

### Claim 21 (depends on 19)

The system of claim 19, wherein only a most recent I-frame relative to the start time marker is dynamically buffered.

### Claim 22

A method comprising:
streaming temporal video of an event to obtain a streamed temporal video having a current incomplete segment;
receiving first and second inputs to obtain start and end time markers for a first video segment, the start and end time markers being associated with a start and end of a segment of the event;
dynamically buffering the current incomplete segment to store data associated thereto and a current incomplete segment buffer, the dynamic buffering including buffering an I-frame and one or more P-frames of a number of P-frames, the I-frame having an associated I-frame time marker and the one or more P-frames having one or more associated P-frame time markers and the P-frames having associated time markers between the I-frame and the start time marker are included in the current incomplete segment;
continuously recording the streamed temporal video based on receipt of the first input and until receipt of the second input to obtain a raw recorded first video segment;
generating a recorded first video segment based on the raw recorded first video segment and the current incomplete segment data; and
distributing the recorded first video segment to a remote device over a network.

### Claim 23 (depends on 22)

The method of claim 22, wherein dynamically buffering includes expanding or contracting a size of the current incomplete segment buffer based on a size of or the number of P-frames or a size of the I-frame.
