WO2018232796A1 - 一种流媒体文件处理方法及直播*** - Google Patents

一种流媒体文件处理方法及直播*** Download PDF

Info

Publication number
WO2018232796A1
WO2018232796A1 PCT/CN2017/092773 CN2017092773W WO2018232796A1 WO 2018232796 A1 WO2018232796 A1 WO 2018232796A1 CN 2017092773 W CN2017092773 W CN 2017092773W WO 2018232796 A1 WO2018232796 A1 WO 2018232796A1
Authority
WO
WIPO (PCT)
Prior art keywords
sequence number
slice
play sequence
play
streaming media
Prior art date
Application number
PCT/CN2017/092773
Other languages
English (en)
French (fr)
Inventor
陈鸿
吕士表
Original Assignee
网宿科技股份有限公司
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 网宿科技股份有限公司 filed Critical 网宿科技股份有限公司
Priority to US15/739,956 priority Critical patent/US10477286B2/en
Priority to EP17849890.3A priority patent/EP3448052B1/en
Publication of WO2018232796A1 publication Critical patent/WO2018232796A1/zh

Links

Images

Classifications

    • 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
    • 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/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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • 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
    • 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/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • 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
    • 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/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • 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/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Definitions

  • the present invention relates to the field of network live broadcast technologies, and in particular, to a streaming media file processing method and a live broadcast system.
  • streaming can be realized, and voice, video or animation can be continuously and continuously transmitted from the server to the user computer.
  • the user does not have to wait for the entire file to be downloaded, but only takes a few seconds or ten seconds to start. Watch out with a delay.
  • a sound video or the like is played on the user's machine, the rest of the file is also downloaded from the server.
  • streaming media technology is widely used in the field of on-demand broadcasting, that is, audio and video files are already stored on the server, and users can drag and drop the files being played, and in order to realize the drag and drop positioning of audio and video files, the streaming media files need to be performed.
  • Pre-processing for example, setting a time point for the streaming media file, positioning the video through the video time point, or performing key frame segmentation on the streaming media file, so that the user can more accurately locate the playing file, and the server can also be based on the user. Request a quick jump.
  • the processing method of these streaming media files is not applicable to the live broadcast field.
  • the video cannot be dragged and dropped.
  • the live broadcast screen sent by the source or the server can be received only in real time, and according to the client.
  • the playback of the end is performed by itself.
  • the live broadcast has high requirements on the real-time performance of audio and video playback. How to process the media files to provide the client viewing experience is an urgent problem to be solved.
  • the embodiment of the present invention provides a method for processing a streaming media file, which specifically includes the steps of: slicing the streaming media file according to a preset time unit; and creating a play for the slice according to the time data. a sequence number; wherein the play sequence number is used to determine a play order of the slice; respectively store the slice and the play sequence number of the slice, and establish a mapping relationship between the slice and its play sequence number.
  • the method for slicing the streaming media file according to a preset time unit comprises: acquiring a duration of each frame in the streaming media file, based on the duration And dividing the slice from the streaming media file by the preset time unit.
  • the time data includes a stream timestamp of the first frame in the slice.
  • the creating a play sequence number for the slice according to the time data comprises performing a function calculation based on the time data to obtain the play sequence number.
  • the creating a play sequence number for the slice according to the time data includes: determining whether the currently created play sequence number needs to be calibrated, and if calibration is required, creating the current according to the system time.
  • the play sequence number of the slice, if no calibration is required, the function is calculated based on the time data to obtain the play sequence number.
  • the method for determining whether the currently created play sequence number needs to be calibrated includes: determining whether there is data loss between the current slice and the previous slice, and if so, determining For calibration.
  • the method for playing the streaming media file includes the steps of: acquiring the latest playing sequence number; and playing the serial number of the slice and the latest playing serial number based on the current playing Determining whether there is a jam, if there is a jam, determining the next play sequence number according to the play delay and the latest play sequence number, if no jam occurs, determining the next play sequence number in the order of the play sequence number; The corresponding slice is downloaded according to the next play sequence number.
  • the method for determining whether a jam occurs occurs includes: calculating a difference between a play sequence number of the currently played slice and the latest play sequence number, according to the difference in value Whether it is a preset range to determine whether there is a stuck.
  • the streaming media file after the streaming media file is sliced, it further includes recording whether a key frame is included in the slice.
  • the present invention further provides a live broadcast system, including a push flow end, a server, and a player, wherein the push flow end transmits a streaming media file to the server; and the file processing module of the server receives the streaming media file And slicing the streaming media file according to a preset time unit, creating a play sequence number for the slice according to the time data, establishing a mapping relationship between the slice and the play sequence number, and respectively performing the slice
  • the play sequence number and the mapping relationship are sent to a storage module of the server, the storage module stores the slice in a first partition, and stores the play sequence number and the mapping relationship in a second partition.
  • the player acquires and selects the play sequence number from the second partition, and downloads the slice from the first partition for playing according to the play sequence number and the mapping relationship.
  • the method for the file processing module of the server to slice the streaming media file according to a preset time unit includes: acquiring a duration of each frame in the streaming media file, The slice is segmented from the streaming media file based on the duration and the preset time unit.
  • the time data includes a stream timestamp of the first frame in the slice.
  • the file processing module of the server creates a play sequence number for the slice according to the time data, and performs function calculation based on the time data to obtain the play sequence number.
  • the file processing module of the server creates a play sequence number for the slice according to the time data, including: determining whether the currently created play sequence number needs to be calibrated, and if calibration is required, according to The system time is used to create a play sequence number of the current slice, and if calibration is not required, a function calculation is performed based on the time data to obtain the play sequence number.
  • the file processing module determines whether the currently created play sequence number needs to be calibrated, including: determining whether there is data loss between the current slice and the previous slice, and if yes, It is judged that calibration is required.
  • the data requesting module of the player requests the storage module of the server to download the slice and send it to the playing unit of the player for playing, wherein the request
  • the module confirms the play sequence number of the requested slice, first obtains the latest play sequence number, and determines whether the card is stuck based on the currently playing play sequence number of the slice and the latest play sequence number. , determining the next play according to the play delay and the latest play sequence number
  • the serial number if no jam occurs, determines the next play sequence number in the order of the play sequence number, and requests the server to download the corresponding slice according to the next play sequence number.
  • the requesting module determines whether the value difference belongs to a preset range by calculating a difference between a play sequence number of the currently played slice and the latest play sequence number. Whether there is a stutter.
  • the file processing module slices the streaming media file, whether the key frame is included in the slice is marked.
  • the live broadcast system includes a plurality of the servers and a plurality of the players.
  • the live broadcast system includes multiple push flows, and the servers may be respectively connected to multiple push flows.
  • the streaming media file is sliced according to the time unit, and a play sequence number is created for each slice based on the time data, so that during the subsequent playback process, the operation can be directly performed based on the play sequence number, and the selection is suitable.
  • the slice is played back, so that it can be quickly recovered when the player is stuck.
  • the play sequence number is adjusted in time, so that the subsequent playback position can be accurately located in the playback process, and the play sequence number is prevented from being disordered due to the lack of data.
  • the playback request data is in error.
  • the slice containing the key frame is recorded, so that in the case that the play card needs to jump, the slice containing the key frame can be quickly located for playing, preventing the key selection from being selected.
  • the user's experience is enhanced by the blooming phenomenon that occurs when the frame is played.
  • the real-time requirement is relatively high, and the data loss and play-casting due to the network are urgent problems to be solved in the live broadcast service.
  • the technical solution provided by the present invention can well identify the data loss. And take the corresponding remedial measures, you can also quickly restore the play card, so as to better meet the needs of the live broadcast business.
  • FIG. 1 is a flowchart of a method for processing a streaming media file according to a preferred embodiment of the present invention
  • FIG. 2 is a schematic diagram of a process of processing a streaming media file in an embodiment of the present invention
  • FIG. 3 is a flowchart of a method for playing a streaming media file according to a preferred embodiment of the present invention
  • FIG. 4 is a schematic structural diagram of a live broadcast system according to a preferred embodiment of the present invention.
  • FIG. 5 is a schematic structural diagram of a server in a live broadcast system according to a preferred embodiment of the present invention.
  • FIG. 6 is a schematic structural diagram of a player in a live broadcast system according to a preferred embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of a live broadcast system according to another preferred embodiment of the present invention.
  • FIG. 1 is a flowchart of a method for processing a streaming media file according to a preferred embodiment of the present invention.
  • the streaming media file processing method provided in this embodiment includes:
  • step S10 the streaming media file is sliced according to a preset time unit.
  • the streaming media file substantially includes a streamed audio and video file
  • the audio and video stream includes consecutive frames
  • the consecutive frames can be divided into a key frame and an intermediate frame, each of which includes a stream time stamp and Duration, to mark the playback start time and play length of the frame in the audio and video stream, for example, the first frame stream timestamp of the video stream is 0, the frame duration is 40 ms; the second frame stream timestamp is 40, and the third The frames are successively incremented.
  • the preset time unit is used to determine the slice length. When slicing the streaming media file, it can be based on For each frame duration and preset time unit, a number of consecutive frames are intercepted as one slice, for example, the first frame stream time stamp is 0, the frame duration is 40 ms; the second frame stream time stamp is 40, and the frame duration is 60 ms. The third frame stream time stamp is 100. If the preset time unit is 100 ms, the first frame and the second frame are one slice. It can be seen that the playback duration of a single slice is the sum of the durations of all frames it contains, theoretically equal to the preset time unit.
  • the preset unit time may be set according to actual needs, and may be a specific value or a range of values, and the invention is not limited. It can be understood that since the duration on each frame is set based on the specific situation of the audio and video stream, in the process of slicing, it does not necessarily correspond to a certain frame, in this case, A value setting method is set for processing, for example, selecting the frame closest to the intercept point as the end frame of the slice, and the present invention is not limited thereto.
  • Step S20 creating a play sequence number for the slice according to the time data.
  • the time data contains the stream timestamp of the first frame in the slice.
  • a specific method of creating a play sequence number includes calculating a play sequence number based on a function.
  • the set function calculation formula is:
  • x is the number of the slice
  • F(x) is the playback sequence number of the xth slice
  • t(x) represents the stream timestamp of the first frame in the xth slice, where F(0) can be taken as the current system time.
  • the created play sequence number is used to determine the play order of the slice.
  • the slice play sequence number created by this method is very intuitive to reflect the play sequence and specific time point of each slice. In the subsequent playback process, the play sequence number can be directly followed. To play, and the abnormality judgment can be made based on the play sequence number, which will be described in detail later.
  • the present invention may also create a play sequence number based on other methods.
  • the play sequence number may be set directly according to the stream time stamp, or may be created based on other time data, as long as the play sequence number can reflect each slice in time. The real-time relationship between each other can be.
  • Data loss may occur due to network conditions during the transmission of streaming media files However, if the data loss is not recognized in time, the creation of the play sequence number may be affected, so that the subsequent play sequence cannot be correctly requested during playback.
  • the play sequence number when the play sequence number is created, it is first determined whether calibration is needed. If calibration is required, the play sequence number of the current slice is created according to the current system time. If calibration is not required, based on the foregoing Method to create.
  • the method of determining whether calibration is needed includes confirming whether there is data loss between the current slice and the previous slice, and if so, determining that calibration is required.
  • the data flow time stamp of the frame may be used to determine whether data loss occurs.
  • the difference between the flow time stamps of adjacent frames of adjacent slices should be the duration of the previous frame, and the duration Generally, it is within a reasonable range. Then, it can be confirmed whether the current slice and the previous slice are determined by determining whether the difference between the flow time stamp of the first frame in the current slice and the last frame of the previous slice is within a reasonable range. Whether there is a data loss between them. In other embodiments of the present invention, whether the data is lost may be determined by whether the difference of the flow time stamps of the first frame of the adjacent slice exists within a reasonable range.
  • the playback sequence number calculated by the original method After confirming that data loss has occurred, if the playback sequence number calculated by the original method is also used, there will be a gap between the play sequence number of the current slice and the play sequence number of the previous slice, which may be caused by subsequent playback.
  • the request just falls within the vacancy range and there is a situation where the request is not available. Therefore, after confirming that data loss has occurred, the playback sequence number needs to be calibrated to fill the vacancy range, so as to avoid the situation that the playback request does not have resources. Since the creation of the play sequence number is originally confirmed by the base system time and the slice play time, the current play sequence number can be directly calibrated based on the current system time.
  • Step S30 respectively storing the slice and the play sequence number of the slice, and establishing a mapping relationship between the slice and the play sequence number.
  • FIG. 2 is a schematic diagram of a process of processing a streaming media file in an embodiment of the present invention.
  • the streaming media file A is divided into a plurality of slices a1, a2, ... an, a(n+1), ..., and each slice has a corresponding playing sequence number F ( 1), F(2), ...F(n), F(n+1)..., and the slice and play sequence numbers will be stored in different storage partitions D1, D2, respectively, to create slices and play.
  • the player When the request is played, the player first confirms the play sequence number of the requested resource, finds the corresponding slice through the mapping relationship, and downloads the slice. Since the slice download takes a certain amount of time, for slicing and broadcasting The serial number is stored in the partition, which separates the operation of the play sequence number and the operation of the slice, and can reduce the waiting time when multiple requests are concurrent.
  • the streaming media file processing method described in the above steps S10 to S30 the streaming media file is sliced based on the time characteristic and the playing serial number is created, and the playing serial number is calibrated in time when the data loss occurs, so that during the playing process, The exception handling is performed directly based on the play sequence number.
  • the playback method of the streaming media file processed by the above method will be described below.
  • FIG. 3 is a flowchart of a method for playing a streaming media file according to a preferred embodiment of the present invention. As shown in FIG. 3, the streaming media file playing method provided in this embodiment includes the following steps:
  • the latest play sequence number is the play sequence number that is newly created and stored.
  • S102 determining, according to the playing sequence number of the currently playing slice and the latest playing sequence number, whether the card is stuck. If the card is stuck, determining the next playing sequence number according to the playing delay and the latest playing sequence number, if no card is found, Then, the next play sequence number is determined in the order of the play sequence number, that is, the next play sequence number of the play sequence number of the currently played slice.
  • the next playback slice is also downloaded.
  • the newly created play sequence number is the play sequence number of the next play slice.
  • the transmission network will be shaken, so that the player cannot obtain resources in time, and the picture appears to be stuck.
  • the method for determining whether the card is stuck based on the play sequence number of the currently playing slice and the latest play sequence number includes calculating a difference between the play sequence number of the currently played slice and the latest play sequence number, according to whether the value difference belongs to the preset. The range determines if a jam has occurred.
  • the play sequence number Since the play sequence number is created based on the time data, it can be directly used to confirm the time of the slice play.
  • the difference between the play sequence number of the currently playing slice and the latest play sequence number should theoretically be equal to the play duration of the currently playing slice. That is, the preset time unit in the streaming media file slicing, and then comprehensively consider the inevitable playback delay and system error, if the value difference is within a reasonable preset range (for example, slice playback duration + playback delay + system) Error), then the current playback is smooth, there is no jam, otherwise, it is judged to be stuck.
  • a reasonable preset range for example, slice playback duration + playback delay + system
  • the playback delay refers to the time during which the data to be processed and propagated by the push-end to the client in the live broadcast, and the device of the player itself, the delay between the screen played by the client and the real-time picture of the push-end end. duration.
  • next play sequence number is the next one of the currently playing serial numbers in the record.
  • next playback slice needs to be adjusted.
  • the next play sequence number is determined according to the play delay and the latest play sequence number. Further, the system error is considered together, that is, the value of the next play sequence number is equal to the latest play sequence number minus the play delay and system error.
  • step S20 after the streaming media file is sliced, the slice containing the key frame is recorded, and after the playback of the card needs to be performed, the next playback sequence number is confirmed. It is confirmed again whether the slice corresponding to the play sequence number contains a key frame. If not, the playback sequence number of the slice containing the key frame in the adjacent slice may be re-selected as the next play sequence number. In this way, the blooming phenomenon that occurs due to the fact that the jumped slice does not contain the key frame can be avoided.
  • the corresponding slice may be requested and downloaded according to the next play sequence number, and played after the current slice is played.
  • the streaming media file is sliced according to a time unit, and a play sequence number is created for each slice based on the time data, so that the subsequent playback process can be directly based on Play the serial number to operate, select the appropriate slice to play, so that you can quickly recover when the player is stuck.
  • the play sequence number is adjusted in time, so that the subsequent playback position can be accurately located in the playback process, and the play sequence number is prevented from being disordered due to the lack of data.
  • the playback request data is in error.
  • the slice containing the key frame is recorded, so that when the play card needs to jump, the slice containing the key frame can be quickly located for playing, preventing selection to no key frame.
  • the user experience is enhanced by the blooming phenomenon that occurs during slicing.
  • the real-time requirement is relatively high, and the data loss and play-casting due to the network are urgent problems to be solved in the live broadcast service.
  • the technical solution provided by the present invention can well identify the data loss. And take the corresponding remedial measures, you can also quickly restore the play card, so as to better meet the needs of the live broadcast business.
  • the present invention also provides a live broadcast system.
  • FIG. 4 is a schematic structural diagram of a live broadcast system according to a preferred embodiment of the present invention.
  • the live broadcast system 1 includes a push port 10, a server 20 and a player 30, wherein the server 20 is connected to the push port 10 and the play 30, respectively.
  • the push end 10 is a source end of the audio and video file.
  • the push end 10 may be a specific anchor end or a platform server of the anchor end.
  • the push stream 10 continuously generates audio and video files, and streams the streaming media files such as audio and video streams to the server 20 in a streaming manner.
  • the server 20 receives the streaming media file from the push stream 10 and performs slicing processing on the streaming media file.
  • FIG. 5 is a schematic structural diagram of a server in a live broadcast system according to a preferred embodiment of the present invention.
  • the server 20 includes a file processing module 21 and a storage module 22.
  • the file processing module 21 receives the streaming media file, and slices the streaming media file according to a preset time unit, creates a playing serial number for the slices according to the time data, and establishes a relationship between the slice and the playing serial number. The relationship is mapped, and the slice and the play sequence number and mapping relationship of each slice are respectively sent to the storage module 22.
  • the streaming media file substantially includes a streaming audio and video file
  • the audio and video streams include consecutive frames, and the consecutive frames can be divided into key frames and intermediate frames, each frame being The stream timestamp and duration are included to mark the playback start time and play length of the frame in the audio and video stream.
  • the method for the file processing module 21 to slice the streaming media file according to a preset time unit includes: obtaining a duration of each frame in the streaming media file, and sequentially segmenting each slice from the streaming media file based on the duration and the preset time unit.
  • the preset unit time may be set according to actual needs, and may be a specific value or a range of values, and the invention is not limited. It can be understood that since the duration on each frame is set based on the specific situation of the audio and video stream, in the process of slicing, it does not necessarily correspond to a certain frame, in this case, A value setting method is set for processing, for example, selecting the frame closest to the intercept point as the end frame of the slice, and the present invention is not limited thereto.
  • the file processing module 21 creates a play sequence number for the slice based on the time data while segmenting the slice.
  • the file processing module 21 creates a play sequence number for the slice, and includes performing a function calculation based on the time data to obtain a play sequence number, wherein the time data includes a stream time of the first frame in the current slice. stamp.
  • the formula for calculating the function is:
  • x is the number of the slice
  • F(x) is the playback sequence number of the xth slice
  • t(x) represents the stream timestamp of the first frame in the xth slice, where F(0) can be taken as the current system time.
  • the created play sequence number is used to determine the play order of the slice, and the slice play sequence number created by the file processing module 21 is very intuitive to reflect the play sequence and the specific time point of each slice, and can be directly followed in the playback process.
  • the play sequence number is played for playing, and the abnormality determination can be performed based on the play sequence number, which will be described in detail later.
  • the present invention may also create a play sequence number based on other methods.
  • the play sequence number may be set directly according to the stream time stamp, or may be created based on other time data, as long as the play sequence number can reflect each slice in time. The real-time relationship between each other can be.
  • the data loss may occur due to the network condition during the transmission of the streaming media file. If the data loss is not recognized in time, the playback sequence number may be affected, so that during the playback process, The serial number could not be requested correctly.
  • the file processing module 21 first determines whether calibration is needed when creating a play sequence number, and if calibration is required, creates a play sequence number of the current slice according to the current system time, if calibration is not required. , based on the aforementioned method to create.
  • the method of determining whether calibration is needed includes confirming whether there is data loss between the current slice and the previous slice, and if so, determining that calibration is required.
  • the data flow time stamp of the frame may be used to determine whether data loss occurs. Normally, the difference between the flow time stamps of adjacent frames of adjacent slices should be the duration of the previous frame, and the duration Generally, it is within a reasonable range. Then, it can be confirmed whether the current slice and the previous slice are determined by determining whether the difference between the flow time stamp of the first frame in the current slice and the last frame of the previous slice is within a reasonable range. Whether there is a data loss between them. In other embodiments of the present invention, whether the data is sent may be determined whether the difference between the flow time stamps of the first frame of the adjacent slice exists within a reasonable range. Lost.
  • the playback sequence number calculated by the original method After confirming that data loss has occurred, if the playback sequence number calculated by the original method is also used, there will be a gap between the play sequence number of the current slice and the play sequence number of the previous slice, which may be caused by subsequent playback.
  • the request just falls within the vacancy range and there is a situation where the request is not available. Therefore, after confirming that data loss has occurred, the playback sequence number needs to be calibrated to fill the vacancy range, so as to avoid the situation that the playback request does not have resources. Since the creation of the play sequence number is originally confirmed by the base system time and the slice play time, the current play sequence number can be directly calibrated based on the current system time.
  • the storage module 22 receives the data sent by the file processing module 21, and stores the slice in the first partition 22a, and stores the play sequence number and the mapping relationship in the second partition 22b.
  • the player 30 is configured to play a streaming media file.
  • the user terminal after the user makes a request for the live broadcast program, the player 30 acquires the play resource from the server 20 according to the user's needs.
  • FIG. 6 is a schematic structural diagram of a player in a live broadcast system according to a preferred embodiment of the present invention, as shown in FIG. 5 and FIG. 6.
  • the player 30 includes a request unit 31 and a playback unit 32.
  • the requesting unit 31 acquires and selects a play sequence number of the program requested by the user from the second partition 22b of the storage module 22 of the server 20 according to the user request, downloads a slice from the first partition according to the play sequence number and the mapping relationship, and downloads the downloaded The slice is transmitted to the playback unit 31 for playback.
  • request unit 31 retrieves the latest play sequence number from second partition 22b.
  • the latest play sequence number is the play sequence number that is newly created and stored. Determining whether a jam occurs based on the play sequence number of the currently playing slice and the latest play sequence number. If a jam occurs, determining the next play sequence number according to the play delay and the latest play sequence number. If no jam occurs, then according to The order of playing the serial number in the second partition 22b determines the next play sequence number, that is, the next play sequence number of the play sequence number of the currently played slice.
  • the next playback slice is also downloaded.
  • the newly created play sequence number is the play sequence number of the next play slice.
  • the transmission network will be shaken, so that the player cannot obtain resources in time, and the picture appears to be stuck.
  • the current play may first determine whether the current play has a stuck to determine the play sequence number of the next play slice. Specifically, based on the play sequence number of the currently playing slice and the latest play sequence number
  • the method of whether or not the card is broken includes calculating a difference between the playing sequence number of the currently playing slice and the latest playing sequence number, and determining whether a jam occurs according to whether the numerical difference belongs to a preset range.
  • the play sequence number Since the play sequence number is created based on the time data, it can be directly used to confirm the time of the slice play.
  • the difference between the play sequence number of the currently playing slice and the latest play sequence number should theoretically be equal to the play duration of the currently playing slice. That is, the preset time unit in the streaming media file slicing, and then comprehensively consider the inevitable playback delay and system error, if the value difference is within a reasonable preset range (for example, slice playback duration + playback delay + system) Error), then the current playback is smooth, there is no jam, otherwise, it is judged to be stuck.
  • a reasonable preset range for example, slice playback duration + playback delay + system
  • the playback delay refers to the time during which the data to be processed and propagated by the push-end to the client in the live broadcast, and the device of the player itself, the delay between the screen played by the client and the real-time picture of the push-end end. duration.
  • next play sequence number is the next one of the currently playing serial numbers in the record.
  • next playback slice needs to be adjusted.
  • the next play sequence number is determined according to the play delay and the play sequence number of the currently played slice. Further, the system error is considered together, that is, the value of the next play sequence number is equal to the latest play sequence number minus the play delay and the system. error.
  • the slice containing the key frame is recorded, and when the playback card needs to be screen-jumped, the next playback sequence number is confirmed. It is confirmed again whether the slice corresponding to the play sequence number contains a key frame. If not, the playback sequence number of the slice containing the key frame in the adjacent slice may be re-selected as the next play sequence number. In this way, the blooming phenomenon that occurs due to the fact that the jumped slice does not contain the key frame can be avoided.
  • the live broadcast system shown in FIG. 4 is mainly used to illustrate the data transmission process and the respective functions between the push stream end, the server and the player.
  • the push stream end continuously generates the audio and video stream.
  • the media file is transmitted to the server in real time, and the server slices the received streaming media file and creates a play serial number for the slice based on the time information.
  • the server creates the play sequence number, it can first determine whether data loss occurs. If the loss occurs, the playback system serial number is adjusted by the current system time, thereby preventing the player from responding to the situation when the data is lost.
  • the player sequentially requests the downloading of the slice to the server, and plays it, and judges whether it appears according to the playing serial number each time the slice is requested. Caton, and jump in time when there is a catastrophe, to avoid the playback delay is too long, and lose the real-time picture.
  • FIG. 7 is a schematic structural diagram of a live broadcast system according to another preferred embodiment of the present invention.
  • the live broadcast system 2 includes a push flow terminal 100, a plurality of servers 200 (200a, 200b, ... 200n in the drawing) and a plurality of players 300 (300a1, 300a2, ..., 300b1, 300b2).
  • the server 200a, 200b, ... 200n is connected to the push flow end 100, the players 300a1, 300a2 are connected to the server 200a, and the players 300b1, 300b2 are connected to the server 200n.
  • the player can pass through the corresponding server.
  • the connection acquires the play resource, and the server obtains the program resource of the push end through the connection with the push end.
  • the structure and function of the push stream, the server and the player in this embodiment are the same as those of the push stream, the server and the player in the embodiment shown in FIG. 4, and therefore will not be described again.
  • the relationship between the push stream and the server, and between the server and the player may be a many-to-many relationship. That is, one push-end terminal is connected to multiple servers, one server is connected to multiple push-stream terminals, or one player is connected to multiple servers, which can be set according to actual business requirements and equipment conditions, and the present invention does not limit.
  • the device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, ie may be located A place, or it can be distributed to multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment. Those of ordinary skill in the art can understand and implement without deliberate labor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种用于直播***中流媒体文件处理方法,所述方法包含步骤:按照一预设时间单位对所述流媒体文件进行切片;根据时间数据为所述切片创建播放序列号;其中所述播放序列号用于确定所述切片的播放顺序;分别存储所述切片及所述切片的播放序列号,并建立所述切片与其播放序列号之间的映射关系。本发明基于预设时间单位对流媒体文件进行切片,并根据时间数据创建切片的播放序列号,可以直接基于时间信息来选择处理播放序列号对应的切片文件,以方便后续对切片文件的操作。此外,本发明还提供一种直播***。

Description

一种流媒体文件处理方法及直播*** 技术领域
本发明涉及网络直播技术领域,特别涉及一种流媒体文件处理方法及直播***。
背景技术
随着互联网的普及,利用网络传输声音与视频信号的需求也越来越大。广播电视等媒体上网后,也都希望通过互联网来发布自己的音视频节目。但是,音视频在存储时,文件的体积一般都十分庞大。在网络带宽还很有限的情况下,花几十分钟甚至更长的时间等待一个音视频文件的传输,用户体验并不好。
流媒体技术的出现,在一定程度上使互联网传输音视频难的局面得到改善。
采用流媒体技术,可实现流式传输,将声音、影像或动画由服务器向用户计算机进行连续、不间断传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十几秒的启动延时即可进行观看。当声音视频等在用户的机器上播放时,文件的剩余部分还会从服务器上继续下载。
目前,流媒体技术广泛应用在点播领域,即音视频文件已经存储在服务器上,用户可以对正在播放的文件,进行拖放定位,而为了实现音视频文件的拖放定位,需要对流媒体文件进行预先处理,例如,为流媒体文件设置时间点,对视频的定位通过视频时间点进行操作,或者对流媒体文件进行关键帧分割,使得用户可更加精准的对播放文件进行定位,服务器也能根据用户请求进行快速跳转。
然而这些流媒体文件的处理方法,并不适用于直播领域,在用户观看直播画面时,并不能对视频进行拖放定位的操作,只能实时接收源端或服务器发送的直播画面,并根据客户端端的播放进行进行自身调整。
众所周知,直播对音视频播放的实时性要求较高,如何对媒体文件进行处理,以提供客户端观看体验是当前急需解决的问题。
发明内容
为了解决背景技术中的问题,本发明实施例提供了一种流媒体文件处理方法,具体包含步骤:按照一预设时间单位对所述流媒体文件进行切片;根据时间数据为所述切片创建播放序列号;其中所述播放序列号用于确定所述切片的播放顺序;分别存储所述切片及所述切片的播放序列号,并建立所述切片与其播放序列号之间的映射关系。
在本发明的一较佳实施例中,所述按照一预设时间单位对所述流媒体文件进行切片的方法包含,获取所述流媒体文件中每一帧的持续时间,基于所述持续时间及所述预设时间单位从所述流媒体文件中分割出所述切片。
在本发明的一较佳实施例中,所述时间数据包含所述切片中的第一帧的流时间戳。
在本发明的一较佳实施例中,所述根据时间数据为所述切片创建播放序列号包含基于所述时间数据进行函数计算得出所述播放序列号。
在本发明的一较佳实施例中,所述根据时间数据为所述切片创建播放序列号包含:判断当前创建的播放序列号是否需要校准,若需要校准,则根据***时间来创建当前所述切片的播放序列号,若不需要校准,则基于所述时间数据进行函数计算得出所述播放序列号。
在本发明的一较佳实施例中,所述判断当前创建的播放序列号是否需要校准的方法包含:确认当前所述切片与上一所述切片之间是否存在数据丢失,若存在,则判断为需要校准。
在本发明的一较佳实施例中,播放所述流媒体文件的方法包含步骤:获取最新的所述播放序列号;基于当前播放的所述切片的播放序列号和所述最新的播放序列号判断是否出现卡顿,若出现卡顿,则根据播放延时和所述最新播放序列号确定下一个播放序列号,若未出现卡顿,则按播放序列号的顺序确定下一个播放序列号;根据所述下一个播放序列号下载相应所述切片。
在本发明的一较佳实施例中,所述判断是否出现卡顿的方法包含:计算当前播放的所述切片的播放序列号和所述最新的播放序列号的数值差,根据所述数值差是否属于预设范围判断是否出现卡顿。
在本发明的一较佳实施例中,在对所述流媒体文件进行切片之后更包含对所述切片中是否包含关键帧进行记录。
此外,本发明还提供一种直播***,包含推流端、服务器和播放器,其中,所述推流端传送流媒体文件至所述服务器;所述服务器的文件处理模块接收所述流媒体文件,按照一预设时间单位对所述流媒体文件进行切片,根据时间数据为所述切片创建播放序列号,建立所述切片与所述播放序列号之间的映射关系,并分别将所述切片、所述播放序列号及所述映射关系发送给所述服务器的存储模块,所述存储模块将所述切片存储在第一分区,将所述播放序列号及所述映射关系存储在第二分区;所述播放器从所述第二分区获取并选择所述播放序列号,并根据所述播放序列号及所述映射关系从所述第一分区下载所述切片进行播放。
在本发明的一较佳实施例中,所述服务器的文件处理模块按照一预设时间单位对所述流媒体文件进行切片的方法包含,获取所述流媒体文件中每一帧的持续时间,基于所述持续时间及所述预设时间单位从所述流媒体文件中分割出所述切片。
在本发明的一较佳实施例中,所述时间数据包含所述切片中的第一帧的流时间戳。
在本发明的一较佳实施例中,所述服务器的文件处理模块根据所述时间数据为所述切片创建播放序列号包含基于所述时间数据进行函数计算得出所述播放序列号。
在本发明的一较佳实施例中,所述服务器的文件处理模块根据所述时间数据为所述切片创建播放序列号包含:判断当前创建的播放序列号是否需要校准,若需要校准,则根据***时间来创建当前所述切片的播放序列号,若不需要校准,则基于所述时间数据进行函数计算得出所述播放序列号。
在本发明的一较佳实施例中,所述文件处理模块判断当前创建的播放序列号是否需要校准包含:确认当前所述切片与上一所述切片之间是否存在数据丢失,若存在,则判断为需要校准。
在本发明的一较佳实施例中,所述播放器的数据请求模块向所述服务器的存储模块请求下载所述切片,并发送给所述播放器的播放单元进行播放,其中,所述请求模块确认请求切片的播放序列号时,先获取最新的所述播放序列号,并基于当前播放的所述切片的播放序列号和所述最新的播放序列号判断是否出现卡顿,若出现卡顿,则根据播放延时和所述最新播放序列号确定下一个播放 序列号,若未出现卡顿,则按播放序列号的顺序确定下一个播放序列号,并根据所述下一个播放序列号向所述服务器请求下载相应所述切片。
在本发明的一较佳实施例中,所述请求模块通过计算当前播放的所述切片的播放序列号和所述最新的播放序列号的数值差,根据所述数值差是否属于预设范围判断是否出现卡顿。
在本发明的一较佳实施例中,在所述文件处理模块对所述流媒体文件进行切片之后,对所述切片中是否包含关键帧进行标记。
在本发明的一较佳实施例中,所述直播***包含多台所述服务器和多台所述播放器。
在本发明的一较佳实施例中,所述直播***包含多个推流端,所述服务器可分别连接于多个推流端。
通过本发明所提供的技术方案,对流媒体文件按照时间单位来进行切片,并基于时间数据来为各个切片创建播放序列号,使得后续播放过程中,可以直接基于播放序列号来进行操作,选择适合的切片进行播放,从而实现在播放器发生卡顿时快速进行恢复。
此外,通过加入校准步骤,使得在文件数据发生丢失的情况下,及时调整播放序列号,使得后续在播放过程中能准确定位到正确的播放位置,而防止因数据缺失而出现播放序列号杂乱导致播放请求数据发生错误的情况。
更进一步的,在对流媒体文件进行切片之后,对包含关键帧的切片进行记录,方便在播放卡顿需要跳转的情况下,可以快速定位到包含关键帧的切片进行播放,防止选择到没有关键帧的切片播放时出现的花屏现象,从而提升用户体验。
直播业务中,对实时性要求比较高,而由于网络原因而出现的数据丢失和播放卡顿是直播业务中亟待解决的问题,通过本发明所提供技术方案,可很好的对数据丢失进行识别,并采取相应的补救措施,也可以对播放卡顿进行快速恢复,从而更好的满足了直播业务的需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1绘示本发明一较佳实施例所提供的流媒体文件处理方法流程图;
图2绘示本发明实施例中流媒体文件处理过程示意图;
图3绘示本发明一较佳实施例提供的流媒体文件播放方法流程图;
图4绘示本发明一较佳实施例提供的直播***结构示意图;
图5绘示本发明一较佳实施例所提供的直播***中服务器结构示意图;
图6绘示本发明一较佳实施例所提供的直播***中播放器的结构示意图;
图7绘示本发明另一较佳实施例提供的直播***结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
以下将结合图示对本发明的实施例进行说明。
请参照图1,图1绘示本发明一较佳实施例所提供的流媒体文件处理方法流程图。如图1所示,本实施例所提供的流媒体文件处理方法包含:
步骤S10,按照一预设时间单位对流媒体文件进行切片。
具体而言,流媒体文件实质包含流式传播的音视频文件,音视频流中包含连续的帧,该些连续的帧可分为关键帧和中间帧,每一帧上都包含流时间戳和持续时间,以标记该帧在音视频流中的播放起始时间和播放长度,例如,视频流第一帧流时间戳为0,帧持续时间40ms;第二帧流时间戳为40,第三帧依次递加。
预设时间单位用来确定切片长度,在对流媒体文件进行切片时,可以基于 每一帧的持续时间和预设时间单位,截取若干连续帧为作一个切片,例如,第一帧流时间戳为0,帧持续时间40ms;第二帧流时间戳为40,帧持续时间60ms;第三帧流时间戳为100,若预设时间单位为100ms,那么第一帧和第二帧为一个切片。由此可见,单个切片的播放时长为其所包含的所有帧的持续时间之和,理论上来说,等于预设时间单元。
其中预设单位时间可以根据实际需求进行设定,其可以是一个具体的数值,也可以是一个取值范围,本发明并不做限制。可以理解的是,由于每一帧上的持续时间都是基于音视频流具体情况而设定的,在切片的过程中,并不一定是恰好对应到某一帧,在这种情况下,可以设定一个取值方式来进行处理,例如选取离截取点最近的帧作为切片的结束帧,本发明亦不做限制。
步骤S20,根据时间数据为所述切片创建播放序列号。
具体而言,时间数据包含切片中的第一帧的流时间戳。创建播放序列号的具体方法包含基于函数计算得出播放序列号,例如,在本发明的一具体实施例中,设定函数计算公式为:
F(x)=t(x)-t(x-1)+F(x-1)
其中x为切片的编号,F(x)为第x个切片的播放序列号,t(x)表示第x个切片中第一帧的流时间戳,其中F(0)可取值为***当前时间。
创建的播放序列号用于确定切片的播放顺序,通过该方法创建的切片播放序列号非常直观的体现了各切片的播放序列和具体时间点,后续在播放过程中,可直接按照该播放序列号来进行播放,并且可基于播放序列号进行异常判断,后续将会进行详细说明。
在本发明的一些较佳实施例中,可以通过设置权值和加入误差范围的方法对函数进行完善,使得创建的播放序列号更贴切实际,例如F(x)=At(x)-Bt(x-1)+F(x-1)+C,其中A、B为权值,C为***偏置误差,可以理解的是A、B、C的具体取值可根据***设计的实际情况进行调整,本发明并不作限制。
值得注意的是,本发明也可基于其他方法创建播放序列号,例如可直接根据流时间戳来设定播放序列号,或基于其他时间数据创建,只要播放序列号能在时间上体现出各切片相互之间的实时关系即可。
由于流媒体文件的传输过程中可能会受网络状况影响而出现数据丢失的情 况,而若不及时识别出数据丢失的发生,则可能会影响到播放序列号的创建,使得后续在播放过程中,无法正确的请求到播放序列号。
在本发明的一较佳实施例中,在创建播放序列号时,先判断是否需要校准,若需要校准,则根据当前***时间来创建当前切片的播放序列号,若不需要校准,则基于前述方法来进行创建。
判断是否需要校准的方法包含确认当前切片与上一切片之间是否存在数据丢失,若存在则判断为需要校准。
具体而言,可基于帧的流时间戳来进行判断是否出现数据丢失,正常情况下,相邻切片的相邻帧的流时间戳的差值应为前一帧的持续时间,而这个持续时间一般都会在一个合理范围之内,那么可通过判断当前切片中的第一帧与上一切片的尾帧的流时间戳的差值是否在一合理范围内,来确认在当前切片和上一切片之间是否发生数据丢失的情况。本发明的其他实施例中,也可以通过相邻切片的第一帧的流时间戳的差值是否存在一个合理范围内来判断数据是否发生丢失。
在确认发生了数据丢失后,若还采用原先的方法计算出的播放序列号,那么当前切片的播放序列号与上一切片的播放序列号之间会出现空缺范围,后续播放过程中可能会因为请求刚好落在该空缺范围中,而出现请求不到资源的情况。所以在确认发生了数据丢失后,需经过对播放序号进行校准,来填补空缺范围,避免出现播放请求不到资源的情况。由于播放序列号的创建本来就是基***时间和切片播放时间来确认的,所以,可直接基于当前***时间来对当前播放序列号进行校准。
步骤S30,分别存储所述切片及所述切片的播放序列号,并建立所述切片与其播放序列号之间的映射关系。
如图2所示,图2绘示本发明实施例中流媒体文件处理过程示意图。经过步骤S10和S20的处理,流媒体文件A被分割成多个切片a1,a2,...an,a(n+1)...,并且每个切片都有相应的播放序列号F(1),F(2),...F(n),F(n+1)...,而该些切片和播放序列号将分别存储在不同的存储分区D1,D2,建立切片与播放序列号之间的映射关系R1,R2,...,Rn,R(n+1)。
在播放请求时,播放器先确认请求资源的播放序列号,通过映射关系找到相应的切片,并对切片进行下载。由于切片下载需要一定的时间,对切片和播 放序列号进行分区存储,将对播放序列号的操作和切片的操作独立开来,可在多个请求并发时,减少等待时间。
根据上述步骤S10至S30所述的流媒体文件处理方法,完全基于时间特性对流媒体文件进行切片并创建播放序列号,并及时对发生数据丢失时进行播放序列号的校准,使得播放过程中,可直接基于播放序列号进行异常处理。以下将对经过上述方法处理后的流媒体文件的播放方法进行说明。
请参照图3,图3绘示本发明一较佳实施例提供的流媒体文件播放方法流程图。如图3所示,本实施例所提供的流媒体文件播放方法包含步骤:
S101,获取最新的播放序列号。其中最新的播放序列号为最新创建完成并存储的播放序列号。
S102,基于当前播放切片的播放序列号和最新的播放序列号判断是否出现卡顿,若出现卡顿,则根据播放延时和最新播放序列号确定下一个播放序列号,若未出现卡顿,则按播放序列号的顺序确定下一个播放序列号,即当前播放切片的播放序列号的下一个播放序列号。
具体而言,基于流媒体文件的传输特性,播放当前切片的同时,也在下载下一播放切片,在理想的网络环境中,最新创建的播放序列号即为下一个播放切片的播放序列号,但在现实的网络环境中,传输网络会发生抖动,使得播放器无法及时获取资源,出现画面卡顿。
针对这一情况,可先判断当前播放是否出现卡顿来确定下一个播放切片的播放序列号。具体的,基于当前播放切片的播放序列号和最新的播放序列号判断是否出现卡顿的方法包含计算当前播放切片的播放序列号和最新的播放序列号的数值差,根据数值差是否属于预设范围判断是否出现卡顿。
由于播放序列号是基于时间数据进行创建的,可直接用来确认切片播放的时间,当前播放切片的播放序列号与最新的播放序列号的数值差理论上来说,应该等于当前播放切片的播放时长,即在流媒体文件切片时的预设时间单位,再综合考虑不可避免的播放延时和***误差,若该数值差在合理的预设范围内(例如,切片播放时长+播放延时+***误差),那么表示当前播放顺利,并未出现卡顿,否则,判断为出现卡顿。其中播放延时是指在直播中由于推流端到客户端的数据需要处理和传播的时间,再加上播放器本身的设备原因,客户端所播放的画面与推流端的实时画面之间的延迟时长。
若确认没有出现卡顿时,可直接确认下一个播放序列号为记录中当前播放序列号的下一个。
若确认出现卡顿时,为了保证用户接收到的画面的实时性,应跳过因卡顿而延迟的切片,以保证当前播放画面的实时性,那么就需要对下一个播放切片进行调整,那么可根据播放延时和所述最新播放序列号确定下一个播放序列号,更进一步的,一并考虑***误差,即下一个播放序列号的值等于最新播放序列号减去播放延时和***误差。
在本发明的较佳实施例中,在步骤S20中,对流媒体文件进行切片后,记录包含关键帧的切片,在出现播放卡顿需要进行画面跳转时,确认好下一个播放序列号之后,再次确认该播放序列号对应的切片中是否包含关键帧,若不包含,可重新选取邻近的切片中包含关键帧的切片的播放序列号为下一个播放序列号。如此一来,可避免由于跳转到的切片中不包含关键帧而出现的花屏现象。
S103,根据下一个播放序列号下载相应所述切片。
经过步骤S102确认下一个播放序列号之后,可根据下一个播放序列号对相应的切片进行请求并下载,并在当前切片播放完毕后进行播放。
由此可见,通过本发明实施例所提供的流媒体文件处理方法,对流媒体文件按照时间单位来进行切片,并基于时间数据来为各个切片创建播放序列号,使得后续播放过程中,可以直接基于播放序列号来进行操作,选择适合的切片进行播放,从而实现在播放器发生卡顿时快速进行恢复。
此外,通过加入校准步骤,使得在文件数据发生丢失的情况下,及时调整播放序列号,使得后续在播放过程中能准确定位到正确的播放位置,而防止因数据缺失而出现播放序列号杂乱导致播放请求数据发生错误的情况。
更进一步的,在对流媒体文件进行切片之后,对包含关键帧的切片进行记录,方便在播放卡顿需要跳转时,可以快速定位到包含关键帧的切片进行播放,防止选择到没有关键帧的切片播放时出现的花屏现象,从而提升用户体验。
直播业务中,对实时性要求比较高,而由于网络原因而出现的数据丢失和播放卡顿是直播业务中亟待解决的问题,通过本发明所提供技术方案,可很好的对数据丢失进行识别,并采取相应的补救措施,也可以对播放卡顿进行快速恢复,从而更好的满足了直播业务的需求。
此外,本发明还提供一种直播***。
请参照图4,图4绘示本发明一较佳实施例提供的直播***结构示意图。如图4所示,直播***1包含推流端10,服务器20和播放器30,其中服务器20分别与推流端10和播放的30连接。
具体而言,推流端10为音视频文件的源端,在具体的直播场景中,其可以为具体的主播端,也可以是主播端的平台服务器。在一场直播中,推流端10持续生成音视频文件,并以流式传播的方式将音视频流等流媒体文件传送给服务器20。
服务器20接收来自推流端10的流媒体文件,并对流媒体文件进行切片处理。
请参照图5,图5绘示本发明一较佳实施例所提供的直播***中服务器结构示意图。服务器20包含文件处理模块21和存储模块22。
其中文件处理模块21接收流媒体文件,并按照一预设时间单位对该流媒体文件进行切片,根据时间数据为这些切片创建播放序列号,并建立所述切片与所述播放序列号之间的映射关系,并分别将该些切片、和各切片的播放序列号及映射关系发送给存储模块22。
具体而言,如前文所述,流媒体文件实质包含流式传播的音视频文件,音视频流中包含连续的帧,该些连续的帧可分为关键帧和中间帧,每一帧上都包含流时间戳和持续时间,以标记该帧在音视频流中的播放起始时间和播放长度。
文件处理模块21按照一预设时间单位对流媒体文件进行切片的方法包含,获取流媒体文件中每一帧的持续时间,基于持续时间及预设时间单位从流媒体文件中依次分割出各个切片。
其中预设单位时间可以根据实际需求进行设定,其可以是一个具体的数值,也可以是一个取值范围,本发明并不做限制。可以理解的是,由于每一帧上的持续时间都是基于音视频流具体情况而设定的,在切片的过程中,并不一定是恰好对应到某一帧,在这种情况下,可以设定一个取值方式来进行处理,例如选取离截取点最近的帧作为切片的结束帧,本发明亦不做限制。
文件处理模块21在分割出切片的同时,根据时间数据为该切片创建播放序列号。
具体而言,文件处理模块21为切片创建播放序列号,包含基于时间数据进行函数计算得出播放序列号,其中时间数据包含当前切片中的第一帧的流时间 戳。例如,在本发明的一具体实施例中,设定函数计算公式为:
F(x)=t(x)-t(x-1)+F(x-1)
其中x为切片的编号,F(x)为第x个切片的播放序列号,t(x)表示第x个切片中第一帧的流时间戳,其中F(0)可取值为***当前时间。
创建的播放序列号用于确定切片的播放顺序,文件处理模块21通过该方法创建的切片播放序列号非常直观的体现了各切片的播放序列和具体时间点,后续在播放过程中,可直接按照该播放序列号来进行播放,并且可基于播放序列号进行异常判断,后续将会进行详细说明。
在本发明的一些较佳实施例中,可以通过设置权值和加入误差范围的方法对函数进行完善,使得创建的播放序列号更贴切实际,例如F(x)=At(x)-Bt(x-1)+F(x-1)+C,其中A、B为权值,C为***偏置误差,可以理解的是A、B、C的具体取值可根据***设计的实际情况进行调整,本发明并不作限制。
值得注意的是,本发明也可基于其他方法创建播放序列号,例如可直接根据流时间戳来设定播放序列号,或基于其他时间数据创建,只要播放序列号能在时间上体现出各切片相互之间的实时关系即可。
由于流媒体文件的传输过程中可能会受网络状况影响而出现数据丢失的情况,而若不及时识别出数据丢失的发生,则可能会影响到播放序列号的创建,使得后续在播放过程中,无法正确的请求到播放序列号。
在本发明的一较佳实施例中,文件处理模块21在创建播放序列号时,先判断是否需要校准,若需要校准,则根据当前***时间来创建当前切片的播放序列号,若不需要校准,则基于前述方法来进行创建。
判断是否需要校准的方法包含确认当前切片与上一切片之间是否存在数据丢失,若存在则判断为需要校准。
具体而言,可基于帧的流时间戳来进行判断是否出现数据丢失,正常情况下,相邻切片的相邻帧的流时间戳的差值应为前一帧的持续时间,而这个持续时间一般都会在一个合理范围之内,那么可通过判断当前切片中的第一帧与上一切片的尾帧的流时间戳的差值是否在一合理范围内,来确认在当前切片和上一切片之间是否发生数据丢失的情况。本发明的其他实施例中,也可以通过相邻切片的第一帧的流时间戳的差值是否存在一个合理范围内来判断数据是否发 生丢失。
在确认发生了数据丢失后,若还采用原先的方法计算出的播放序列号,那么当前切片的播放序列号与上一切片的播放序列号之间会出现空缺范围,后续播放过程中可能会因为请求刚好落在该空缺范围中,而出现请求不到资源的情况。所以在确认发生了数据丢失后,需经过对播放序号进行校准,来填补空缺范围,避免出现播放请求不到资源的情况。由于播放序列号的创建本来就是基***时间和切片播放时间来确认的,所以,可直接基于当前***时间来对当前播放序列号进行校准。
存储模块22接收文件处理模块21发送来的数据,并将切片存储在第一分区22a,将播放序列号及映射关系存储在第二分区22b。
播放器30用于播放流媒体文件,在具体的直播场景中,为用户端,用户对直播节目发出请求后,播放器30根据用户需要从服务器20获取播放资源。
请参照图6并同时参照图5,图6绘示本发明一较佳实施例所提供的直播***中播放器的结构示意图,如图5及图6所示。播放器30包含请求单元31和播放单元32。
其中,请求单元31根据用户请求从服务器20的存储模块22第二分区22b获取并选择用户请求节目的播放序列号,根据播放序列号及映射关系从第一分区下载切片进行播放,并将下载的切片传送给播放单元31进行播放。
在本发明的一较佳实施例中,请求单元31从第二分区22b中获取最新的播放序列号。其中最新的播放序列号为最新创建完成并存储的播放序列号。基于当前播放切片的播放序列号和最新的播放序列号判断是否出现卡顿,若出现卡顿,则根据播放延时和最新播放序列号确定下一个播放序列号,若未出现卡顿,则根据第二分区22b中播放序列号的顺序确定下一个播放序列号,即当前播放切片的播放序列号的下一个播放序列号。
具体而言,基于流媒体文件的传输特性,播放当前切片的同时,也在下载下一播放切片,在理想的网络环境中,最新创建的播放序列号即为下一个播放切片的播放序列号,但在现实的网络环境中,传输网络会发生抖动,使得播放器无法及时获取资源,出现画面卡顿。
针对这一情况,可先判断当前播放是否出现卡顿来确定下一个播放切片的播放序列号。具体的,基于当前播放切片的播放序列号和最新的播放序列号判 断是否出现卡顿的方法包含计算当前播放切片的播放序列号和最新的播放序列号的数值差,根据数值差是否属于预设范围判断是否出现卡顿。
由于播放序列号是基于时间数据进行创建的,可直接用来确认切片播放的时间,当前播放切片的播放序列号与最新的播放序列号的数值差理论上来说,应该等于当前播放切片的播放时长,即在流媒体文件切片时的预设时间单位,再综合考虑不可避免的播放延时和***误差,若该数值差在合理的预设范围内(例如,切片播放时长+播放延时+***误差),那么表示当前播放顺利,并未出现卡顿,否则,判断为出现卡顿。其中播放延时是指在直播中由于推流端到客户端的数据需要处理和传播的时间,再加上播放器本身的设备原因,客户端所播放的画面与推流端的实时画面之间的延迟时长。
若确认没有出现卡顿时,可直接确认下一个播放序列号为记录中当前播放序列号的下一个。
若确认出现卡顿时,为了保证用户接收到的画面的实时性,应跳过因卡顿而延迟的切片,以保证当前播放画面的实时性,那么就需要对下一个播放切片进行调整,那么可根据播放延时和当前播放的切片的播放序列号确定下一个播放序列号,更进一步的,一并考虑***误差,即下一个播放序列号的值等于最新播放序列号减去播放延时和***误差。
在本发明的较佳实施例中,文件处理模块21对流媒体文件进行切片后,记录包含关键帧的切片,在出现播放卡顿需要进行画面跳转时,确认好下一个播放序列号之后,可再次确认该播放序列号对应的切片中是否包含关键帧,若不包含,可重新选取邻近的切片中包含关键帧的切片的播放序列号为下一个播放序列号。如此一来,可避免由于跳转到的切片中不包含关键帧而出现的花屏现象。
值得说明的是,图4所示的直播***中主要用于对推流端、服务器和播放器之间的数据传输过程及各自功能进行示意说明,在直播中,推流端持续生成音视频流媒体文件,并实时传输给服务器,服务器对接收到的流媒体文件进行切片,并基于时间信息为切片创建播放序列号。服务器在创建播放序列号时可先判断是否发生数据丢失,若发生丢失则通过当前***时间来调整播放序列号,从而避免播放器请求到丢失数据时无法响应的状况。播放器向服务器依次请求下载切片,并进行播放,并在每次请求切片时,根据播放序列号判断是否出现 卡顿,并在出现卡顿时及时跳转,避免播放延时过长,而失去画面实时性。
请参照图7,图7绘示本发明另一较佳实施例提供的直播***结构示意图。如如7所示,直播***2包含推流端100,多个服务器200(图示中的200a,200b,...200n)和多个播放器300(300a1,300a2,...,300b1,300b2...)。
其中服务器200a,200b,...200n连接于推流端100,播放器300a1,300a2连接于服务器200a,播放器300b1,300b2连接于服务器200n,在本实施例中,播放器可通过与相应服务器的连接获取播放资源,服务器通过与推流端的连接获取该推流端的节目资源。本实施例中推流端、服务器和播放器的结构及功能与图4所示实施例中的推流端、服务器和播放器相同,故不再赘述。
值得说明的是,在本发明的其他实施例中,推流端和服务器之间、服务器与播放器之间的关系可为多对多的关系。即一个推流端连接多台服务器,一台服务器连接多个推流端和或一台播放器连接多台服务器,具体可根据实际业务需求和设备状况进行设定,本发明并不以此为限。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

  1. 一种流媒体文件处理方法,其特征在于,所述方法包含步骤:
    按照一预设时间单位对所述流媒体文件进行切片;
    根据时间数据为所述切片创建播放序列号;其中所述播放序列号用于确定所述切片的播放顺序;
    分别存储所述切片及所述切片的播放序列号,并建立所述切片与其播放序列号之间的映射关系。
  2. 如权利要求1所述的方法,其特征在于,所述按照一预设时间单位对所述流媒体文件进行切片的方法包含,获取所述流媒体文件中每一帧的持续时间,基于所述持续时间及所述预设时间单位从所述流媒体文件中分割出所述切片。
  3. 如权利要求1所述的方法,其特征在于,所述时间数据包含所述切片中的第一帧的流时间戳。
  4. 如权利要求3所述的方法,其特征在于,所述根据时间数据为所述切片创建播放序列号包含基于所述时间数据进行函数计算得出所述播放序列号。
  5. 如权利要求3所述的方法,其特征在于,所述根据时间数据为所述切片创建播放序列号包含:判断当前创建的播放序列号是否需要校准,若需要校准,则根据***时间来创建当前所述切片的播放序列号,若不需要校准,则基于所述时间数据进行函数计算得出所述播放序列号。
  6. 如权利要求5所述的方法,其特征在于,所述判断当前创建的播放序列号是否需要校准的方法包含:确认当前所述切片与上一所述切片之间是否存在数据丢失,若存在,则判断为需要校准。
  7. 如权利要求4或5所述的方法,其特征在于,播放所述流媒体文件的方法包含步骤:
    获取最新的所述播放序列号;
    基于当前播放的所述切片的播放序列号和所述最新的播放序列号判断是否出现卡顿,若出现卡顿,则根据播放延时和所述最新播放序列号确定下一个播放序列号,若未出现卡顿,则按播放序列号的顺序确定下一个播放序列号;
    根据所述下一个播放序列号下载相应所述切片。
  8. 如权利要求7所述的方法,其特征在于,所述判断是否出现卡顿的方法包含:计算当前播放的所述切片的播放序列号和所述最新的播放序列号的数值差,根据所述数值差是否属于预设范围判断是否出现卡顿。
  9. 如权利要求1所述的方法,其特征在于,在对所述流媒体文件进行切片之后更包含对所述切片中是否包含关键帧进行记录。
  10. 一种直播***,其特征在于,包含推流端、服务器和播放器,其中,所述推流端传送流媒体文件至所述服务器;
    所述服务器的文件处理模块接收所述流媒体文件,按照一预设时间单位对所述流媒体文件进行切片,根据时间数据为所述切片创建播放序列号,建立所述切片与所述播放序列号之间的映射关系,并分别将所述切片、所述播放序列号及所述映射关系发送给所述服务器的存储模块,所述存储模块将所述切片存储在第一分区,将所述播放序列号及所述映射关系存储在第二分区;
    所述播放器从所述第二分区获取并选择所述播放序列号,并根据所述播放序列号及所述映射关系从所述第一分区下载所述切片进行播放。
  11. 如权利要求10所述的直播***,其特征在于,所述服务器的文件处理模块按照一预设时间单位对所述流媒体文件进行切片的方法包含,获取所述流媒体文件中每一帧的持续时间,基于所述持续时间及所述预设时间单位从所述流媒体文件中分割出所述切片。
  12. 如权利要求10所述的直播***,其特征在于,所述时间数据包含所述切片中的第一帧的流时间戳。
  13. 如权利要求12所述的直播***,其特征在于,所述服务器的文件处理模块根据所述时间数据为所述切片创建播放序列号包含基于所述时间数据进行函数计算得出所述播放序列号。
  14. 如权利要求12所述的直播***,其特征在于,所述服务器的文件处理模块根据所述时间数据为所述切片创建播放序列号包含:判断当前创建的播放序列号是否需要校准,若需要校准,则根据***时间来创建当前所述切片的播放序列号,若不需要校准,则基于所述时间数据进行函数计算得出所述播放序列号。
  15. 如权利要求14所述的直播***,其特征在于,所述文件处理模块判断当前创建的播放序列号是否需要校准包含:确认当前所述切片与上一所述切片之间是否存在数据丢失,若存在,则判断为需要校准。
  16. 如权利要求13或14所述的直播***,其特征在于,所述播放器的数据请求模块向所述服务器的存储模块请求下载所述切片,并发送给所述播放器的播放单元进行播放,其中,所述请求模块确认请求切片的播放序列号时,先获取最新的所述播放序列号,并基于当前播放的所述切片的播放序列号和所述最新的播放序列号判断是否出现卡顿,若出现卡顿,则根据播放延时和所述最新播放序列号确定下一个播放序列号,若未出现卡顿,则按播放序列号的顺序确定下一个播放序列号,并根据所述下一个播放序列号向所述服务器请求下载相应所述切片。
  17. 如权利要求16所述的直播***,其特征在于,所述请求模块通过计算当前播放的所述切片的播放序列号和所述最新的播放序列号的数值差,根据所述数值差是否属于预设范围判断是否出现卡顿。
  18. 如权利要求10所述的直播***,其特征在于,在所述文件处理模块对所述流媒体文件进行切片之后,对所述切片中是否包含关键帧进行标记。
  19. 如权利要求10所述的直播***,其特征在于,所述直播***包含多台所述服务器和多台所述播放器。
  20. 如权利要求19所述的直播***,其特征在于,所述直播***包含多个推流端,所述服务器可分别连接于多个推流端。
PCT/CN2017/092773 2017-06-19 2017-07-13 一种流媒体文件处理方法及直播*** WO2018232796A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/739,956 US10477286B2 (en) 2017-06-19 2017-07-13 Streaming media file processing method and live streaming system
EP17849890.3A EP3448052B1 (en) 2017-06-19 2017-07-13 Method for processing streaming media file and live broadcast system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710464872.7A CN107426629B (zh) 2017-06-19 2017-06-19 一种流媒体文件处理方法及直播***
CN201710464872.7 2017-06-19

Publications (1)

Publication Number Publication Date
WO2018232796A1 true WO2018232796A1 (zh) 2018-12-27

Family

ID=60429113

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/092773 WO2018232796A1 (zh) 2017-06-19 2017-07-13 一种流媒体文件处理方法及直播***

Country Status (3)

Country Link
EP (1) EP3448052B1 (zh)
CN (1) CN107426629B (zh)
WO (1) WO2018232796A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769919A (zh) * 2020-12-30 2021-05-07 北京大米科技有限公司 推流任务的分发方法、装置、存储介质及电子设备

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108600859B (zh) * 2018-03-30 2020-10-20 深圳市网心科技有限公司 一种数据切片方法及***
CN108540819B (zh) * 2018-04-12 2020-04-03 腾讯科技(深圳)有限公司 直播数据处理方法、装置、计算机设备和存储介质
CN108924573B (zh) * 2018-06-21 2021-08-31 深圳市网心科技有限公司 数据流处理、播放方法、服务器、播放装置、***及介质
CN109348279B (zh) * 2018-09-26 2021-03-23 广州虎牙信息科技有限公司 一种推流方法、装置、设备及存储介质
CN109729380B (zh) * 2018-12-24 2021-07-27 聚好看科技股份有限公司 音视频播放方法和设备
CN109889543B (zh) * 2019-03-26 2020-11-13 广州华多网络科技有限公司 视频传输的方法、根节点、子节点、p2p服务器和***
CN112911315B (zh) * 2019-11-19 2024-07-19 南京中兴新软件有限责任公司 一种流媒体直播录制方法、网络设备及存储介质
CN111031385B (zh) * 2019-12-20 2022-03-08 北京爱奇艺科技有限公司 视频播放的方法及装置
CN113825033B (zh) * 2020-06-19 2023-07-04 阿里巴巴集团控股有限公司 数据传输方法、装置、电子设备及计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350740A (zh) * 2007-12-21 2009-01-21 华为技术有限公司 一种导致QoS异常因素的检测方法和***
CN101471919A (zh) * 2007-12-29 2009-07-01 突触计算机***(上海)有限公司 基于点对点传输协议的设备中用于下载分片的方法及装置
CN102098571A (zh) * 2009-12-14 2011-06-15 中国电信股份有限公司 一种数据动态推送的方法及***
US8555130B2 (en) * 2011-10-04 2013-10-08 Cleversafe, Inc. Storing encoded data slices in a dispersed storage unit
CN106412719A (zh) * 2015-08-03 2017-02-15 ***通信集团江苏有限公司 一种视频混播的实现方法、装置及***

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594773B (zh) * 2011-01-10 2017-03-29 中兴通讯股份有限公司 一种实现数据获取的方法和***
US9253233B2 (en) * 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
WO2012167558A1 (zh) * 2011-11-16 2012-12-13 华为技术有限公司 播放媒体文件的方法、终端、服务器和***
CN102625140A (zh) * 2012-03-19 2012-08-01 烽火通信科技股份有限公司 流媒体服务器以帧为粒度实时下载播放的方法
CN104243430A (zh) * 2013-06-20 2014-12-24 腾讯科技(深圳)有限公司 一种流媒体播放方法及装置
CN104683884B (zh) * 2015-02-09 2018-08-07 网宿科技股份有限公司 一种流媒体直播方法及***
CN105100961B (zh) * 2015-07-23 2018-03-13 华为技术有限公司 视频缩略图生成方法及生成装置
CN106470352B (zh) * 2015-08-18 2020-04-07 中兴通讯股份有限公司 直播频道播放方法、装置及***
CN105979404A (zh) * 2015-12-01 2016-09-28 乐视致新电子科技(天津)有限公司 一种流媒体的处理方法及装置
CN105871806A (zh) * 2015-12-11 2016-08-17 乐视云计算有限公司 流媒体文件切片的方法、装置及***
CN105578308B (zh) * 2015-12-29 2018-06-22 武汉市烽视威科技有限公司 一种rtp组播直播与hls单播时移相结合的实现方法
CN105847977A (zh) * 2016-03-28 2016-08-10 乐视控股(北京)有限公司 流媒体文件处理方法及装置
CN106657218A (zh) * 2016-09-20 2017-05-10 山东浪潮商用***有限公司 一种流媒体文件处理***及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350740A (zh) * 2007-12-21 2009-01-21 华为技术有限公司 一种导致QoS异常因素的检测方法和***
CN101471919A (zh) * 2007-12-29 2009-07-01 突触计算机***(上海)有限公司 基于点对点传输协议的设备中用于下载分片的方法及装置
CN102098571A (zh) * 2009-12-14 2011-06-15 中国电信股份有限公司 一种数据动态推送的方法及***
US8555130B2 (en) * 2011-10-04 2013-10-08 Cleversafe, Inc. Storing encoded data slices in a dispersed storage unit
CN106412719A (zh) * 2015-08-03 2017-02-15 ***通信集团江苏有限公司 一种视频混播的实现方法、装置及***

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769919A (zh) * 2020-12-30 2021-05-07 北京大米科技有限公司 推流任务的分发方法、装置、存储介质及电子设备
CN112769919B (zh) * 2020-12-30 2023-07-25 北京大米科技有限公司 推流任务的分发方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN107426629A (zh) 2017-12-01
EP3448052A4 (en) 2019-02-27
EP3448052A1 (en) 2019-02-27
CN107426629B (zh) 2020-06-23
EP3448052B1 (en) 2019-08-21

Similar Documents

Publication Publication Date Title
WO2018232796A1 (zh) 一种流媒体文件处理方法及直播***
US10911789B2 (en) Automatic failover for live video streaming
US10986414B1 (en) Resource management for video playback and chat
US10477286B2 (en) Streaming media file processing method and live streaming system
US10114689B1 (en) Dynamic playlist generation
CN108540868A (zh) Hls直播的处理方法、装置、服务器、终端及存储介质
EP3471421B1 (en) Live broadcast video replay method, server, and system
US20180376195A1 (en) Live streaming quick start method and system
US10999391B2 (en) Dynamic filtering and amelioration of content stream manifests
EP3207666B1 (en) Broadcast readiness testing in distributed content delivery networks
EP3399718B1 (en) Local cache bandwith matching
WO2016112641A1 (zh) 客户端、流媒体数据接收方法和流媒体数据传输***
JP2005244605A (ja) ストリーミングコンテンツ配信制御システム、プログラム及び該プログラムを格納した記録媒体
CN106303754A (zh) 一种音频数据播放方法及装置
JP6305738B2 (ja) メディア再生制御装置、メディア再生制御方法、及びプログラム
CN114697712B (zh) 一种媒体流的下载方法、装置、设备及存储介质
KR101936384B1 (ko) 동영상 강제 시청을 위한 재생 목록 제공 방법 및 장치
US11895350B2 (en) Techniques for providing a content stream based on a delivered stream of content
EP3107261B1 (en) System, method and devices for low latency transmission
JP6513054B2 (ja) コンテンツ配信システムのクライアント装置、コンテンツの取得方法及びプログラム
JP6378631B2 (ja) 映像配信システム、及び映像配信方法
CN113301100A (zh) 基于内容分发网络的数据容灾方法、装置、设备及介质
KR102144527B1 (ko) 서버 기반 광고 제공 방법 및 장치
JP2018098569A (ja) データ配信システム、通信端末、及びプログラム
US10051025B2 (en) Method and apparatus for estimating packet loss

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: 17849890

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE