IP Library Granted Patent US 10,027,927
Granted Patent B2
US 10,027,927 · App. 15/209,589 · Granted Jul 17, 2018

High quality multimedia transmission from a mobile device for live and on-demand viewing

Inventors: Nikolay Abkairov (Moscow, RU); Alexey Timanovsky (Moscow, RU)
Assignee: SKYPE IRELAND TECHNOLOGIES HOLDINGS
H04N7/173H04L65/60H04L67/04H04N21/2187H04N21/23439H04N21/41407H04N21/44029H04N21/440227H04N21/44245H04N21/4788H04N21/47202
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 10,027,927
App. No.
15/209,589
Granted
Jul 17, 2018
Kind
B2
Abstract

Techniques are provided for transmitting high quality multimedia data from a mobile device for live and on-demand viewing. The mobile device adjusts the quality of a single multimedia data stream based on one or more factors, such as the available bandwidth of a wireless link with a server, whether there are any “live” subscribers of the multimedia data stream, whether any “live” subscribers are interacting with the mobile device, and a change in the privacy settings of the user of the mobile device. Any data that was removed from the multimedia data stream before it was transmitted to a server is subsequently sent to the server. The server generates multiple versions of the multimedia data stream that vary in terms of quality. The server selects which version of the multimedia data stream to transmit to a subscriber of the multimedia data stream based on one or more criteria.

Claims (51)

1. A method comprising:

receiving, at a server, a first portion of a multimedia data stream from a device that is in a real-time streaming mode, the received first portion of the multimedia data stream including first sequencing information, the first portion missing a second portion of the multimedia data stream that was removed by the device;

streaming, by the server, in real-time a live version of the first portion of the multimedia data stream to one or more other devices for live viewing;

receiving, at the server, from the device, the second portion of the multimedia data stream, the portion having second sequencing information;

combining, at the server, the first and second portions of the multimedia data stream based on the first and second sequencing information to generate a different version of the multimedia data stream; and

causing the different version of the multimedia data stream to be stored for non-live viewing.

2. The method of claim 1 , wherein the different version of the multimedia data stream comprises an on-demand version of the multimedia data stream.

3. The method of claim 1 , wherein the different version of the multimedia data stream has a higher quality relative to the live version of the multimedia data stream.

4. The method of claim 1 , wherein the second portion that was removed from the multimedia data stream is received after receiving the multimedia data stream from the device that is in the real-time streaming mode.

5. The method of claim 1 , wherein the streaming in real-time the live version of the multimedia data stream is performed in response to determining that the one or more devices have subscribed to a live viewing of the multimedia data stream.

6. The method of claim 1 , wherein the portion of the data that was removed from the multimedia data stream is received during the streaming of the live version of the multimedia data stream.

7. The method of claim 1 , wherein the portion of data removed by the device comprises key frames and non-key frames of the multimedia data stream.

8. The method of claim 1 , wherein the portion of data removed by the device comprises portions of frames removed by the device as a result of bit rate scaling.

9. A system comprising:

a storage device; and

at least a memory and one or more hardware processors to perform operations comprising:

receiving, by a server, a first portion of a multimedia data stream from a device that is in a real-time streaming mode, the received first portion of the multimedia data stream including first sequencing information, the first portion missing a second portion of the multimedia data stream that was removed by the device;

streaming, by the server, in real-time a live version of the first portion of the multimedia data stream to one or more other devices for live viewing;

receiving, at the server and from the device, the second portion of the multimedia data stream, the second portion including second sequencing information;

generating, by the server, a different version of the multimedia data stream y combining the first and second portions of the multimedia data stream based on the first and second sequencing information; and

storing the different version of the multimedia data stream in the storage device for non-live viewing.

10. The method of claim 1 , further comprising: receiving, from a client device, a request for the different version of the multimedia data stream, wherein the request is received during the streaming of the live version of the multimedia data stream, and the different version of the multimedia data stream is streamed to the client device before streaming the live version has ended.

11. The method of claim 1 , wherein the portion of the data is received at the server from the device with a delay relative to the streaming, by the server, of a corresponding portion of the live version of the multimedia data stream to the one or more devices for live viewing.

12. The method of claim 1 , wherein the first sequencing information includes sequence numbers for frames included in the multimedia data stream and the second sequencing information include sequence numbers for frames included in the portion, and the combining is based on the first and second sequence numbers.

13. The method of claim 1 , further comprising keeping track, by the server, of missing sequence numbers in the first sequencing information, and requesting, from the device, the portion based on one or more of the tracked missing sequence numbers.

14. The system of claim 9 , wherein the portion of the data that was removed from the multimedia data stream is received during the streaming of the live version of the multimedia data stream.

15. The system of claim 9 , wherein the different version of the multimedia data stream comprises an on-demand version of the multimedia data stream.

16. The system of claim 15 , wherein the storing comprises storing the on-demand version of the multimedia data stream in the storage device for viewing by one or more subscriber devices.

17. The system of claim 9 , wherein the different version of the multimedia data stream has a higher quality relative to the live version of the multimedia data stream.

18. The system of claim 9 , wherein the second portion that was removed from the multimedia data stream is received after receiving the multimedia data stream from the device that is in the real-time streaming mode.

19. The system of claim 9 , wherein the streaming in real-time the live version of the multimedia data stream is performed in response to determining that the one or more devices have subscribed to a live viewing of the multimedia data stream.

20. The system of claim 9 , wherein the portion of data removed by the device comprises key frames and non-key frames of the multimedia data stream.

21. The system of claim 9 , wherein the portion of data removed by the device comprises portions of frames removed by the device as a result of bit rate scaling.

22. The system of claim 9 , wherein the operations further comprise:

receiving, from a client device, a request for the different version of the multimedia data stream; and

streaming the different version of the multimedia data stream to the client device.

23. The system of claim 22 , wherein the request is received after the streaming of the live version of the multimedia data stream has ended.

24. The system of claim 22 , wherein the request is received during the streaming of the live version of the multimedia data stream, and the different version of the multimedia data stream is streamed to the client device before streaming the live version has ended.

25. One or more machine-readable storage memories having instructions stored thereon that, responsive to execution by one or more hardware processors, cause the one or more hardware processors to perform operations comprising:

receiving, at a server, a first portion of a multimedia data stream from a device that is in a real-time streaming mode, the received first portion of the multimedia data stream including first sequencing information, the first portion missing a second portion of the multimedia data stream that was removed by the device;

streaming, by the server, in real-time a live version of the first portion of the multimedia data stream to one or more other devices for live viewing;

receiving, at the server and from the device, the second portion of the multimedia data stream, the second portion including second sequencing information;

combining, at the server, the first and second portions of the multimedia data stream based on the first and second sequencing information to generate a different version of the multimedia data stream; and

causing the different version of the multimedia data stream to be stored for non-live viewing.

26. The one or more machine-readable storage memories of claim 25 , wherein the different version of the multimedia data stream comprises an on-demand version of the multimedia data stream.

27. The one or more machine-readable storage memories of claim 25 , wherein the different version of the multimedia data stream has a higher quality relative to the live version of the multimedia data stream.

28. The one or more machine-readable storage memories of claim 25 , wherein the streaming in real-time the live version of the multimedia data stream is performed in response to determining that the one or more devices have subscribed to a live viewing of the multimedia data stream.

29. The one or more machine-readable storage memories of claim 25 , wherein the portion of the data that was removed from the multimedia data stream is received after receiving the multimedia data stream from the device that is in the real-time streaming mode.

30. The one or more machine-readable storage memories of claim 25 , wherein the portion of the data that was removed from the multimedia data stream is received during the streaming of the live version of the multimedia data stream.

31. The one or more machine-readable storage memories of claim 25 , wherein the portion of data removed by the device comprises key frames and non-key frames of the multimedia data stream.

32. The one or more machine-readable storage memories of claim 25 , wherein the portion of data removed by the device comprises portions of frames removed by the device as a result of bit rate scaling.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2016
From: ABKAIROV, NIKOLAY; TIMANOVSKY, ALEXEY
To: QIK, INC.
Reel/Frame 039150/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2016
From: QIK, INC.
To: SKYPE IRELAND TECHNOLOGIES HOLDINGS LIMITED
Reel/Frame 039150/0973 →
CHANGE OF NAME Recorded Jul 13, 2016
From: SKYPE IRELAND TECHNOLOGIES HOLDINGS LIMITED
To: SKYPE IRELAND TECHNOLOGIES HOLDINGS
Reel/Frame 039336/0902 →
Continuity (8)
Continuation 14524925 · Oct 27, 2014
Continuation 12276171 · Nov 21, 2008
Provisional Application 61106131 · Oct 16, 2008
Provisional Application 61106133 · Oct 16, 2008
Provisional Application 61082457 · Jul 21, 2008
Provisional Application 60989711 · Nov 21, 2007
Provisional Application 60989716 · Nov 21, 2007
Related Publication 20160323547A1 · Nov 3, 2016