CN106572362A - 一种视频流的输出方法、装置及系统 - Google Patents
一种视频流的输出方法、装置及系统 Download PDFInfo
- Publication number
- CN106572362A CN106572362A CN201610867549.XA CN201610867549A CN106572362A CN 106572362 A CN106572362 A CN 106572362A CN 201610867549 A CN201610867549 A CN 201610867549A CN 106572362 A CN106572362 A CN 106572362A
- Authority
- CN
- China
- Prior art keywords
- video flowing
- video
- byte
- reading
- threshold
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing 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/2383—Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8106—Monomedia components thereof involving special audio data, e.g. different tracks for different languages
- H04N21/8113—Monomedia components thereof involving special audio data, e.g. different tracks for different languages comprising music, e.g. song in MP3 format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种视频流的输出方法、装置及系统,方法包括:预先设置时间阈值和字节阈值,包括:S1:在接收到播放指令时,根据所述播放指令,从服务器中读取视频流;S2:根据所述字节阈值,分批向信号调制器IPQAM发送所述视频流;S3:在读取到所述视频流中的节目时钟参考PCR值时,确定读取所述视频流的目标时间段;S4:根据读取到的所述PCR值、所述目标时间段和所述时间阈值,判断是否需要进行读取矫正,若是,则进行读取矫正,并在读取矫正结束时继续执行S2;否则,直接执行S2。本方案,可以有效时限视频流的稳定输出。
Description
技术领域
本发明涉及视频技术领域,特别涉及一种视频流的输出方法、装置及系统。
背景技术
电视机已成为人们日常生活的必须品和主要的休闲娱乐工具,每天人们都在通过收看电视节目来了解新闻、体育赛事、娱乐节目来丰富业余生活。随着各电视台数字信号的播放,数字电视互动流媒体服务也逐渐得到广泛的应用。在用户点播视频或观看直播视频时,服务器向播发程序发送播放指令,播放程序从服务器中读取视频流,并将视频流发送给IPQAM(信号调制器),IPQAM对视频流解码后将视频流转发给机顶盒,由机顶盒控制电视机播放。
为了将视频流稳定的发送给IPQAM,现有技术中,根据视频流计算其码率,根据计算的码率计算每个设定的间隔时间内发送的视频流大小,并根据该计算的视频流大小在每个间隔时间内发送相应大小的视频流。
但是,现有技术中,在发送视频流时,可能存在发送的固定大小的视频流中包括空包的情况,会导致电视机在播放过程中出现跳帧、花屏等问题,因此,现有技术无法有效的实现视频流的稳定输出。
发明内容
本发明实施例提供了一种视频流的输出方法、装置及系统,以有效的实现视频流的稳定输出。
一种视频流的输出方法,预先设置时间阈值和字节阈值,包括:
S1:在接收到播放指令时,根据所述播放指令,从服务器中读取视频流;
S2:根据所述字节阈值,分批向信号调制器IPQAM发送所述视频流;
S3:在读取到所述视频流中的节目时钟参考PCR值时,确定读取所述视频流的目标时间段;
S4:根据读取到的所述PCR值、所述目标时间段和所述时间阈值,判断是否需要进行读取矫正,若是,则进行读取矫正,并在读取矫正结束时继续执行S2;否则,直接执行S2。
优选地,
所述判断是否需要进行读取矫正,包括:确定所述PCR值与所述目标时间段的第一绝对差值;在所述第一绝对差值大于所述时间阈值时,则确定需要进行读取矫正;否则,确定不需要进行读取矫正;
所述进行读取矫正,包括:计算所述第一绝对差值与所述时间阈值的第二绝对差值,并根据所述第二绝对差值进入休眠状态,在休眠时间段达到所述第二绝对差值对应的时间段时,结束休眠状态。
优选地,
进一步包括:预先设置休眠矫正时间段,并根据设置的休眠矫正时间段进入休眠状态,在休眠时间段达到所述休眠矫正时间段时,结束休眠状态,并获取实际在休眠状态中的目标时间段;
在所述根据所述第二绝对差值进入休眠状态之前,进一步包括:根据所述休眠矫正时间段和所述目标时间段,对所述第二绝对差值进行校正,并利用校正后的所述第二绝对差值,执行所述进入休眠状态。
优选地,所述根据所述播放指令,从服务器中读取视频流,包括:
在确定所述服务器将所述视频流切分成多个视频切片时,则按照所述多个视频切片在所述视频流中的顺序,逐个读取每一个视频切片,在每将当前视频切片读取结束后,根据所述服务器发送的m3u8文件,确定是否包括下一个视频切片,若包括,则继续读取下一个视频切片,否则结束对所述视频流的读取。
优选地,
所述字节阈值包括188个字节;
所述分批向信号调制器IPQAM发送所述视频流,包括:每在所述视频流中读取到与所述字节阈值相对应的字节个数时,将读取到的字节个数发送给所述IPQAM;
或,
所述字节阈值包括188个字节;
进一步包括:根据视频流的传输协议和所述字节阈值,确定每次发送所述视频流的数据包的目标个数,以及每一个数据包包括的字节个数;
所述分批向信号调制器IPQAM发送所述视频流,包括:每在所述视频流中读取到所述目标个数的数据包时,将读取到的所述目标个数的数据包发送给所述IPQAM。
一种视频流的输出装置,包括:
存储单元,用于存储预先的设置时间阈值和字节阈值;
读取单元,用于在接收到播放指令时,根据所述播放指令,从服务器中读取视频流;
发送单元,用于根据所述字节阈值,分批向信号调制器IPQAM发送所述视频流;
第一确定单元,用于在读取到所述视频流中的节目时钟参考PCR值时,确定读取所述视频流的目标时间段;
判断单元,用于根据读取到的所述PCR值、所述目标时间段和所述时间阈值,判断是否需要进行读取矫正,若是,则触发矫正单元进行读取矫正,并在读取矫正结束时触发所述发送单元继续执行相应操作;否则,直接触发所述发送单元执行相应操作。
优选地,
所述判断单元,具体用于确定所述PCR值与所述目标时间段的第一绝对差值;在所述第一绝对差值大于所述时间阈值时,则确定需要进行读取矫正;否则,确定不需要进行读取矫正;
所述矫正单元,具体用于计算所述第一绝对差值与所述时间阈值的第二绝对差值,并根据所述第二绝对差值进入休眠状态,在休眠时间段达到所述第二绝对差值对应的时间段时,结束休眠状态;
和/或,
所述读取单元,具体用于在确定所述服务器将所述视频流切分成多个视频切片时,则按照所述多个视频切片在所述视频流中的顺序,逐个读取每一个视频切片,在每将当前视频切片读取结束后,根据所述服务器发送的m3u8文件,确定是否包括下一个视频切片,若包括,则继续读取下一个视频切片,否则结束对所述视频流的读取。
优选地,
所述存储单元,进一步用于存储设置的休眠矫正时间段;
进一步包括:获取单元,用于根据设置的休眠矫正时间段进入休眠状态,在休眠时间段达到所述休眠矫正时间段时,结束休眠状态,并获取实际在休眠状态中的目标时间段;
进一步包括:校正单元,用于根据所述休眠矫正时间段和所述目标时间段,对所述第二绝对差值进行校正,并利用校正后的所述第二绝对差值,执行所述进入休眠状态。
优选地,
所述字节阈值包括188个字节;
所述发送单元,具体用于每在所述视频流中读取到与所述字节阈值相对应的字节个数时,将读取到的字节个数发送给所述IPQAM;
或,
所述字节阈值包括188个字节;
进一步包括:第二确定单元,用于根据视频流的传输协议和所述字节阈值,确定每次发送所述视频流的数据包的目标个数,以及每一个数据包包括的字节个数;
所述发送单元,具体用于每在所述视频流中读取到所述目标个数的数据包时,将读取到的所述目标个数的数据包发送给所述IPQAM。
一种视频流的输出系统,包括:服务器、信号调制器IPQAM和如上述任一所述视频流的输出装置;
所述服务器,用于向所述视频流的输出装置发送播放指令,并将所述视频流推送给所述视频流的输出装置;
所述IPQAM,用于接收所述视频流的输出装置发送的所述视频流。
本发明实施例提供了一种视频流的输出方法、装置及系统,由于视频流中每间隔一定数量的字节后,则会包括一个PCR值,通过获取读取视频流的目标时间段,利用该读取到的PCR值与目标时间段以及设置的时间阈值,进行读取矫正,以在读取矫正后继续读取视频流,从而可以有效时限视频流的稳定输出。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种方法流程图;
图2是本发明一个实施例提供的另一种方法流程图;
图3是本发明一个实施例提供的一种装置所在设备的硬件架构图;
图4是本发明一个实施例提供的一种装置结构示意图;
图5是本发明一个实施例提供的另一种装置结构示意图;
图6是本发明一个实施例提供的又一种装置结构示意图;
图7是本发明一个实施例提供的一种系统结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种视频流的输出方法,预先设置时间阈值和字节阈值,该方法可以包括以下步骤:
步骤101:在接收到播放指令时,根据所述播放指令,从服务器中读取视频流;
步骤102:根据所述字节阈值,分批向IPQAM发送所述视频流;
步骤103:在读取到所述视频流中的PCR(program clock reference,节目时钟参考)值时,确定读取所述视频流的目标时间段;
步骤104:根据读取到的所述PCR值、所述目标时间段和所述时间阈值,判断是否需要进行读取矫正,若是,则进行读取矫正,并在读取矫正结束时继续执行步骤102;否则,直接执行步骤102。
可见,根据上述本发明实施例,由于视频流中每间隔一定数量的字节后,则会包括一个PCR值,通过获取读取视频流的目标时间段,利用该读取到的PCR值与目标时间段以及设置的时间阈值,进行读取矫正,以在读取矫正后继续读取视频流,从而可以有效时限视频流的稳定输出。
一般情况下,读取视频流的速率要比视频流播放的码率大,因此,在一段时间之后,可能存在读取的视频流中还包括大量未播放的片段,从而会导致电视前端播放视频流时的跳帧现象,因此,在本发明一个实施例中,可以通过读取矫正来避免上述情况,所述判断是否需要进行读取矫正,包括:确定所述PCR值与所述目标时间段的第一绝对差值;在所述第一绝对差值大于所述时间阈值时,则确定需要进行读取矫正;否则,确定不需要进行读取矫正;
所述进行读取矫正,包括:计算所述第一绝对差值与所述时间阈值的第二绝对差值,并根据所述第二绝对差值进入休眠状态,在休眠时间段达到所述第二绝对差值对应的时间段时,结束休眠状态。
例如,在开始读取视频流时记录此时的时钟值,该时钟值为10:00,在读取视频流的过程中将每读取的视频流发送给IPQAM,当读取到PCR值时,例如该PCR值为500ms,采集此时的时钟值为10点过后的1200ms,那么表明还有800ms的视频流片段未播放,若继续向IPQAM发送视频流,可能会导致前端播放过程中的跳帧问题,因此,可以将读取视频流的播发程序进入休眠状态,以等待前端剩余播放的视频流不多时,在继续读取发送。
可以设置该时间阈值为300ms,以保证前端剩余播放的视频流能够有300ms的长度,不仅可以防止跳帧问题,还可以防止由于无剩余播放视频流而导致的花屏问题。
在本发明一个实施例中,由于不同CPU利用率,不同程序语言获取时间间隔有差异的情况,因此,可以对当前的播发程序进行时间矫正,可以进一步包括:预先设置休眠矫正时间段,并根据设置的休眠矫正时间段进入休眠状态,在休眠时间段达到所述休眠矫正时间段时,结束休眠状态,并获取实际在休眠状态中的目标时间段;例如,设置的休眠矫正时间段为30ms,播发程序进入休眠状态中在结束休眠状态时,播发程序以为是30ms,其实根据时钟可以确定其实际处于休眠状态的目标时间段可能为35ms。
在所述根据所述第二绝对差值进入休眠状态之前,进一步包括:根据所述休眠矫正时间段和所述目标时间段,对所述第二绝对差值进行校正,并利用校正后的所述第二绝对差值,执行所述进入休眠状态。
其中,对第二绝对差值校正之后可以为:(30ms×第二绝对差值)/35ms,利用校正后的第二绝对差值作为进入休眠状态的时间,从而可以保证准确的休眠时间,提高读取矫正的准确率。
在本发明一个实施例中,由于用户可能并不是点播该视频之后,会一直持续性观看,可能存在只观看一段时间之后就会更换,那么若播发程序在接收到播放指令之后,直接将对应该播放指令的全部视频流读取过来,可能会导致占用存储空间,以及资源浪费的问题,因此,服务器可以将视频流切分成多个视频切片,所述根据所述播放指令,从服务器中读取视频流,包括:
在确定所述服务器将所述视频流切分成多个视频切片时,则按照所述多个视频切片在所述视频流中的顺序,逐个读取每一个视频切片,在每将当前视频切片读取结束后,根据所述服务器发送的m3u8文件,确定是否包括下一个视频切片,若包括,则继续读取下一个视频切片,否则结束对所述视频流的读取。
其中,可以设置视频切片的最大长度,播发程序可以每次读取一个视频切片,若用户进行视频切换之后,由于视频切片的占用空间较小,因此,可以降低资源浪费的问题。
在本发明一个实施例中,若视频流为CBR类型,那么该CBR视频流的特点是按照188字节进行分布的,因此,该字节阈值可以设置为包括188个字节。
如此,所述分批向信号调制器IPQAM发送所述视频流,包括:每在所述视频流中读取到与所述字节阈值相对应的字节个数时,将读取到的字节个数发送给所述IPQAM。
在本发明一个实施例中,通过将所述字节阈值设置为188个字节,在每次向IPQAM发送视频流时,可以进一步包括:根据视频流的传输协议和所述字节阈值,确定每次发送所述视频流的数据包的目标个数,以及每一个数据包包括的字节个数;
所述分批向信号调制器IPQAM发送所述视频流,包括:每在所述视频流中读取到所述目标个数的数据包时,将读取到的所述目标个数的数据包发送给所述IPQAM。
例如,若传输协议为UDP协议,那么每次发送数据包最佳为188×7=1316kb,针对发送的字节个数可能不是1316倍数的情况,对字节个数进行补全,使其为1316的整数倍,假设最终补全后获取字节个数为1316*30,那么每次可以使用UDP协议发送1316×30个数据包。
根据上述实施例,通过每次发送多个数据包对应的字节个数,减少读取矫正的时间段,可以提高视频流发送的效率。
下面以发送视频流类型为CBR,使用UDP协议进行视频流的发送为例,对本发明实施例提供的视频流的输出方法进行进一步说明。
如图2所示,本发明实施例提供了一种视频流的输出方法,该方法可以包括以下步骤:
步骤201:机顶盒在接收到用户发送的点播请求时,将该点播请求发送给服务器。
用户可以利用遥控器选择自己喜欢的视频进行点播,遥控器会向机顶盒发送点播请求,该点播请求用于请求点播该视频流。
由于该视频流是存在于服务器中的,因此需要将该点播请求发送给服务器,用于请求该视频流。
步骤202:服务器根据该点播请求确定相应的视频流,将该视频流切分为至少两个视频切片。
在本发明实施例中,由于用户可能在观看该视频流时,只是观看一部分就更换其他视频,因此,若播发程序一次性将该视频流读取过来,可能该视频流的占用空间很大,例如,300MB,因此,为了减少资源的浪费,服务器可以将该视频流切分为至少两个视频切片。
在将视频流切分为至少两个视频切片时,由于该CBR视频流的特点是按照188字节分布的,因此,在切分时需要按照188字节的倍数进行切分,且切分后每个视频切片的大小可以不超过设定值,该设定值例如为5M。
需要说明的是,切分后的每一个视频切片的大小可以相同,也可以不同,只需保证每一个视频切片不超过设定值即可。
步骤203:服务器播发程序发送播放指令。
其中,该播发程序为视频流的输出装置。该播发程序可以独立的,也可以是位于服务器中的。
步骤204:播发程序根据该播放指令从服务器中获取该视频流对应的m3u8文件。
对于视频流对应的m3u8文件,其内包括每一个视频切片对应的位置,每一个视频切片的对应的时长,以及该视频流对应的码率。
步骤205:播发程序读取该m3u8文件,确定所述视频流对应的至少两个视频切片,并获取相应的视频切片。
若该播放指令中携带视频流对应的初始播放时间点,例如,从第5分钟开始播放,那么播发程序可以根据该m3u8文件确定该第5分钟对应的视频切片,从而可以直接获取该视频切片从而相应位置开始读取。
本实施例以从首个视频切片开始读取为例进行说明。
步骤206:根据预先设置的字节阈值,确定每次所需发送的字节个数。
在本实施例中,可以通过如下两种方式确定每次所需发送的字节个数:
方式1:直接将设置的字节阈值确定为每次所需发送的字节个数。
其中,该字节阈值为188个字节。
方式2:根据视频流的传输协议UDP和字节阈值,确定每次发送所述视频流的数据包的目标个数,以及每一个数据包包括的字节个数。
针对方式2,以CBR视频流的码率为8000Kbps为例进行说明,可以设定该码率的时间间隔为30ms发送一次视频流,根据不同程序语言获取时间间隔有差异的情况,可以让播发程序休眠30ms,获取此时播发程序真实的休眠时间为Ts,根据公式(1)可以确定出具体的时间间隔内发送的字节数量Count:
Ts×码率(8000Kbps/8)/1000=Count (1)
由于UDP协议每次发送数据包最佳为188×7=1316kb,这里针对Count可能不是1316倍数的情况,对Count进行补全,使其为1316的整数倍,假设我们这里最终补全后为Count=1316×30,也就是说,每次需要使用UDP给IPQAM发送1316×30个数据包。
进一步地,由于考虑到播发程序自身执行也需要一部分时间,网络发送也需要耗时,可以进行数据包个数的修正,例如为1316×33,也就是按照1.1倍的速率进行发送,此时IPQAM可以接收到稳定的视频流,正常进行播放。
下面本实施例以方式1为例进行说明。
步骤207:读取首个视频切片,并记录此时时钟对应的初始时间值。
例如,此时时钟对应的初始时间值为10点。
该时钟可以为计算机上的时钟。
步骤208:根据每次所需发送的字节个数将读取到的相应个数的字节数发送给IPQAM。在播发程序读取到PCR值时,采集此时时钟对应的当前时间值,根据初始时间值确定读取视频流的目标时间段,并计算目标时间段与PCR值的第一绝对差值。
例如,此时时钟对应的当前时间值为10点过1200ms,PCR值为500ms。那么目标时间段为1200ms,第一绝对差值为800ms。
步骤209:判断第一绝对差值是否大于预先设置的时间阈值,在第一绝对差值大于时间阈值时,执行步骤210,否则,执行步骤211。
例如,该时间阈值为300ms,那么第一绝对差值大于时间阈值。需要进入休眠状态,以等待视频流的播放。
步骤210:计算所述第一绝对差值与所述时间阈值的第二绝对差值,并根据所述第二绝对差值进入休眠状态,在休眠时间段达到所述第二绝对差值对应的时间段时,结束休眠状态,并执行步骤211。
例如,该第二绝对差值为500ms,那么需要进入休眠状态500ms之后在继续读取视频流。
在本实施例中,可以利用上述步骤中确定出的Ts,对第二绝对差值进行校正,以保证进入休眠状态的时间准确,提高读取矫正的准确率。
其中,校正后的第二绝对差值为:(30ms×第二绝对差值)/35ms。
步骤211:判断是否需要切换为下一个视频切片,若是,则执行步骤212;否则,执行步骤208。
由于视频流在切分成视频切片时是按照188字节的整数倍切分的,且PCR值一般位于188字节的位置,因此,在读取到PCR值后,可以进一步判断是否需要切换视频切片。
步骤212:判断是否包括下一个视频切片,若包括,则执行步骤213;否则,结束。
步骤213:切换为下一个视频切片,并执行步骤208。
如图3、图4所示,本发明实施例提供了一种视频流的输出装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的视频流的输出装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的视频流的输出装置,包括:
存储单元401,用于存储预先的设置时间阈值和字节阈值;
读取单元402,用于在接收到播放指令时,根据所述播放指令,从服务器中读取视频流;
发送单元403,用于根据所述字节阈值,分批向信号调制器IPQAM发送所述视频流;
第一确定单元404,用于在读取到所述视频流中的节目时钟参考PCR值时,确定读取所述视频流的目标时间段;
判断单元405,用于根据读取到的所述PCR值、所述目标时间段和所述时间阈值,判断是否需要进行读取矫正,若是,则触发矫正单元406进行读取矫正,并在读取矫正结束时触发所述发送单元继续执行相应操作;否则,直接触发所述发送单元执行相应操作。
在本发明一个实施例中,所述判断单元405,具体用于确定所述PCR值与所述目标时间段的第一绝对差值;在所述第一绝对差值大于所述时间阈值时,则确定需要进行读取矫正;否则,确定不需要进行读取矫正;
所述矫正单元406,具体用于计算所述第一绝对差值与所述时间阈值的第二绝对差值,并根据所述第二绝对差值进入休眠状态,在休眠时间段达到所述第二绝对差值对应的时间段时,结束休眠状态;
在本发明一个实施例中,所述读取单元402,具体用于在确定所述服务器将所述视频流切分成多个视频切片时,则按照所述多个视频切片在所述视频流中的顺序,逐个读取每一个视频切片,在每将当前视频切片读取结束后,根据所述服务器发送的m3u8文件,确定是否包括下一个视频切片,若包括,则继续读取下一个视频切片,否则结束对所述视频流的读取。
在本发明一个实施例中,所述存储单元401,进一步用于存储设置的休眠矫正时间段;
请参考图5,该视频流的输出装置可以进一步包括:获取单元501,用于根据设置的休眠矫正时间段进入休眠状态,在休眠时间段达到所述休眠矫正时间段时,结束休眠状态,并获取实际在休眠状态中的目标时间段;
进一步包括:校正单元502,用于根据所述休眠矫正时间段和所述目标时间段,对所述第二绝对差值进行校正,并利用校正后的所述第二绝对差值,执行所述进入休眠状态。
在本发明一个实施例中,所述字节阈值包括188个字节;
所述发送单元403,具体用于每在所述视频流中读取到与所述字节阈值相对应的字节个数时,将读取到的字节个数发送给所述IPQAM;
或,
所述字节阈值包括188个字节;
在本发明一个实施例中,请参考图6,该视频流的输出装置可以进一步包括:第二确定单元601,用于根据视频流的传输协议和所述字节阈值,确定每次发送所述视频流的数据包的目标个数,以及每一个数据包包括的字节个数;
所述发送单元403,具体用于每在所述视频流中读取到所述目标个数的数据包时,将读取到的所述目标个数的数据包发送给所述IPQAM。
请参考图7,本发明一个实施例还提供流一种视频流的输出系统,包括:服务器50、信号调制器IPQAM60和如上述实施例任一所述视频流的输出装置40;
所述服务器50,用于向所述视频流的输出装置发送播放指令,并将所述视频流推送给所述视频流的输出装置;
所述IPQAM60,用于接收所述视频流的输出装置发送的所述视频流。
综上,本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,由于视频流中每间隔一定数量的字节后,则会包括一个PCR值,通过获取读取视频流的目标时间段,利用该读取到的PCR值与目标时间段以及设置的时间阈值,进行读取矫正,以在读取矫正后继续读取视频流,从而可以有效时限视频流的稳定输出。
2、在本发明实施例中,通过设置该时间阈值,以保证前端剩余播放的视频流能够有与该时间阈值相对应的长度,不仅可以防止跳帧问题,还可以防止由于无剩余播放视频流而导致的花屏问题。
3、在本发明实施例中,由于不同CPU利用率,不同程序语言获取时间间隔有差异的情况,因此,通过将播发程序进入休眠状态的时间以及实际时间对第二绝对差值进行校正,从而可以保证准确的休眠时间,提高读取矫正的准确率。
4、在本发明实施例中,通过将视频流切分成至少两个视频切片,播发程序每次读取一个视频切片,不仅占用空间小,还可以保证用户在进行视频切换之后,降低资源浪费的问题。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种视频流的输出方法,其特征在于,预先设置时间阈值和字节阈值,包括:
S1:在接收到播放指令时,根据所述播放指令,从服务器中读取视频流;
S2:根据所述字节阈值,分批向信号调制器IPQAM发送所述视频流;
S3:在读取到所述视频流中的节目时钟参考PCR值时,确定读取所述视频流的目标时间段;
S4:根据读取到的所述PCR值、所述目标时间段和所述时间阈值,判断是否需要进行读取矫正,若是,则进行读取矫正,并在读取矫正结束时继续执行S2;否则,直接执行S2。
2.根据权利要求1所述的方法,其特征在于,
所述判断是否需要进行读取矫正,包括:确定所述PCR值与所述目标时间段的第一绝对差值;在所述第一绝对差值大于所述时间阈值时,则确定需要进行读取矫正;否则,确定不需要进行读取矫正;
所述进行读取矫正,包括:计算所述第一绝对差值与所述时间阈值的第二绝对差值,并根据所述第二绝对差值进入休眠状态,在休眠时间段达到所述第二绝对差值对应的时间段时,结束休眠状态。
3.根据权利要求2所述的方法,其特征在于,
进一步包括:预先设置休眠矫正时间段,并根据设置的休眠矫正时间段进入休眠状态,在休眠时间段达到所述休眠矫正时间段时,结束休眠状态,并获取实际在休眠状态中的目标时间段;
在所述根据所述第二绝对差值进入休眠状态之前,进一步包括:根据所述休眠矫正时间段和所述目标时间段,对所述第二绝对差值进行校正,并利用校正后的所述第二绝对差值,执行所述进入休眠状态。
4.根据权利要求1所述的方法,其特征在于,所述根据所述播放指令,从服务器中读取视频流,包括:
在确定所述服务器将所述视频流切分成多个视频切片时,则按照所述多个视频切片在所述视频流中的顺序,逐个读取每一个视频切片,在每将当前视频切片读取结束后,根据所述服务器发送的m3u8文件,确定是否包括下一个视频切片,若包括,则继续读取下一个视频切片,否则结束对所述视频流的读取。
5.根据权利要求1-4中任一所述的方法,其特征在于,
所述字节阈值包括188个字节;
所述分批向信号调制器IPQAM发送所述视频流,包括:每在所述视频流中读取到与所述字节阈值相对应的字节个数时,将读取到的字节个数发送给所述IPQAM;
或,
所述字节阈值包括188个字节;
进一步包括:根据视频流的传输协议和所述字节阈值,确定每次发送所述视频流的数据包的目标个数,以及每一个数据包包括的字节个数;
所述分批向信号调制器IPQAM发送所述视频流,包括:每在所述视频流中读取到所述目标个数的数据包时,将读取到的所述目标个数的数据包发送给所述IPQAM。
6.一种视频流的输出装置,其特征在于,包括:
存储单元,用于存储预先的设置时间阈值和字节阈值;
读取单元,用于在接收到播放指令时,根据所述播放指令,从服务器中读取视频流;
发送单元,用于根据所述字节阈值,分批向信号调制器IPQAM发送所述视频流;
第一确定单元,用于在读取到所述视频流中的节目时钟参考PCR值时,确定读取所述视频流的目标时间段;
判断单元,用于根据读取到的所述PCR值、所述目标时间段和所述时间阈值,判断是否需要进行读取矫正,若是,则触发矫正单元进行读取矫正,并在读取矫正结束时触发所述发送单元继续执行相应操作;否则,直接触发所述发送单元执行相应操作。
7.根据权利要求6所述的视频流的输出装置,其特征在于,
所述判断单元,具体用于确定所述PCR值与所述目标时间段的第一绝对差值;在所述第一绝对差值大于所述时间阈值时,则确定需要进行读取矫正;否则,确定不需要进行读取矫正;
所述矫正单元,具体用于计算所述第一绝对差值与所述时间阈值的第二绝对差值,并根据所述第二绝对差值进入休眠状态,在休眠时间段达到所述第二绝对差值对应的时间段时,结束休眠状态;
和/或,
所述读取单元,具体用于在确定所述服务器将所述视频流切分成多个视频切片时,则按照所述多个视频切片在所述视频流中的顺序,逐个读取每一个视频切片,在每将当前视频切片读取结束后,根据所述服务器发送的m3u8文件,确定是否包括下一个视频切片,若包括,则继续读取下一个视频切片,否则结束对所述视频流的读取。
8.根据权利要求7所述的视频流的输出装置,其特征在于,
所述存储单元,进一步用于存储设置的休眠矫正时间段;
进一步包括:获取单元,用于根据设置的休眠矫正时间段进入休眠状态,在休眠时间段达到所述休眠矫正时间段时,结束休眠状态,并获取实际在休眠状态中的目标时间段;
进一步包括:校正单元,用于根据所述休眠矫正时间段和所述目标时间段,对所述第二绝对差值进行校正,并利用校正后的所述第二绝对差值,执行所述进入休眠状态。
9.根据权利要求6-8中任一所述的视频流的输出装置,其特征在于,
所述字节阈值包括188个字节;
所述发送单元,具体用于每在所述视频流中读取到与所述字节阈值相对应的字节个数时,将读取到的字节个数发送给所述IPQAM;
或,
所述字节阈值包括188个字节;
进一步包括:第二确定单元,用于根据视频流的传输协议和所述字节阈值,确定每次发送所述视频流的数据包的目标个数,以及每一个数据包包括的字节个数;
所述发送单元,具体用于每在所述视频流中读取到所述目标个数的数据包时,将读取到的所述目标个数的数据包发送给所述IPQAM。
10.一种视频流的输出系统,其特征在于,包括:服务器、信号调制器IPQAM和如权利要求6-9中任一所述视频流的输出装置;
所述服务器,用于向所述视频流的输出装置发送播放指令,并将所述视频流推送给所述视频流的输出装置;
所述IPQAM,用于接收所述视频流的输出装置发送的所述视频流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610867549.XA CN106572362B (zh) | 2016-09-30 | 2016-09-30 | 一种视频流的输出方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610867549.XA CN106572362B (zh) | 2016-09-30 | 2016-09-30 | 一种视频流的输出方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106572362A true CN106572362A (zh) | 2017-04-19 |
CN106572362B CN106572362B (zh) | 2019-06-25 |
Family
ID=58532567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610867549.XA Active CN106572362B (zh) | 2016-09-30 | 2016-09-30 | 一种视频流的输出方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106572362B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120989A (zh) * | 2018-10-08 | 2019-01-01 | 四川长虹电器股份有限公司 | Ts流播放时追溯定位的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130946A (zh) * | 2011-01-19 | 2011-07-20 | 四川长虹电器股份有限公司 | 避免缓存跳帧的方法 |
CN103795755A (zh) * | 2012-10-31 | 2014-05-14 | 中国电信股份有限公司 | 流媒体发送速率控制方法、系统和流媒体服务器 |
CN104320676A (zh) * | 2014-07-02 | 2015-01-28 | 浙江广播电视集团 | 一种视频传输流中节目时钟参考异常跳动校正的方法 |
US20150036695A1 (en) * | 2013-07-31 | 2015-02-05 | Nvidia Corporation | Real time network adaptive low latency transport stream muxing of audio/video streams for miracast |
CN105338426A (zh) * | 2015-10-30 | 2016-02-17 | 北京数码视讯科技股份有限公司 | 一种传输流中时间标签的修正方法及装置 |
-
2016
- 2016-09-30 CN CN201610867549.XA patent/CN106572362B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130946A (zh) * | 2011-01-19 | 2011-07-20 | 四川长虹电器股份有限公司 | 避免缓存跳帧的方法 |
CN103795755A (zh) * | 2012-10-31 | 2014-05-14 | 中国电信股份有限公司 | 流媒体发送速率控制方法、系统和流媒体服务器 |
US20150036695A1 (en) * | 2013-07-31 | 2015-02-05 | Nvidia Corporation | Real time network adaptive low latency transport stream muxing of audio/video streams for miracast |
CN104320676A (zh) * | 2014-07-02 | 2015-01-28 | 浙江广播电视集团 | 一种视频传输流中节目时钟参考异常跳动校正的方法 |
CN105338426A (zh) * | 2015-10-30 | 2016-02-17 | 北京数码视讯科技股份有限公司 | 一种传输流中时间标签的修正方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120989A (zh) * | 2018-10-08 | 2019-01-01 | 四川长虹电器股份有限公司 | Ts流播放时追溯定位的方法 |
CN109120989B (zh) * | 2018-10-08 | 2021-06-29 | 四川长虹电器股份有限公司 | Ts流播放时追溯定位的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106572362B (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160295269A1 (en) | Information pushing method, device and system | |
US20180262809A1 (en) | Method and Device for switching Broadcast TV Program to on-demand Program | |
US8087056B2 (en) | Operating method of contents on demand system | |
US11399219B1 (en) | Cross platform application control in an interactive, multi-platform video network | |
CN103945240A (zh) | 一种基于视频聚合的视频播放方法及装置 | |
EP2868110B1 (en) | Provision of a personalized media content | |
CN102036058A (zh) | 视频监控系统中视频切换的方法、服务器、终端及系统 | |
EP3664462A1 (en) | Network outage continued playing method of on-demand video, and iptv playing device | |
US20170048584A1 (en) | Network set-top box and its operating method | |
EP2759128B1 (en) | Method for providing interactive services | |
CN106713955A (zh) | 直播流播放的控制方法及装置 | |
CN106572362A (zh) | 一种视频流的输出方法、装置及系统 | |
US11451879B2 (en) | Controlling playout of advertisement content during video-on-demand video streaming on an end-user terminal | |
US8401516B2 (en) | Method and device for receiving emergency broadcasting messages | |
US11397743B2 (en) | Systems and methods for scoring popularity of entities in a social network | |
CN105578216B (zh) | 一种实现hls点播快进快退的方法 | |
JP2009253820A (ja) | コンテンツ配信サーバ、通信システムおよびコンテンツ配信方法 | |
CN111343470B (zh) | 直播回看调度方法、装置及存储介质 | |
CN100473022C (zh) | 一种准实时统计多媒体广播观看用户数目的方法 | |
US9232253B1 (en) | Dynamic schedule creation | |
CN114244843A (zh) | 流媒体下载方法、电子设备及存储介质 | |
CN109756745B (zh) | 一种直播流数据的发送方法、直播加速服务器及终端 | |
WO2021013272A1 (zh) | 一种视频播放方法、电子设备以及存储介质 | |
EP3573341B1 (en) | Device and method for transmitting and receiving signal in multimedia system | |
CN117255214A (zh) | 直播间的转播方法和装置 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210223 Address after: 250100 Inspur science and Technology Park, 1036 Inspur Road, hi tech Zone, Jinan City, Shandong Province Patentee after: Inspur Software Technology Co.,Ltd. Address before: 250100 First Floor of R&D Building 2877 Kehang Road, Sun Village Town, Jinan High-tech Zone, Shandong Province Patentee before: SHANDONG INSPUR BUSINESS SYSTEM Co.,Ltd. |
|
TR01 | Transfer of patent right |