CN110740349A - 视频转码方法和装置 - Google Patents
视频转码方法和装置 Download PDFInfo
- Publication number
- CN110740349A CN110740349A CN201810797372.XA CN201810797372A CN110740349A CN 110740349 A CN110740349 A CN 110740349A CN 201810797372 A CN201810797372 A CN 201810797372A CN 110740349 A CN110740349 A CN 110740349A
- Authority
- CN
- China
- Prior art keywords
- transcoding
- target
- video data
- video
- transcoded
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000006855 networking Effects 0.000 claims abstract description 54
- 238000000605 extraction Methods 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 230000015654 memory Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 230000006854 communication Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/4402—Processing 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
- H04N21/440218—Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种视频转码方法及装置,应用于视联网中。其中方法包括:目标转码设备接收转码服务器发送的转码请求,目标转码设备由转码服务器依据转码请求确定;目标转码设备接收视联网流媒体服务器依据目标转码设备的信息发送的待转码的视频数据包,目标转码设备的信息由转码服务器上报给视联网流媒体服务器;目标转码设备对待转码的视频数据包进行排序;目标转码设备依据转码请求对排序后的视频数据包进行转码,并将转码后的视频数据包发送至视联网流媒体服务器。本发明能够避免因终端性能较差而导致的时延,丢包,花屏,卡顿,黑屏等现象;解决了视频数据包乱序的问题,避免因视频数据包乱序而导致的卡顿,花屏等现象,从而提升用户体验。
Description
技术领域
本发明涉及视联网技术领域,特别是涉及一种视频转码方法和一种视频转码装置。
背景技术
随着网络科技的快速发展,视频会议、视频教学等双向通信在用户的生活、工作、学习等方面广泛普及。
在通信过程中,各种类终端设备应需求而大量出现,终端设备种类参差不齐、性能各异。而在实时视音频业务中,传输的视频流基本上都是720p、1080p等高码率的视频流。因此,对于性能较低的终端设备(如手机)来说,其无法快速处理这些高码率视频流,从导致时延,丢包,花屏,卡顿,甚至于黑屏等现象,降低用户体验。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种视频转码方法和相应的一种视频转码装置。
为了解决上述问题,本发明实施例公开了一种视频转码方法,所述方法应用于视联网中,所述视联网包括视联网流媒体服务器、转码服务器及多个转码设备,所述方法包括:
目标转码设备接收所述转码服务器发送的转码请求;所述目标转码设备由所述转码服务器依据所述转码请求确定;
所述目标转码设备接收所述视联网流媒体服务器依据所述目标转码设备的信息发送的待转码的视频数据包;所述目标转码设备的信息由所述转码服务器上报给所述视联网流媒体服务器;
所述目标转码设备对所述待转码的视频数据包进行排序;
所述目标转码设备依据所述转码请求对排序后的视频数据包进行转码,并将转码后的视频数据包发送至所述视联网流媒体服务器。
优选地,所述目标转码设备对所述待转码的视频数据包进行排序的步骤,包括:所述目标转码设备从所述待转码的视频数据包中提取所述待转码的视频数据包的序列号;所述目标转码设备依据所述序列号将所述待转码的视频数据包存储至预设的缓冲序列中的对应位置。
优选地,所述缓冲序列包括多个顺序排列的缓冲区块,每个缓冲区块具有对应的区块号,所述目标转码设备依据所述序列号将所述待转码的视频数据包存储至预设的缓冲序列中的对应位置的步骤,包括:所述目标转码设备计算所述序列号对应的目标区块号;所述目标转码设备将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中。
优选地,所述目标转码设备计算所述序列号对应的目标区块号的步骤,包括:所述目标转码设备比较所述序列号与所述缓冲区块的总个数;若所述序列号小于或等于所述总个数,则确定所述目标区块号与所述序列号相同;若所述序列号大于所述总个数,则确定所述目标区块号为所述序列号除以所述总个数所得的余数。
优选地,所述目标转码设备将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中的步骤,包括:所述目标转码设备若判定所述目标区块号对应的缓冲区块当前处于空闲状态,则将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中;所述目标转码设备若判定所述目标区块号对应的缓冲区块当前处于非空闲状态,则将所述待转码的视频数据包存储至预设的暂存区,并在所述目标区块号对应的缓冲区块处于空闲状态后,将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中。
优选地,所述缓冲序列包括多个顺序排列的缓冲区块,所述目标转码设备依据所述转码请求对排序后的视频数据包进行转码的步骤,包括:所述目标转码设备在判定所述缓冲序列中的各缓冲区块均已存储视频数据包后,将提取指针指向第一个缓冲区块;所述目标转码设备从所述提取指针指向的缓冲区块中提取存储的视频数据包,并对提取的视频数据包进行转码;所述目标转码设备将提取指针指向下一个缓冲区块,并返回所述从所述提取指针指向的缓冲区块中提取存储的视频数据包,并对提取的视频数据包进行转码的步骤。
优选地,所述转码请求包括目标码率,所述目标转码设备由所述转码服务器通过选取转码能力信息满足所述目标码率,且负载信息满足预设条件的转码设备确定。
优选地,所述待转码的视频数据包为由视联网流媒体服务器对基于视联网协议的视频数据包进行协议转换得到的、基于RTP协议的数据包。
另一方面,本发明实施例还公开了一种视频转码装置,所述装置应用于视联网中,所述视联网包括视联网流媒体服务器、转码服务器及多个转码设备,
多个转码设备中包括目标转码设备,所述目标转码设备包括:
请求接收模块,用于接收所述转码服务器发送的转码请求;所述目标转码设备由所述转码服务器依据所述转码请求确定;
数据接收模块,用于接收所述视联网流媒体服务器依据所述目标转码设备的信息发送的待转码的视频数据包;所述目标转码设备的信息由所述转码服务器上报给所述视联网流媒体服务器;
排序模块,用于对所述待转码的视频数据包进行排序;
转码模块,用于依据所述转码请求对排序后的视频数据包进行转码,并将转码后的视频数据包发送至所述视联网流媒体服务器。
优选地,所述排序模块包括:提取单元,用于从所述待转码的视频数据包中提取所述待转码的视频数据包的序列号;存储单元,用于依据所述序列号将所述待转码的视频数据包存储至预设的缓冲序列中的对应位置。
本发明实施例中,转码服务器在接收到终端设备发送的转码请求后,依据所述转码请求确定目标转码设备,将转码请求发送至该目标转码设备,并将目标转码设备的信息上报给视联网流媒体服务器;目标转码设备接收视联网流媒体服务器发送的待转码的视频数据包,对待转码的视频数据包进行排序,并依据转码请求对排序后的视频数据包进行转码,将转码后的视频数据包发送至视联网流媒体服务器。由此可知,转码服务器可以按照终端设备自身的需求对视频数据进行转码,从而方便各种性能的终端设备根据自身性能从视联网流媒体服务器中获取对应码率的视频数据,保证终端设备可以快速处理视频数据,避免因终端性能较差而导致的时延,丢包,花屏,卡顿,黑屏等现象;并且,转码设备在接收到视频数据包后先对其进行排序再转码,从而解决了视频数据包乱序的问题,避免因视频数据包乱序而导致的卡顿,花屏等现象,从而提升用户体验。
附图说明
图1是本发明的一种视联网的组网示意图;
图2是本发明的一种节点服务器的硬件结构示意图;
图3是本发明的一种接入交换机的硬件结构示意图;
图4是本发明的一种以太网协转网关的硬件结构示意图;
图5是本发明实施例一的一种视频转码方法的步骤流程图;
图6是本发明实施例二的一种视频转码方法的步骤流程图;
图7是本发明实施例二的一种视频转码的设备交互的示意图;
图8是本发明实施例三的一种视频转码装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:
视联网所应用的部分技术如下所述:
网络技术(Network Technology)
视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(CircuitSwitching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。
交换技术(Switching Technology)
视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。
服务器技术(Server Technology)
视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。
储存器技术(Storage Technology)
统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。
网络安全技术(Network Security Technology)
视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。
服务创新技术(Service Innovation Technology)
统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图1所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
视联网设备分类
1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图2所示,主要包括网络接口模块201、交换引擎模块202、CPU模块203、磁盘阵列模块204;
其中,网络接口模块201,CPU模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。
接入交换机:
如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和CPU模块304;
其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;CPU模块204进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。
交换引擎模块303轮询所有包缓存器队列,在本发明实施例中分两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率控制模块208是由CPU模块204来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。
以太网协转网关:
如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、CPU模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和MAC添加模块409、MAC删除模块410。
其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目的地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目的地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2、视联网数据包定义
2.1接入网数据包定义
接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
如下表所示,接入网的数据包主要包括以下几部分:
DA | SA | Reserved | Payload | CRC |
其中:
目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;
源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;
保留字节由2个字节组成;
payload部分根据不同的数据包的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;
CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。
2.2城域网数据包定义
城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。
本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。
如下表所示,城域网的数据包主要包括以下几部分:
DA | SA | Reserved | 标签 | Payload | CRC |
即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。
实施例一
参照图5,示出了本发明实施例一的一种视频转码方法的步骤流程图。该方法可以应用于视联网中,在视联网中可以包括视联网流媒体服务器、转码服务器及多个转码设备。
本发明实施例的视频转码方法可以包括以下步骤:
步骤501,目标转码设备接收转码服务器发送的转码请求。
本发明实施例中,考虑到如果设置一个转码设备,并设置该转码设备可以实现多种不同码率的转码,则该转码设备在每次接收到待转码的视频流后,需要先分配一个用于处理该待转码的视频流的转码实例,并对该转码实例进行初始化,使其能够将该待转码的视频流转码成所需的码流,初始化后才能利用该转码实例对待转码的视频流进行转码。但是,上述方式每次都要先对转码实例进行初始化然后才能执行转码,因此转码的时延较大,转码效率低,不能满足实时音视频业务的所需的高实时性。
针对上述问题,本发明实施例提出了一种分布式的方式,转码服务器与多个分布式转码设备连接,可以设置每个转码设备实现一种码率的转换。
当终端具有视频转码需求时,可以根据自身的性能状况得到对应的转码请求,该转码请求可以包括终端的转码需求信息,比如转码的目标码率等,当然该转码请求还可以包括终端的相关信息,比如终端的标识等,本发明实施例对此并不加以限制。比如,终端为手机,由于手机的性能相对较低,可能无法快速处理高码率的视频,因此可以将高码率视频转换成较低码率视频,以满足手机的需求。
终端将转码请求经由视联网流媒体服务器发送至转码服务器,转码服务器依据该转码请求可以确定目标转码设备,并将转码请求发送至目标转码设备。目标转码设备即为后续针对该转码请求执行转码的转码设备,目标转码设备能够转码的码率可以满足终端的需求。
步骤502,目标转码设备接收所述视联网流媒体服务器依据所述目标转码设备的信息发送的待转码的视频数据包。
转换码服务器在确定出目标转码设备后,还可以将目标转码设备的信息上报给视联网流媒体服务器。目标转码设备的信息可以包括目标转码设备的标识、地址等信息。流媒体服务器能够根据目标转码设备的信息查找到目标转码设备,并向目标转码设备发送待转码的视频数据包。待转码的视频数据包即为初始的高码率视频数据包,比如视联网服务器发送过来的高码率的视频数据包等。
步骤503,目标转码设备对所述待转码的视频数据包进行排序。
由于视联网流媒体服务器向转码设备发送的视频数据包可能存在乱序的问题,因此目标转码设备接收到视联网流媒体服务器发送的待转码的视频数据包后对其进行排序,以使排列变为正确的顺序。
步骤504,目标转码设备依据所述转码请求对排序后的视频数据包进行转码,并将转码后的视频数据包发送至所述视联网流媒体服务器。
目标转码设备按照能够转码的码流对排序后的视频数据包进行转码,得到转码后的视频数据包。转码后的视频数据包即为适用于上述发送转码请求的终端的低码率视频数据包。
目标转码设备将转码后的视频数据包发送至视联网流媒体服务器。视联网流媒体服务器可以将转码后的视频数据包发送至上述发送转码请求的终端,终端即可以对该转码后的视频数据包进行相应处理,比如播放等。
本发明实施例中,转码服务器可以按照终端设备自身的需求对视频数据进行转码,从而方便各种性能的终端设备根据自身性能从视联网流媒体服务器中获取对应码率的视频数据,保证终端设备可以快速处理视频数据,避免因终端性能较差而导致的时延,丢包,花屏,卡顿,黑屏等现象;并且,转码设备在接收到视频数据包后先对其进行排序再转码,从而解决了视频数据包乱序的问题,避免因视频数据包乱序而导致的卡顿,花屏等现象,从而提升用户体验。
实施例二
参照图6,示出了本发明实施例二的一种视频转码方法的步骤流程图。
本发明实施例的视频转码方法可以应用于视联网中。图7是本发明实施例二的一种视频转码的设备交互的示意图。视联网中可以包括视联网流媒体服务器、转码服务器及多个转码设备,视联网流媒体服务器集成了转码服务器。视联网流媒体服务器和转码服务器可以基于互联网协议实现双向交互;转码服务器和各个转码设备可以基于互联网协议实现双向交互,具体可以交互信令等信息;视联网流媒体服务器和各个转码设备可以基于互联网协议实现双向交互,具体可以交互媒体(如视频数据、音频数据)等信息。
本发明实施例的视频转码方法可以包括以下步骤:
步骤601,目标转码设备接收转码服务器发送的转码请求。
本发明实施例中,转码设备要与转码服务器进行交互,要先在转码服务器中注册。注册过程可以包括:未注册的转码设备向转码服务器发送注册登记消息;转码服务器接收到注册登记消息后对注册登记消息进行验证,验证通过后向该未注册的转码设备返回注册成功消息;该未注册的转码设备接收到注册成功消息,注册成功。
未注册的转码设备将注册登记消息发送至转码服务器,该注册登记消息中可以包括转码设备的相关信息,比如转码设备的转码能力信息、转码设备的标识、IP地址等信息。其中,转码能力信息可以包括转码设备能够转码的路数(如转码实例的个数)、能够转码的码率、能够转码的分辨率等。转码服务器接收到转码设备发送的注册登记消息后,可以对注册登记消息执行验证等操作,验证通过后可以向转码设备返回注册成功消息,转码服务器还可以保存转码设备的相关信息。转码设备接收到注册成功消息,表明该转码设备成功注册,可以与转码服务器进行交互。
对于在转码服务器中已注册的转码设备,其可以定期向转码服务器发送心跳消息,以告知转码服务器该转码设备当前的状态。其中,心跳消息可以包括转码设备的负载信息、转码设备的标识、转码设备的工作状态是否正常等。定期发送可以为每隔15s、20s等时间向转码服务器发送心跳消息,本发明实施例对具体的时间间隔并不加以限制。
终端可以根据自身的性能状况发送转码请求,并经由视联网流媒体服务器将转码请求发送至转码服务器。也即,终端将转码请求发送至视联网流媒体服务器,再由视联网流媒体服务器发送至转码服务器。比如,可以在终端的APP界面中展示转码请求模块(比如可以显示为“转码”按钮),当用户点击该转码请求模块时可以触发转码请求。转码请求可以包括目标码率、终端的标识等信息,该目标码率可以依据终端的性能自动分析得到,也可以由用户手动输入,本发明实施例对此并不加以限制。
转码服务器接收到转码请求后,依据所述转码请求确定目标转码设备。转码请求可以包括目标码率,转码服务器可以通过选取转码能力信息满足所述目标码率,且负载信息满足预设条件的转码设备确定目标转码设备。比如,转码服务器可以检测已注册的各转码设备的负载信息及转码能力信息;选取所述转码能力信息满足所述目标码率,且所述负载信息满足预设条件的转码设备,作为目标转码设备。
优选地,转码能力信息是否满足目标码率可以依据转码设备能够转码的码率是否能够达到目标码率判断,若能够达到,则可以确定转码能力信息满足目标码率;否则,可以确定转码能力信息不满足目标码率。负载信息是否满足预设条件可以依据转码设备的负载是否小于设定阈值判断,若小于,则可以确定负载信息满足预设条件;否则,可以确定负载信息不满足预设条件。对于阈值的具体数值,本领域技术人员根据实际经验进行相关设定即可,本发明实施例对此并不加以限制。
转码设备中可以包括多个转码实例,每个转码实例可以对一路视频数据进行该转码设备对应码率的转码操作。各转码设备在启动后可以初始化自身包括的各转码实例,后续接收到待转码的视频数据包后,无需再执行初始化操作,而是可以直接对待转码的视频数据包进行相关处理,从而降低转码时延。本发明实施例中,初始化转码实例可以包括重置转码实例对应的编码模块、解码模块、转码模块等,比如可以设置转码模块进行转码的码率、帧率、分辨率等参数。
转码服务器确定出目标转码设备后,将转码请求发送至该目标转码设备。目标转码设备接收到转码请求后,可以响应该转码请求,关联一个目标转码实例,该关联的目标转码实例即为后续针对该转码请求执行转码的转码实例。比如,转码设备可以查找一个当前处于空闲状态的转码实例作为目标转码实例。
步骤602,目标转码设备接收所述视联网流媒体服务器依据所述目标转码设备的信息发送的待转码的视频数据包。
视联网流媒体服务器可以接收来自视联网的数据(如视频数据、音频数据等)。比如在视频会议中,视联网服务器(如上述的节点服务器)可以将视频数据(该视频数据可以为会议发言方的视联网终端发送给视联网服务器的视频数据)发送至视联网流媒体服务器,视联网流媒体服务器可以将视频数据转发到参与会议的其他互联网终端(如上述发送转码请求的终端)中。
转码服务器在确定出目标转码设备后,还可以将目标转码设备的信息上报给视联网流媒体服务器。视联网流媒体服务器可以依据该目标转码设备的信息查找到目标转码设备,并向目标转码设备发送待转码的视频数据包。
由于视联网服务器发送给视联网流媒体服务器的视频数据包为基于视联网协议的视频数据包,而参与会议的其他互联网终端能处理的视频数据包为基于互联网协议的视频数据包,因此视联网流媒体服务器在接收到视联网服务器发送的基于视联网协议的视频数据包后,还可以将基于视联网协议的视频数据包转换为基于互联网协议的视频数据包,将该基于互联网协议的视频数据包作为待转码的视频数据包发送给目标转码设备。具体地,视联网流媒体服务器与转码设备之间可以基于RTP(Real-time Transport Protocol,实时传输协议)进行通信,因此视联网流媒体服务器将基于视联网协议的数据包进行协议转换得到基于RTP协议的数据包,作为待转码的视频数据包。
步骤603,目标转码设备对所述待转码的视频数据包进行排序。
目标转码设备接收到视联网流媒体服务器发送的待转码的视频数据包后,可以对待转码的视频数据包进行排序。具体地,目标转码设备可以将待转码的视频数据包输入目标转码实例中,目标转码实例即可开始对待转码的视频数据包进行处理,比如进行排序。
在一种优选实施方式中,该步骤603可以包括:
A1,目标转码设备从所述待转码的视频数据包中提取所述待转码的视频数据包的序列号。
视频数据包可以包括包头,包头中可以包括帧标记、序列号等信息。目标转码设备(具体可以为目标转码实例)可以从待转码的视频数据包的包头中提取该待转码的视频数据包的序列号。其中,序列号可以为自然数,如1,2,3,等等。
A2,目标转码设备依据所述序列号将所述待转码的视频数据包存储至预设的缓冲序列中的对应位置。
本发明实施例中,可以在目标转码设备中预先设置缓冲序列,该缓冲序列包括多个(比如为n个)顺序排列的缓冲区块,每个缓冲区块具有对应的区块号。其中,区块号可以为自然数,如1,2,3,……,n-1,n。其中,缓冲序列可以为目标转码设备的自身内存中的一部分,也可以为设置的独立存储器,本发明实施例对此并不加以限制。
在一种优选实施方式中,步骤A2可以包括:
A21,目标转码设备计算所述序列号对应的目标区块号。
A21具体可以包括:目标转码设备比较所述序列号与所述缓冲区块的总个数;若所述序列号小于或等于所述总个数,则确定所述目标区块号与所述序列号相同;若所述序列号大于所述总个数,则确定所述目标区块号为所述序列号除以所述总个数所得的余数。
比如,缓冲区块的总个数n为10。如果当前待转码的视频数据包的序列号为2,则其对应的目标区块号为2;如果当前待转码的视频数据包的序列号为11,则其对应的目标区块号为11除以10所得的余数,即为1。
A22,目标转码设备将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中。
A22具体可以包括:目标转码设备若判定所述目标区块号对应的缓冲区块当前处于空闲状态,则将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中;目标转码设备若判定所述目标区块号对应的缓冲区块当前处于非空闲状态,则将所述待转码的视频数据包存储至预设的暂存区,并在所述目标区块号对应的缓冲区块处于空闲状态后,将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中。
其中,空闲状态是指当前存储有视频数据包,非空闲状态是指当前未存储视频数据包。其中,暂存区可以为目标转码设备的自身内存中的一部分,也可以为设置的独立存储器,本发明实施例对此并不加以限制。
比如,在初始时,缓冲区块1~10均为空闲状态,也即均未存储视频数据包。如果目标转码设备接收到待转码的视频数据包的原始顺序的序列号为1,3,2,4,6,5,7,8,9,12,则通过计算可以将序列号为1,3,2,4,6,5,7,8,9的待转码的视频数据包分别对应存储到区块号为1,3,2,4,6,5,7,8,9的缓冲区块中。而对于序列号为12的待转码的视频数据包,由于其对应的目标区块号为2,但是该缓冲区块中已经存储有序列号为2的待转码的视频数据包,因此可以将序列号为12的待转码的视频数据包存储至预设的暂存区,并在区块号为2的缓冲区块处于空闲状态后,将其存储至该区块号为2的缓冲区块中。
步骤604,目标转码设备依据所述转码请求对排序后的视频数据包进行转码,并将转码后的视频数据包发送至所述视联网流媒体服务器。
在一种优选实施方式中,目标转码设备针对排序后的视频数据包,可以从缓冲序列中提取视频数据包后进行转码。因此,目标转码设备依据所述转码请求对排序后的视频数据包进行转码的步骤可以包括:
B1,目标转码设备在判定所述缓冲序列中的各缓冲区块均已存储视频数据包后,将提取指针指向第一个缓冲区块。
本发明实施例中,可以在缓冲序列中存满视频数据包后,开始从缓冲序列中提取待转码的视频数据包并对其进行转码。如果未存满,则继续判断缓冲序列中的各缓冲区块均已存储视频数据包。可以预先设置提取指针,每次从提取指针指向的缓冲区块中提取其存储的视频数据包。
B2,目标转码设备从所述提取指针指向的缓冲区块中提取存储的视频数据包,并对提取的视频数据包进行转码。
目标转码设备(具体可以为目标转码实例)可以按照该目标转码设备能够转码的码率对待转码的视频数据包进行转码。
本发明实施例中,目标转码设备可以采用任意适用的转码技术进行转码。比如FFmpeg技术等,FFmpeg(Fast Forward Mpeg)是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。对于目标转码设备的具体转码过程,本领域技术人员根据实际经验进行相关处理即可,本发明实施例对此不再详细论述。
B3,目标转码设备将提取指针指向下一个缓冲区块,并返回所述从所述提取指针指向的缓冲区块中提取存储的视频数据包,并对提取的视频数据包进行转码的步骤。
需要说明的是,最后一个缓冲区块的下一个缓冲区块为第一个缓冲区块。比如,一共有n个缓冲区块,则区块号为n的缓冲区块的下一个缓冲区块为区块号为1的缓冲区块。
目标转码设备将转码后得到的转码后的视频数据包,发送至视联网流媒体服务器。后续视联网流媒体服务器即可将该转码后的视频数据包返回至上述发送转码请求的终端。转码后的视频数据包更适用于终端的性能,终端接收到转码后的视频数据包之后,可以更加流畅地对转码后的视频数据包执行播放等操作。
步骤605,目标转码设备接收所述转码服务器发送的终止转码请求,依据终止转码请求终止转码。
当终端不再需要转码时,可以发送终止转码请求,并将该终止转码请求经由视联网流媒体服务器发送至转码服务器。也即,终端将终止转码请求发送至视联网流媒体服务器,再由视联网流媒体服务器发送至转码服务器。比如,可以在终端的APP界面中展示终止转码请求模块(比如可以显示为“终止转码”按钮),当用户点击该终止转码请求模块时可以触发终止转码请求。其中,终止转码请求可以包括终端的标识等信息。
转码服务器将终止转码请求发送至目标转码设备,该目标转码设备接收到终止转码请求后,依据终止转码请求终止转码。具体可以为目标转码设备取消关联目标转码实例,释放目标转码实例的转码资源。比如,终端发送的转码请求中可以包括该终端的标识,目标转码设备在接收到转码请求后关联目标转码实例,可以依据其中的终端标识得知该目标转码实例处理该终端的转码请求;终端发送的终止转码请求中也可以包括该终端的标识,目标转码设备在接收到终止转码请求后,可以依据其中的终端标识查找到处理该终端的转码请求的目标转码实例,找到后取消关联该目标转码实例。
本发明实施例中,转码设备使用RTP传输视频数据包,带来了乱序的可能性,因此转码设备具备处理乱序的视频数据包的能力,从而解决因乱序导致的卡顿,花屏等问题。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例三
参照图8,示出了本发明实施例三的一种视频转码装置的结构框图。该装置可以应用于视联网中,所述视联网包括视联网流媒体服务器、转码服务器及多个转码设备,多个转码设备中包括目标转码设备。
本发明实施例的视频转码装置可以包括以下位于目标转码设备中的模块:
请求接收模块801,用于接收所述转码服务器发送的转码请求;所述目标转码设备由所述转码服务器依据所述转码请求确定;
数据接收模块802,用于接收所述视联网流媒体服务器依据所述目标转码设备的信息发送的待转码的视频数据包;所述目标转码设备的信息由所述转码服务器上报给所述视联网流媒体服务器;
排序模块803,用于对所述待转码的视频数据包进行排序;
转码模块804,用于依据所述转码请求对排序后的视频数据包进行转码,并将转码后的视频数据包发送至所述视联网流媒体服务器。
优选地,所述排序模块可以包括:提取单元,用于从所述待转码的视频数据包中提取所述待转码的视频数据包的序列号;存储单元,用于依据所述序列号将所述待转码的视频数据包存储至预设的缓冲序列中的对应位置。
优选地,所述缓冲序列包括多个顺序排列的缓冲区块,每个缓冲区块具有对应的区块号,所述存储单元可以包括:计算子单元,用于计算所述序列号对应的目标区块号;存储子单元,用于将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中。
优选地,计算子单元,具体可以用于比较所述序列号与所述缓冲区块的总个数;若所述序列号小于或等于所述总个数,则确定所述目标区块号与所述序列号相同;若所述序列号大于所述总个数,则确定所述目标区块号为所述序列号除以所述总个数所得的余数。
优选地,存储子单元,具体可以用于若判定所述目标区块号对应的缓冲区块当前处于空闲状态,则将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中;若判定所述目标区块号对应的缓冲区块当前处于非空闲状态,则将所述待转码的视频数据包存储至预设的暂存区,并在所述目标区块号对应的缓冲区块处于空闲状态后,将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中。
优选地,转码模块可以包括:判定单元,用于在判定所述缓冲序列中的各缓冲区块均已存储视频数据包后,将提取指针指向第一个缓冲区块;提取转码单元,用于从所述提取指针指向的缓冲区块中提取存储的视频数据包,并对提取的视频数据包进行转码;调整单元,用于将提取指针指向下一个缓冲区块,并调用提取转码单元执行相应操作。
优选地,所述转码请求包括目标码率,所述目标转码设备由所述转码服务器通过选取转码能力信息满足所述目标码率,且负载信息满足预设条件的转码设备确定。
优选地,所述待转码的视频数据包为由视联网流媒体服务器对基于视联网协议的视频数据包进行协议转换得到的、基于RTP协议的数据包。
本发明实施例中,转码服务器可以按照终端设备自身的需求对视频数据进行转码,从而方便各种性能的终端设备根据自身性能从视联网流媒体服务器中获取对应码率的视频数据,保证终端设备可以快速处理视频数据,避免因终端性能较差而导致的时延,丢包,花屏,卡顿,黑屏等现象;并且,转码设备在接收到视频数据包后先对其进行排序再转码,从而解决了视频数据包乱序的问题,避免因视频数据包乱序而导致的卡顿,花屏等现象,从而提升用户体验。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种视频转码方法和一种视频转码装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种视频转码方法,其特征在于,所述方法应用于视联网中,所述视联网包括视联网流媒体服务器、转码服务器及多个转码设备,所述方法包括:
目标转码设备接收所述转码服务器发送的转码请求;所述目标转码设备由所述转码服务器依据所述转码请求确定;
所述目标转码设备接收所述视联网流媒体服务器依据所述目标转码设备的信息发送的待转码的视频数据包;所述目标转码设备的信息由所述转码服务器上报给所述视联网流媒体服务器;
所述目标转码设备对所述待转码的视频数据包进行排序;
所述目标转码设备依据所述转码请求对排序后的视频数据包进行转码,并将转码后的视频数据包发送至所述视联网流媒体服务器。
2.根据权利要求1所述的方法,其特征在于,所述目标转码设备对所述待转码的视频数据包进行排序的步骤,包括:
所述目标转码设备从所述待转码的视频数据包中提取所述待转码的视频数据包的序列号;
所述目标转码设备依据所述序列号将所述待转码的视频数据包存储至预设的缓冲序列中的对应位置。
3.根据权利要求2所述的方法,其特征在于,所述缓冲序列包括多个顺序排列的缓冲区块,每个缓冲区块具有对应的区块号,
所述目标转码设备依据所述序列号将所述待转码的视频数据包存储至预设的缓冲序列中的对应位置的步骤,包括:
所述目标转码设备计算所述序列号对应的目标区块号;
所述目标转码设备将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中。
4.根据权利要求3所述的方法,其特征在于,所述目标转码设备计算所述序列号对应的目标区块号的步骤,包括:
所述目标转码设备比较所述序列号与所述缓冲区块的总个数;
若所述序列号小于或等于所述总个数,则确定所述目标区块号与所述序列号相同;
若所述序列号大于所述总个数,则确定所述目标区块号为所述序列号除以所述总个数所得的余数。
5.根据权利要求3所述的方法,其特征在于,所述目标转码设备将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中的步骤,包括:
所述目标转码设备若判定所述目标区块号对应的缓冲区块当前处于空闲状态,则将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中;
所述目标转码设备若判定所述目标区块号对应的缓冲区块当前处于非空闲状态,则将所述待转码的视频数据包存储至预设的暂存区,并在所述目标区块号对应的缓冲区块处于空闲状态后,将所述待转码的视频数据包存储至所述目标区块号对应的缓冲区块中。
6.根据权利要求2所述的方法,其特征在于,所述缓冲序列包括多个顺序排列的缓冲区块,
所述目标转码设备依据所述转码请求对排序后的视频数据包进行转码的步骤,包括:
所述目标转码设备在判定所述缓冲序列中的各缓冲区块均已存储视频数据包后,将提取指针指向第一个缓冲区块;
所述目标转码设备从所述提取指针指向的缓冲区块中提取存储的视频数据包,并对提取的视频数据包进行转码;
所述目标转码设备将提取指针指向下一个缓冲区块,并返回所述从所述提取指针指向的缓冲区块中提取存储的视频数据包,并对提取的视频数据包进行转码的步骤。
7.根据权利要求1所述的方法,其特征在于,所述转码请求包括目标码率,所述目标转码设备由所述转码服务器通过选取转码能力信息满足所述目标码率,且负载信息满足预设条件的转码设备确定。
8.根据权利要求1所述的方法,其特征在于,所述待转码的视频数据包为由视联网流媒体服务器对基于视联网协议的视频数据包进行协议转换得到的、基于RTP协议的数据包。
9.一种视频转码装置,其特征在于,所述装置应用于视联网中,所述视联网包括视联网流媒体服务器、转码服务器及多个转码设备,
多个转码设备中包括目标转码设备,所述目标转码设备包括:
请求接收模块,用于接收所述转码服务器发送的转码请求;所述目标转码设备由所述转码服务器依据所述转码请求确定;
数据接收模块,用于接收所述视联网流媒体服务器依据所述目标转码设备的信息发送的待转码的视频数据包;所述目标转码设备的信息由所述转码服务器上报给所述视联网流媒体服务器;
排序模块,用于对所述待转码的视频数据包进行排序;
转码模块,用于依据所述转码请求对排序后的视频数据包进行转码,并将转码后的视频数据包发送至所述视联网流媒体服务器。
10.根据权利要求9所述的装置,其特征在于,所述排序模块包括:
提取单元,用于从所述待转码的视频数据包中提取所述待转码的视频数据包的序列号;
存储单元,用于依据所述序列号将所述待转码的视频数据包存储至预设的缓冲序列中的对应位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810797372.XA CN110740349B (zh) | 2018-07-19 | 2018-07-19 | 视频转码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810797372.XA CN110740349B (zh) | 2018-07-19 | 2018-07-19 | 视频转码方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110740349A true CN110740349A (zh) | 2020-01-31 |
CN110740349B CN110740349B (zh) | 2022-06-17 |
Family
ID=69235259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810797372.XA Active CN110740349B (zh) | 2018-07-19 | 2018-07-19 | 视频转码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110740349B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070147371A1 (en) * | 2005-09-26 | 2007-06-28 | The Board Of Trustees Of Michigan State University | Multicast packet video system and hardware |
CN101873482A (zh) * | 2010-07-02 | 2010-10-27 | 上海交通大学 | 实时流媒体集群转码系统 |
CN102404567A (zh) * | 2011-11-03 | 2012-04-04 | 深圳市融创天下科技股份有限公司 | 一种网络监控视频流按需实时转码的系统和方法 |
CN104935952A (zh) * | 2014-03-17 | 2015-09-23 | 无锡天脉聚源传媒科技有限公司 | 一种视频转码方法和系统 |
CN105828105A (zh) * | 2015-12-10 | 2016-08-03 | 广东亿迅科技有限公司 | 一种基于分布式环境的视频转码系统及视频转码方法 |
CN105871808A (zh) * | 2015-12-14 | 2016-08-17 | 乐视云计算有限公司 | 直播视频的转码方法及装置 |
CN108063953A (zh) * | 2017-12-28 | 2018-05-22 | 武汉烽火众智数字技术有限责任公司 | 视频转码网关、监控系统以及视频转码网关的转码方法 |
-
2018
- 2018-07-19 CN CN201810797372.XA patent/CN110740349B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070147371A1 (en) * | 2005-09-26 | 2007-06-28 | The Board Of Trustees Of Michigan State University | Multicast packet video system and hardware |
CN101873482A (zh) * | 2010-07-02 | 2010-10-27 | 上海交通大学 | 实时流媒体集群转码系统 |
CN102404567A (zh) * | 2011-11-03 | 2012-04-04 | 深圳市融创天下科技股份有限公司 | 一种网络监控视频流按需实时转码的系统和方法 |
CN104935952A (zh) * | 2014-03-17 | 2015-09-23 | 无锡天脉聚源传媒科技有限公司 | 一种视频转码方法和系统 |
CN105828105A (zh) * | 2015-12-10 | 2016-08-03 | 广东亿迅科技有限公司 | 一种基于分布式环境的视频转码系统及视频转码方法 |
CN105871808A (zh) * | 2015-12-14 | 2016-08-17 | 乐视云计算有限公司 | 直播视频的转码方法及装置 |
CN108063953A (zh) * | 2017-12-28 | 2018-05-22 | 武汉烽火众智数字技术有限责任公司 | 视频转码网关、监控系统以及视频转码网关的转码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110740349B (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109788314B (zh) | 一种视频流数据传输的方法和装置 | |
CN110049271B (zh) | 一种视联网会议信息展示方法及装置 | |
CN109996086B (zh) | 一种视联网业务状态查询方法及装置 | |
CN108462589B (zh) | 一种终端的网络连接方法和装置 | |
CN110324580B (zh) | 一种基于视联网的监控视频播放方法及装置 | |
CN110417877B (zh) | 一种音视频业务的处理方法及装置 | |
CN109150905B (zh) | 一种视联网资源释放方法及视联网共享平台服务器 | |
CN109246486B (zh) | 一种组帧方法和装置 | |
CN110022295B (zh) | 一种数据传输的方法和视联网系统 | |
CN110769310B (zh) | 一种基于视联网的视频处理方法和装置 | |
CN110049273B (zh) | 一种基于视联网的会议录制方法和中转服务器 | |
CN111147859A (zh) | 一种视频处理方法和装置 | |
CN109005378B (zh) | 一种视频会议的处理方法和系统 | |
CN111447407B (zh) | 一种监控资源的传输方法和装置 | |
CN110677392B (zh) | 一种视频数据传输方法和装置 | |
CN110446058B (zh) | 视频获取方法、系统、设备和计算机可读存储介质 | |
CN110519331B (zh) | 一种视联网资源处理方法及装置 | |
CN110798706A (zh) | 视频转码方法和装置 | |
CN110049069B (zh) | 一种数据获取方法及装置 | |
CN108574655B (zh) | 一种会议监播方法和装置 | |
CN110557411A (zh) | 基于视联网的视频流处理方法及装置 | |
CN110740349B (zh) | 视频转码方法和装置 | |
CN109982025B (zh) | 一种会议免打扰的方法和装置 | |
CN109714641B (zh) | 一种基于视联网的数据处理方法和装置 | |
CN110149306B (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 | ||
CP03 | Change of name, title or address |
Address after: 33rd Floor, No.1 Huasheng Road, Yuzhong District, Chongqing 400013 Patentee after: VISIONVERA INFORMATION TECHNOLOGY Co.,Ltd. Country or region after: China Address before: 100000 Beijing Dongcheng District gogoa building A1103-1113 Patentee before: VISIONVERA INFORMATION TECHNOLOGY Co.,Ltd. Country or region before: China |