CN106358077A - 一种视频直播方法及装置 - Google Patents

一种视频直播方法及装置 Download PDF

Info

Publication number
CN106358077A
CN106358077A CN201610868415.XA CN201610868415A CN106358077A CN 106358077 A CN106358077 A CN 106358077A CN 201610868415 A CN201610868415 A CN 201610868415A CN 106358077 A CN106358077 A CN 106358077A
Authority
CN
China
Prior art keywords
live video
pes bag
video pes
modified
pts
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.)
Granted
Application number
CN201610868415.XA
Other languages
English (en)
Other versions
CN106358077B (zh
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201610868415.XA priority Critical patent/CN106358077B/zh
Publication of CN106358077A publication Critical patent/CN106358077A/zh
Application granted granted Critical
Publication of CN106358077B publication Critical patent/CN106358077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream 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/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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种视频直播方法及装置,预先设置针对于接收到的PES包的队列,所述方法包括:判断接收到的直播视频PES包的总时长是否不大于预设最佳播放时长;如果是,解码并播放直播视频PES包;如果否,依次将所述直播视频PES包放入队列;当满足条件时,根据队列中的直播视频PES包的总时长、预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改PES包的数量;将待修改PES包的DTS修改相同、PTS修改相同;根据DTS,解码队列中的PES包,在PES包解码完成后,返回判断步骤继续执行;再根据PTS,播放解码后的PES包。应用本发明实施例,降低了直播视频的播放延时。

Description

一种视频直播方法及装置
技术领域
本发明涉及视频直播技术领域,特别涉及一种视频直播方法及装置。
背景技术
视频直播是客户端保持与表演现场同时进行的播出方式,直播的过程包括:视频编码压缩、传输和客户端的接收播放过程。
由于网络传输的不稳定性,在某个时间传输层上存在数据累积,导致直播延时,即不能满足直播的实时性要求。为了满足直播的实时性要求,降低直播延时,需要丢掉某些数据或者在某一小段时间内加快播放速度。现有的做法是在传输层以图片组(Group OfPicture,GOP)为单位进行丢弃,当数据累积达到一定数量时,丢弃一个或多个GOP以实现加快播放,从而降低直播延时,满足直播的实时性要求。
目前客户端没有解决视频直播延时的方案,因此,如何在客户端解决视频直播中降低播放延时是亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种视频直播方法及装置,以降低直播视频的播放延时。
为达到上述目的,本发明实施例公开了一种视频直播方法,预先设置针对于接收到的PES包的队列,所述方法包括:
判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长;
如果是,解码并播放所述直播视频PES包;
如果否,根据所述队列的长度,依次将所述直播视频PES包放入所述队列;
当所述队列满时或接收到的直播视频PES包的数量变为零时,根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量;
将所确定数量且先入队的直播视频PES包,确定为待修改直播视频PES包;
将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同;
根据DTS,解码依次从所述队列中取出的直播视频PES包,且在所述队列中的直播视频PES包解码完成后,返回所述判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长的操作步骤继续执行;
根据PTS,播放解码后直播视频PES包。
优选的,所述根据所述队列的长度,依次将所述直播视频PES包放入所述队列,包括:
根据所述队列的长度,按照所接收到的直播视频PES包的时间顺序,依次将所述直播视频PES包放入所述队列。
优选的,所述根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量,包括:
根据公式n=(Y-N)/t,确定待修改直播视频PES包的数量;
其中,n为所述待修改直播视频PES包的数量,Y为所述直播视频PES包的总时长,N为所述预设最佳播放时长,t为所述单个直播视频PES包占用的播放时长。
优选的,所述将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同,包括:
读取所述待修改直播视频PES包中任意一个直播视频PES包的DTS和PTS;
将所述待修改直播视频PES包的DTS均修改为所读取的DTS;
将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
优选的,所述将所述待修改直播视频PES包的DTS修改相同,将所述待修改直播视频PES包的PTS修改相同,包括:
读取最先入队的直播视频PES包的DTS和PTS;
将所述待修改直播视频PES包的DTS均修改为所读取的DTS;
将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
优选的,所述将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同,包括:
将所述待修改直播视频PES包的DTS均修改为预设DTS;
将所述待修改直播视频PES包的PTS均修改为预设PTS。
为达到上述目的,本发明实施例公开了一种视频直播装置,所述装置包括:
设置模块,用于预先设置针对于接收到的PES包的队列;
判断模块,用于判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长;
第一播放模块,用于在所述判断模块的判断结果为是的情况下,解码并播放所述直播视频PES包;
放入模块,用于在所述判断模块的判断结果为否的情况下,根据所述队列的长度,依次将所述直播视频PES包放入所述队列;
第一确定模块,用于当所述队列满时或接收到的直播视频PES包的数量变为零时,根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量;
第二确定模块,用于将所确定数量且先入队的直播视频PES包,确定为待修改直播视频PES包;
修改模块,用于将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同;
解码模块,用于根据DTS,解码依次从所述队列中取出的直播视频PES包,且在所述队列中的直播视频PES包解码完成后,触发所述判断模块;
第二播放模块,用于根据PTS,播放解码后直播视频PES包。
优选的,所述放入模块,具体用于:
在所述判断模块的判断结果为否的情况下,根据所述队列的长度,按照所接收到的直播视频PES包的时间顺序,依次将所述直播视频PES包放入所述队列。
优选的,所述第一确定模块,具体用于:
当所述队列满时或接收到的直播视频PES包的数量变为零时,根据公式n=(Y-N)/t,确定待修改直播视频PES包的数量;
其中,n为所述待修改直播视频PES包的数量,Y为所述直播视频PES包的总时长,N为所述预设最佳播放时长,t为所述单个直播视频PES包占用的播放时长。
优选的,所述修改模块,具体用于:
读取所述待修改直播视频PES包中任意一个直播视频PES包的DTS和PTS;
将所述待修改直播视频PES包的DTS均修改为所读取的DTS;
将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
优选的,所述修改模块,具体用于:
读取最先入队的直播视频PES包的DTS和PTS;
将所述待修改直播视频PES包的DTS均修改为所读取的DTS;
将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
优选的,所述修改模块,具体用于:
将所述待修改直播视频PES包的DTS均修改为预设DTS;
将所述待修改直播视频PES包的PTS均修改为预设PTS。
由上述的技术方案可见,本发明实施例提供的一种视频直播方法及装置,预先设置针对于接收到的PES包的队列,所述方法包括:判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长;如果是,解码并播放所述直播视频PES包;如果否,根据所述队列的长度,依次将所述直播视频PES包放入所述队列;当所述队列满时或接收到的直播视频PES包的数量变为零时,根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量;将所确定数量且先入队的直播视频PES包,确定为待修改直播视频PES包;将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同;根据DTS,解码依次从所述队列中取出的直播视频PES包,且在所述队列中的直播视频PES包解码完成后,返回所述判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长的操作步骤继续执行;根据PTS,播放解码后直播视频PES包。
应用本发明实施例提供的技术方案,通过接收到的直播视频PES包的数量判断是否不大于最佳播放时间,如果否,从放入队列的直播视频PES包中选择与队列播放总时长与最佳播放时长的时间之差对应数量的直播视频PES包,将这些对应数量的直播视频PES包的DTS修改相同、PTS修改相同。利用DTS相同时跳过解码间隔的解码特性和跳过PTS相同的解码后直播视频PES包的播放特性,在解码时实现对DTS修改相同的直播视频PES包的快速解码;在播放时,实现对PTS相同的解码后直播视频PES包的快速播放。因此,降低了直播视频的播放延时。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频直播方法的流程示意图;
图2为本发明实施例提供的一种视频直播装置的结构示意图;
图3为本发明实施例提供的直播视频PES包A0-A9放入队列的结果示意图;
图4为本发明实施例提供的直播视频PES包A10-A17放入队列的结果示意图;
图5为本发明实施例提供的直播视频PES包A10-A19放入队列的结果示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术问题,本发明实施例提供了一种视频直播方法及装置,以下分别进行详细说明。
本领域技术人员可以理解的是,客户端播放的直播视频在通过对现场的数据采集、编码压缩、传输以及客户端接收后进行解码播放,客户端的播放时间与视频的现场表演时间相比有了一些延时,以现有技术而言延时时间至少为2s。而视频在传输过程中,可能会由于网络的不稳定性,在某一时刻产生数据累积,当累积的数据发送到客户端,如果还是按照逐个解码播放的话,就导致直播视频相对现场表演的延时时间加大。为了避免这样的情况,需要在客户端对累积的数据进行加快播放,以尽量保持和现场时间的同步。
实际应用中,ES(Elementary Streams,基础码流)经过打包器后形成PES(Packetized Elementary Streams,分组的基础码流包),PES包又分为视频PES包和音频PES包。PES包的包头中含有PTS(Presentation Time Stamp,播放时间戳)和DTS(DecodeTime Stamp,解码时间戳),解码时间受视频PES包的DTS控制,播放时间受PTS控制。需要说明的是,本发明实施例的视频直播方法及装置可以用于视频播放器中,以应用在视频播放器中为例,预先设置队列,用以针对于接收到的PES包。
图1为本发明实施例提供的一种视频直播方法的流程示意图,包括如下步骤:
S101,判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长,如果是,执行S102,如果否,执行S103。
S102,解码并播放所述直播视频PES包。
S103,根据所述队列的长度,依次将所述直播视频PES包放入所述队列。
具体的,实际应用中,所述根据所述队列的长度,依次将所述直播视频PES包放入所述队列,可以根据所述队列的长度,按照所接收到的直播视频PES包的时间顺序,依次将所述直播视频PES包放入所述队列。
S104,当所述队列满时或接收到的直播视频PES包的数量变为零时,根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量。
具体的,实际应用中,所述根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量,可以根据公式n=(Y-N)/t,确定待修改直播视频PES包的数量;
其中,n为所述待修改直播视频PES包的数量,Y为所述直播视频PES包的总时长,N为所述预设最佳播放时长,t为所述单个直播视频PES包占用的播放时长。
S105,将所确定数量且先入队的直播视频PES包,确定为待修改直播视频PES包。
S106,将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同。
具体的,实际应用中,所述将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同,可以读取所述待修改直播视频PES包中任意一个直播视频PES包的DTS和PTS;将所述待修改直播视频PES包的DTS均修改为所读取的DTS;将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
具体的,实际应用中,所述将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同,可以读取最先入队的直播视频PES包的DTS和PTS;将所述待修改直播视频PES包的DTS均修改为所读取的DTS;将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
具体的,实际应用中,所述将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同,可以将所述待修改直播视频PES包的DTS均修改为预设DTS;将所述待修改直播视频PES包的PTS均修改为预设PTS。
S107,根据DTS,解码依次从所述队列中取出的直播视频PES包。
且在所述队列中的直播视频PES包解码完成后,返回S101继续执行。
S108,根据PTS,播放解码后直播视频PES包。
示例性的,播放器不断的接收传输过来的PES包,当某个时刻网络存在数据累积时,单位时间内接收到的PES包的数量大于稳定传输的数量。由于单个直播视频PES的播放时长是固定的,可以根据直播视频PES包的数量计算出接收到的直播视频PES包的总时长。对于直播视频PES包而言,当总时长不大于预设最佳播放时长时,在客户端按照正常的解码时间和播放时间进行;如果当总时长大于预设最佳播放时长时,按照正常的速度播放会产生试播视频的延时,所以要加快播放的速度。
将接收到的直播视频PES包放入队列,具体的放入顺序,可以按照接、也可以不按照收到的直播视频PES包的时间顺序进行,不按照该时间顺序的情况下,可能会影响后续的解码和播放,依然能达到直播延时的降低效果,本发明实施例以按照该时间顺序的情况下一次将直播视频PES包放入队列。
示例性的,最佳播放时长为6ms,假设单个直播视频PES包的播放时长为1ms,则最佳播放时长对应的直播视频PES包的数量为6个;队列中直播视频PES包的总时长即为队列中直播视频PES的数量与单个直播视频PES包的播放时长的乘积,当队列中有8个直播视频PES包时,对应的播放总时长为8ms。本发明实施例的PES包的数量仅仅是示例性的,不构成对本发明的限定。
某一时刻,接收到的直播视频PES包的数量为5个,由于5<6,则直接对这些直播视频PES包进行解码并播放。假设,在某一时刻接收到的直播视频PES包的数量是18,由于18>6,按照接收到的直播视频PES包的顺序,依次将直播视频PES包放入队列,直至队列已满。假设A0-A17为接收到的直播视频PES包,队列可放入的直播视频PES包最大总时长为10ms,即队列最大可放入的直播视频PES包数量为10。则依次将A0-A9放入队列中如图3所示,达到队列已满的限制条件。根据公式n=(Y-N)/t,确定待修改直播视频PES包的数量n=(10ms-6ms)/1ms=4。当A0-A9在从队列中取出并解码完成后经S101步骤判断继续将A10-A17放入队列如图4所示,共计8个,队列未满,而满足接收到的直播视频PES的数量为0的这个限制条件。此时,队列中直播视频PES包的播放总时长为Y=8*1ms=8ms,根据公式n=(Y-N)/t,确定待修改直播视频PES包的数量n=(8ms-6ms)/1ms=2。假设在此期间接收到了A18、A19。将A10-A19,作为接收到的直播视频PES包进行判断,处理过程与上述相同,将A10-A19放入队列如图5所示。
另外,由于队列中的直播视频PES包取出解码的时间过程非常短,所以本发明实施例中将其作为处理完毕后重新放入新的直播视频PES包,而实际应用中,可以在队列尚未处理完毕的时候放入接收到的直播视频PES包。以队列中的A0-A9为例,可以在A0-A5处理结束后,队列中放入A10和A11,那么队列中的直播视频PES包为A6、A7、A8、A9、A10和A11。
如图3所示,将队列前端的,即先入队列的直播视频PES包确定为待修改的直播视频PES包。在队列中放入A0-A9时,待修改直播视频PES包为A0、A1、A2、A3,将A0、A1、A2、A3中的DTS修改为相同、PTS修改为相同。具体的修改方式有:读取最先入队的直播视频PES包A0的DTS和PTS;将A1、A2、A3的DTS均修改为A0的DTS;将A1、A2、A3的PTS均修改为A0的PTS;或者,从A0、A1、A2、A3任意读取一个直播视频PES包,假设读取的直播视频PES包为A3,则将A0、A1、A2的DTS都修改为A3的DTS、将A0、A1、A2的PTS都修改为A3的PTS;还可以预先设定DTS和PTS,将A0、A1、A2、A3的DTS都修改为预先设定DTS、PTS都修改为预先设定DTS。实际应用中,还可以读取队列中的其他直播视频的DTS、PTS,分别修改待修改的直播视频PES包的DTS、PTS。本发明实施例中DTS的值和PTS的值仅仅为示例性的,不构成对本发明的限定。
为了描述方便并且便于理解,下面以数值代表DTS和PTS。假设,在A0、A1、A2、A3的DTS都修改为5的情况下,A4-A9的DTS分别为2、1、3、4、7、8,根据DTS的值得到的解码顺序为A5、A4、A6、A7、A0(A1、A2、A3并列)A8、A9。在解码时,由于A0、A1、A2、A3的DTS相同,则跳过解码间隔,进行快速解码,假设解码间隔为0.5ms,A0、A1、A2、A3之间存在3个解码间隔,即可在解码时实现3*0.5ms=1.5ms的加快。在队列中的直播视频PES包解码完成后,返回S101继续执行。
假设,在A0、A1、A2、A3的PTS都修改为6的情况下,A4-A9的PTS分别为4、8、7、2、1、3,根据PTS的值得到的播放顺序为A8、A7、A9、A0(A1、A2、A3并列)、A6、A5,假设每一个解码后的直播视频PES包对应的播放时间为0.02ms,由于A0、A1、A2、A3的PTS相同,跳过A0、A1、A2、A3(即不播放),只播放A8、A7、A9、A6、A5。因为一个解码后的直播视频PES包对应的播放时间为0.02ms,跳过A0、A1、A2、A3能加快的播放时间为0.02*4=0.08ms。由此可见,相对于现有技术直接播放接收到的直播视频PES包,在直播视频PES包的解码实现了和对解码后的直播视频PES包的渲染播放都实现了加快,从而实现降低直播视频的播放延时。
实际应用中,待修改的直播视频PES包有对应的直播音频PES包,由于直播音频PES包的解码不需要使用音频帧之间的参考关系,所以可以将与待修改的直播视频PES包对应的直播音频PES包删除,未删除的直播音频PES包由音频解码器解码处理,达到音频播放和视频播放的同步效果。
可见,应用本发明图1所示的实施例,通过接收到的直播视频PES包的数量判断是否不大于最佳播放时间,如果否,从放入队列的直播视频PES包中选择与队列播放总时长与最佳播放时长的时间之差对应数量的直播视频PES包,将这些对应数量的直播视频PES包的DTS修改相同、PTS修改相同。利用DTS相同时跳过解码间隔的解码特性和跳过PTS相同的解码后直播视频PES包的播放特性,在解码时实现对DTS修改相同的直播视频PES包的快速解码;在播放时,实现对PTS相同的解码后直播视频PES包的快速播放。因此,降低了直播视频的播放延时。
图2为本发明实施例提供的一种视频直播装置的结构示意图,可以包括:设置模块201、判断模块202、第一播放模块203、放入模块204、第一确定模块205、第二确定模块206、修改模块207、解码模块208、第二播放模块209。
设置模块201,用于预先设置针对于接收到的PES包的队列。
判断模块202,用于判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长。
第一播放模块203,用于在所述判断模块202的判断结果为是的情况下,解码并播放所述直播视频PES包。
放入模块204,用于在所述判断模块202的判断结果为否的情况下,根据所述队列的长度,依次将所述直播视频PES包放入所述队列。
具体的,实际应用中,所述放入模块204,具体可以用于:
在所述判断模块的判断结果为否的情况下,根据所述队列的长度,按照所接收到的直播视频PES包的时间顺序,依次将所述直播视频PES包放入所述队列。
第一确定模块205,用于当所述队列满时或接收到的直播视频PES包的数量变为零时,根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量。
具体的,实际应用中,所述第一确定模块205,具体可以用于:
当所述队列满时或接收到的直播视频PES包的数量变为零时,根据公式n=(Y-N)/t,确定待修改直播视频PES包的数量;
其中,n为所述待修改直播视频PES包的数量,Y为所述直播视频PES包的总时长,N为所述预设最佳播放时长,t为所述单个直播视频PES包占用的播放时长。
第二确定模块206,用于将所确定数量且先入队的直播视频PES包,确定为待修改直播视频PES包。
修改模块207,用于将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同。
具体的,实际应用中,所述修改模块207,具体可以用于:
读取所述待修改直播视频PES包中任意一个直播视频PES包的DTS和PTS;将所述待修改直播视频PES包的DTS均修改为所读取的DTS;将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
具体的,实际应用中,所述修改模块207,具体可以用于:
读取最先入队的直播视频PES包的DTS和PTS;将所述待修改直播视频PES包的DTS均修改为所读取的DTS;将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
具体的,实际应用中,所述修改模块207,具体可以用于:
将所述待修改直播视频PES包的DTS均修改为预设DTS;将所述待修改直播视频PES包的PTS均修改为预设PTS。
解码模块208,用于根据DTS,解码依次从所述队列中取出的直播视频PES包,且在所述队列中的直播视频PES包解码完成后,触发判断模块202。
第二播放模块209,用于根据PTS,播放解码后直播视频PES包。
可见,应用本发明图2所示的实施例,通过接收到的直播视频PES包的数量判断是否不大于最佳播放时间,如果否,从放入队列的直播视频PES包中选择与队列播放总时长与最佳播放时长的时间之差对应数量的直播视频PES包,将这些对应数量的直播视频PES包的DTS修改相同、PTS修改相同。利用DTS相同时跳过解码间隔的解码特性和跳过PTS相同的解码后直播视频PES包的播放特性,在解码时实现对DTS修改相同的直播视频PES包的快速解码;在播放时,实现对PTS相同的解码后直播视频PES包的快速播放。因此,降低了直播视频的播放延时。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种视频直播方法,其特征在于,预先设置针对于接收到的PES包的队列,所述方法包括:
判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长;
如果是,解码并播放所述直播视频PES包;
如果否,根据所述队列的长度,依次将所述直播视频PES包放入所述队列;
当所述队列满时或接收到的直播视频PES包的数量变为零时,根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量;
将所确定数量且先入队的直播视频PES包,确定为待修改直播视频PES包;
将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同;
根据DTS,解码依次从所述队列中取出的直播视频PES包,且在所述队列中的直播视频PES包解码完成后,返回所述判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长的操作步骤继续执行;
根据PTS,播放解码后直播视频PES包。
2.根据权利要求1所述的方法,其特征在于,所述根据所述队列的长度,依次将所述直播视频PES包放入所述队列,包括:
根据所述队列的长度,按照所接收到的直播视频PES包的时间顺序,依次将所述直播视频PES包放入所述队列。
3.根据权利要求1所述的方法,其特征在于,所述根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量,包括:
根据公式n=(Y-N)/t,确定待修改直播视频PES包的数量;
其中,n为所述待修改直播视频PES包的数量,Y为所述直播视频PES包的总时长,N为所述预设最佳播放时长,t为所述单个直播视频PES包占用的播放时长。
4.根据权利要求1所述的方法,其特征在于,所述将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同,包括:
读取所述待修改直播视频PES包中任意一个直播视频PES包的DTS和PTS;
将所述待修改直播视频PES包的DTS均修改为所读取的DTS;
将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
5.根据权利要求1所述的方法,其特征在于,所述将所述待修改直播视频PES包的DTS修改相同,将所述待修改直播视频PES包的PTS修改相同,包括:
读取最先入队的直播视频PES包的DTS和PTS;
将所述待修改直播视频PES包的DTS均修改为所读取的DTS;
将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
6.根据权利要求1所述的方法,其特征在于,所述将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同,包括:
将所述待修改直播视频PES包的DTS均修改为预设DTS;
将所述待修改直播视频PES包的PTS均修改为预设PTS。
7.一种视频直播装置,其特征在于,所述装置包括:
设置模块,用于预先设置针对于接收到的PES包的队列;
判断模块,用于判断当前接收到的直播视频PES包的总时长是否不大于预设最佳播放时长;
第一播放模块,用于在所述判断模块的判断结果为是的情况下,解码并播放所述直播视频PES包;
放入模块,用于在所述判断模块的判断结果为否的情况下,根据所述队列的长度,依次将所述直播视频PES包放入所述队列;
第一确定模块,用于当所述队列满时或接收到的直播视频PES包的数量变为零时,根据所述队列中的直播视频PES包的总时长、所述预设最佳播放时长和单个直播视频PES包占用的播放时长,确定待修改直播视频PES包的数量;
第二确定模块,用于将所确定数量且先入队的直播视频PES包,确定为待修改直播视频PES包;
修改模块,用于将所述待修改直播视频PES包的DTS修改相同,并将所述待修改直播视频PES包的PTS修改相同;
解码模块,用于根据DTS,解码依次从所述队列中取出的直播视频PES包,且在所述队列中的直播视频PES包解码完成后,触发所述判断模块;
第二播放模块,用于根据PTS,播放解码后直播视频PES包。
8.根据权利要求7所述的装置,其特征在于,所述放入模块,具体用于:
在所述判断模块的判断结果为否的情况下,根据所述队列的长度,按照所接收到的直播视频PES包的时间顺序,依次将所述直播视频PES包放入所述队列。
9.根据权利要求7所述的装置,其特征在于,所述第一确定模块,具体用于:
当所述队列满时或接收到的直播视频PES包的数量变为零时,根据公式n=(Y-N)/t,确定待修改直播视频PES包的数量;
其中,n为所述待修改直播视频PES包的数量,Y为所述直播视频PES包的总时长,N为所述预设最佳播放时长,t为所述单个直播视频PES包占用的播放时长。
10.根据权利要求7所述的装置,其特征在于,所述修改模块,具体用于:
读取所述待修改直播视频PES包中任意一个直播视频PES包的DTS和PTS;
将所述待修改直播视频PES包的DTS均修改为所读取的DTS;
将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
11.根据权利要求7所述的装置,其特征在于,所述修改模块,具体用于:
读取最先入队的直播视频PES包的DTS和PTS;
将所述待修改直播视频PES包的DTS均修改为所读取的DTS;
将所述待修改直播视频PES包的PTS均修改为所读取的PTS。
12.根据权利要求7所述的装置,其特征在于,所述修改模块,具体用于:
将所述待修改直播视频PES包的DTS均修改为预设DTS;
将所述待修改直播视频PES包的PTS均修改为预设PTS。
CN201610868415.XA 2016-09-29 2016-09-29 一种视频直播方法及装置 Active CN106358077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610868415.XA CN106358077B (zh) 2016-09-29 2016-09-29 一种视频直播方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610868415.XA CN106358077B (zh) 2016-09-29 2016-09-29 一种视频直播方法及装置

Publications (2)

Publication Number Publication Date
CN106358077A true CN106358077A (zh) 2017-01-25
CN106358077B CN106358077B (zh) 2019-05-10

Family

ID=57866997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610868415.XA Active CN106358077B (zh) 2016-09-29 2016-09-29 一种视频直播方法及装置

Country Status (1)

Country Link
CN (1) CN106358077B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108271070A (zh) * 2017-12-29 2018-07-10 北京五八信息技术有限公司 缓存帧动画的方法、装置、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674801B1 (en) * 1997-08-08 2004-01-06 Samsung Electronics Co., Ltd. Circuit for synchronizing picture and method therefor
CN102780929A (zh) * 2012-05-31 2012-11-14 新奥特(北京)视频技术有限公司 一种通过处理时码跳变以使视音频同步的方法
CN102903377A (zh) * 2012-11-01 2013-01-30 北京奇艺世纪科技有限公司 一种播放包含多视频段的视频的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674801B1 (en) * 1997-08-08 2004-01-06 Samsung Electronics Co., Ltd. Circuit for synchronizing picture and method therefor
CN102780929A (zh) * 2012-05-31 2012-11-14 新奥特(北京)视频技术有限公司 一种通过处理时码跳变以使视音频同步的方法
CN102903377A (zh) * 2012-11-01 2013-01-30 北京奇艺世纪科技有限公司 一种播放包含多视频段的视频的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
燕琳等: "数字视频广播中码流的同步处理", 《现代电视技术》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108271070A (zh) * 2017-12-29 2018-07-10 北京五八信息技术有限公司 缓存帧动画的方法、装置、设备及计算机可读存储介质
CN108271070B (zh) * 2017-12-29 2020-09-11 北京五八信息技术有限公司 缓存帧动画的方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN106358077B (zh) 2019-05-10

Similar Documents

Publication Publication Date Title
CN109327741B (zh) 游戏直播方法、装置和系统
CN104735470B (zh) 一种流媒体数据传输方法及装置
CN102215429B (zh) 一种用于移动电视的录制方法
CN101674486B (zh) 一种流媒体音视频同步方法及系统
CN110248204A (zh) 一种直播缓存的处理方法、装置、设备和存储介质
CN107846633A (zh) 一种直播方法及系统
CN112822502B (zh) 直播去抖动的智能缓存与直播方法、设备及存储介质
CN105187896B (zh) 多分段的媒体文件播放方法和系统
CN107690073A (zh) 一种视频直播方法及视频直播服务器
CA2792106C (en) Method and system for inhibiting audio-video synchronization delay
CN107295364B (zh) 用于弹幕视频的实时流传输控制方法、控制装置
CN104202652B (zh) 一种电视机机顶盒的播放控制方法及机顶盒
CN101207822A (zh) 流媒体终端的音频视频同步的方法
CN112929713B (zh) 数据同步方法、装置、终端及存储介质
CN108063769A (zh) 一种内容服务的实现方法、装置及内容分发网络节点
CN106791994B (zh) 一种低延时快速开播方法及装置
CN110740380A (zh) 视频处理方法和装置、存储介质及电子装置
CN109218745A (zh) 一种直播方法、服务器、客户端及可读存储介质
CN110113621A (zh) 媒体信息的播放方法和装置、存储介质、电子装置
CN104539984B (zh) 一种视频播放方法、装置及系统
CN106658030A (zh) 一种包含单路音频多路视频的复合视频的播放方法及设备
CN109905749A (zh) 视频播放方法和装置、存储介质及电子装置
CN110519627A (zh) 一种音频数据的同步方法和装置
CN101009685A (zh) 一种流媒体播放系统
CN107690093A (zh) 一种视频播放方法及装置

Legal Events

Date Code Title Description
C06 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