小程序平台与在线课堂进行多媒体数据交互的方法和装置与流程

文档序号:32669111发布日期:2022-12-24 01:58阅读:74来源:国知局
小程序平台与在线课堂进行多媒体数据交互的方法和装置与流程

1.本技术涉及计算机网络技术领域,具体而言,涉及一种小程序平台与在线课堂进行多媒体数据交互的方法和装置。


背景技术:

2.目前,在线课堂(也称作互动课堂)的核心功能是实时音视频通信(real time communication,rtc)能力,rtc底层是基于rfc标准文档的实时传输协议(real-time transport protocol,rtp)协议簇/实时传输控制协议(rtp control protocol,rtcp)协议簇构建的。而有些社交软件的小程序平台(也称作小程序)并不支持rtp协议,导致小程序平台与在线课堂不能互相通信。


技术实现要素:

3.为解决上述问题,本技术实施例的目的在于提供一种小程序平台与在线课堂进行多媒体数据交互的方法和装置。
4.第一方面,本技术实施例提供了一种小程序平台与在线课堂进行多媒体数据交互的方法,包括:媒体网关接收所述小程序平台发送的第一多媒体数据包,所述第一多媒体数据包,包括:rtmp协议包头信息和多媒体数据;所述rtmp协议包头信息,包括:rtmp包头类型;其中,所述第一多媒体数据包为使用rtmp协议的多媒体数据包;读取所述rtmp协议包头信息,并基于所述rtmp协议包头信息中的所述rtmp包头类型,确定所述rtmp协议包头信息的信息长度;基于所述rtmp协议包头信息的信息长度,将所述rtmp协议包头信息从所述第一多媒体数据包中剥离,得到所述多媒体数据,并在所述多媒体数据上添加rtp协议包头信息,得到第二多媒体数据包,将所述第二多媒体数据包发送到所述在线课堂,其中,所述第二多媒体数据包为使用rtp协议的多媒体数据包。
5.第二方面,本技术实施例还提供了一种小程序平台与在线课堂进行多媒体数据交互的装置,包括:接收模块,用于接收所述小程序平台发送的第一多媒体数据包,所述第一多媒体数据包,包括:rtmp协议包头信息和多媒体数据;所述rtmp协议包头信息,包括:rtmp包头类型;其中,所述第一多媒体数据包为使用rtmp协议的多媒体数据包;读取模块,用于读取所述rtmp协议包头信息,并基于所述rtmp协议包头信息中的所述rtmp包头类型,确定所述rtmp协议包头信息的信息长度;处理模块,用于基于所述rtmp协议包头信息的信息长度,将所述rtmp协议包头信息从所述第一多媒体数据包中剥离,得到所述多媒体数据,并在所述多媒体数据上添加rtp协议包头信息,得到第二多媒体数据包,将所述第二多媒体数据包发送到所述在线课堂,其中,所述第二多媒体数据包为使用rtp协议的多媒体数据包。
6.第三方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面所述的方法的步骤。
7.第四方面,本技术实施例还提供了一种电子设备,所述电子设备包括有存储器,处理器以及一个或者一个以上的程序,其中所述一个或者一个以上程序存储于所述存储器中,且经配置以由所述处理器执行上述第一方面所述的方法的步骤。
8.本技术实施例上述第一方面至第四方面提供的方案中,媒体网关在接收到小程序平台发送的第一多媒体数据包后,得到第一多媒体数据包携带的rtmp协议包头信息的信息长度,将rtmp协议包头信息从第一多媒体数据包中剥离,得到第一多媒体数据包中的多媒体数据,并在多媒体数据上添加rtp协议包头信息,得到第二多媒体数据包,将第二多媒体数据包发送到在线课堂,与相关技术中小程序平台与在线课堂不能互相通信的方式相比,可以利用设置在小程序平台与在线课堂之间的媒体网关,对小程序平台向在线课堂发送的数据包进行协议转换,使得不支持rtp协议的小程序平台能够与支持rtp协议的在线课堂进行相互通信,进一步增加在线课堂的使用场景。
9.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
10.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1示出了本技术实施例所提供的媒体网关的示意图;图2示出了本技术实施例1所提供的小程序平台与在线课堂进行多媒体数据交互的方法的流程图;图3示出了本技术实施例1所提供的发送媒体流程示意图;图4示出了本技术实施例1所提供的获取媒体流程示意图;图5示出了本技术实施例2所提供的一种小程序平台与在线课堂进行多媒体数据交互的装置的结构示意图;图6示出了本技术实施例3所提供的一种电子设备的结构示意图。
具体实施方式
12.在本技术的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。
13.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者
隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
14.在本技术中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
15.目前,在线课堂的核心功能是rtc能力,rtc底层是基于rfc标准的rtp/rtcp协议簇构建的。而有些社交软件的小程序平台并不支持rtp协议,导致小程序平台与在线课堂不能互相通信。
16.但在实际应用场景中,社交软件的小程序平台具有海量用户,以及使用上的便利性,使用小程序平台加入在线课堂的需求很多,所以本技术实施例提出一种小程序平台与在线课堂进行多媒体数据交互的方法和装置,设计了一个能够使小程序平台加入在线课堂的媒体网关,通过媒体网关进行协议的转换、媒体的转封装,以及媒体格式的转换,实现了小程序平台与在线课堂之间进行多媒体数据互通。
17.参见图1所示的媒体网关的示意图,所述在线课堂就是指教师正在对学生进行授课的在线(虚拟)房间。其中,在线课堂内的教师和学生都是通过社交软件的小程序平台登录在线房间的。
18.在对本技术提出的小程序平台与在线课堂进行多媒体数据交互的方法和装置进行介绍之前,可以先对本技术中出现的如下词语进行定义和解释:1. 实时消息协议(real time messaging protocol,rtmp协议), 是由 adobe 公司基于 flash player播放器对应的音视频flv封装格式提出的一种基于tcp的数据传输协议。本身具有稳定、兼容性强、高穿透的特点。常被应用于流媒体直播、点播等场景。常用于推流方(主播)的稳定传输需求。
19.2. rtc系统,是对于 rtc实时音视频通信系统的一致泛指,它最大的特点就是低延时和无卡顿。从功能流程上说,rtc系统包含了采集、编码、前后处理、传输、解码、缓冲、渲染等诸多环节,rtc 不是靠“优化”各环节去实现的实时互动,而是依靠推流端实时的传输机制。
20.3. rtp协议簇,是ietf提出的一个标准,对应的rfc文档为rfc3550。rfc3550不仅定义了rtp协议簇,而且定义了配套的相关协议rtcp协议。rtp协议簇用来为ip网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。rtp协议簇为internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由rtcp协议提供。
21.4. h.264视频格式,是国际标准化组织(iso)和国际电信联盟(itu)共同提出的数字视频压缩格式。h.264是itu-t以h.26x系列为名称命名的视频编解码技术标准之一。h.264是itu-t的视频编码专家组(vceg)和iso/iec的活动图像编码专家组(mpeg)的联合视频组(jvt:joint video team)开发的一个数字视频编码标准。该标准最早来自于itu-t的称之为h.26l的项目的开发。
22.5. 高级音频编码音频格式(advanced audio coding,aac音频格式),出现于1997
年,基于mpeg-2的音频编码技术。由fraunhofer iis、杜比实验室、at&t、索尼等公司共同开发,目的是取代mp3格式。在mpeg-4出现后,aac音频格式重新集成了mpeg-4标准特性,并加入了sbr技术和ps技术。重新集成了mpeg-4标准特性并加入了sbr技术和ps技术的aac音频格式为了区别于传统的mpeg-2 aac又称为mpeg-4 aac。
23.6. opus音频格式,opus音频格式是一个有损音频压缩的数字音频编码格式,由xiph.org基金会开发,之后由互联网工程任务组(ietf)进行标准化,目标是希望用单一格式包含声音和语音,取代speex和vorbis,且适用于网络上低延迟的即时声音传输,标准格式定义于rfc 6716文档。opus音频格式集成了两种声音编码的技术:以语音编码为导向的silk和低延迟的celt。opus音频格式可以无缝调节高低比特率。在opus音频格式编码器内部它在较低比特率时使用线性预测编码在高比特率时候使用变换编码(在高低比特率交界处也使用两者结合的编码方式)。
24.在完成对上述词语的定义和解释后,继续对本技术提出的小程序平台与在线课堂进行多媒体数据交互的方法和装置进行介绍。
25.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和实施例对本技术做进一步详细的说明。
26.实施例1本实施例提出的小程序平台与在线课堂进行多媒体数据交互的方法的执行主体是上述的媒体网关。
27.参见图2所示的小程序平台与在线课堂进行多媒体数据交互的方法的流程图,本实施例提出一种小程序平台与在线课堂进行多媒体数据交互的方法,包括以下具体步骤:步骤100、媒体网关接收所述小程序平台发送的第一多媒体数据包,所述第一多媒体数据包,包括:rtmp协议包头信息和多媒体数据;所述rtmp协议包头信息,包括:rtmp包头类型;其中,所述第一多媒体数据包为使用rtmp协议的多媒体数据包。
28.在上述步骤100中,参见图3所示的发送媒体流程示意图,在接收到小程序平台发送的发送(publish)指令后,媒体网关就会接收所述小程序平台发送的第一多媒体数据包,并执行如图3所示的发送媒体流程。
29.除了rtmp包头类型外,所述rtmp协议包头信息,还包括:多媒体类型和多媒体数据长度。
30.所述多媒体类型,包括:视频类型和音频类型。
31.步骤102、读取所述rtmp协议包头信息,并基于所述rtmp协议包头信息中的所述rtmp包头类型,确定所述rtmp协议包头信息的信息长度。
32.在上述步骤102中,由于不同的rtmp包头类型可以分别对应4字节、8字节或者12字节的rtmp协议包头信息的信息长度。所以,为了确定rtmp协议包头信息的信息长度,所述媒体网关中预先存储有rtmp包头类型与rtmp协议包头信息的信息长度的对应关系。从而在获取到rtmp协议包头信息中的rtmp包头类型后,就可以确定出rtmp协议包头信息的信息长度。
33.步骤104、基于所述rtmp协议包头信息的信息长度,将所述rtmp协议包头信息从所述第一多媒体数据包中剥离,得到所述多媒体数据,并在所述多媒体数据上添加rtp协议包头信息,得到第二多媒体数据包,将所述第二多媒体数据包发送到所述在线课堂,其中,所
述第二多媒体数据包为使用rtp协议的多媒体数据包。
34.在上述步骤104中,为了将第一多媒体数据包转换成第二多媒体数据包,可以具体执行以下步骤(1)至步骤(9):(1)基于所述rtmp协议包头信息的信息长度,将所述rtmp协议包头信息从所述第一多媒体数据包中剥离,得到所述多媒体数据;(2)获取所述rtmp协议包头信息中的多媒体类型,当确定所述多媒体类型为视频类型时,确定所述多媒体数据为视频数据;其中,所述视频数据包括:视频包头和视频裸数据;(3)根据所述rtmp协议包头信息中携带的所述多媒体数据长度,读取所述视频数据,将所述视频数据中的视频包头剥离;(4)获取rtp协议的版本标识、填充标识、扩展标识、多信号源计数器标识、标记位、序列号、时间戳、同步信源标识和多信号源标识,并根据所述多媒体类型,确定有效载荷类型数值;(5)根据所述rtp协议的版本标识、填充标识、扩展标识、多信号源计数器标识、标记位、序列号、时间戳、同步信源标识、多信号源标识和有效载荷类型数值,生成rtp协议包头信息,并在视频包头剥离后的所述视频裸数据上添加rtp协议包头信息,得到第二多媒体数据包,将所述第二多媒体数据包发送到所述在线课堂;(6)当所述rtmp协议包头信息中携带的多媒体类型为音频类型时,确定所述多媒体数据为音频数据;(7)根据所述rtmp协议包头信息中携带的所述多媒体数据长度,读取音频数据;(8)对所述音频数据进行解码,得到解码后的所述音频数据;(9)按照预设的第一音频格式对解码后的所述音频数据进行编码,得到具有所述第一音频格式的音频数据,生成所述rtp协议包头信息,并在所述第一音频格式的音频数据上添加rtp协议包头信息,得到第二多媒体数据包,将所述第二多媒体数据包发送到所述在线课堂。
35.在上述步骤(1)中,将所述rtmp协议包头信息从所述第一多媒体数据包中剥离的具体过程是现有技术,这里不再赘述。
36.在上述步骤(2)中,利用rtmp协议传输的视频数据,是必须要包括视频包头的。
37.在一个实施方式中,所述视频裸数据是具有h.264视频格式的视频裸数据。
38.在上述步骤(3)中,将所述视频数据中的视频包头剥离的具体过程是现有技术,这里不再赘述。
39.在上述步骤(4)中,rtp协议的版本标识,占2位,在本实施例中协议版本号为2。
40.填充标识,占1位,在本实施例中不使用填充,填充标识取0。
41.扩展标识,占1位,在本实施例中不使用扩展,扩展标识取0。
42.多信号源计数器标识,占4位,本实施例中不涉及多信号源场景,多信号源计数器标识取0。
43.标记位,占1位,在本实施例中不使用标记位,标记位取0。
44.有效载荷类型数值,占7位,用于说明rtp报文中有效载荷的类型,在本实施例中,多媒体类型为音频类型的情况下,有效载荷类型数值取112;多媒体类型为视频类型的情况
下,有效载荷类型数值取122。
45.序列号:占16位,用于表示发送者所发送的rtp报文的序列号,每发送一个报文,序列号增加1。在程序中记录一个计数器,每次发送一个数据包,计数器加1。
46.时间戳(timestamp):占32位,用于反映了携带rtp协议包头信息的数据包的生成时间。在本实施例中取媒体网关的当前时间戳。
47.同步信源(ssrc)标识:占32位,用于标识同步信源。该标识符是随机选择的,在本实施例中,在每个回话开始的时候生成作为同步信源标识的改随机数,记录在回话对象中。
48.多信号源(csrc)标识:每个csrc标识符占32位,可以有0~15个。在本实施例中,不涉及多信号源场景,csrc标识始终为0。在上述步骤(5)中,根据所述rtp协议的版本标识、填充标识、扩展标识、多信号源计数器标识、标记位、序列号、时间戳、同步信源标识、多信号源标识和有效载荷类型数值,生成rtp协议包头信息的具体过程是现有技术,这里不再赘述。在上述步骤(6)中,如图1所示,在媒体网关的音视频处理模块中设置有音频解码器,将音频数据输入到上述音频解码器中进行解码,得到解码后的所述音频数据。
49.在上述步骤(7)中,在一个实施方式中,所述第一音频格式,为opus音频格式。
50.按照预设的第一音频格式对解码后的所述音频数据进行编码,得到具有所述第一音频格式的音频数据的具体过程,可以采用现有的任何能够实现的音频编码方式实现,这里不再赘述。
51.在上述步骤(9)中,生成所述rtp协议包头信息的具体过程,与上述步骤(4)至步骤(5)描述的生成rtp协议包头信息的具体过程类似,这里不再赘述。
52.可选地,参见图4所示的获取媒体流程示意图,在在线课堂进行授课的过程中,当小程序平台向媒体网关发送播放(play)指令时,所述媒体网关,还可以执行以下步骤(1)至步骤(3):(1)接收所述在线课堂发送的第二多媒体数据包;其中,所述第二多媒体数据包,包括:rtp协议包头信息和多媒体数据;所述rtp协议包头信息,包括:所述rtp协议包头信息的信息长度;(2)读取所述rtp协议包头信息,得到所述rtp协议包头信息的信息长度;(3)基于所述rtp协议包头信息的信息长度,将所述rtp协议包头信息从所述第二多媒体数据包中剥离,得到所述多媒体数据,并在所述多媒体数据中添加rtmp协议包头信息,得到第一多媒体数据包,将所述第一多媒体数据包发送到所述小程序平台。
53.在上述步骤(1)中,除了所述rtp协议包头信息的信息长度外,所述rtp协议包头信息,还包括:多媒体类型和多媒体数据长度。
54.在上述步骤(3)中,为了将接收到的第二多媒体数据包转换成第一多媒体数据包并发送到小程序平台播放,可以执行以下步骤(31)至步骤(40):(31)基于所述rtp协议包头信息的信息长度,将所述rtp协议包头信息从所述第二多媒体数据包中剥离,得到所述第二多媒体数据包中的多媒体数据;(32)读取所述rtp协议包头信息中的多媒体类型,当确定所述多媒体类型为视频类型时,确定所述多媒体数据为视频裸数据;(33)对所述视频裸数据添加视频包头,得到能够在rtmp协议下传输的视频数据;(34)获取基本头和rtmp协议的包头类型,并根据所述rtmp协议的包头类型,确定
rtmp协议包头信息的信息长度,并根据所述rtmp协议包头信息的信息长度生成消息头;(35)基于得到的所述多媒体数据,确定有效载荷信息,并根据所述基本头、所述消息和有效载荷信息生成rtmp协议包头信息;(36)在所述视频数据上添加rtmp协议包头信息,得到第一多媒体数据包,将所述第一多媒体数据包发送到所述小程序平台;(37)当确定所述多媒体类型为音频类型时,确定所述多媒体数据为音频数据;(38)对所述音频数据进行解码,得到解码后的所述音频数据;(39)按照预设的第二音频格式对解码后的所述音频数据进行编码,得到具有所述第二音频格式的音频数据,生成rtmp协议包头信息,并在所述第二音频格式的音频数据上添加rtmp协议包头信息,得到第二多媒体数据包;(40)将所述第二多媒体数据包发送到所述小程序平台。
55.在上述步骤(31)中,基于所述rtp协议包头信息的信息长度,将所述rtp协议包头信息从所述第二多媒体数据包中剥离,得到所述第二多媒体数据包中的多媒体数据的具体过程是现有技术,这里不再赘述。
56.在上述步骤(32)中,所述视频裸数据,携带有所述视频裸数据的属性信息。
57.在上述步骤(33)中,为了对所述视频裸数据添加视频包头,需要执行以下步骤(331)至步骤(334):(331)获取所述视频裸数据的属性信息;所述属性信息中携带有所述视频裸数据的视频编码格式和所述视频裸数据所属视频帧的视频帧类型,所述视频帧类型,包括:关键帧和非关键帧;(332)根据所述视频裸数据的视频帧类型,得到所述视频包头的第一信息;(333)确定与所述视频编码格式对应的所述视频包头的第二信息;(334)将所述第一信息和所述第二信息进行拼接,得到视频包头,并对所述视频裸数据添加视频包头。
58.在上述步骤(332)中,媒体网关中预先存储有视频帧类型与第一信息的对应关系,从而根据所述视频裸数据的视频帧类型,就可以得到与所述视频裸数据的视频帧类型对应的第一信息。
59.在一个实施方式中,视频帧类型与第一信息的对应关系,可以如下表示:关键帧-0000;非关键帧-0001。
60.在上述步骤(333)中,媒体网关中预先存储有视频编码格式与第二信息的对应关系,从而根据所述视频编码格式,就可以得到与所述视频编码格式对应的第二信息。
61.在一个实施方式中,视频编码格式与第二信息的对应关系,可以如下表示:mpeg视频格式-0011;h.264视频格式-0111;mp4视频格式-0110。
62.在上述步骤(34)至步骤(35)中,基本头 (basic header,长度为1 到 3 个字节):用于对块流 id 和块类型进行编码。在本实施例中,不涉及流复用的情况,basic header固定为一个字节的长度。
63.消息头 (message header,长度为0,3,7,或者 11 个字节):用于对正在发送的消息的信息进行编码。可能包括但不限于:时间戳、消息长度、消息类型、块流id中的部分或全部信息,这一字段的长度可以使用rtmp协议的包头类型进行确定。
64.扩展时间戳 (extended timestamp,0 或 4 字节):用于表示的是时间戳的增量,这一字段是否出现取决于message header中的 timestamp 字段。在本实施例中,不涉及此字段,即此字段不会出现在消息头中。
65.有效载荷信息(chunk data):当前使用rtmp协议的数据包的有效负载数据量,在本实施例中,即为实际的音频数据大小或视频数据大小。
66.在上述步骤(37)中,所述第二音频格式,为aac音频格式。
67.按照预设的第二音频格式对解码后的所述音频数据进行编码,得到具有所述第二音频格式的音频数据的具体过程是现有技术,这里不再赘述。
68.在上述步骤(39)中,生成rtmp协议包头信息的具体过程与上述步骤(34)至步骤(35)描述的生成rtmp协议包头信息的具体过程类似,这里不再赘述。
69.本实施例提出的媒体网关具有以下优点:1.插件式设计,媒体网关不侵入现有系统,不影响原系统的稳定性。
70.2.媒体网关是面对媒体流粒度设计的,可灵活扩展。
71.3.在小程序平台与在线课堂之间仅仅引入了媒体网关一个新组件,结构简洁,降低实时音视频通信系统的延时。
72.4. 媒体网关可在边缘网络部署,一方面可以做水平扩展,无需限制系统容量,一方面可以靠近用户最后一公里网络,达到最优化的音视频通信质量。
73.综上所述,本实施例提出一种小程序平台与在线课堂进行多媒体数据交互的方法,媒体网关在接收到小程序平台发送的第一多媒体数据包后,得到第一多媒体数据包携带的rtmp协议包头信息的信息长度,将rtmp协议包头信息从第一多媒体数据包中剥离,得到第一多媒体数据包中的多媒体数据,并在多媒体数据上添加rtp协议包头信息,得到第二多媒体数据包,将第二多媒体数据包发送到在线课堂,与相关技术中小程序平台与在线课堂不能互相通信的方式相比,可以利用设置在小程序平台与在线课堂之间的媒体网关,对小程序平台向在线课堂发送的数据包进行协议转换,使得不支持rtp协议的小程序平台能够与支持rtp协议的在线课堂进行相互通信,进一步增加在线课堂的使用场景。
74.实施例2本实施例提出的小程序平台与在线课堂进行多媒体数据交互的装置,用于执行上述实施例1提出的小程序平台与在线课堂进行多媒体数据交互的方法。
75.参见图5所示的一种小程序平台与在线课堂进行多媒体数据交互的装置的结构示意图,本实施例提出一种小程序平台与在线课堂进行多媒体数据交互的装置,包括:接收模块500,用于接收所述小程序平台发送的第一多媒体数据包,所述第一多媒体数据包,包括:rtmp协议包头信息和多媒体数据;所述rtmp协议包头信息,包括:rtmp包头类型;其中,所述第一多媒体数据包为使用rtmp协议的多媒体数据包;读取模块502,用于读取所述rtmp协议包头信息,并基于所述rtmp协议包头信息中的所述rtmp包头类型,确定所述rtmp协议包头信息的信息长度;处理模块504,用于基于所述rtmp协议包头信息的信息长度,将所述rtmp协议包头信息从所述第一多媒体数据包中剥离,得到所述多媒体数据,并在所述多媒体数据上添加rtp协议包头信息,得到第二多媒体数据包,将所述第二多媒体数据包发送到所述在线课堂,其中,所述第二多媒体数据包为使用rtp协议的多媒体数据包。
76.进一步地,本实施例提出的小程序平台与在线课堂进行多媒体数据交互的装置,还包括:接收单元,用于接收所述在线课堂发送的第二多媒体数据包;其中,所述第二多媒体数据包,包括:rtp协议包头信息和多媒体数据;所述rtp协议包头信息,包括:所述rtp协议包头信息的信息长度;读取单元,用于读取所述rtp协议包头信息,得到所述rtp协议包头信息的信息长度;处理单元,用于基于所述rtp协议包头信息的信息长度,将所述rtp协议包头信息从所述第二多媒体数据包中剥离,得到所述多媒体数据,并在所述多媒体数据中添加rtmp协议包头信息,得到第一多媒体数据包,将所述第一多媒体数据包发送到所述小程序平台。
77.所述rtmp协议包头信息,还包括:多媒体类型和多媒体数据长度;所述多媒体类型,包括:视频类型和音频类型。
78.具体地,所述处理模块,具体用于:基于所述rtmp协议包头信息的信息长度,将所述rtmp协议包头信息从所述第一多媒体数据包中剥离,得到所述多媒体数据;获取所述rtmp协议包头信息中的多媒体类型,当确定所述多媒体类型为视频类型时,确定所述多媒体数据为视频数据;其中,所述视频数据包括:视频包头和视频裸数据;根据所述rtmp协议包头信息中携带的所述多媒体数据长度,读取所述视频数据,将所述视频数据中的视频包头剥离;获取rtp协议的版本标识、填充标识、扩展标识、多信号源计数器标识、标记位、序列号、时间戳、同步信源标识和多信号源标识,并根据所述多媒体类型,确定有效载荷类型数值;根据所述rtp协议的版本标识、填充标识、扩展标识、多信号源计数器标识、标记位、序列号、时间戳、同步信源标识、多信号源标识和有效载荷类型数值,生成rtp协议包头信息,并在视频包头剥离后的所述视频裸数据上添加rtp协议包头信息,得到第二多媒体数据包,将所述第二多媒体数据包发送到所述在线课堂;当所述rtmp协议包头信息中携带的多媒体类型为音频类型时,确定所述多媒体数据为音频数据;根据所述rtmp协议包头信息中携带的所述多媒体数据长度,读取音频数据;对所述音频数据进行解码,得到解码后的所述音频数据;按照预设的第一音频格式对解码后的所述音频数据进行编码,得到具有所述第一音频格式的音频数据,生成所述rtp协议包头信息,并在所述第一音频格式的音频数据上添加rtp协议包头信息,得到第二多媒体数据包,将所述第二多媒体数据包发送到所述在线课堂。
79.所述rtp协议包头信息,还包括:多媒体类型和多媒体数据长度;具体地,所述处理单元,具体用于:基于所述rtp协议包头信息的信息长度,将所述rtp协议包头信息从所述第二多媒体数据包中剥离,得到所述第二多媒体数据包中的多媒体数据;读取所述rtp协议包头信息中的多媒体类型,当确定所述多媒体类型为视频类型
时,确定所述多媒体数据为视频裸数据;对所述视频裸数据添加视频包头,得到能够在rtmp协议下传输的视频数据;获取基本头和rtmp协议的包头类型,并根据所述rtmp协议的包头类型,确定rtmp协议包头信息的信息长度,并根据所述rtmp协议包头信息的信息长度生成消息头;基于得到的所述多媒体数据,确定有效载荷信息,并根据所述基本头、所述消息和有效载荷信息生成rtmp协议包头信息;在所述视频数据上添加rtmp协议包头信息,得到第一多媒体数据包,将所述第一多媒体数据包发送到所述小程序平台;当确定所述多媒体类型为音频类型时,确定所述多媒体数据为音频数据;对所述音频数据进行解码,得到解码后的所述音频数据;按照预设的第二音频格式对解码后的所述音频数据进行编码,得到具有所述第二音频格式的音频数据,生成rtmp协议包头信息,并在所述第二音频格式的音频数据上添加rtmp协议包头信息,得到第二多媒体数据包;将所述第二多媒体数据包发送到所述小程序平台。
80.综上所述,本实施例提出一种小程序平台与在线课堂进行多媒体数据交互的装置,媒体网关在接收到小程序平台发送的第一多媒体数据包后,得到第一多媒体数据包携带的rtmp协议包头信息的信息长度,将rtmp协议包头信息从第一多媒体数据包中剥离,得到第一多媒体数据包中的多媒体数据,并在多媒体数据上添加rtp协议包头信息,得到第二多媒体数据包,将第二多媒体数据包发送到在线课堂,与相关技术中小程序平台与在线课堂不能互相通信的方式相比,可以利用设置在小程序平台与在线课堂之间的媒体网关,对小程序平台向在线课堂发送的数据包进行协议转换,使得不支持rtp协议的小程序平台能够与支持rtp协议的在线课堂进行相互通信,进一步增加在线课堂的使用场景。
81.实施例3本实施例提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述实施例1描述的小程序平台与在线课堂进行多媒体数据交互的方法的步骤。具体实现可参见方法实施例1,在此不再赘述。
82.此外,参见图6所示的一种电子设备的结构示意图,本实施例还提出一种电子设备,上述电子设备包括总线51、处理器52、收发机53、总线接口54、存储器55和用户接口56。上述电子设备包括有存储器55。
83.本实施例中,上述电子设备还包括:存储在存储器55上并可在处理器52上运行的一个或者一个以上的程序,经配置以由上述处理器执行上述一个或者一个以上程序用于进行以下步骤(1)至步骤(3):(1)接收所述小程序平台发送的第一多媒体数据包,所述第一多媒体数据包,包括:rtmp协议包头信息和多媒体数据;所述rtmp协议包头信息,包括:rtmp包头类型;其中,所述第一多媒体数据包为使用rtmp协议的多媒体数据包;(2)读取所述rtmp协议包头信息,并基于所述rtmp协议包头信息中的所述rtmp包头类型,确定所述rtmp协议包头信息的信息长度;(3)基于所述rtmp协议包头信息的信息长度,将所述rtmp协议包头信息从所述第一多媒体数据包中剥离,得到所述多媒体数据,并在所述多媒体数据上添加rtp协议包头信
息,得到第二多媒体数据包,将所述第二多媒体数据包发送到所述在线课堂,其中,所述第二多媒体数据包为使用rtp协议的多媒体数据包。
84.收发机53,用于在处理器52的控制下接收和发送数据。
85.其中,总线架构(用总线51来代表),总线51可以包括任意数量的互联的总线和桥,总线51将包括由处理器52代表的一个或多个处理器和存储器55代表的存储器的各种电路链接在一起。总线51还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本实施例不再对其进行进一步描述。总线接口54在总线51和收发机53之间提供接口。收发机53可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发机53从其他设备接收外部数据。收发机53用于将处理器52处理后的数据发送给其他设备。取决于计算系统的性质,还可以提供用户接口56,例如小键盘、显示器、扬声器、麦克风、操纵杆。
86.处理器52负责管理总线51和通常的处理,如前述上述运行通用操作系统551。而存储器55可以被用于存储处理器52在执行操作时所使用的数据。
87.可选的,处理器52可以是但不限于:中央处理器、单片机、微处理器或者可编程逻辑器件。
88.可以理解,本技术实施例中的存储器55可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器 (programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器 (dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本实施例描述的系统和方法的存储器55旨在包括但不限于这些和任意其它适合类型的存储器。
89.在一些实施方式中,存储器55存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:操作系统551和应用程序552。
90.其中,操作系统551,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序552,包含各种应用程序,例如媒体播放器(media player)、浏览器(browser)等,用于实现各种应用业务。实现本技术实施例方法的程序可以包含在应用程序552中。
91.综上所述,本实施例提出一种计算机可读存储介质和电子设备,媒体网关在接收到小程序平台发送的第一多媒体数据包后,得到第一多媒体数据包携带的rtmp协议包头信息的信息长度,将rtmp协议包头信息从第一多媒体数据包中剥离,得到第一多媒体数据包中的多媒体数据,并在多媒体数据上添加rtp协议包头信息,得到第二多媒体数据包,将第二多媒体数据包发送到在线课堂,与相关技术中小程序平台与在线课堂不能互相通信的方
式相比,可以利用设置在小程序平台与在线课堂之间的媒体网关,对小程序平台向在线课堂发送的数据包进行协议转换,使得不支持rtp协议的小程序平台能够与支持rtp协议的在线课堂进行相互通信,进一步增加在线课堂的使用场景。
92.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1