一种无损高精度的流采集方法技术

技术编号:26178853 阅读:29 留言:0更新日期:2020-10-31 14:31
本发明专利技术涉及一种无损高精度的流采集方法,所述流采集方法包括:打开实时消息传输协议流或超文本传输协议流;创建读数据线程;获取流信息;创建封装线程。本发明专利技术的一种无损高精度的流采集方法,通过只精确编辑一个组包,节省了编码时间,同时降低了机器的负荷,CPU占用低,并能精确到帧地无损地采集音视频数据。

A lossless and high precision flow acquisition method

【技术实现步骤摘要】
一种无损高精度的流采集方法
本专利技术涉及数据流信息处理领域,尤其涉及一种无损高精度的流采集方法。
技术介绍
在高速发展的互联网时代,电视台需要高性能的精确到帧地接收高指标的网络实时流媒体。这就要求从指定的视频画面(时间戳)开始收录、到指定的视频画面(时间戳)停止收录,同时又要满足音视频没有损失地收录下来。现有的实现过程通常有如下两种方法:第一种方法:在接收网络流时对所有音视频包解码,当到解码到指定开始画面(时间戳)时开始编码,当编码到指定结束画面(时间戳)时停止编码。这种方法确实能保证精确到帧的收录。但是所有的音视频包都进行了解码、编码,由于所有的视频都进行了编码,视频质量会降低,CPU占用率很高,不能满足高性能高指标收录。第二种方法:在接收网络流时当视频包的时间戳大于等于指定的开始时间戳时直接封装到本地文件,直到视频时间戳等于指定的结束时间戳时停止收录。这种方法由于没有视频解码、编码过程,索引CPU占用极低。当开始收录时若指定的开始时间戳的视频不是I帧(关键帧)时,保存的本地文件的第一个GOP(图像)组不完整,解码器不能将第一个GOP组视频解码,只能从第二个GOP组开始解码,因此收录的文件不能满足精确到帧。该方法不能满足精确到帧地收录。
技术实现思路
本专利技术的目的在于,针对上述问题,提出一种无损高精度的流采集方法。一种无损高精度的流采集方法,包括如下步骤:S1:打开实时消息传输协议流或超文本传输协议流;S2:创建读数据线程;S3:获取流信息;S4:创建封装线程。进一步的,一种无损高精度的流采集方法,所述创建读数据线程包括如下子步骤:S21:读流数据;S22:解析数据,若流数据为视频包则将流数据添加到视频包链表中;若流数据为音频包则将流数据添加到音频包链表中。进一步的,一种无损高精度的流采集方法,所述流信息包括视频流信息和音频流信息;视频流信息包括视频的宽、高、帧率、码率、编码格式、像素格式、画面组、profile和level;所述音频流信息包括音频的声道数、采样率、采样位数和格式。进一步的,一种无损高精度的流采集方法,所述创建封装线程包括如下子步骤:S41:根据音频源或视频源的信息打开编码器;S42:准备第一个画面组视频数据;S43:清除待输出视频数据包链表中指定时码前的所有视频包,将第一个视频画面组数据添加到待输出视频数据包链表头;S44:清除音频包链表中指定时间戳timecode前所有音频数据包;S45:循环执行封装数据。进一步的,一种无损高精度的流采集方法,所述步骤S45包括如下子步骤:S451:若视频包链表头数据时间戳小于音频包链表头数据时间戳,封装视频数据;否则封装音频数据。本专利技术达到的有益效果:本专利技术的一种无损高精度的流采集方法,通过只精确编辑一个组包,节省了编码时间,同时降低了机器的负荷,CPU占用低,并能精确到帧地无损地采集音视频数据。附图说明图1是本专利技术的流采集方法流程图。图2是本专利技术的创建封装线程流程图。具体实施方式为了使本专利技术的目的、技巧方案及优点更加清楚明白,下面将结合本专利技术实例中的附图,对本专利技术实例中的技术方案进行清楚、完整地描述。显然,所描述的实例仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。实施例在本实施例中,如图1所述,一种无损高精度的流采集方法,包括如下步骤:S1:打开实时消息传输协议流或超文本传输协议流;S2:创建读数据线程;S3:获取流信息;S4:创建封装线程。本实施例中,一种无损高精度的流采集方法,所述创建读数据线程包括如下子步骤:S21:读流数据;S22:解析数据,若流数据为视频包则将流数据添加到视频包链表中;若流数据为音频包则将流数据添加到音频包链表中。本实施例中,一种无损高精度的流采集方法,所述流信息包括视频流信息和音频流信息;视频流信息包括视频的宽、高、帧率、码率、编码格式、像素格式、画面组、profile和level;所述音频流信息包括音频的声道数、采样率、采样位数和格式。本实施例中,一种无损高精度的流采集方法,所述创建封装线程包括如下子步骤:S41:根据音频源或视频源的信息打开编码器;S42:准备第一个画面组视频数据(headVideoPacket);S43:清除待输出视频数据包链表中指定时码前的所有视频包,将第一个视频画面组数据(headVideoPacket)数据添加到待输出视频数据包链表(videoPackList)头;S44:清除音频包链表中指定时间戳timecode前所有音频数据包;S45:循环执行封装数据。本实施例中,一种无损高精度的流采集方法,所述步骤S45包括如下子步骤:S451:若视频包链表头数据时间戳小于音频包链表头数据时间戳,封装视频数据;否则封装音频数据。本文档来自技高网...

【技术保护点】
1.一种无损高精度的流采集方法,其特征在于,包括如下步骤:/nS1:打开实时消息传输协议流或超文本传输协议流;/nS2:创建读数据线程;/nS3:获取流信息;/nS4:创建封装线程。/n

【技术特征摘要】
1.一种无损高精度的流采集方法,其特征在于,包括如下步骤:
S1:打开实时消息传输协议流或超文本传输协议流;
S2:创建读数据线程;
S3:获取流信息;
S4:创建封装线程。


2.根据权利要求1所述的一种无损高精度的流采集方法,其特征在于,所述创建读数据线程包括如下子步骤:
S21:读流数据;
S22:解析数据,若流数据为视频包则将流数据添加到视频包链表中;若流数据为音频包则将流数据添加到音频包链表中。


3.根据权利要求1所述的一种无损高精度的流采集方法,其特征在于,所述步骤S3获取的流信息包括视频流信息和音频流信息。


4.根据权利要求3所述的一种无损高精度的流采集方法,其特征在于,所述视频流信息包括视频的宽、高、帧率、码率、编码格式、像素格式、画面组、profile和level;其中profile为H.264视频编码的压缩率,包括baseline、main、high...

【专利技术属性】
技术研发人员:马萧萧李秀科赵思阳王智胜马韬
申请(专利权)人:成都东方盛行电子有限责任公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1