CN110166834B - Data playing method, device and storage medium - Google Patents

Data playing method, device and storage medium Download PDF

Info

Publication number
CN110166834B
CN110166834B CN201810140439.2A CN201810140439A CN110166834B CN 110166834 B CN110166834 B CN 110166834B CN 201810140439 A CN201810140439 A CN 201810140439A CN 110166834 B CN110166834 B CN 110166834B
Authority
CN
China
Prior art keywords
data
slice
playing
data slice
downloading
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201810140439.2A
Other languages
Chinese (zh)
Other versions
CN110166834A (en
Inventor
张鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810140439.2A priority Critical patent/CN110166834B/en
Publication of CN110166834A publication Critical patent/CN110166834A/en
Application granted granted Critical
Publication of CN110166834B publication Critical patent/CN110166834B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/004Diagnosis, testing or measuring for television systems or their details for digital television systems
    • 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/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/254Management at additional data server, e.g. shopping server, rights management server
    • 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/26291Content 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 for providing content or additional data updates, e.g. updating software modules, stored at the client
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4586Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Abstract

The embodiment of the invention discloses a data playing method, a data playing device and a storage medium; receiving a data playing request, and acquiring a slice identifier of a latest data slice in a current live data stream according to the data playing request; downloading the latest data slice from the server according to the slice identifier; acquiring the downloading duration of the latest data slice; and acquiring the network delay of the terminal according to the downloading time length, and playing the downloaded data slice. According to the scheme, the network delay of the terminal can be obtained based on the downloading time for downloading the latest data slice for the first time, a test packet does not need to be additionally sent to test the network delay, the starting speed of the live data playing can be improved, and the bandwidth resource can be saved.

Description

Data playing method, device and storage medium
Technical Field
The invention relates to the technical field of live broadcasting, in particular to a data playing method, a data playing device and a storage medium.
Background
With the continuous development of network technologies, live network technologies have become a current social hotspot, and various live broadcast platforms emerge endlessly.
The current live broadcast system adopts a peer-to-peer (P2P) technology, also called peer-to-peer internet technology, to realize video data interaction, and solves the problems of large resource and bandwidth pressure of a server side, reduced video quality after the user quantity is improved, and the like.
A server in a P2P-based live broadcast system (P2P live broadcast system for short) can slice a live broadcast stream and then redistribute the live broadcast stream to achieve data consistency, and a terminal in the P2P live broadcast system starts downloading when knowing a first data slice and then downloads subsequent slices in a timed and continuous manner.
In the live broadcast system based on P2P, it is an important link that the terminal needs to perform a delay test on the network used by the terminal when the terminal starts playing the live broadcast data. At present, the network delay test mode is mainly to send a test packet to a server, and then to count the response packet of the test packet to detect the network test.
However, it takes a long time for the terminal to perform the delay test on the network, and therefore, the live data playing cannot be started quickly.
Disclosure of Invention
The embodiment of the invention provides a data playing method, a data playing device and a storage medium, which can improve the starting speed of playing live data.
The embodiment of the invention provides a data playing method, which comprises the following steps:
receiving a data playing request;
acquiring a slice identifier of a latest data slice in the current live data stream according to the data playing request;
downloading the latest data slice from a server according to the slice identifier;
acquiring the downloading duration of the latest data slice;
and acquiring the network delay of the terminal according to the downloading duration, and playing the downloaded data slice.
Correspondingly, an embodiment of the present invention further provides a data playing apparatus, including:
a receiving unit, configured to receive a data play request;
the identification acquisition unit is used for acquiring the slice identification of the latest data slice in the current live data stream according to the data playing request;
the slice downloading unit is used for downloading the latest data slice from a server according to the slice identifier;
a time length obtaining unit, configured to obtain a download time length of the latest data slice;
and the playing unit is used for acquiring the network delay of the terminal according to the downloading duration and playing the downloaded data slice.
Correspondingly, the embodiment of the present invention further provides a storage medium, where the storage medium stores instructions, and the instructions, when executed by a processor, implement the steps of any of the methods provided in the embodiment of the present invention.
Receiving a data playing request, and acquiring a slice identifier of a latest data slice in a current live data stream according to the data playing request; downloading the latest data slice from the server according to the slice identifier; acquiring the downloading duration of the latest data slice; and acquiring the network delay of the terminal according to the downloading time length, and playing the downloaded data slice. According to the scheme, the network delay of the terminal can be obtained based on the downloading time for downloading the latest data slice for the first time, a test packet does not need to be additionally sent to test the network delay, the starting speed of the live data playing can be improved, and the bandwidth resource can be saved.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings needed to be used in the description of the embodiments will be briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
Fig. 1a is a scene schematic diagram of a live broadcast system provided in an embodiment of the present invention;
fig. 1b is a schematic flowchart of a data playing method according to an embodiment of the present invention;
FIG. 1c is a timing diagram of a negative start provided by an embodiment of the present invention;
FIG. 1d is a schematic diagram of a conventional active pull delay;
fig. 2a is a schematic view of another scene of a live broadcast system provided in an embodiment of the present invention;
fig. 2b is a schematic diagram of an architecture of a live broadcast system provided in an embodiment of the present invention;
FIG. 2c is another schematic flow chart of a data playing method according to an embodiment of the present invention
Fig. 3a is a schematic structural diagram of a data playback apparatus according to a second embodiment of the present invention;
fig. 3b is a schematic structural diagram of a third data playback device according to an embodiment of the present invention;
fig. 3c is a schematic diagram of a fourth structure of the data playing apparatus according to the embodiment of the present invention;
fig. 3d is a schematic diagram of a fifth structure of the data playing apparatus according to the embodiment of the present invention;
fig. 4 is a schematic structural diagram of a terminal according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The embodiment of the invention provides a data playing method, a data playing device and a storage medium.
The embodiment of the invention provides a live broadcast system, which can comprise any data playing device provided by the embodiment of the invention. The data playback device may be integrated in a terminal. The terminal can be a mobile phone, a tablet computer and other equipment. The live system may also include other devices, such as servers and the like.
For example, referring to fig. 1a, there is provided a live system comprising: a terminal 10 and a server 20; the server 20 and the terminal 10 are connected via a network 30. The network 30 and the network 50 include network entities such as routers, gateways, etc., which are shown and illustrated in the figure. The server 20 may perform data interaction with the server 20 through a wired network or a wireless network, such as downloading an application (e.g., a live application or a video playing application) and/or an application update package and/or data information or service information related to the application from the server 20. The terminal 10 may be a mobile phone, a tablet computer, a notebook computer, or the like, and fig. 1a illustrates the terminal 10 as a mobile phone. Various applications required by the user, such as an application with an entertainment function (e.g., a live application, an audio playing application, a game application, and reading software), and an application with a service function (e.g., a map navigation application, a group purchase application, and the like), may be installed in the terminal 10.
Based on the system shown in fig. 1a, taking a live application as an example, the terminal 10 downloads a live application and/or a live application update data package and/or data information or service information (such as live data) related to the live application from the server 20 through the network 30 as required. By adopting the method of the embodiment of the invention, when the terminal 10 starts to play the live broadcast data, the data playing request can be received, and the slice identifier of the latest data slice in the current live broadcast data stream is obtained according to the data playing request; downloading the latest data slice from the server according to the slice identifier; acquiring the downloading duration of the latest data slice; and acquiring the network delay of the terminal according to the downloading time length, and playing the downloaded data slice.
The above example of fig. 1a is only an example of a system architecture for implementing the embodiment of the present invention, and the embodiment of the present invention is not limited to the system architecture shown in fig. 1a, and various embodiments of the present invention are proposed based on the system architecture.
In an embodiment, there is provided a data playing method, which can be executed by a processor of a terminal, as shown in fig. 1b, the data playing method includes:
101. and receiving a data playing request.
The data playing request may be triggered by a user, for example, a playing interface may be set on a live application or a video playing application interface, and the user may trigger the data playing request through the playing interface.
The presentation form of the playing interface is various, for example, the form of an input box, an icon, a button, and the like
For example, a "start" button is set on the live interface, and when the user clicks the "start" button, the data playing request is triggered to be generated, and at this time, the data playing request may be received.
For another example, when the user opens a live application and clicks a recommended live title on a live home page, a data play request may be triggered and generated.
In one implementation, the data playing request may carry information such as an identifier of a live data stream to be played.
102. And acquiring the slice identifier of the latest data slice in the current live data stream according to the data playing request.
In a live broadcast system, a server may slice or cut a live broadcast data stream, for example, a slice is generated every 1s, that is, every 1s, and then the data slice is distributed to a terminal for playing.
Therefore, the latest data slice (which may be referred to as xpice) is a data slice that is generated latest when the server side slices the live data stream, that is, a latest data slice that is cut out latest.
In a live system, such as the P2P live system, the slice server may slice the live data stream and update or synchronize a slice identification (which may be denoted as xPieceId) of the newly generated data slice into the slice status server. The slice server stores slice identifiers of the latest data slices of the live data streams.
Therefore, in an embodiment, after receiving the data playing request, the slice identifier (xPieceId) of the latest data slice in the current live data stream may be obtained from the slice status server according to the data playing request.
For example, a latest slice identifier acquisition request may be sent to the slice status server according to the data playing request, where the request carries a data stream identifier of a live data stream to be played; the slice state server may look up and return the latest data slice identifier of the live data stream according to the data stream identifier.
103. And downloading the latest data slice from the server according to the slice identifier.
The server can live a slice storage server in the system, and at the moment, the latest data slice can be downloaded from the slice storage server according to the slice identifier (xpieceId).
For example, a data acquisition request carrying a slice identifier may be sent to the slice storage server, and the slice storage server may return the latest data slice corresponding to the slice identifier according to the data acquisition request.
In an embodiment, the slice identifier may be mapped to address information, such as a URL, of the data slice, and at this time, the latest data slice may be requested to be obtained according to the address information of the slice. For example, the step "downloading the latest data slice from the server according to the slice identifier" may include:
acquiring address information of the latest data slice according to the slice identifier;
and downloading the latest data slice to the slave server according to the address information.
For example, xPieceId may be mapped to the URL of the latest data slice, and then download of the latest data slice is requested from the server according to the URL.
104. And acquiring the downloading time length of the latest data slice.
For example, in an embodiment, a timer may be started when the latest data slice starts to be downloaded, and when it is detected that the downloading is completed, the timing duration of the timer is read, where the timing duration is the downloading duration of the latest data slice.
For another example, in an embodiment, it is considered that network delay may cause data playing to be stuck, for example, after the latest data slice is played, the subsequent data slice may not arrive in time due to network delay, and thus playing stuck may occur. In view of the above situation, it is necessary to download a data slice before the latest data slice and start playing from the data slice before the latest data slice, thereby reducing data playing time.
In order to obtain the slice downloading time and simultaneously take account of the data playing pause, the downloading time of the latest data slice can be obtained by downloading the historical data slice before the latest data slice so as to reduce the data playing pause. That is, the step "obtaining the download duration of the latest data slice" may include:
requesting historical data slices before the latest data slice from a server every preset time period;
when the latest data slice downloading is detected to be completed, acquiring the request quantity of the historical data slices;
and acquiring the downloading duration of the latest data slice according to the request quantity and the preset time period.
The historical data slice is a data slice generated by the server before generating the latest data slice, such as a last data slice of the latest data slice, and the like.
For example, the newest data slice is data slice n, the historical data slices can be data slice n-1, data slice n-2, etc., and n is a positive integer.
The embodiment of the present invention may obtain the historical slice identifier of the historical data slice (e.g., derived from the trimming identifier or the naming process) based on the slice identifier of the latest data slice, and then request the server for the historical data slice with a response according to the historical slice identifier every preset time period. For example, when the newest data slice is data slice P0, the historical data slice may be data slice P-1, data slice P-2, etc.
The preset time period may be set according to actual needs, and may be, for example, 1s, 2s, and the like. In an embodiment, the preset time period may be set based on a slice period of the data slice, for example, when the direct broadcast data stream is sliced every 1s, then the preset time period may be 1s, and so on.
According to the scheme, historical data slices before the latest data slice can be regularly requested in the downloading process of the latest data slice, the downloading time of the latest data slice is obtained through the requested quantity of the historical data slices, namely reverse downloading, the downloading time of the latest data slice is obtained by downloading the historical data slices in the idle time of downloading the latest data slice, idle time resources are fully utilized, the obtaining time of the downloading time is saved, and live broadcasting delay can be reduced; the scheme can download the historical data slices while acquiring the downloading time of the latest data slices, ensures that enough data slices are played after the playing is started, avoids the problem of playing pause caused by the fact that subsequent data slices cannot arrive in time due to network delay, and can reduce the pause of the live data playing.
In one embodiment, the next data slice of the latest data slice may be started when the latest data slice is downloaded, for example, before the latest data slice request is not responded, the historical data slice is requested at each certain time, and the next data slice is not requested to be downloaded until the latest data slice request is responded, that is, the downloading is completed, and this process may be referred to as "negative start".
For example, referring to fig. 1c, during downloading of the latest data slice xpiecid, a historical data slice before the latest data slice xpiecid is requested every t seconds, and when downloading of the latest data slice is completed, if the requested number of the historical data slices is m, at this time, the downloading time duration Td of the latest data slice is m t, where m is a positive integer, and t may be set according to actual needs, such as 1s, 2s, and so on.
By utilizing negative start, more historical data slices can be downloaded while the download time length of the latest data slice xPareId is calculated, so that the calculation time length of the download time length of the latest data slice xPareId can be saved, more play data can be provided for play, and therefore live broadcast delay can be reduced and live broadcast pause can be relieved.
105. And acquiring the network delay of the terminal according to the downloading time length, and playing the downloaded data slice.
The embodiment of the invention can judge the network quality of the terminal based on the next time length of downloading the latest data slice for the first time, and gives a network delay to the terminal. This is based on the fact that: when the network quality of the terminal is good, the time for downloading the latest data slice xParce is short, which shows that a relatively low delay is reasonable; when the network quality of the terminal is poor, the time for downloading the xpice is slow, and it is reasonable to give it a relatively high delay. And because the first downloading of the data slice is accompanied with the operations of DNS and link establishment and the time delay of data part transmission, the time consumption of the first downloading can reflect the quality of the terminal network to a great extent.
There are various ways to obtain the network delay according to the download duration, such as:
in one embodiment, the download duration may be directly used as the network delay of the terminal. For example, the download duration of the latest data slice xpient is Td, and the network delay is Td.
For another example, in an embodiment, in order to improve the accuracy of the network delay, a plurality of times of the download duration may be used as the network delay. For example, the step "obtaining the network delay of the terminal according to the download duration" may include:
acquiring a current time length multiple;
and acquiring the network delay of the terminal according to the downloading time length and the time length multiple.
The duration multiple may be set according to actual requirements, and preferably, the duration multiple may be between 1 and 2. The time length multiple can be preset and set, and can also be set in real time in the acquisition process.
For example, the network delay is b × Td, b is a multiple, and Td is the download duration of the latest data slice.
When the request time interval of the historical data slice is 1s, after the actual test, the download time Td of the latest data slice xParce is positively correlated with the network delay, and the delay is about 1-2 times of the Td. This is because the interval of the timer is 1s and the download duration of xPieceId is not strictly an integer multiple of 1s, and if Td is completed within 1s, then delay is Td, and if Td is completed between 1s and 2s, then delay is at most 2 times Td.
To achieve low delay, it is sufficient to use one time delay with positive correlation of the download duration Td of xpiecid, and more than one time delay is increased. In addition, if the delay of the download time length of xpiecid shorter than one time is used, there is a high possibility of causing a pause at the time of starting the broadcast, since the time length for downloading xpiecid for the first time is Td, it is reasonable to assume that the download time length of the subsequent slice is also roughly Td, and if no new data arrives within the delay time, the pause occurs.
In an embodiment, to reduce the data playing pause rate and improve the live broadcast experience, the time Td for the first download is selected as the network delay, which is several times longer than the first download time, and the time Td is selected according to the user information. That is, the step "obtaining the current time length multiple" may include: and acquiring a corresponding time length multiple according to the user information.
The user information may include group information (such as a television box group, a mobile phone group, and the like) to which the user belongs, user equipment information, user rating information, and the like.
In the implementation of the present invention, the time sequence for starting playing the downloaded data may not be limited by the sequence number of the above steps, for example, the downloaded data may be played when the latest data slice is downloaded, or may be played at a certain time after the latest data slice is downloaded, and may be specifically set according to actual requirements. For example, playing when network delay is obtained based on download duration, etc.
In one embodiment, when the download time of the latest data slice is obtained by the number of history data slices, in order to reduce the pause of data playback, playback may be started only when the last requested history data slice download is completed. For example, the step "playing the downloaded data slice" may include:
when the last requested historical data slice is downloaded, writing the historical data slice and the latest data slice into a play cache region;
and playing the data slice in the playing buffer area.
For example, referring to fig. 1c, after the request for the latest data slice P0 is started, historical data slices P-1 and P-2 before the latest data slice P0 are negatively requested every t seconds, when the download of the latest data slice P0 is completed, the forward download is started, and at this time, the to-be-downloaded slice cdnProbe is xpiecid +1 and is gradually increased; such as data slices P1, P2 … … Pn following the latest data slice P0 being downloaded in the forward direction. When the last historical data slice, namely P-2, is downloaded, the latest data slice P0, the historical data slices P-1 and P-2 are written into the buffer of the player to start playing.
In one embodiment, to reduce the live broadcast delay, the data display time, such as pts (presentation time of video frame), can be reduced to fast forward the data content that is played at the beginning, so as to consume the time between the download time (i.e. base delay) and the playing time of the latest data slice, thereby realizing the low-delay live broadcast. For example, the step "playing the data slice in the play buffer" may include:
reducing the current data display time;
playing the data slices in the playing buffer area according to the reduced data display time;
and when the data playing duration reaches the preset duration, recovering the current data playing time, and playing the data slices in the playing cache region according to the recovered data display time.
For example, the current pts value is reduced, the data slice in the buffer is played with a low pts, the pts value is restored after playing for a certain time, and the data is played with the restored normal pts, so that the time for starting playing the video data can be reduced, and the live broadcast delay can be reduced.
As can be seen from the above, in the embodiment of the present invention, a data playing request is received, and a slice identifier of a latest data slice in a current live data stream is obtained according to the data playing request; downloading the latest data slice from the server according to the slice identifier; acquiring the downloading duration of the latest data slice; and acquiring the network delay of the terminal according to the downloading time length, and playing the downloaded data slice. According to the scheme, the network delay of the terminal can be obtained based on the downloading time for downloading the latest data slice for the first time, a test packet does not need to be additionally sent to test the network delay, the starting speed of the live data playing can be improved, and the bandwidth resource can be saved. On the other hand, the downloading duration of the latest data slice at the first time can truly and accurately reflect the quality of the terminal network, so that the authenticity and the accuracy of network delay can be improved.
In addition, considering that the delay of the terminal network may cause the data playing jam, the data playing jam is usually relieved by actively pulling the delay. For example, if the newly generated slice is xPieceId, then download is started directly from xPieceId-k, where k is the delay duration of active pull-off, and then periodically forward download. Typically starting with the third last slice of the current latest slice, see fig. 1d, and then downloading one slice at intervals. However, the following problems exist in the playing mode of actively pulling up the delay:
the active delay k is the same for each client, and the difference of each client is not considered, so that the optimal adjustment cannot be dynamically made according to the real network condition of the client.
In order to consider the playing experience of users in the whole network, the value of k must consider the clients with relatively poor networks, so that the value of k must be set for all the clients and cannot be small, which makes it difficult to achieve the ideal effect under the condition of low delay; k is too high to satisfy low latency; if k is too low, the client under the weak network environment cannot be taken care of, and the blockage is serious.
Because the active delays of all the clients are k, the time difference between every two clients is difficult to be opened, so that the relationship that the live client leading to the live client shares data with the live client lagging to the live client is difficult to establish in P2P.
Compared with the existing playing scheme of actively pulling up the delay, the playing scheme provided by the embodiment of the invention can download the historical data slice by using the idle time for downloading the latest data slice, thereby obtaining the downloading time of the latest data slice and playing the downloaded data; the scheme can seek a minimum time delay for the terminal according to the real quality of the user network, simultaneously reduces the playing pause, gives consideration to the live broadcast time delay and the playing pause, and makes the best balance between low delay and reduction of the client pause rate.
Furthermore, different delays can be pulled open by terminals with different network qualities, the possibility of mutual sharing among the terminals in the live broadcast system is increased, and the sharing rate of the live broadcast system is further improved.
The method described in the above embodiments is further illustrated in detail by way of example.
In an embodiment, the data playing method of the present invention will be described in detail by taking an example in which the data playing apparatus is integrated in a terminal.
As shown in fig. 2a, an embodiment of the present invention provides a live broadcast system, which may include: a terminal, a slice server, a slice storage server, and a state server. Wherein, each device in the system is connected through a network.
The slicing server is used for slicing the live data stream, updating the identification of the latest data slice into the state server, and storing the slice into the slice storage server.
The state server is used for storing the latest data slice state information of the live stream, such as slice identification and the like. The slice storage server is used for storing the data slices of the live stream and distributing the data slices to the terminal. The slice storage server may be a server in a CDN (Content Delivery Network).
For example, referring to fig. 2a and 2b, when the slicing server slices the live stream, the slice is generated according to a slice of one second, and each new slice is generated, the piece id of the latest slice is immediately synchronized into the real-time stream state in the state server through signaling. And will be
The file names of the newly added slices are named in increments of piece id. Here, the piece id may be mapped to a URI of the slice file, that is, the terminal may obtain a URL requesting the piece file after knowing the piece id.
Once a new slice is generated, the latest slice xPieceId is replaced by the new slice just generated, which can also be expressed as:
xPieceIdnew=xPieceIdold+1
the server generates slices continuously every second. The terminal requests the slice, as long as it is aligned with the policy of the server, i.e. requests the next slice every second. The invention is concerned with that when the terminal just starts the direct broadcasting, the terminal does not request the next slice every second, but requests the previous slice every second before the first piece of the xPareId request has not completely responded (namely before the downloading is completed), and can not request the next slice every second until the xPareId slice returns. This process is called "negative start" and can be referred to in FIG. 1 c.
As shown in fig. 2c, a data playing method is introduced based on the live broadcast system shown in fig. 2a, and the specific flow of the data playing method may be as follows:
201. the terminal receives a data playing request.
For example, a "start" button is set on the live interface, and when the user clicks the "start" button, the data playing request is triggered to be generated, and at this time, the data playing request may be received.
For another example, when the user opens a live application and clicks a recommended live title on a live home page, a data play request may be triggered and generated.
The data playing request may indicate a live data stream that needs to be played, for example, the data playing request may carry an identifier of the live data stream that needs to be played.
202. And the terminal sends an identification acquisition request to the state server according to the data playing request.
The identifier obtaining request may carry an identifier of a live data stream to be played.
203. And the state server returns the slice identifier of the latest data slice of the corresponding live data stream to the terminal according to the identifier acquisition request.
For example, the state server searches a slice identifier of the corresponding live data stream in a local storage according to the identifier of the live data stream, and then returns the slice identifier to the terminal.
204. And the terminal requests the slice storage server to download the latest data slice of the live data stream according to the slice identifier.
For example, a data acquisition request carrying a slice identifier may be sent to the slice storage server, and the slice storage server may return the latest data slice corresponding to the slice identifier according to the data acquisition request.
The slice identifier may be mapped to address information, such as a URL, of the data slice, and at this time, the latest data slice may be requested to be obtained according to the address information of the slice.
For example, address information of the latest data slice is obtained according to the slice identifier; and downloading the latest data slice to the slave server according to the address information.
For example, xpieceId may be mapped to the URL of the latest data slice, and then the latest data slice is requested to be downloaded from the server according to the URL
205. The terminal requests the historical data slice before the latest data slice to the slice storage server every preset time period.
The historical data slice is a data slice generated by the slicing server before generating the latest data slice, such as a last data slice of the latest data slice, and so on.
The preset time period may be set according to actual needs, and may be, for example, 1s, 2s, and the like. In an embodiment, the preset time period may be set based on a slice period of the data slice, for example, when the direct broadcast data stream is sliced every 1s, then the preset time period may be 1s, and so on.
206. And when the terminal detects that the latest data slice is completely downloaded, stopping requesting the historical data slices and acquiring the requested number of the historical data slices.
For example, during downloading of the latest data slice xpieceId, historical data slices are requested every t seconds, and when downloading of the latest data slice xpieceId is completed, m historical data slices, such as P-1, P-2 … … P-m, have been requested. At this time, the number of requests is m.
207. And the terminal acquires the downloading time of the latest data slice according to the request quantity and the preset time period, and acquires the network delay of the terminal according to the downloading time.
When downloading of the latest data slice is completed, if the requested number of the historical data slices is m, at this time, the downloading time Td of the latest data slice is m × t, where m is a positive integer, and t may be set according to actual needs, such as 1s, 2s, and so on.
There are various ways to obtain the network delay according to the download duration, for example, in an embodiment, the download duration may be directly used as the network delay of the terminal.
For another example, the network delay of the terminal may be obtained according to the download duration and the duration multiple. The duration multiple may be set according to actual requirements, and preferably, the duration multiple may be between 1 and 2.
For example, the network delay is b × Td, b is a multiple, and Td is the download duration of the latest data slice.
208. And when the last requested historical data slice is downloaded, writing the historical data slice and the latest data slice into the play cache region, and playing the data slice in the cache region.
The timing sequence between step 208 and step 207 may be various, and is not limited by the sequence number, for example, the steps may be executed simultaneously or sequentially. For example, if the last requested historical data slice is downloaded completely during the network delay, then an additional data slice may be written into the play buffer for playing.
For example, referring to fig. 1c, after the request for the latest data slice P0 is started, historical data slices P-1 and P-2 before the latest data slice P0 are negatively requested every t seconds, when the download of the latest data slice P0 is completed, the forward download is started, and at this time, the to-be-downloaded slice cdnProbe is xpiecid +1 and is gradually increased; such as data slices P1, P2 … … Pn following the latest data slice P0 being downloaded in the forward direction. When the last historical data slice, namely P-2, is downloaded, the latest data slice P0, the historical data slices P-1 and P-2 are written into the buffer of the player to start playing.
Therefore, the embodiment of the invention can take the download duration of the latest data slice downloaded for the first time as a plurality of times of the network delay of the terminal, does not need to additionally send the test packet to test the network delay, and can improve the starting speed of the live data playing and save the bandwidth resource. On the other hand, the downloading duration of the latest data slice at the first time can truly and accurately reflect the quality of the terminal network, so that the authenticity and the accuracy of network delay can be improved.
The embodiment of the invention can also download the historical data slice by using the idle time for downloading the latest data slice, thereby obtaining the downloading time of the latest data slice; the scheme can seek a minimum time delay for the terminal according to the real quality of the user network, and simultaneously reduces the playing pause, so that the scheme gives consideration to both the live broadcast time delay and the playing pause, makes the best balance between low delay and reduction of the client pause rate, and is suitable for a low-delay live broadcast P2P scene.
Finally, the embodiment of the invention describes a solution taking both time delay and hiton into consideration, different network qualities of the client are fully utilized, different delay distributions are established, namely, the hard requirement of global low delay is met, and the improvement of the P2P sharing rate is facilitated. Embodiments of the present invention provide lower overall latency relative to conventional solutions at the same stuck rate.
In order to better implement the above method, an embodiment of the present invention further provides a data playing apparatus, where the data playing apparatus may be applied to a terminal in a live broadcast system, as shown in fig. 3a, the data playing apparatus may include: the receiving unit 301, the identification acquiring unit 302, the slice downloading unit 303, the duration acquiring unit 304, and the playing unit 305 are as follows:
a receiving unit 301, configured to receive a data playing request;
an identifier obtaining unit 302, configured to obtain, according to the data playing request, a slice identifier of a latest data slice in a current live data stream;
a slice downloading unit 303, configured to download the latest data slice from a server according to the slice identifier;
a duration obtaining unit 304, configured to obtain a download duration of the latest data slice;
a playing unit 305, configured to obtain the network delay of the terminal according to the download duration, and play the downloaded data slice.
In an embodiment, referring to fig. 3b, the duration obtaining unit 304 may include:
a slice request subunit 3041, configured to request, to the server, a historical data slice before the latest data slice every preset time period;
a number obtaining subunit 3042, configured to, when it is detected that the latest data slice download is completed, obtain a requested number of historical data slices;
a duration obtaining subunit 3043, configured to obtain a download duration of the latest data slice according to the requested number and the preset time period.
In an embodiment, referring to fig. 3c, the playing unit 305 may include:
a delay obtaining subunit 3051, configured to obtain, according to the download duration, a network delay of the terminal;
a data writing subunit 3052, configured to, when the last requested historical data slice is completely downloaded, write the historical data slice and the latest data slice into a play buffer;
a first playing subunit 3053, configured to play the data slice in the play buffer.
In an embodiment, the slice downloading unit 303 may be specifically configured to:
acquiring address information of the latest data slice according to the slice identifier;
and downloading the latest data slice from the server according to the address information.
In an embodiment, referring to fig. 3d, the playing unit 305 may include:
a delay obtaining subunit 3051, configured to obtain, according to the download duration, a network delay of the terminal;
a second play sub-unit 3054, configured to reduce a current data display time; playing the data slices in the playing cache region according to the reduced data display time; and when the data playing duration reaches the preset duration, recovering the current data playing time, and playing the data slices in the playing cache region according to the recovered data display time.
The delay obtaining subunit 3051 may be specifically configured to:
acquiring a current time length multiple;
and acquiring the network delay of the terminal according to the downloading time length and the time length multiple.
The steps performed by the above units may refer to the description of the above method embodiments.
In a specific implementation, the above units may be implemented as independent entities, or may be combined arbitrarily to be implemented as the same or several entities, and the specific implementation of the above units may refer to the foregoing method embodiments, which are not described herein again.
The data playing device may be specifically integrated in a terminal, for example, integrated in the terminal in the form of a client, where the terminal may be a mobile phone, a tablet computer, or other devices.
As can be seen from the above, in the data playing apparatus according to the embodiment of the present invention, the receiving unit 301 receives a data playing request, and the identifier obtaining unit 302 obtains a slice identifier of a latest data slice in a current live data stream according to the data playing request; downloading, by the slice downloading unit 303, the latest data slice from a server according to the slice identification; acquiring, by the duration acquisition unit 304, a download duration of the latest data slice; the playing unit 305 obtains the network delay of the terminal according to the downloading duration, and plays the downloaded data slice. According to the scheme, the network delay of the terminal can be obtained based on the downloading time for downloading the latest data slice for the first time, a test packet does not need to be additionally sent to test the network delay, the starting speed of the live data playing can be improved, and the bandwidth resource can be saved.
Referring to fig. 4, an embodiment of the present invention provides a terminal 400, which may include one or more processors 401 of a processing core, one or more memories 402 of a computer-readable storage medium, a Radio Frequency (RF) circuit 403, a power supply 404, an input unit 405, and a display unit 406. Those skilled in the art will appreciate that the terminal configuration shown in fig. 4 is not intended to be limiting and may include more or fewer components than those shown, or some components may be combined, or a different arrangement of components. Wherein:
the processor 401 is a control center of the terminal, connects various parts of the entire terminal using various interfaces and lines, and performs various functions of the terminal and processes data by operating or executing software programs and/or modules stored in the memory 402 and calling data stored in the memory 402, thereby performing overall monitoring of the terminal. Optionally, processor 401 may include one or more processing cores; preferably, the processor 401 may integrate an application processor, which mainly handles operating systems, user interfaces, application programs, etc., and a modem processor, which mainly handles wireless communications. It will be appreciated that the modem processor described above may not be integrated into the processor 401.
The memory 402 may be used to store software programs and modules, and the processor 401 executes various functional applications and data processing by operating the software programs and modules stored in the memory 402.
The RF circuit 403 may be used for receiving and transmitting signals during information transmission and reception, and in particular, for receiving downlink information of a base station and then processing the received downlink information by the one or more processors 401; in addition, data relating to uplink is transmitted to the base station.
The terminal also includes a power supply 404 (e.g., a battery) for powering the various components, which may preferably be logically coupled to the processor 401 via a power management system to manage charging, discharging, and power consumption management functions via the power management system. The power supply 404 may also include any component of one or more dc or ac power sources, recharging systems, power failure detection circuitry, power converters or inverters, power status indicators, and the like.
The terminal may further include an input unit 405, and the input unit 405 may be used to receive input numeric or character information and generate a keyboard, mouse, joystick, optical or trackball signal input in relation to user settings and function control.
The terminal may further include a display unit 406, and the display unit 406 may be used to display information input by the user or provided to the user, as well as various graphical user interfaces of the terminal, which may be made up of graphics, text, icons, video, and any combination thereof. The Display unit 408 may include a Display panel, and optionally, the Display panel may be configured in the form of a Liquid Crystal Display (LCD), an Organic Light-Emitting Diode (OLED), or the like.
Specifically, in this embodiment, the processor 401 in the terminal loads the executable file corresponding to the process of one or more application programs into the memory 402 according to the following instructions, and the processor 401 runs the application programs stored in the memory 402, thereby implementing various functions as follows:
receiving a data playing request;
acquiring a slice identifier of a latest data slice in the current live data stream according to the data playing request;
downloading the latest data slice from a server according to the slice identifier;
acquiring the downloading duration of the latest data slice;
and acquiring the network delay of the terminal according to the downloading duration, and playing the downloaded data slice.
In an embodiment, when obtaining the download duration of the latest data slice, the processor 401 may specifically perform the following steps:
requesting historical data slices before the latest data slice from the server every preset time period;
when the latest data slice is detected to be downloaded completely, acquiring the request quantity of the historical data slices;
and acquiring the downloading duration of the latest data slice according to the request quantity and the preset time period.
In an embodiment, when playing back the downloaded data slice, the processor 401 may specifically perform the following steps:
when the last requested historical data slice is downloaded, writing the historical data slice and the latest data slice into a play cache region;
and playing the data slice in the playing buffer area.
In an embodiment, when downloading the latest data slice from the server according to the slice identifier, the processor 401 may specifically perform the following steps:
acquiring address information of the latest data slice according to the slice identifier;
and downloading the latest data slice from the server according to the address information.
In an embodiment, when playing back the data slice in the play buffer, the processor 401 may specifically perform the following steps:
reducing the current data display time;
playing the data slices in the playing cache region according to the reduced data display time;
and when the data playing duration reaches the preset duration, recovering the current data playing time, and playing the data slices in the playing cache region according to the recovered data display time.
The embodiment of the invention provides a terminal, which receives a data playing request and acquires a slice identifier of a latest data slice in a current live data stream according to the data playing request; downloading the latest data slice from a server according to the slice identifier; acquiring the downloading duration of the latest data slice; and acquiring the network delay of the terminal according to the downloading duration, and playing the downloaded data slice. According to the scheme, the network delay of the terminal can be obtained based on the downloading time for downloading the latest data slice for the first time, a test packet does not need to be additionally sent to test the network delay, the starting speed of the live data playing can be improved, and the bandwidth resource can be saved.
Those skilled in the art will appreciate that all or part of the steps in the methods of the above embodiments may be implemented by associated hardware instructed by a program, which may be stored in a computer-readable storage medium, and the storage medium may include: read Only Memory (ROM), Random Access Memory (RAM), magnetic or optical disks, and the like.
The data playing method, device and system provided by the embodiment of the present invention are described in detail above, and a specific example is applied in the text to explain the principle and the implementation of the present invention, and the description of the above embodiment is only used to help understanding the method and the core idea of the present invention; meanwhile, for those skilled in the art, according to the idea of the present invention, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present invention.

Claims (9)

1. A data playback method, comprising:
receiving a data playing request;
acquiring a slice identifier of a latest data slice in the current live data stream according to the data playing request;
downloading the latest data slice from a server according to the slice identifier;
requesting historical data slices before the latest data slice from the server every preset time period;
when the latest data slice is detected to be downloaded completely, acquiring the request quantity of the historical data slices;
acquiring the downloading duration of the latest data slice according to the request quantity and the preset time period;
and acquiring the network delay of the terminal according to the downloading duration, and playing the downloaded data slice.
2. The data playback method of claim 1, wherein playing back the downloaded data slice comprises:
when the last requested historical data slice is downloaded, writing the historical data slice and the latest data slice into a play cache region;
and playing the data slice in the playing buffer area.
3. The data playback method of claim 1, wherein downloading the latest data slice from a server according to the slice identification comprises:
acquiring address information of the latest data slice according to the slice identifier;
and downloading the latest data slice from the server according to the address information.
4. The data playback method of claim 2, wherein playing back the data slice in the playback buffer comprises:
reducing the current data display time;
playing the data slices in the playing cache region according to the reduced data display time;
and when the data playing duration reaches the preset duration, recovering the current data playing time, and playing the data slices in the playing cache region according to the recovered data display time.
5. The data playing method according to any one of claims 1 to 4, wherein obtaining the network delay of the terminal according to the download duration comprises:
acquiring a current time length multiple;
and acquiring the network delay of the terminal according to the downloading time length and the time length multiple.
6. A data playback apparatus, comprising:
a receiving unit, configured to receive a data play request;
the identification acquisition unit is used for acquiring the slice identification of the latest data slice in the current live data stream according to the data playing request;
the slice downloading unit is used for downloading the latest data slice from a server according to the slice identifier;
a time length obtaining unit, configured to obtain a download time length of the latest data slice;
the playing unit is used for acquiring the network delay of the terminal according to the downloading duration and playing the downloaded data slice;
wherein, the duration obtaining unit includes:
a slice request subunit, configured to request, to the server, a historical data slice before the latest data slice every preset time period;
a quantity obtaining subunit, configured to obtain a requested quantity of the historical data slices when it is detected that the latest data slice download is completed;
and the duration obtaining subunit is configured to obtain the download duration of the latest data slice according to the number of the requests and the preset time period.
7. The data playback apparatus of claim 6, wherein the playback unit includes:
a delay obtaining subunit, configured to obtain a network delay of the terminal according to the download duration;
the data writing subunit is used for writing the historical data slice and the latest data slice into a playing cache region when the historical data slice requested at the last time is downloaded;
and the first playing subunit is used for playing the data slice in the playing buffer area.
8. The data playback apparatus of claim 7, wherein the playback unit includes:
a delay obtaining subunit, configured to obtain a network delay of the terminal according to the download duration;
the second playing subunit is used for reducing the current data display time; playing the data slices in the playing cache region according to the reduced data display time; and when the data playing duration reaches the preset duration, recovering the current data playing time, and playing the data slices in the playing cache region according to the recovered data display time.
9. A computer storage medium, characterized in that the storage medium stores instructions that, when executed by a processor, implement the steps of the method according to any one of claims 1-5.
CN201810140439.2A 2018-02-11 2018-02-11 Data playing method, device and storage medium Active CN110166834B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810140439.2A CN110166834B (en) 2018-02-11 2018-02-11 Data playing method, device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810140439.2A CN110166834B (en) 2018-02-11 2018-02-11 Data playing method, device and storage medium

Publications (2)

Publication Number Publication Date
CN110166834A CN110166834A (en) 2019-08-23
CN110166834B true CN110166834B (en) 2021-08-31

Family

ID=67641529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810140439.2A Active CN110166834B (en) 2018-02-11 2018-02-11 Data playing method, device and storage medium

Country Status (1)

Country Link
CN (1) CN110166834B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347137B (en) * 2020-03-02 2024-03-05 广州虎牙科技有限公司 Patch method and device for data stream slice, computer equipment and storage medium
CN112788360B (en) * 2020-12-30 2023-06-20 北京达佳互联信息技术有限公司 Live broadcast method, live broadcast device and computer program product

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102165775A (en) * 2008-09-30 2011-08-24 微软公司 Fine-grained client-side control of scalable media delivery
CN104079955A (en) * 2013-03-26 2014-10-01 华为技术有限公司 Method, device and system of OTT (Over The Top) live broadcast
WO2017100569A1 (en) * 2015-12-09 2017-06-15 Vid Scale, Inc. Trick mode restrictions for mpeg dash
CN107147921A (en) * 2017-05-23 2017-09-08 北京网梯科技发展有限公司 Based on section and the intelligence CDN video playback accelerated methods dispatched and equipment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102165775A (en) * 2008-09-30 2011-08-24 微软公司 Fine-grained client-side control of scalable media delivery
CN104079955A (en) * 2013-03-26 2014-10-01 华为技术有限公司 Method, device and system of OTT (Over The Top) live broadcast
WO2017100569A1 (en) * 2015-12-09 2017-06-15 Vid Scale, Inc. Trick mode restrictions for mpeg dash
CN107147921A (en) * 2017-05-23 2017-09-08 北京网梯科技发展有限公司 Based on section and the intelligence CDN video playback accelerated methods dispatched and equipment

Also Published As

Publication number Publication date
CN110166834A (en) 2019-08-23

Similar Documents

Publication Publication Date Title
CN108737405B (en) Method, CCL server and system for guiding direct broadcasting video stream
US10798440B2 (en) Methods and systems for synchronizing data streams across multiple client devices
CN109889543B (en) Video transmission method, root node, child node, P2P server and system
CN107018427B (en) Live broadcast shared content processing method and device
EP2391086B1 (en) Method and apparatus for playing live content
US9047236B2 (en) Client side stream switching
TWI470983B (en) Method and apparatus for updating http content descriptions
US9521178B1 (en) Dynamic bandwidth thresholds
CN106572358A (en) Live broadcast time shift method and client
CN112311874B (en) Media data processing method and device, storage medium and electronic equipment
CN106303674B (en) Data transmission method, device and intelligent television system
US10341035B2 (en) Method for continuously playing, on a client device, a content broadcast within a peer-to-peer network
CN110351569B (en) Live content processing method, device, equipment and medium
CN111625743B (en) Resource loading method and device and electronic equipment
CN112399190A (en) Audio and video data acquisition method and device
CN110166834B (en) Data playing method, device and storage medium
JP2021505081A (en) Video transmission methods, video transmission equipment, and video transmission systems, as well as computer-readable storage media
CN102957972B (en) Video on demand method and system thereof
CN101163230A (en) Method of performing on-site living broadcast and client terminal node preparation through network camera
US20230330545A1 (en) Method for displaying game picture, storage medium, and electronic device
WO2023284428A1 (en) Live video playback method and apparatus, electronic device, storage medium, and program product
CN112169312A (en) Queuing scheduling method, device, equipment and storage medium for cloud game service
CN102821316A (en) Improved video on demand (VOD) transmission method based on peer-to-peer computing core algorithm
WO2011160549A1 (en) Electronic program guide system and file downloading method
CN115225649A (en) Data synchronization method and device and electronic equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant