WO2013144982A1 - Method and system for streaming of a media file in a distributed media streaming environment - Google Patents

Method and system for streaming of a media file in a distributed media streaming environment Download PDF

Info

Publication number
WO2013144982A1
WO2013144982A1 PCT/IN2013/000210 IN2013000210W WO2013144982A1 WO 2013144982 A1 WO2013144982 A1 WO 2013144982A1 IN 2013000210 W IN2013000210 W IN 2013000210W WO 2013144982 A1 WO2013144982 A1 WO 2013144982A1
Authority
WO
WIPO (PCT)
Prior art keywords
donor
streaming
media file
fragments
donor devices
Prior art date
Application number
PCT/IN2013/000210
Other languages
French (fr)
Inventor
Soumya Das
Saptarshi Biswas
Original Assignee
Soumya Das
Saptarshi Biswas
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Soumya Das, Saptarshi Biswas filed Critical Soumya Das
Publication of WO2013144982A1 publication Critical patent/WO2013144982A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23116Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/632Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices

Definitions

  • the present invention relates to the field of media streaming systems, and more particularly relates to streaming of a media file in a distributed media streaming environment.
  • Improvements in computing technologies have changed the way people interact with one another as well as how people share information with one another. Such improvements include the introduction of peer-to-peer based file sharing protocols.
  • Peer-to-peer file sharing technologies are being rapidly adopted to distribute digital information.
  • Peer-to-peer technology improved overall system reliability by allowing one or more peer computers to serve as a source of digital information (e.g., multi-media content) requested by another peer computer.
  • a BitTorrent file distribution system is an example of peer-to-peer file sharing system.
  • the BitTorrent file distribution system enables distribution of digital content (e.g., video file) by dividing the video file into number of pieces and allowing the pieces to be shared between peer computers in the peer-to-peer sharing network.
  • Figure 1 A is a block diagram of a distributed media streaming system, according to one embodiment.
  • Figure 1B is a block diagram of a distributed media streaming system, according to another embodiment.
  • Figure 2 is a process flowchart illustrating an exemplary method of streaming of a media file to a recipient device in a distributed media streaming environment, according to one embodiment.
  • Figure 3 is a process flowchart illustrating an exemplary method of streaming of a media file to a recipient device in a distributed media streaming environment, according to another embodiment.
  • Figure 4 is a schematic representation depicting balancing of load across multiple donor devices while streaming a video file to a recipient device.
  • Figure 5 is a block diagram of a donor device, such as those shown in Figure 1, sb-r-" ⁇ "arious components for implementing embodiments of the present subject matter.
  • Figure 6 is a block diagram of a recipient device, such as those shown in Figure 1, showing various components for implementing embodiments of the present subject matter.
  • the present invention provides a method and system for streaming of a media file in a distributed media streaming environment.
  • the accompanying drawings that form a part hereof, and in which are shown, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
  • 'media' refers to Video' and/or 'audio'.
  • Figure 1 A is a block diagram of a distributed media streaming system 100, according to one embodiment.
  • the distributed media streaming system 100 includes a plurality of donor devices 102A-N, a file lookup server 104, and a recipient device 106 connected to each other via a network 108.
  • the recipient device 106 wishes to watch a particular media file (e.g., media file A) available with one or more of the donor devices 102A-N.
  • the recipient device 106 sends a request for providing a list of donor devices capable of streaming the media file to the file lookup server 104 via the network 108.
  • the recipient device 106 sends a unique file signature (UFS) of the media file A in the request.
  • UFS is a piece of data that uniquely identifies a media file.
  • the file lookup server 104 upon receiving request, identifies one or more of the donor devices 102A-N (say donor devices 102A-C) in which the media file A is available for sharing with the recipient device 106 based on the unique file signature. In some embodiments, the file lookup server 104 maintains a list of media files available with the donor devices 102A-N. In these embodiments, the file lookup server 104 determines whether the requested media file A is present in the list of media files available with the donor devices 102A-N. Accordingly, the file lookup server 104 sends a list of donor devices capable of streaming the media file A.
  • the recipient device 106 selects donor devices 102A-C from the received list and sends a request for streaming the media file A to each of the donor devices 102A-C. Accordingly, each of the donor devices 102A-C streams one or more fragments of the media file A to the recipient device 106. The number of fragments streamed by each of the donor devices 102A-C based on link parameters associated with respective communication link between the donor devices 102A-C and the recipient device 104 as will discussed in Figures 2 and 3.
  • Figure 1B is a block diagram of a distributed media streaming system 150, according to another embodiment.
  • the system 150 of Figure 1B is similar to the system 100 of Figure 1A, except the system 50 does not include a media-file look up server 104.
  • the recipient device 106 sends a request for provide capability to stream the media file A to the donor devices 102A-N.
  • the recipient device 106 sends a unique file signature of the media file A in the request. Based on the request, each of the donor devices 102A-N confirms presence of the media file A based on the unique file signature and sends a response indicating whether it is capable of streaming the media file A or not.
  • the recipient device 106 identifies multiple donor devices 102A-C from the donor devices 102A-N based on the response and sends, a request for streaming the media file A to each of the donor devices 102A-C. Accordingly, each of the donor devices 102A-C streams one or more fragments of the media file A to the recipient device 106. The number of fragments streamed by each of the donor devices 102A-C based on link parameters associated with respective communication link between the donor devices 102A-C and the recipient device 104 as will discussed in Figures 2 and 3.
  • Figure 2 is a process flowchart 200 illustrating an exemplary method of downloading a desired media file from multiple donor devices 102A-C, according to one embodiment.
  • multiple donor devices capable of streaming a desired media file in a distributed manner are determined.
  • the multiple donor devices 102A-C are determined by contacting the file lookup server 104.
  • the multiple donor devices 102A-C are determined by contacting the plurality of donor devices 102A-N.
  • bandwidth and latency associated with a communication link with each of the donor devices 102A-C is calculated.
  • a weight value is computed and assigned to each donor device based on the calculated bandwidth and latency on the respective communication link.
  • the weight value (W) for each donor device is computed as follows:
  • P and Q are application-specific coefficients. It can be noted that coefficients P and Q can vary and are adjusted dynamically to suit playback requirements in real time. For example, while buffering a media, the higher values of P can be chosen to put more weight on donor devices with lower latency. On the other hand, during regular playback with sufficient buffer levels, the weight of donor devices with higher bandwidth can be made higher by choosing higher values of Q.
  • order of the donor devices 102A-C to serve fragments of the media file is determined based on the weight values using a weighted round-robin arbitration algorithm. For example* in the beginning, a donor device (e.g., the donor device 102A) having the highest weight value is identified from the donor devices 102A-C for streaming one or more fragments of the requested media file.
  • a request for streaming the one or more fragments is sent to the donor devices 102A-C according to the determined order. Accordingly, the donor devices 102A-C encode and stream the requested fragments) to the recipient device 106.
  • the one or more fragments are received and consequently played in order at the recipient device 106.
  • FIG. 214 it is determined whether there are any fragments of the media file remaining to be streamed. If there are any fragments of the media file remaining to be streamed, then the process repeats the steps 204 to 214, else the process is terminated. It may so happen that, the donor device 102B may have highest weight value compared to the donor devices 102A and 102C. In such case, the donor device 102B is selected as a donor device for streaming one or more of the remaining fragments of the media file, at step 208.
  • Figure 3 is a process flowchart 300 illustrating an exemplary method of streaming of media file to the recipient device 106 in a distributed media streaming environment, according to one embodiment.
  • a request for streaming a media file is received from the recipient device 106.
  • the request includes a unique file signature (UFS) of the desired media file, bandwidth and latency of respective communication link with the recipient device 106 and so on.
  • UFS unique file signature
  • the requested media file is fragmented into a plurality of fragments based on the request.
  • a weight value associated with each of the donor devices 102A-C is computed based on bandwidth and latency associated with a respective communication link with the recipient device 106.
  • the weight value (W) is computed using the following equation:
  • P and Q are coefficients. It can be noted that coefficients P and Q can vary and are adjusted dynamically to suit playback requirements in real time.
  • the numbers of the fragments, which are to be streamed by each of the donor devices 102A-C are determined based on the weight value [W] associated with each of the donor devices 102A-C.
  • order in which the fragments are to be streamed to the recipient device 106 by each of the donor devices 102A-C is negotiated among the donor devices 102A-C. In one exemplary implementation, the order in which the fragments are to be streamed is based on the fragment number. So, based on the fragment number, each of the donor devices 102A-C decides order in which one or more fragments are to be streamed.
  • the fragments associated with the requested media file are streamed in an agreed-upon order by the donor devices 102A- C so that the requested media file is played in continuous and. smooth manner at the recipient device 106.
  • the desired media file is streamed to the recipient device 106 by the donor devices 102A-C without the need to download the media file at the recipient device 106.
  • the desired media file is provided to the recipient device 106 by the donor devices 102A-C using distributed streaming technique.
  • Figure 4 is a schematic representation 400 depicting balancing of load across multiple donor devices while streaming a video file to the recipient device 106.
  • P1, P2, and P3 are the donor devices 102A-C and P4 is the recipient device 106.
  • P1, P2 and P3 have the video file of 60 seconds' duration and P4 wishes to watch the same video over the Internet.
  • the device P4 forwards the request for video file to the devices P1, P2, and P3 since the devices P1, P2 and P3 have the video file requested by the device P4.
  • each of devices P1, P2, and P3 fragments the video file into six fragments (f1, f2, f3, f4, f5, and f6) of 10 second duration and streams the fragments to the device P4 in an order which is agreed upon among the devices P1 , P2, and P3 based on different parameters like bandwidth, load and the video file characteristics.
  • the device P1 has strong uplink
  • the device P2 has medium uplink
  • the device P3 has weak uplink.
  • the devices P1, P2, P3 through interaction among themselves agree upon on the following pattern of sourcing the video fragments - P1 to transmit fragments f1, f3 and f5, P2 to transmit the fragments f2 and f4, and P3 to transmit the fragment f6 to the recipient device 106.
  • the order of transmission of fragments f1-f6 by P1, P2 and P3 is such that the video is played in a continuous and smooth manner at the device P4.
  • the device P4 may send a request for streaming one or more fragments (e.g., f1 and f2) to the device, say P1, having highest weight value since the device P1 is having a strong uplink.
  • the recipient device 106 recalculates the weight value and sends a request for streaming fragment (e.g., f4) to the device P2.
  • the device P2 streams the fragment f4 to the recipient device 106. The process continues till all the fragments are streamed by the devices P1 , P2 and P3 based on the request from the device P1.
  • FIG. 5 is a block diagram of the donor device 102A, such as those shown in Figure 1, showing various components for implementing embodiments of the present subject matter.
  • the donor device 102A includes a processor 502, memory 504, a read only memory (ROM) 506, a communication interface 508, a bus 510, a display 5 2, an input device 514, and a cursor control 516.
  • the processor 502, as used herein, means any type of computational circuit, such as, but not limited to, a microprocessor, a microcontroller, a complex instruction set computing microprocessor, a reduced instruction set computing microprocessor, a very long instruction word microprocessor, an explicitly parallel instruction computing microprocessor, a graphics processor, a digital signal processor, or any other type of processing circuit.
  • the processor 502 may also include embedded controllers, such as . generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, smart cards, and the like.
  • the memory 504 may be volatile memory and non-volatile memory.
  • the memory 504 includes a distributed streaming module 518 for streaming one or more fragments of media file in a distributed manner, according to one or more embodiments described in Figures 1A to 3.
  • a variety of computer-readable storage media may be stored in and accessed from the memory elements.
  • Memory elements may include any suitable memory device(s) for storing data and machine-readable instructions, such as read only memory, random access memory, erasable programmable read only memory, electrically erasable programmable read only memory, hard drive, removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, and the like.
  • Embodiments of the present subject matter may be implemented in conjunction with modules, including functions, procedures, data structures, and application programs, for performing tasks, or defining abstract data types or low-level hardware contexts.
  • the distributed streaming module 518 may be stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be executed by the processor 502.
  • a computer program may include machine-readable instructions capable of encoding and streaming one or more fragments of media file in a distributed manner, according to the teachings and herein described embodiments of the present subject matter.
  • the computer program may be included on a compact disk-read only memory (CD-ROM) and loaded from the CD-ROM to a hard drive in the non-volatile memory.
  • CD-ROM compact disk-read only memory
  • the bus 510 acts as interconnect between various components of the donor device 102A.
  • the components such as the ROM 506, the communication interface 508, display 512, the input device 514, and the cursor control 516 are well known to the person skilled in the art and hence the explanation is thereof omitted.
  • Figure 6 is a block diagram of the recipient device 104, such as those shown in Figure 1, showing various components for implementing embodiments of the present subject matter.
  • the recipient device 104 includes a processor 602, memory 604, a read only memory (ROM) 606, a communication interface 608, a bus 610, a display 612, an input device 614, and a cursor control 616.
  • ROM read only memory
  • the processor 602 means any type of computational circuit, such as, but not limited to, a microprocessor, a microcontroller, a complex instruction set computing microprocessor, a reduced instruction set computing microprocessor, a very long instruction word microprocessor, an explicitly parallel instruction computing microprocessor, a graphics processor, a digital signal processor, or any other type of processing circuit.
  • the processor 602 may also include embedded controllers, such as generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, smart cards, and the like.
  • the memory 604 may be volatile memory and non-volatile memory.
  • the memory 604 includes a playback module 618 for downloading fragments of a media file from one or more donor devices in a distributed media streaming environment in a distributed manner and playing media corresponding to the fragments of media file, according to one or more embodiments described in Figures 1A to 3.
  • a variety of computer-readable storage media may be stored in and accessed from the memory elements.
  • Memory elements may include any suitable memory device(s) for storing data and machine-readable instructions, such as read only memory, random access memory, erasable programmable read only memory, electrically erasable programmable read only memory, hard drive, removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, and the like.
  • Embodiments of the present subject matter may be implemented in conjunction with modules, including functions, procedures, data structures, and application programs, for performing tasks, or defining abstract data types or low-level hardware contexts.
  • the playback module 618 may be stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be executed by the processor 602.
  • a computer program may include machine-readable instructions capable of downloading fragments of a media file from one or more donor devices in a distributed media streaming environment in a distributed manner and playing media corresponding to the fragments of media file on the display 612, according to the teachings and herein described embodiments of the present subject matter.
  • the computer program may be included on a compact disk-read only memory (CD-ROM) and loaded from the CD-ROM to a hard drive in the noh-volatile memory.
  • CD-ROM compact disk-read only memory
  • the bus 610 acts as interconnect between various components of the recipient device 104.
  • the components such as the ROM 606, the communication interface 608, display 612, the input device 614, and the cursor control 616 are well known to the person skilled in the art and hence the explanation is thereof omitted.
  • the present embodiments have been described with reference to specific example embodiments; it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments.
  • the various devices, modules, and the like described herein may be enabled and operated using hardware circuitry, for example, complementary metal oxide semiconductor based logic circuitry, firmware, software and/or any combination of hardware, firmware, and/or software embodied in a machine readable medium.
  • the various electrical structure and methods may be embodied using transistors, logic gates, and electrical circuits, such as application specific integrated circuit.

Abstract

The present invention provides a method and system for streaming of a media file in a distributed media streaming environment. User A wants to watch a video stored with the user B's device. The same video happens to be stored in user C's device and user D's device which are also connected to the user A's device via the Internet. In such a case, the video is streamed to the user A's device from the user B's, user C's and user D's devices so that the load on user B's device is substantially reduced and the bandwidth is utilized in an efficient manner as the video gets delivered to the intended user from multiple devices.

Description

METHOD AND SYSTEM FOR STREAMING OF A MEDIA FILE IN A DISTRIBUTED MEDIA STREAMING ENVIRONMENT
FIELD OF THE INVENTION
The present invention relates to the field of media streaming systems, and more particularly relates to streaming of a media file in a distributed media streaming environment.
BACKGROUND OF THE INVENTION
Improvements in computing technologies have changed the way people interact with one another as well as how people share information with one another. Such improvements include the introduction of peer-to-peer based file sharing protocols.
Peer-to-peer file sharing technologies are being rapidly adopted to distribute digital information. Peer-to-peer technology improved overall system reliability by allowing one or more peer computers to serve as a source of digital information (e.g., multi-media content) requested by another peer computer. Thus, the risk of not being able to obtain digital information due to a server being not operational (either due to the server itself, or one or more network connections) is mitigated. A BitTorrent file distribution system is an example of peer-to-peer file sharing system. The BitTorrent file distribution system enables distribution of digital content (e.g., video file) by dividing the video file into number of pieces and allowing the pieces to be shared between peer computers in the peer-to-peer sharing network. However, the drawback of such a peer-to-peer file sharing system (e.g., BitTorrent) is that for most video container formats, the user of the recipient peer computer needs to wait till the entire video file gets downloaded on the recipient peer computer for watching the video file, thereby causing inconvenience to the user. BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS
Figure 1 A is a block diagram of a distributed media streaming system, according to one embodiment.
Figure 1B is a block diagram of a distributed media streaming system, according to another embodiment.
Figure 2 is a process flowchart illustrating an exemplary method of streaming of a media file to a recipient device in a distributed media streaming environment, according to one embodiment.
Figure 3 is a process flowchart illustrating an exemplary method of streaming of a media file to a recipient device in a distributed media streaming environment, according to another embodiment.
Figure 4 is a schematic representation depicting balancing of load across multiple donor devices while streaming a video file to a recipient device. Figure 5 is a block diagram of a donor device, such as those shown in Figure 1, sb-r-"^ "arious components for implementing embodiments of the present subject matter.
Figure 6 is a block diagram of a recipient device, such as those shown in Figure 1, showing various components for implementing embodiments of the present subject matter.
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way. DETAILED DESCRIPTION OF THE INVENTION
The present invention provides a method and system for streaming of a media file in a distributed media streaming environment. In the following detailed description of the embodiments of the invention, reference is made to the accompanying drawings that form a part hereof, and in which are shown, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
Throughout the document, the term 'media' refers to Video' and/or 'audio'.
Figure 1 A is a block diagram of a distributed media streaming system 100, according to one embodiment. In Figure 1A, the distributed media streaming system 100 includes a plurality of donor devices 102A-N, a file lookup server 104, and a recipient device 106 connected to each other via a network 108.
Consider that, the user of the recipient device 106 wishes to watch a particular media file (e.g., media file A) available with one or more of the donor devices 102A-N. In such case, the recipient device 106 sends a request for providing a list of donor devices capable of streaming the media file to the file lookup server 104 via the network 108. In some embodiments, the recipient device 106 sends a unique file signature (UFS) of the media file A in the request. The UFS is a piece of data that uniquely identifies a media file. The file lookup server 104, upon receiving request, identifies one or more of the donor devices 102A-N (say donor devices 102A-C) in which the media file A is available for sharing with the recipient device 106 based on the unique file signature. In some embodiments, the file lookup server 104 maintains a list of media files available with the donor devices 102A-N. In these embodiments, the file lookup server 104 determines whether the requested media file A is present in the list of media files available with the donor devices 102A-N. Accordingly, the file lookup server 104 sends a list of donor devices capable of streaming the media file A. The recipient device 106 selects donor devices 102A-C from the received list and sends a request for streaming the media file A to each of the donor devices 102A-C. Accordingly, each of the donor devices 102A-C streams one or more fragments of the media file A to the recipient device 106. The number of fragments streamed by each of the donor devices 102A-C based on link parameters associated with respective communication link between the donor devices 102A-C and the recipient device 104 as will discussed in Figures 2 and 3.
Figure 1B is a block diagram of a distributed media streaming system 150, according to another embodiment. The system 150 of Figure 1B is similar to the system 100 of Figure 1A, except the system 50 does not include a media-file look up server 104. In the system 150, the recipient device 106 sends a request for provide capability to stream the media file A to the donor devices 102A-N. In some embodiments, the recipient device 106 sends a unique file signature of the media file A in the request. Based on the request, each of the donor devices 102A-N confirms presence of the media file A based on the unique file signature and sends a response indicating whether it is capable of streaming the media file A or not. Accordingly, the recipient device 106 identifies multiple donor devices 102A-C from the donor devices 102A-N based on the response and sends, a request for streaming the media file A to each of the donor devices 102A-C. Accordingly, each of the donor devices 102A-C streams one or more fragments of the media file A to the recipient device 106. The number of fragments streamed by each of the donor devices 102A-C based on link parameters associated with respective communication link between the donor devices 102A-C and the recipient device 104 as will discussed in Figures 2 and 3. Figure 2 is a process flowchart 200 illustrating an exemplary method of downloading a desired media file from multiple donor devices 102A-C, according to one embodiment. At step 202, multiple donor devices capable of streaming a desired media file in a distributed manner are determined. As described above, the multiple donor devices 102A-C are determined by contacting the file lookup server 104. Alternatively, the multiple donor devices 102A-C are determined by contacting the plurality of donor devices 102A-N. At step 204, bandwidth and latency associated with a communication link with each of the donor devices 102A-C is calculated.
At step 206, a weight value is computed and assigned to each donor device based on the calculated bandwidth and latency on the respective communication link. For example, the weight value (W) for each donor device is computed as follows:
W = P/latency + Q*bandwidth,
where, P and Q are application-specific coefficients. It can be noted that coefficients P and Q can vary and are adjusted dynamically to suit playback requirements in real time. For example, while buffering a media, the higher values of P can be chosen to put more weight on donor devices with lower latency. On the other hand, during regular playback with sufficient buffer levels, the weight of donor devices with higher bandwidth can be made higher by choosing higher values of Q.
At step 208, order of the donor devices 102A-C to serve fragments of the media file is determined based on the weight values using a weighted round-robin arbitration algorithm. For example* in the beginning, a donor device (e.g., the donor device 102A) having the highest weight value is identified from the donor devices 102A-C for streaming one or more fragments of the requested media file. At step 2 0, a request for streaming the one or more fragments is sent to the donor devices 102A-C according to the determined order. Accordingly, the donor devices 102A-C encode and stream the requested fragments) to the recipient device 106. At step 212, the one or more fragments are received and consequently played in order at the recipient device 106. At step 214, it is determined whether there are any fragments of the media file remaining to be streamed. If there are any fragments of the media file remaining to be streamed, then the process repeats the steps 204 to 214, else the process is terminated. It may so happen that, the donor device 102B may have highest weight value compared to the donor devices 102A and 102C. In such case, the donor device 102B is selected as a donor device for streaming one or more of the remaining fragments of the media file, at step 208. Figure 3 is a process flowchart 300 illustrating an exemplary method of streaming of media file to the recipient device 106 in a distributed media streaming environment, according to one embodiment. At step 302, a request for streaming a media file is received from the recipient device 106. For example, the request includes a unique file signature (UFS) of the desired media file, bandwidth and latency of respective communication link with the recipient device 106 and so on.
At step 304, the requested media file is fragmented into a plurality of fragments based on the request. At step 306, a weight value associated with each of the donor devices 102A-C is computed based on bandwidth and latency associated with a respective communication link with the recipient device 106. For example, the weight value (W) is computed using the following equation:
W = P/latency + CTbandwidth,
where, P and Q are coefficients. It can be noted that coefficients P and Q can vary and are adjusted dynamically to suit playback requirements in real time.
At step 308, the numbers of the fragments, which are to be streamed by each of the donor devices 102A-C, are determined based on the weight value [W] associated with each of the donor devices 102A-C. At step 310, order in which the fragments are to be streamed to the recipient device 106 by each of the donor devices 102A-C is negotiated among the donor devices 102A-C. In one exemplary implementation, the order in which the fragments are to be streamed is based on the fragment number. So, based on the fragment number, each of the donor devices 102A-C decides order in which one or more fragments are to be streamed. At step 312, the fragments associated with the requested media file are streamed in an agreed-upon order by the donor devices 102A- C so that the requested media file is played in continuous and. smooth manner at the recipient device 106. In this manner, the desired media file is streamed to the recipient device 106 by the donor devices 102A-C without the need to download the media file at the recipient device 106. In other words, the desired media file is provided to the recipient device 106 by the donor devices 102A-C using distributed streaming technique.
Figure 4 is a schematic representation 400 depicting balancing of load across multiple donor devices while streaming a video file to the recipient device 106. In Figure 4, consider that P1, P2, and P3 are the donor devices 102A-C and P4 is the recipient device 106. P1, P2 and P3 have the video file of 60 seconds' duration and P4 wishes to watch the same video over the Internet. The device P4 forwards the request for video file to the devices P1, P2, and P3 since the devices P1, P2 and P3 have the video file requested by the device P4.
Accordingly, each of devices P1, P2, and P3 fragments the video file into six fragments (f1, f2, f3, f4, f5, and f6) of 10 second duration and streams the fragments to the device P4 in an order which is agreed upon among the devices P1 , P2, and P3 based on different parameters like bandwidth, load and the video file characteristics.
Consider that, the device P1 has strong uplink, the device P2 has medium uplink and the device P3 has weak uplink. It might happen that the devices P1, P2, P3 through interaction among themselves agree upon on the following pattern of sourcing the video fragments - P1 to transmit fragments f1, f3 and f5, P2 to transmit the fragments f2 and f4, and P3 to transmit the fragment f6 to the recipient device 106. It can be noted that the order of transmission of fragments f1-f6 by P1, P2 and P3 is such that the video is played in a continuous and smooth manner at the device P4. Alternatively, the device P4 may send a request for streaming one or more fragments (e.g., f1 and f2) to the device, say P1, having highest weight value since the device P1 is having a strong uplink. Suddenly, if the P2 becomes stronger than P1, then the recipient device 106 recalculates the weight value and sends a request for streaming fragment (e.g., f4) to the device P2. Accordingly, the device P2 streams the fragment f4 to the recipient device 106. The process continues till all the fragments are streamed by the devices P1 , P2 and P3 based on the request from the device P1.
Figure 5 is a block diagram of the donor device 102A, such as those shown in Figure 1, showing various components for implementing embodiments of the present subject matter. In Figure 5, the donor device 102A includes a processor 502, memory 504, a read only memory (ROM) 506, a communication interface 508, a bus 510, a display 5 2, an input device 514, and a cursor control 516. The processor 502, as used herein, means any type of computational circuit, such as, but not limited to, a microprocessor, a microcontroller, a complex instruction set computing microprocessor, a reduced instruction set computing microprocessor, a very long instruction word microprocessor, an explicitly parallel instruction computing microprocessor, a graphics processor, a digital signal processor, or any other type of processing circuit. The processor 502 may also include embedded controllers, such as . generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, smart cards, and the like.
The memory 504 may be volatile memory and non-volatile memory. For example, the memory 504 includes a distributed streaming module 518 for streaming one or more fragments of media file in a distributed manner, according to one or more embodiments described in Figures 1A to 3. A variety of computer-readable storage media may be stored in and accessed from the memory elements. Memory elements may include any suitable memory device(s) for storing data and machine-readable instructions, such as read only memory, random access memory, erasable programmable read only memory, electrically erasable programmable read only memory, hard drive, removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, and the like. Embodiments of the present subject matter may be implemented in conjunction with modules, including functions, procedures, data structures, and application programs, for performing tasks, or defining abstract data types or low-level hardware contexts. The distributed streaming module 518 may be stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be executed by the processor 502. For example, a computer program may include machine-readable instructions capable of encoding and streaming one or more fragments of media file in a distributed manner, according to the teachings and herein described embodiments of the present subject matter. In one embodiment, the computer program may be included on a compact disk-read only memory (CD-ROM) and loaded from the CD-ROM to a hard drive in the non-volatile memory.
The bus 510 acts as interconnect between various components of the donor device 102A. The components such as the ROM 506, the communication interface 508, display 512, the input device 514, and the cursor control 516 are well known to the person skilled in the art and hence the explanation is thereof omitted.
Figure 6 is a block diagram of the recipient device 104, such as those shown in Figure 1, showing various components for implementing embodiments of the present subject matter. In Figure 6, the recipient device 104 includes a processor 602, memory 604, a read only memory (ROM) 606, a communication interface 608, a bus 610, a display 612, an input device 614, and a cursor control 616.
The processor 602, as used herein, means any type of computational circuit, such as, but not limited to, a microprocessor, a microcontroller, a complex instruction set computing microprocessor, a reduced instruction set computing microprocessor, a very long instruction word microprocessor, an explicitly parallel instruction computing microprocessor, a graphics processor, a digital signal processor, or any other type of processing circuit. The processor 602 may also include embedded controllers, such as generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, smart cards, and the like. The memory 604 may be volatile memory and non-volatile memory. For example, the memory 604 includes a playback module 618 for downloading fragments of a media file from one or more donor devices in a distributed media streaming environment in a distributed manner and playing media corresponding to the fragments of media file, according to one or more embodiments described in Figures 1A to 3. A variety of computer-readable storage media may be stored in and accessed from the memory elements. Memory elements may include any suitable memory device(s) for storing data and machine-readable instructions, such as read only memory, random access memory, erasable programmable read only memory, electrically erasable programmable read only memory, hard drive, removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, and the like.
Embodiments of the present subject matter may be implemented in conjunction with modules, including functions, procedures, data structures, and application programs, for performing tasks, or defining abstract data types or low-level hardware contexts. The playback module 618 may be stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be executed by the processor 602. For example, a computer program may include machine-readable instructions capable of downloading fragments of a media file from one or more donor devices in a distributed media streaming environment in a distributed manner and playing media corresponding to the fragments of media file on the display 612, according to the teachings and herein described embodiments of the present subject matter. In one embodiment, the computer program may be included on a compact disk-read only memory (CD-ROM) and loaded from the CD-ROM to a hard drive in the noh-volatile memory.
The bus 610 acts as interconnect between various components of the recipient device 104. The components such as the ROM 606, the communication interface 608, display 612, the input device 614, and the cursor control 616 are well known to the person skilled in the art and hence the explanation is thereof omitted. The present embodiments have been described with reference to specific example embodiments; it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments. Furthermore, the various devices, modules, and the like described herein may be enabled and operated using hardware circuitry, for example, complementary metal oxide semiconductor based logic circuitry, firmware, software and/or any combination of hardware, firmware, and/or software embodied in a machine readable medium. For example, the various electrical structure and methods may be embodied using transistors, logic gates, and electrical circuits, such as application specific integrated circuit.

Claims

We Claim:
1. A method of downloading a media file in a distributed media streaming environment, comprising:
(a) determining multiple donor devices capable of streaming a desired media file in a distributed manner;
(b) assigning a weight value for each of the donor devices based on link parameters on a respective communication link with each donor device;
(c) determining order of the donor devices based on the weight values of the donor devices;
(d) sending a request for streaming one or more fragments of the media file to at least one of the donor devices according to the determined order so that the at least one of the donor devices streams the requested fragments of the media file; and
(e) repeating steps (b) to (d) till all fragments of the media file are streamed by the respective donor devices.
2. The method of claim 1, wherein determining multiple donor devices capable of streaming the desired media file comprises:
sending a request to provide capability to stream the desired media file to a plurality of donor devices in the distributed media streaming environment;
receiving a response from each of the plurality of donor devices indicating whether said each donor device is capable of streaming fragments of the media file; and
determining multiple donor devices from the plurality of donor devices based on the response from said each donor device.
3. The method of claim 1, wherein determining multiple donor devices capable of streaming the desired media file comprises:
sending a request to provide a list of donor devices capable of streaming fragments of a desired media file to a file look-up server; receiving a list of donor devices capable of streaming fragments of the media file in response to the request; and
identifying multiple donor devices from the received list of donor devices for streaming the desired media file.
4. The method of claim 1, wherein the link parameters comprises bandwidth and latency on the respective communication link.
5. The method of claim 4, wherein assigning the weight value for each of the donor devices based on the link parameters associated with the respective communication link with said each donor device comprises:
calculating bandwidth and latency associated with the communication link with each donor device; and
computing a weight value associated with each donor device based on the calculated bandwidth and latency on the respective communication link.
6. The method of claim 1, wherein sending the request for streaming one or more fragments of the media file to the at least one of the donor devices comprises:
identifying at least one of the donor devices having highest weight value; and sending a request for streaming one or more fragments of the media file to the identified donor device.
7. The method of claim 1, wherein the request for streaming the one or more fragments to the identified donor device, the request comprises a fragment number and a unique file signature associated with the desired media file.
8. An apparatus comprising:
a processor; and
a memory coupled to the processor, wherein the memory comprises a distributed streaming module configured for: (a) determining multiple donor devices capable of streaming a desired media file in a distributed manner;
(b) assigning a weight value for each of the donor devices based on link parameters on a respective communication link with each donor device;
(c) determining order of the donor devices based on the weight values of the donor devices;
(d) sending a request for streaming one or more fragments of the media file to at least one of the donor devices according to the determined order so that the at least one of the donor devices streams the requested fragments of the media file; and
(e) repeating steps (b) to (d) till all fragments of the media file are streamed by the respective donor devices.
9. The apparatus of claim 8, wherein in determining multiple donor devices capable of streaming the desired media file, the distributed streaming module is configured for: sending a request to provide capability to stream the desired media file to a plurality of donor devices in the distributed media streaming environment;
receiving a response from each of the plurality of donor devices indicating whether said each donor device is capable of streaming fragments of the media file; and
determining multiple donor devices from the plurality of donor devices based on the response from said each donor device.
10. The apparatus of claim 8, wherein in determining multiple donor devices capable of streaming the desired media file, the distributed streaming module is configured for: sending a request to provide a list of donor devices capable of streaming fragments of a desired media file to a file look-up server;
receiving a list of donor devices capable of streaming fragments of the media file in response to the request; and
identifying multiple donor devices from the received list of donor devices for streaming the desired media file.
11. The apparatus of claim 8, wherein the link parameters comprises bandwidth and latency on the respective communication link.
12. The apparatus of claim 8, wherein in assigning the weight value for each of the donor devices based on the link parameters associated with the respective communication link with said each donor device, the distributed streaming module configured for:
calculating bandwidth and latency associated with the communication link with each donor device; and
computing a weight value associated with each donor device based on the calculated bandwidth and latency oh the respective communication link.
13. The apparatus of claim 8, wherein in sending the request for streaming one or more fragments of the media file to the at least one of the donor devices, the distributed streaming module is configured for:
identifying at least one of the donor devices having highest weight value; and sending a request for streaming one or more fragments of the media file to the identified donor device.
14. The apparatus of claim 8, wherein the request for streaming the one or more fragments to the identified donor device, the request comprises a fragment number and a unique file signature associated with the desired media file.
15. A method of streaming media in a distributed media streaming environment, comprising:
receiving a request for streaming a media file from a recipient device;
negotiating, with at least one donor device, number of fragments of the media file and order in which each of the fragments is to be streamed to the recipient device based on link parameters associated with a respective communication link with the recipient device; and streaming one or more of the fragments of the media file in the negotiated order to the recipient device.
16. The method of claim 15, wherein the request for streaming the media file comprises a unique file signature of the media file, and link parameters associated with the respective communication link.
17. The method of claim 15, wherein negotiating the number of fragments of the media file and the order in which each of the fragments is to be streamed by the recipient device comprises:
computing a weight value associated with each of the donor devices based on bandwidth and latency associated with a respective communication link with the recipient device;
determining which of the fragments of the media file are to be streamed by each of the donor devices based on the weight value associated with each of the donor devices; and
negotiating order in which the fragments are to be streamed to the recipient device by each of the donor devices.
18. The method of claim 16, wherein the link parameters comprises latency and bandwidth associated with the respective communication link.
19. An apparatus comprising:
a processor; and
a memory coupled to the processor, wherein the memory comprises a playback module configured for:
receiving a request for streaming a media file from a recipient device;
negotiating, with at least one donor device, number of fragments of the media file and order in which each of the fragments is to be streamed to the recipient device , based on link parameters associated with a respective communication link with the recipient device; and streaming one or more of the fragments of the media file in the negotiated order to the recipient device.
20. The apparatus of claim 19, wherein the request for streaming the media file 5 comprises a unique file signature of the media file, and link parameters associated with the respective communication link.
21. The apparatus of claim 19, wherein in negotiating the number of fragments of the media file and the order in which each of the fragments is to be streamed by the
10 recipient device, the playback module is configured for:
computing a weight value associated with each of the donor devices based on bandwidth and latency associated with a respective communication link with the recipient device;
determining which of the fragments of the media file are to be streamed by each of the 15 donor devices based on the weight value associated with each of the donor devices; and
negotiating order in which the fragments are to be streamed to the recipient device by each of the donor devices.
"Λ 22. The apparatus of claim 19, wherein the link parameters comprises latency and
bandwidth associated with the respective communication link.
PCT/IN2013/000210 2012-03-28 2013-03-28 Method and system for streaming of a media file in a distributed media streaming environment WO2013144982A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN1201CH2012 2012-03-28
IN1201/CHE/2012 2012-03-28

Publications (1)

Publication Number Publication Date
WO2013144982A1 true WO2013144982A1 (en) 2013-10-03

Family

ID=48699908

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IN2013/000210 WO2013144982A1 (en) 2012-03-28 2013-03-28 Method and system for streaming of a media file in a distributed media streaming environment

Country Status (1)

Country Link
WO (1) WO2013144982A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10362173B2 (en) 2017-05-05 2019-07-23 Sorenson Ip Holdings, Llc Web real-time communication from an audiovisual file

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172476A1 (en) * 2003-02-28 2004-09-02 Chapweske Justin F. Parallel data transfer over multiple channels with data order prioritization
US20080189429A1 (en) * 2007-02-02 2008-08-07 Sony Corporation Apparatus and method for peer-to-peer streaming
US20110022682A1 (en) * 2009-07-27 2011-01-27 Yoel Moshe Zanger Transferring Multimedia Content

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172476A1 (en) * 2003-02-28 2004-09-02 Chapweske Justin F. Parallel data transfer over multiple channels with data order prioritization
US20080189429A1 (en) * 2007-02-02 2008-08-07 Sony Corporation Apparatus and method for peer-to-peer streaming
US20110022682A1 (en) * 2009-07-27 2011-01-27 Yoel Moshe Zanger Transferring Multimedia Content

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10362173B2 (en) 2017-05-05 2019-07-23 Sorenson Ip Holdings, Llc Web real-time communication from an audiovisual file

Similar Documents

Publication Publication Date Title
US10298971B2 (en) Encoding optimization using bitrate range comparisons for encoded segments
US9602578B2 (en) Method and system for optimizing download and instantaneous viewing of media files
US9060207B2 (en) Adaptive video streaming over a content delivery network
KR100943568B1 (en) System and method for communicating data utilizing multiple types of data connections
KR101778424B1 (en) Network coded storage with multi-resolution codes
US10116989B1 (en) Buffer reduction using frame dropping
US20200145722A1 (en) Bandwidth limited dynamic frame rate video trick play
KR20130108609A (en) Load balancing between general purpose processors and graphics processors
KR20120036360A (en) Dynamic computation allocation
EP2834746B1 (en) Pipelining for parallel network connections to transmit a digital content stream
US20200019535A1 (en) Method and system for preparing data files for transmission over a data network
CN109939436B (en) Game playback method and device, computer storage medium and electronic equipment
US10178431B2 (en) Hybrid stream delivery
US20140349763A1 (en) System and Method for Providing Performance in a Personal Gaming Cloud
CN113157418A (en) Server resource allocation method and device, storage medium and electronic equipment
US11856214B2 (en) Video encoding with content adaptive resource allocation
US20110270941A1 (en) File decoding system and method
US10700915B2 (en) Method for streaming an audio video content
US20130275610A1 (en) Method and apparatus for improving the adaptive bit rate behavior of a streaming media player
WO2013144982A1 (en) Method and system for streaming of a media file in a distributed media streaming environment
KR101531284B1 (en) An apparatus for presenting cloud streaming services, a method thereof and a system thereof
CN112468874A (en) Video playing method, terminal equipment and system
US10306021B1 (en) Streaming content to multiple clients
US10609132B2 (en) Hash data structure biasing
CN105657442A (en) Video file generation method and system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13731972

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13731972

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 13731972

Country of ref document: EP

Kind code of ref document: A1