IP Library › Granted Patent US 9,521,357
Granted Patent B2
US 9,521,357 · App. 14/509,715 · Granted Dec 13, 2016

System and method for streaming and recording video

Inventor: Joseph Robert Marchese (Ray, MI)
H04N5/91H04N9/8042
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 9,521,357
App. No.
14/509,715
Granted
Dec 13, 2016
Kind
B2
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 (55)

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.

2. 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.

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

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

5. 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.

6. 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.

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

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.

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

10. 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.

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

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

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

14. 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.

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.

16. 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.

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

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

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.

20. 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.

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

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.

23. 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.

Continuity (1)
Related Publication 20160105634A1 · Apr 14, 2016