本申请涉及通信技术领域,具体涉及一种数据资源添加方法及装置。
背景技术:
随着互联网技术的不断发展,在线教育,娱乐直播等受到越来越大的关注,其涉及的核心技术即为视频直播技术。具体地,发送端采集音视频并进行各种滤镜处理,然后再对处理后的音视频进行编码和封装,进而将音视频内容发送到内容分发网络,接收端从内容分发网络获取音视频流并进行解析和解码实现音视频播放。
在实际应用中,主要利用直播录像软件(openbroadcastersoftware,obs)实现上述功能。通常情况下,obs已经包括了大量的数据资源,可以满足大部分的场景需求,但在一些应用场景下,将对额外的视频数据、音频数据等资源进行推流,由于这些数据资源并存在于原有的数据库,导致无法对该数据资源进行推流。
技术实现要素:
有鉴于此,本申请实施例提供一种数据资源添加方法及装置,以实现更为合理有效地完成数据资源的添加,进而对该数据资源进行推流。
为解决上述问题,本申请实施例提供的技术方案如下:
在本申请实施例第一方面,提供了一种数据资源添加方法,该方法可以包括:
确定待处理数据资源的资源类型;所述资源类型至少包括视频资源类型、音频资源类型;
根据所述资源类型调用对应的数据资源输入接口;
获取所述待处理数据资源对应的时间戳信息,其中,所述时间戳信息用于指示待处理数据资源对应的推流时间;
利用所述数据资源输入接口将所述待处理数据资源按照所述时间戳信息输入数据资源库。
在一种可能的实现方式中,所述利用所述数据资源输入接口将所述待处理数据资源输入数据资源库,包括:
在所述数据资源库构建所述资源类型对应的数据文件;
利用所述数据资源输入接口将所述待处理数据资源按照所述时间戳信息添加至所述数据文件。
在一种可能的实现方式中,所述方法还包括:
根据时间戳信息从所述数据文件中读取所述待处理数据资源,按照所述待处理数据资源的格式对所述待处理数据资源进行推流。
在一种可能的实现方式中,当所述待处理数据资源为音频资源时,所述按照所述待处理数据资源的格式对所述待处理数据资源进行推流,包括:
将所述待处理数据资源的格式转换为预设格式;所述预设格式至少包括预设采样率、预设声道数;
按照所述预设格式对所述待处理数据资源进行推流。
在一种可能的实现方式中,所述方法还包括:
当完成所述待处理数据资源的添加后,释放所述数据输入接口。
在一种可能的实现方式中,所述方法还包括:
预先构建各个资源类型对应的数据资源输入接口。
在一种可能的实现方式中,所述视频资源类型对应的待处理数据资源的编码格式为yuv或rgb,所述音频资源类型对应的待处理数据资源对应的编码格式为pcm。
在本申请实施例第二方面,提供了一种数据资源添加装置,所述装置包括:
确定单元,用于确定待处理数据资源的资源类型;所述资源类型至少包括视频资源类型、音频资源类型;
调用单元,用于根据所述资源类型调用对应的数据资源输入接口;
获取单元,用于获取所述待处理数据资源对应的时间戳信息,其中,所述时间戳信息用于指示所述待处理数据资源对应的推流时间;
输入单元,用于利用所述数据资源输入接口将所述待处理数据资源输入数据资源库。
在一种可能的实现方式中,所述输入单元,包括:
构建子单元,用于在所述数据资源库构建所述资源类型对应的数据文件;
添加子单元,用于利用所述数据资源输入接口将所述待处理数据资源按照所述时间戳信息添加至所述数据文件。
在一种可能的实现方式中,所述装置还包括:
读取单元,用于根据所述时间戳信息从所述数据文件中读取所述待处理数据资源;
推流单元,用于按照所述待处理数据资源的格式对所述待处理数据资源进行推流。
在一种可能的实现方式中,当所述待处理数据资源为音频资源时,所述推流单元,包括:
转换子单元,用于将所述待处理数据资源的格式转换为预设格式;所述预设格式至少包括预设采样率、预设声道数;
推流子单元,用于按照所述预设格式对所述待处理数据资源进行推流。
在一种可能的实现方式中,所述装置还包括:
释放单元,用于当完成所述待处理数据资源的添加后,释放所述数据输入接口。
在一种可能的实现方式中,所述装置还包括:
构建单元,用于预先构建各个资源类型对应的数据资源输入接口。
在一种可能的实现方式中,所述视频资源类型对应的待处理数据资源的编码格式为yuv或rgb。所述音频资源类型对应的待处理数据资源对应的编码格式为pcm。
在本申请实施例第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行第一方面所述的数据资源添加方法。
在本申请实施例第四方面,提供了一种实现数据资源添加的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现第一方面所述的数据资源添加方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例首先获取待处理的数据资源,并确定该待处理数据资源的资源类型,如视频资源类型、音频资源类型等。然后,根据数据资源类型调用对应的数据资源输入接口,同时获取该待处理数据资源对应的时间戳信息。再利用该数据资源输入接口将该待处理数据资源按照时间戳信息输入至数据资源库,从而完成数据资源的添加。也就是,每种待处理数据资源以插件的形式添加至数据资源库中,在不影响原有数据资源库的使用情况下,添加额外待推流的数据资源,从而满足不同的应用需求。当客户端需要对新添加的数据资源进行推流时,按照时间戳信息顺序从数据资源库读取添加的数据资源并按照预设格式进行推流。
附图说明
图1为本申请实施例提供的一种应用场景示例图;
图2为本申请实施例提供的一种数据资源添加流程图;
图3为本申请实施例提供的一种应用框架图;
图4为本申请实施例提供的一种数据资源添加装置结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
参见图1,该图为一种应用场景示意图,其中,终端10上所承载的客户端用于直播,终端20用于观看所直播的内容,服务器30为直播所使用的服务器。
在实际应用时,终端10所承载的客户端可以实现数据资源的添加,具体地,客户端首先确定待处理数据资源的资源类型,并获取待处理数据资源对应的时间戳信息。然后,根据该资源类型调用对应的数据资源输入接口,再利用该数据资源输入接口将待处理数据资源按照时间戳信息添加至数据资源库中。在客户端进行推流时,按照时间戳信息从数据资源库中依次读取待处理数据资源,按照相应的格式将待处理数据资源推流至服务器30中,终端20从服务器30中获取推流资源,并利用自身所安装的客户端进行播放。
需要说明的是,终端10上所承载的客户端为可以为各个类型的直播客户端,终端10和终端20可以是现有的、正在研发的或将来研发的、能够通过任何形式的有线和/或无线连接(例如,wi-fi、lan、蜂窝、同轴电缆等)相互交互的任何用户设备,包括但不限于:现有的、正在研发的或将来研发的智能可穿戴设备、智能手机、非智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等。本申请的实施方式在此方面不受任何限制。还需要注意的是,本申请实施例中服务器30可以是现有的、正在研发的或将来研发的、能够向用户提供搜索服务的设备的一个示例。本申请的实施方式在此方面不受任何限制。
本领域技术人员可以理解,图1所示的框架示意图仅是本申请的实施方式可以在其中得以实现的一个示例。本申请实施方式的适用范围不受到该框架任何方面的限制。
参见图2,该图为本申请实施例提供的一种数据资源添加方法流程图,如图2所示,该方法可以包括:
s201:确定待处理数据资源的资源类型。
本实施例中,对于需要添加的待处理数据资源,首先确定该待处理数据资源对应的资源类型,以便按照该资源类型进行后续处理。其中,资源类型至少包括视频资源类型、音频资源类型,还可以包括图片资源类型、文本资源类型、桌面共享资源类型等。
具体地,视频资源类型对应的待处理数据资源的编码格式可以为yuv或rgb,音频资源类型对应的待处理数据资源的编码格式可以为pcm。
s202:根据资源类型调用对应的数据资源输入接口。
在确定出待处理数据资源的资源类型后,调用该资源类型对应的数据资源输入接口,以便利用该数据资源输入接口实现数据资源的添加。在具体实现时,可以预先构建各个资源类型对应的数据资源输入接口,在进行数据资源添加时,可以根据待处理数据资源的资源类型直接调用对应的数据资源输入接口。
在具体实现时,针对于视频资源类型,先定义资源类型为obs_source_info的结构体rawdata_source,并定义该结构体下的各个函数(创建函数和销毁函数)和变量。其中,定义的创建函数为rawdata_source_create,利用该创建函数和变量接收待处理数据资源。其中,定义的销毁函数为rawdata_source_destroy,利用该销毁函数可以在完成待处理数据资源添加后,销毁此次添加进程。针对于音频资源类型,先定义资源类型为pcm_source_info的结构体pcm_source,并定义该结构体下的各个函数(创建函数和销毁函数)和变量。其中,定义的创建函数为pcm_source_create,利用该创建函数和变量接收待处理数据资源;定义的销毁函数pcm_source_destroy,利用该销毁函数可以在完成待处理数据资源添加后,销毁此次添加进程。
需要说明的是,在构建各个资源类型对应的数据输入接口后,需将各个数据输入接口注册到obs模块对应的数据库libobs中,以便后续调用。具体地对于视频数据资源,可以通过调用obs_register_source函数将定义的资源类型rawdata_source_info添加至libobs中;对于音频数据资源,通过调用obs_register_source函数将定义的资源类型pcm_source_info添加至libobs中。
s203:获取待处理数据资源对应的时间戳信息。
本实施例中,在将待处理数据资源添加至数据资源库之前,首先获取该待处理数据资源对应的时间戳信息,以按照该时间戳信息进行添加,以保证后续按时间顺序推流。其中,时间戳信息用于指示待处理数据资源对应的推流时间。
需要说明的是,本实施例对步骤s202和步骤s203的执行顺序不进行限定,在实际应用中,也可以先执行步骤s203,再执行步骤s202。
s204:利用数据资源输入接口将待处理数据资源按照时间戳信息输入数据资源库。
当确定出对应的数据资源输入接口后,利用该数据资源输入接口将待处理数据资源按照时间戳信息输入数据资源库中,从而实现数据资源的添加。
在具体实现时,首先在数据资源库中构建该资源类型对应的数据文件,再利用数据资源输入接口将待处理数据资源添加至对应的数据文件中。当需要对待处理数据资源进行推流时,客户端从数据文件中读取该待处理数据资源,并按照待处理数据资源的格式对待处理数据资源进行推流。其中,待处理数据资源的格式可以包括分辨率、帧率等信息。具体地,可以通过调用video_frame_yuv函数读取分辨率为640*480、分辨率为30fps的yuv视频数据资源;通过调用video_frame_rgb函数读取分辨率为320*180、分辨率为30fps的rgb视频数据资源;通过调用pcmthread::run函数读取采用率为16khz、单声道的pcm音频数据资源。
在实际应用时,再将待处理数据资源添加至数据资源库时,还需获取该待处理数据资源对应的时间戳信息,以便根据该时间戳信息按顺序读取待处理数据资源,从而实现按时间顺序对待处理数据资源进行推流。
需要说明的是,当待处理数据资源为音频资源时,在进行推流时,首先将待处理数据资源的格式转换为预设格式,其中,预设格式至少包括预设采样率、预设声道数;按照预设格式对待处理数据资源进行推流。即,当添加的音频资源的格式与预设格式不一致时,还需将该音频资源的格式转换为预设格式,然后进行推流。例如,通过调用obs_source_create函数设置待处理音频数据资源对应的通道数目,以按照预设通道数目进行音频资源的推流。
另外,当完成待处理资源的添加后,为减少对进程的占用,可以通过释放指令将调用的数据输入接口进行释放,以便于后续待处理资源的添加。
基于上述描述可知,首先获取待处理的数据资源,并确定该待处理数据资源的资源类型,如视频资源类型、音频资源类型等。然后,根据数据资源类型调用对应的数据资源输入接口,同时获取该待处理数据资源对应的时间戳信息。再利用该数据资源输入接口将该待处理数据资源按照时间戳信息输入至数据资源库,从而完成数据资源的添加。也就是,每种待处理数据资源以插件的形式添加至数据资源库中,在不影响原有数据资源库的使用情况下,添加额外的待推流数据资源,从而满足不同的应用需求。当客户端需要对待处理数据资源进行推流时,按照时间戳信息顺序从数据资源库读取添加的待处理数据资源进行推流。
为便于理解本申请实施例的具体实现,参见图3所示框架图,其中,软件a为任一种直播软件,当软件a需要推流额外原始数据时,如视频原始数据和音频原始数据时,首先确定各个原始数据的资源类型,并根据资源类型调用对应的数据资源输入接口(音频输入接口、视频驶入接口),以通过对应的数据资源输入接口将待推流的原始数据添加至libobs数据库中。当进行直播或录制时,obs模块从libobs数据库中读取待推流的原始数据,并按照预设格式进行推流。
基于上述方法实施例,本申请实施例还提供了一种数据资源添加装置,如图4所示,该装置可以包括:
确定单元401,用于确定待处理数据资源的资源类型;所述资源类型至少包括视频资源类型、音频资源类型;
调用单元402,用于根据所述资源类型调用对应的数据资源输入接口;
获取单元403,用于获取所述待处理数据资源对应的时间戳信息,其中,所述时间戳信息用于指示所述待处理数据资源对应的推流时间;
输入单元404,用于利用所述数据资源输入接口将所述待处理数据资源输入数据资源库。
在一种可能的实现方式中,所述输入单元,包括:
构建子单元,用于在所述数据资源库构建所述资源类型对应的数据文件;
添加子单元,用于利用所述数据资源输入接口将所述待处理数据资源按照所述时间戳信息添加至所述数据文件。
在一种可能的实现方式中,所述装置还包括:
读取单元,用于根据所述时间戳信息从所述数据文件中读取所述待处理数据资源;
推流单元,用于按照所述待处理数据资源的格式对所述待处理数据资源进行推流。
在一种可能的实现方式中,当所述待处理数据资源为音频资源时,所述推流单元,包括:
转换子单元,用于将所述待处理数据资源的格式转换为预设格式;所述预设格式至少包括预设采样率、预设声道数;
推流子单元,用于按照所述预设格式对所述待处理数据资源进行推流。
在一种可能的实现方式中,所述装置还包括:
释放单元,用于当完成所述待处理数据资源的添加后,释放所述数据输入接口。
在一种可能的实现方式中,所述装置还包括:
构建单元,用于预先构建各个资源类型对应的数据资源输入接口。
在一种可能的实现方式中,所述视频资源类型对应的待处理数据资源的编码格式为yuv或rgb。所述音频资源类型对应的待处理数据资源对应的编码格式为pcm。
需要说明的是,本实施例中各个单元的实现可以参见上述方法实施例,本实施例在此不再赘述。
另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行所述的数据资源添加方法。
本申请实施例提供了一种实现数据资源添加的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现所述的数据资源添加方法。
基于上述描述可知,首先获取待处理的数据资源,并确定该待处理数据资源的资源类型,如视频资源类型、音频资源类型等。然后,根据数据资源类型调用对应的数据资源输入接口,同时获取该待处理数据资源对应的时间戳信息。再利用该数据资源输入接口将该待处理数据资源按照时间戳信息输入至数据资源库,从而完成数据资源的添加。也就是,每种待处理数据资源以插件的形式添加至数据资源库中,在不影响原有数据资源库的使用情况下,添加额外的数据资源。当客户端需要对添加的数据资源进行推流时,按照时间戳信息顺序从数据资源库读取添加的待处理数据资源进行推流。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
1.一种数据资源添加方法,其特征在于,所述方法包括:
确定待处理数据资源的资源类型,其中,所述资源类型至少包括视频资源类型、音频资源类型;
根据所述资源类型调用对应的数据资源输入接口;
获取所述待处理数据资源对应的时间戳信息,其中,所述时间戳信息用于指示所述待处理数据资源对应的推流时间;
利用所述数据资源输入接口将所述待处理数据资源按照所述时间戳信息输入数据资源库。
2.根据权利要求1所述的方法,其特征在于,所述利用所述数据资源输入接口将所述待处理数据资源按照所述时间戳信息输入数据资源库,包括:
在所述数据资源库构建所述资源类型对应的数据文件;
利用所述数据资源输入接口将所述待处理数据资源按照所述时间戳信息添加至所述数据文件。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述时间戳信息从所述数据文件中读取所述待处理数据资源,按照所述待处理数据资源的格式对所述待处理数据资源进行推流。
4.根据权利要求3所述的方法,其特征在于,当所述待处理数据资源为音频资源时,所述按照所述待处理数据资源的格式对所述待处理数据资源进行推流,包括:
将所述待处理数据资源的格式转换为预设格式;所述预设格式至少包括预设采样率、预设声道数;
按照所述预设格式对所述待处理数据资源进行推流。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当完成所述待处理数据资源的添加后,释放所述数据输入接口。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
预先构建各个资源类型对应的数据资源输入接口。
7.根据权利要求1所述的方法,其特征在于,所述视频资源类型对应的待处理数据资源的编码格式为yuv或rgb,所述音频资源类型对应的待处理数据资源对应的编码格式为pcm。
8.一种数据资源添加装置,其特征在于,所述装置包括:
确定单元,用于确定待处理数据资源的资源类型;所述资源类型至少包括视频资源类型、音频资源类型;
调用单元,用于根据所述资源类型调用对应的数据资源输入接口;
获取单元,用于获取所述待处理数据资源对应的时间戳信息,其中,所述时间戳信息用于指示所述待处理数据资源对应的推流时间;
输入单元,用于利用所述数据资源输入接口将所述待处理数据资源输入数据资源库。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-7任一项所述的数据资源添加方法。
10.一种实现数据资源添加的设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现权利要求1-7任一项所述的数据资源添加方法。
技术总结