CN109862386A - 直播数据传输方法及装置 - Google Patents
直播数据传输方法及装置 Download PDFInfo
- Publication number
- CN109862386A CN109862386A CN201910237136.7A CN201910237136A CN109862386A CN 109862386 A CN109862386 A CN 109862386A CN 201910237136 A CN201910237136 A CN 201910237136A CN 109862386 A CN109862386 A CN 109862386A
- Authority
- CN
- China
- Prior art keywords
- coding
- live data
- webrtc interface
- function
- webrtc
- 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.)
- Pending
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种直播数据传输方法及装置,该方法包括,编码采集到的直播数据;调用并运行网页即时通信WebRTC接口的函数;在运行到该WebRTC接口中用于对直播数据编码的编码实现函数时,通过该WebRTC接口构建用于作为该编码实现函数的输出对象的待传输对象,该待传输对象包含编码后的直播数据;通过该WebRTC接口执行对该待传输对象的传输,以将该待传输对象中包含的直播数据传输给服务器。本申请实现了基于WebRTC接口向服务器传输直播数据,降低了数据传输时延,有利于提高直播的实时性效果。
Description
技术领域
本申请涉及网络技术领域,尤其涉及直播数据传输方法及装置。
背景技术
直播应用,是利用互联网资源实现多媒体资源的直播以及实时交互的应用。
目前,直播应用所在的直播终端会基于实时消息传输协议(Real Time MessagingProtocol,RTMP)对采集到的直播数据进行编码,并将编码后的直播数据传输给直播应用的服务器。
然而,RTMP协议是基于传输控制协议(Transmission Control Protocol,TCP)的网络协议,而TCP协议本身对网络拥塞变化的适应较差,数据传输时延较高,从而使得基于RTMP协议的直播存在数据传输时延,导致直播实时性效果较差。
发明内容
有鉴于此,本申请提供了一种直播数据传输方法及装置,以降低直播终端的数据传输时延,提高直播的实时性效果。
为实现上述目的,一方面,本申请提供了一种直播数据传输方法,包括:
编码采集到的直播数据;
调用并运行网页即时通信WebRTC接口的函数;
在运行到所述WebRTC接口中用于对直播数据编码的编码实现函数时,通过所述WebRTC接口构建用于作为所述编码实现函数的输出对象的待传输对象,所述待传输对象包含编码后的直播数据;
通过所述WebRTC接口执行对所述待传输对象的传输,以将所述待传输对象中包含的直播数据传输给服务器。
优选的,所述调用并运行网页即时通信WebRTC接口的函数,包括:
构建数据内容为空的虚拟参数;
调用并运行网页即时通信WebRTC接口的编码入口函数,并将所述虚拟参数作为所述编码入口函数的输入参数输入所述编码入口函数,以触发所述WebRTC接口执行编码操作。
优选的,在所述编码采集到的直播数据之后,还包括:
将编码后的直播数据存储到待发送队列;
所述通过所述WebRTC接口构建用于作为所述编码实现函数的输出对象的待传输对象,包括:
通过所述WebRTC接口从所述待发送队列中确定待发送的直播数据,构建包括所述待发送的直播数据的待传输对象,并将所述待传输对象作为所述编码实现函数的输出对象。
优选的,在所述编码采集到的直播数据之前,还包括:
基于所述WebRTC接口与服务器建立符合所述WebRTC接口对应的协议的通信连接;
所述通过所述WebRTC接口执行对所述待传输对象的传输,包括:
基于所述通信连接,并通过所述WebRTC接口执行对所述待传输对象的传输。
优选的,在所述基于所述WebRTC接口与服务器建立符合所述WebRTC接口对应的协议的通信连接之后,还包括:
通过所述WebRTC接口确定所述通信连接对应的最大网络发送带宽;
按照所述最大网络发送带宽,确定当前适合的编码码率;
将编码采集到的所述直播数据的编码码率调整为所述当前适合的编码码率。
又一方面,本申请还提供了一种直播数据传输装置,包括:
编码单元,用于编码采集到的直播数据;
调用单元,用于调用并运行网页即时通信WebRTC接口的函数;
创建单元,用于在运行到所述WebRTC接口中用于对直播数据编码的编码实现函数时,通过所述WebRTC接口构建用于作为所述编码实现函数的输出对象的待传输对象,所述待传输对象包含所述编码单元编码后的直播数据;
传输单元,用于通过所述WebRTC接口执行对所述创建单元创建的所述待传输对象的传输,以将所述待传输对象中包含的直播数据传输给服务器。
优选的,所述调用单元,包括:
构建子单元,用于构建数据内容为空的虚拟参数;
调用子单元,用于调用并运行网页即时通信WebRTC接口的编码入口函数,并将所述构建子单元构建的所述虚拟参数作为所述编码入口函数的输入参数输入所述编码入口函数,以触发所述WebRTC接口执行编码操作。
优选的,所述装置还包括:
存储单元,用于在所述编码单元编码采集到的直播数据之后,将编码后的直播数据存储到待发送队列;
所述创建单元具体用于,通过所述WebRTC接口从所述待发送队列中确定待发送的直播数据,构建包含所述待发送的直播数据的待传输对象,并将所述待传输对象作为所述编码实现函数的输出对象。
优选的,所述装置还包括:
通信连接建立单元,用于在所述编码单元编码采集到的直播数据之前,基于所述WebRTC接口与服务器建立符合所述WebRTC接口对应的协议的通信连接;
所述传输单元具体用于,基于所述通信连接,并通过所述WebRTC接口执行对所述待传输对象的传输。
优选的,所述装置还包括:
带宽确定单元,用于在所述通信连接建立单元基于所述WebRTC接口与服务器建立符合所述WebRTC接口对应的协议的通信连接之后,通过所述WebRTC接口确定所述通信连接对应的最大网络发送带宽;
码率确定单元,用于按照所述第一确定子单元确定的所述最大网络发送带宽,确定当前适合的编码码率;
码率调整单元,用于将编码采集到的所述直播数据的编码码率调整为所述第二确定子单元确定的所述当前适合的编码码率。
可见,在本申请实施例中,在对采集到的直播数据编码之后,会调用并运行网页即时通信WebRTC接口,并在WebRTC接口运行到编码实现函数时,通过WebRTC接口构建包含该编码后的直播数据的待传输对象,并由WebRTC接口将该待传输对象作为该编码实现函数的输出对象进行传输,从而可以将该待传输对象中编码后的直播数据传输给服务器,实现了基于WebRTC接口传输直播数据。由于WebRTC接口是基于用户数据报协议(User DatagramProtocol,UDP)进行网络数据传输,而UDP具有数据传输速度快,能够降低网络数据传输的时延的特征,因此,本申请基于WebRTC接口向服务器传输直播数据降低数据传输时延,有利于提高直播的实时性效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请实施例中的直播数据传输方法所适用的直播系统的一种组成示意图;
图2示出了本申请实施例中的直播数据传输方法的一种流程示意图;
图3示出了本申请实施例中的直播数据传输方法的又一种流程示意图;
图4示出了本申请实施例中的直播数据传输装置的一种组成示意图。
具体实施方式
本申请的直播数据传输方法及装置,适用于具有直播应用的直播终端,该直播终端为采集音视频数据并生成用于直播的数据的终端。如,安装有直播应用的智能手机、平板电脑、笔记本电脑、个人计算机等等,通过本申请的方案可以有利于降低直播终端的传输时延,提高直播的实时性效果。
为了便于理解,下面先对本申请的方案所适用的直播系统进行介绍。
如,参见图1,其示出了本申请实施例中的直播数据传输方法所适用的一种直播系统的一种组成示意图。由图1可以看出,该直播系统包括:直播终端101、直播服务器102以及至少一个观看设备103。直播终端101与直播服务器102通过网络连通,至少一个观看设备103与直播服务器102通过网络连通。
其中,直播终端101是主播所使用的具备图像和语音采集功能的电子设备,如,除了前面提到的智能手机、平板电脑、笔记本电脑、个人计算机之外,还可以为智能可穿戴设备(虚拟现实眼镜、智能手表)等,该电子设备上安装有具备对直播数据进行编码以及传输等处理功能的直播应用。
为了提高直播的实时性,在本申请实施例中,在直播终端101中安装的直播应用中集成有网页即时通信(Web Real-Time Communication,WebRTC)接口,利用WebRTC接口中用于实现数据传输的代码或者函数将直播应用中编码后的数据传输至直播服务器102。
WebRTC接口是基于WebRTC协议的接口。WebRTC协议由一整套通信协议和应用编程接口组成,其不仅包含接口标准,还包含开源了的接口标准的实现代码,提供了音视频的采集、编解码、网络传输、展示等功能。
可以理解的是,在直播终端101安装的直播应用中集成WebRTC接口指的是,基于直播应用的实现代码和WebRTC接口包含的实现代码形成新的程序,并由直播终端101运行该程序。
直播服务器102用于与直播终端101建立连接,以接收直播终端101发送的直播数据;还用于建立观看设备103与直播终端101之间的连接,以将直播终端101发送的直播数据推送至观看设备103。
本申请实施例中,直播服务器102上安装有基于WebRTC协议的服务程序,直播服务器102通过该服务程序与直播终端101上的直播应用程序建立连接,并进行数据传输。
观看设备103用于通过直播服务器102观看直播终端101发送的直播数据。
下面结合流程图对本申请的直播数据传输方法进行介绍。
如参见图2,其示出了本申请一种直播数据传输方法一个实施例的流程示意图,本实施例的方法适用于直播终端,本实施例的方法可以包括:
S201,编码采集到的直播数据。
其中,直播终端的直播应用可以获取直播终端采集到的直播数据,并对采集的直播数据进行编码,以通过对直播数据编码来压缩减少冗余信息,从而实现网络传输。其中,采集到的直播数据可以包括音频数据、视频数据中的一种或者多种。其中,采集到的音频数据的数据格式可以为PCM格式等;采集到的视频数据的数据格式可以为YUV格式等。
其中,编码直播数据的方式可以有多种,在直播数据所包含的数据类型不同时,编码方式也会有所不同。如,对于音频数据,才可以采用如opus编码等编码方式。对于视频数据,可以采用诸如h264编码的方式。
可以理解的是,编码码率是编码的重要参数,在本申请中,可以按照设定的编码码率对采集到的直播数据进行编码。考虑到编码码率与单位时间内编码出的数据量成正比,而不同数据量的数据需要占用的网络带宽大小不同,在数据需要占用的网络带宽超过实际网络带宽时,会造成传输延迟。因此,为了使得数据传输具有较小时延,还可以根据网络状态的实时变化对设定的编码码率进行调整。如,通过WebRTC接口确定直播终端与服务器之间的通信连接对应的最大网络发送带宽,例如,利用WebRTC接口中用于估算最大网络发送带宽的实现代码确定该当前通信连接对应的最大网络发送带宽。然后,按照该最大网络发送带宽,确定当前适合的编码码率,并将编码采集到的直播数据的编码码率调整为当前适合的编码码率。
其中,确定当前适合的编码码率的具体实现可以有多种,如,将最大网络发送带宽值与设定值的差值确定为当前适合的编码码率的值,以便采用略低于该最大网络发送带宽所对应的值作为当前编码直播数据所采用的编码码率所对应的值。
可以理解的是,在进行直播之前,也就是采集直播数据以及对采集到的直播数据进行编码之前,首先需要建立直播终端与直播服务器之间的通信连接。由于本申请实施例中基于WebRTC接口实现向直播服务器传输数据,因此,直播终端可以基于WebRTC接口与服务器建立符合WebRTC接口对应的协议的通信连接。通过该通信连接构建了直播终端与服务器之间的数据传输通道,基于该通信连接,直播终端可以通过WebRTC接口将直播数据传输至直播服务器。
S202,调用并运行WebRTC接口的函数。
在本申请中,为了传输编码后的直播数据,需要调用WebRTC接口中的函数,以便触发WebRTC接口执行数据传输操作,从而通过WebRTC接口中用于实现数据传输的函数向直播服务器传输编码后的直播数据。
其中,WebRTC接口中的函数可以包括:WebRTC接口中实现不同功能的各种代码。如,WebRTC接口中包括了完整的数据采集、数据编码以及数据传输的实现代码,拥有一套完整的函数调用流程。为了将编码后的直播数据传输至直播服务器,需要调用WebRTC接口的完整函数调用流程中的中间函数,以触发WebRTC接口执行数据传输操作。如,在具体实现时,可以将WebRTC接口用于触发向服务器传输数据的数据传输入口函数作为中间函数,模拟数据传输入口函数所需的输入参数,调用并运行该数据传输入口函数,以跳过数据采集和数据编码操作,直接触发WebRTC接口执行数据传输操作。
然而,由于数据传输入口函数所需的输入参数较多,需要对WebRTC接口的源码进行很多修改。为了尽量减少对WebRTC接口原有的代码实现的运行流程的修改,复用WebRTC接口标准的实现逻辑,减少对其内部其它相关流程的影响。可选的,可以将WebRTC接口中编码入口函数作为中间函数。相应的,可以构建数据内容为空的虚拟参数,调用并运行该编码入口函数,并将该虚拟参数作为该编码入口函数的输入参数输入该编码入口函数,以跳过数据采集操作,从而直接触发WebRTC接口执行编码操作以及编码操作之后的数据传输操作。
S203,在运行到WebRTC接口中用于对直播数据编码的编码实现函数时,通过WebRTC接口构建用于作为该编码实现函数的输出对象的待传输对象,该待传输对象包含编码后的直播数据。
其中,在运行到用于对直播数据编码的编码实现函数时,通过WebRTC接口构建包含编码后的直播数据的待传输对象,并将该待传输对象作为编码实现函数的输出对象,代替编码实现函数原本的输出对象进行后续数据传输。
其中,对象指的是面向对象程序设计中的对象,一个对象可以包括多个成员参数,如,编码实现函数的输出对象包括数据内容等成员参数。例如,构建待传输对象可以是:构建包含的成员参数的种类以及数量均与该编码实现函数的输出对象所包含的成员参数的种类及数量相同的一个对象,并利用编码后的直播数据填充该对象中的数据内容成员参数,而其他成员参数可以置空。
可选的,为了使得编码时间早的直播数据可以优先被发送,考虑到队列具有先进先出的特点,本申请中,直播终端的直播应用利用队列将编码后的直播数据传输给WebRTC接口。在具体实现中,直播应用对采集到的直播数据进行编码之后,将编码后的直播数据存储到待发送队列,在通过WebRTC接口发送编码后的直播数据时,通过WebRTC接口从待发送队列中确定待发送的直播数据,构建包含待发送的直播数据的待传输对象,并将该待传输对象作为WebRTC接口中编码实现函数的输出对象,以通过WebRTC接口执行对该待传输对象的传输。
S204,通过WebRTC接口执行对待传输对象的传输,以将待传输对象中包含的直播数据传输给服务器。
其中,由于WebRTC接口内部的函数之间具有特定的函数调用关系,在运行编码实现函数之后,该编码实现函数会调用WebRTC接口中用于对编码实现函数输出的待传输对象进行发送的函数,执行WebRTC接口提供的数据传输功能,将待传输对象中包含的直播数据传输给直播服务器。
在本申请实施例中,在对采集到的直播数据编码之后,会调用并运行WebRTC接口,并在WebRTC接口运行到编码实现函数时,通过WebRTC接口构建包含该编码后的直播数据的待传输对象,并由WebRTC接口将该待传输对象作为该编码实现函数的输出对象进行传输,从而可以将该待传输对象中编码后的直播数据传输给服务器,实现了基于WebRTC接口传输直播数据。由于WebRTC接口是基于用户数据报协议(User Datagram Protocol,UDP)进行网络数据传输,而UDP具有数据传输速度快,能够降低网络数据传输的时延的特征,因此,本申请基于WebRTC接口向服务器传输直播数据降低数据传输时延,有利于提高直播的实时性效果。
如参见图3,其示出了本申请一种直播数据传输方法又一个实施例的流程示意图,本实施例的方法适用于直播终端,本实施例的方法可以包括:
S301,基于WebRTC接口与服务器建立符合WebRTC接口对应的协议的通信连接。
S302,获取采集到的直播数据。
S303,按照设定的编码码率,编码采集到的直播数据,并将编码后的直播数据存入待发送队列中。
S304,在待发送队列中存在编码后的直播数据时,构建数据内容为空的虚拟参数,调用并运行WebRTC接口的编码入口函数,并将该虚拟参数作为该编码入口函数的输入参数输入该编码入口函数。
其中,WebRTC接口的编码入口函数,是在采集到直播数据后会调用的函数,通过调用该函数,可以触发WebRTC接口执行编码以及编码之后的数据传输操作。通过以数据内容为空的虚拟参数作为该编码入口函数的输入参数,可以跳过WebRTC接口的数据采集操作。
对于视频数据来说,WebRTC接口的编码入口函数为VideoStreamEncoder对象的OnFrame()方法函数,该函数用于在确认当前采集到视频数据时,获取该采集到的视频数据,并触发数据编码操作。其中,该函数的输入参数为VideoFrame对象,VideoFrame对象包括的成员参数主要有:数据内容、图像长度、图像宽度、图像旋转度、时间戳等。在创建虚拟VideoFrame对象时,将其中的数据内容设置为空,时间戳可以设置为当前时刻,也可以设置为编码后的直播数据存入待发送队列的时间,还可以设置为编码后的直播数据的采集时间等等,图像长度、图像宽度、图像旋转度等可以设置为0。
举例说明,在待发送队列中存在编码后的视频数据时,创建虚拟的VideoFrame对象,该虚拟对象中数据内容为空(不含有真实的yuv数据),该虚拟对象中时间戳为当前时刻,再调用WebRTC接口的VideoStreamEncoder对象的OnFrame()函数,传入上述虚拟的VideoFrame对象,激活WebRTC接口在yuv数据生成后的操作。
对于音频数据来说,WebRTC接口的编码入口函数为WebRTC接口的AudioCodingModuleImpl对象的Encode()方法函数,该函数用于在确认采集到音频数据时,获取该采集到的音频数据,并触发数据编码操作。在该种情况下,该函数的输入参数为InputData对象,InputData对象包括的成员参数主要有:数据内容、时间戳等。在创建虚拟InputData对象时,将其中的数据内容设置为空,时间戳可以设置为当前时刻,也可以设置为编码后的直播数据存入待发送队列的时间,还可以设置为编码后的直播数据的采集时间等等,其他成员参数可以设置为0。
举例说明,在待发送队列中存在编码后的音频数据时,创建虚拟的InputData对象,该虚拟对象中数据内容为空(不含有真实的pcm数据),该虚拟对象中时间戳为当前时刻,再调用WebRTC接口的AudioCodingModuleImpl对象的Encode()方法函数,传入上述虚拟的InputData对象,激活WebRTC接口在pcm数据生成后的操作。
S305,在运行到WebRTC接口中用于对直播数据编码的编码实现函数时,从待发送队列中取出存入时间最早的直播数据,通过WebRTC接口构建包含该直播数据的待传输对象,并将该待传输对象作为编码实现函数的输出对象。
其中,WebRTC接口的编码实现函数的输出对象为待传输对象,在运行到该函数时,根据待发送队列中编码后的直播数据创建待传输对象,以包含编码后的直播数据的待传输对象作为编码实现函数的输出对象,继续WebRTC接口的后续流程。
对于视频数据来说,WebRTC接口中的编码实现函数为VideoEncoder对象的Encode()函数,该函数用于得到编码后数据,并触发对编码后的数据进行发送的操作,该函数的输出参数为EncodedImage对象,EncodedImage对象包括的成员参数主要有:数据内容、编码后图像长度、编码后图像宽度、数据帧长度、时间戳等。在创建待传输对象时,构建一个对象,该对象包括的成员参数的数量与种类均与EncodedImage对象包括的成员参数的数量与种类相同,然后,利用编码后的直播数据填充该对象中的数据内容成员参数,其他成员参数可以置空。
举例说明,在激活WebRTC接口中yuv数据生成后的操作的情况下,当运行到VideoEncoder接口的具体继承实现对象的Encode()函数后,从待发送队列中取出最早的编码后的视频数据,生成EncodedImage对象,以该EncodedImage对象作为Encode()函数的输出对象,随后运行到VideoSendStreamImpl对象的OnEncodedImage()函数中,并再通过PayloadRouter对象做标准RTP发送处理。
对于音频数据来说,WebRTC接口的编码实现函数为AudioCodingModuleImpl对象的Encode()方法函数,该函数用于得到编码后数据,并触发对编码后的数据进行发送的操作,该函数的输出参数为Buffer对象,Buffer对象包括的成员参数主要有:数据内容、时间戳等。在创建待传输对象时,构建一个对象,该对象包括的成员参数的种类和数量与Buffer对象包括的成员参数的种类与数量相同,利用编码后的直播数据填充该对象中的数据内容成员参数,其他成员参数可以置空。
举例说明,在激活pcm数据生成后的操作的情况下,当运行到AudioCodingModuleImpl类的Encode()方法函数后,从待发送队列中取出最早的编码后的音频数据,生成Buffer对象,以该Buffer对象作为该Encode()函数的输出对象,随后运行到AudioPacketizationCallback对象的SendData()函数中,做标准RTP发送处理。
S306,通过WebRTC接口执行对待传输对象的传输,以将待传输对象中包含的直播数据传输给服务器。
S307,通过WebRTC接口确定当前通信连接对应的最大网络发送带宽。
S308,按照最大网络发送带宽,确定当前适合的编码码率,将编码直播数据的编码码率调整为该当前适合的编码码率,并返回步骤S303执行。
其中,步骤S307和步骤S308可以在步骤S304~S306任意一个步骤执行的过程中执行,以便能够及时获取到最大网络发送带宽的变化,从而及时调整对采集到的直播数据的编码码率。
本申请实施例中,在原有直播应用的基础上集成了WebRTC接口的数据传输过程,做到了方便快捷的对接复用,最大化地利用了原有在音视频采集、编码方面的技术投入,避免了浪费已有投入。同时,本申请实施例中基于WebRTC接口实现数据传输充分利用了WebRTC协议在多媒体数据网络传输方面低延时、抗抖动等方面的先进优势。
对应本申请的直播数据传输方法,本申请还提供了直播数据传输装置。
如,参见图4,其示出了本申请一种直播数据传输装置一个实施例的组成结构示意图,该装置可以应用于本申请实施例中所提到的直播终端。该装置可以包括:
编码单元401,用于编码采集到的直播数据;
调用单元402,用于调用并运行网页即时通信WebRTC接口的函数;
创建单元403,用于在运行到WebRTC接口中用于对直播数据编码的编码实现函数时,通过WebRTC接口构建用于作为该编码实现函数的输出对象的待传输对象,该待传输对象包含编码单元401编码后的直播数据;
传输单元404,用于通过WebRTC接口执行对创建单元403创建的待传输对象的传输,以将该待传输对象中包含的直播数据传输给服务器。
在一种可能的实现中,调用单元402,包括:
构建子单元,用于构建数据内容为空的虚拟参数;
调用子单元,用于调用并运行网页即时通信WebRTC接口的编码入口函数,并将构建子单元构建的虚拟参数作为编码入口函数的输入参数输入编码入口函数,以触发WebRTC接口执行编码操作。
在一种可能的实现中,该装置还包括:
存储单元,用于在编码单元编码采集到的直播数据之后,将编码后的直播数据存储到待发送队列;
创建单元403具体用于,通过WebRTC接口从待发送队列中确定待发送的直播数据,构建包含待发送的直播数据的待传输对象,并将该待传输对象作为编码实现函数的输出对象。
在一种可能的实现中,该装置还包括:
通信连接建立单元,用于在编码单元编码采集到的直播数据之前,基于WebRTC接口与服务器建立符合WebRTC接口对应的协议的通信连接;
传输单元404具体用于,基于该通信连接,并通过WebRTC接口执行对待传输对象的传输。
在一种可能的实现中,该装置还包括:
带宽确定单元,用于在通信连接建立单元基于WebRTC接口与服务器建立符合WebRTC接口对应的协议的通信连接之后,通过WebRTC接口确定通信连接对应的最大网络发送带宽;
码率确定单元,用于按照第一确定子单元确定的最大网络发送带宽,确定当前适合的编码码率;
码率调整单元,用于将编码采集的直播数据的编码码率调整为第二确定子单元确定的当前适合的编码码率。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种直播数据传输方法,其特征在于,包括:
编码采集到的直播数据;
调用并运行网页即时通信WebRTC接口的函数;
在运行到所述WebRTC接口中用于对直播数据编码的编码实现函数时,通过所述WebRTC接口构建用于作为所述编码实现函数的输出对象的待传输对象,所述待传输对象包含编码后的直播数据;
通过所述WebRTC接口执行对所述待传输对象的传输,以将所述待传输对象中包含的直播数据传输给服务器。
2.根据权利要求1所述的直播数据传输方法,其特征在于,所述调用并运行网页即时通信WebRTC接口的函数,包括:
构建数据内容为空的虚拟参数;
调用并运行网页即时通信WebRTC接口的编码入口函数,并将所述虚拟参数作为所述编码入口函数的输入参数输入所述编码入口函数,以触发所述WebRTC接口执行编码操作。
3.根据权利要求1所述的直播数据传输方法,其特征在于,在所述编码采集到的直播数据之后,还包括:
将编码后的直播数据存储到待发送队列;
所述通过所述WebRTC接口构建用于作为所述编码实现函数的输出对象的待传输对象,包括:
通过所述WebRTC接口从所述待发送队列中确定待发送的直播数据,构建包含所述待发送的直播数据的待传输对象,并将所述待传输对象作为所述编码实现函数的输出对象。
4.根据权利要求1所述的直播数据传输方法,其特征在于,在所述编码采集到的直播数据之前,还包括:
基于所述WebRTC接口与服务器建立符合所述WebRTC接口对应的协议的通信连接;
所述通过所述WebRTC接口执行对所述待传输对象的传输,包括:
基于所述通信连接,并通过所述WebRTC接口执行对所述待传输对象的传输。
5.根据权利要求4所述的直播数据传输方法,其特征在于,在所述基于所述WebRTC接口与服务器建立符合所述WebRTC接口对应的协议的通信连接之后,还包括:
通过所述WebRTC接口确定所述通信连接对应的最大网络发送带宽;
按照所述最大网络发送带宽,确定当前适合的编码码率;
将编码采集到的所述直播数据的编码码率调整为所述当前适合的编码码率。
6.一种直播数据传输装置,其特征在于,包括:
编码单元,用于编码采集到的直播数据;
调用单元,用于调用并运行网页即时通信WebRTC接口的函数;
创建单元,用于在运行到所述WebRTC接口中用于对直播数据编码的编码实现函数时,通过所述WebRTC接口构建用于作为所述编码实现函数的输出对象的待传输对象,所述待传输对象包含所述编码单元编码后的直播数据;
传输单元,用于通过所述WebRTC接口执行对所述创建单元创建的所述待传输对象的传输,以将所述待传输对象中包含的直播数据传输给服务器。
7.根据权利要求6所述的直播数据传输装置,其特征在于,所述调用单元,包括:
构建子单元,用于构建数据内容为空的虚拟参数;
调用子单元,用于调用并运行网页即时通信WebRTC接口的编码入口函数,并将所述构建子单元构建的所述虚拟参数作为所述编码入口函数的输入参数输入所述编码入口函数,以触发所述WebRTC接口执行编码操作。
8.根据权利要求6所述的直播数据传输装置,其特征在于,所述装置还包括:
存储单元,用于在所述编码单元编码采集到的直播数据之后,将编码后的直播数据存储到待发送队列;
所述创建单元具体用于,通过所述WebRTC接口从所述待发送队列中确定待发送的直播数据,构建包含所述待发送的直播数据的待传输对象,并将所述待传输对象作为所述编码实现函数的输出对象。
9.根据权利要求6所述的直播数据传输装置,其特征在于,所述装置还包括:
通信连接建立单元,用于在所述编码单元编码采集到的直播数据之前,基于所述WebRTC接口与服务器建立符合所述WebRTC接口对应的协议的通信连接;
所述传输单元具体用于,基于所述通信连接,并通过所述WebRTC接口执行对所述待传输对象的传输。
10.根据权利要求9所述的直播数据传输装置,其特征在于,所述装置还包括:
带宽确定单元,用于在所述通信连接建立单元基于所述WebRTC接口与服务器建立符合所述WebRTC接口对应的协议的通信连接之后,通过所述WebRTC接口确定所述通信连接对应的最大网络发送带宽;
码率确定单元,用于按照所述第一确定子单元确定的所述最大网络发送带宽,确定当前适合的编码码率;
码率调整单元,用于将编码采集到的所述直播数据的编码码率调整为所述第二确定子单元确定的所述当前适合的编码码率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910237136.7A CN109862386A (zh) | 2019-03-27 | 2019-03-27 | 直播数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910237136.7A CN109862386A (zh) | 2019-03-27 | 2019-03-27 | 直播数据传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109862386A true CN109862386A (zh) | 2019-06-07 |
Family
ID=66902146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910237136.7A Pending CN109862386A (zh) | 2019-03-27 | 2019-03-27 | 直播数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109862386A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510738A (zh) * | 2020-04-26 | 2020-08-07 | 北京字节跳动网络技术有限公司 | 一种直播中音频的传输方法及装置 |
CN112671921A (zh) * | 2020-12-29 | 2021-04-16 | 平安普惠企业管理有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
WO2023036258A1 (zh) * | 2021-09-10 | 2023-03-16 | 深圳市道通智能航空技术股份有限公司 | 基于无人机的视频直播方法、系统、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100251287A1 (en) * | 2009-03-31 | 2010-09-30 | Pvi Virtual Media Services, Llc | Backpropagating a Virtual Camera to Prevent Delayed Virtual Insertion |
CN103354618A (zh) * | 2013-06-24 | 2013-10-16 | 西安交通大学 | 一种基于hls的多场景流媒体自适应直播方法 |
US20140325585A1 (en) * | 2011-01-11 | 2014-10-30 | Manolo Fabio Rivera | Advanced Wireless IPTV Set Top Box |
CN106209949A (zh) * | 2015-05-07 | 2016-12-07 | 北京大学 | 基于WebRTC的交互式直播方法及装置 |
CN106657179A (zh) * | 2015-10-28 | 2017-05-10 | 广东电网有限责任公司佛山供电局 | 文件传输方法和系统 |
-
2019
- 2019-03-27 CN CN201910237136.7A patent/CN109862386A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100251287A1 (en) * | 2009-03-31 | 2010-09-30 | Pvi Virtual Media Services, Llc | Backpropagating a Virtual Camera to Prevent Delayed Virtual Insertion |
US20140325585A1 (en) * | 2011-01-11 | 2014-10-30 | Manolo Fabio Rivera | Advanced Wireless IPTV Set Top Box |
CN103354618A (zh) * | 2013-06-24 | 2013-10-16 | 西安交通大学 | 一种基于hls的多场景流媒体自适应直播方法 |
CN106209949A (zh) * | 2015-05-07 | 2016-12-07 | 北京大学 | 基于WebRTC的交互式直播方法及装置 |
CN106657179A (zh) * | 2015-10-28 | 2017-05-10 | 广东电网有限责任公司佛山供电局 | 文件传输方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510738A (zh) * | 2020-04-26 | 2020-08-07 | 北京字节跳动网络技术有限公司 | 一种直播中音频的传输方法及装置 |
CN111510738B (zh) * | 2020-04-26 | 2023-08-11 | 北京字节跳动网络技术有限公司 | 一种直播中音频的传输方法及装置 |
CN112671921A (zh) * | 2020-12-29 | 2021-04-16 | 平安普惠企业管理有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
WO2023036258A1 (zh) * | 2021-09-10 | 2023-03-16 | 深圳市道通智能航空技术股份有限公司 | 基于无人机的视频直播方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11349900B2 (en) | Voice encoding and sending method and apparatus | |
CN109587510B (zh) | 一种直播方法、装置、设备和存储介质 | |
RU2634908C2 (ru) | Способ и устройство для управления доставкой медиаданных | |
US10367873B2 (en) | Method of communicating data packets within data communication systems | |
CN109862386A (zh) | 直播数据传输方法及装置 | |
CN104427286B (zh) | 一种进行视频通话的方法和系统 | |
CN105635754A (zh) | 在多个媒体流之间调整带宽的系统和方法 | |
EP3416335B1 (en) | Optimization method and system on basis of network status of push terminal and push terminal | |
CN100407708C (zh) | 一种即时通讯中音/视频分享的方法和系统 | |
CN109618170B (zh) | 基于网络编码的d2d实时视频流传输方法 | |
EP3127287B1 (en) | Signaling and operation of an mmtp de-capsulation buffer | |
CN109120974A (zh) | 一种音视频同步播放的方法及装置 | |
CN101931799A (zh) | 一种视频码流的平滑方法及装置 | |
CN103856787A (zh) | 基于公网的带解说音频回传的直播系统及其直播方法 | |
CN102685472A (zh) | 数据传输的方法、装置和系统 | |
CN114640886A (zh) | 自适应带宽的音视频传输方法、装置、计算机设备及介质 | |
CN112929704A (zh) | 数据传输方法、装置、电子设备以及存储介质 | |
CN108632679A (zh) | 一种多媒体数据传输的方法和一种视联网终端 | |
CN103929682A (zh) | 一种在视频直播系统中设置关键帧的方法及装置 | |
CN103826084A (zh) | 一种音频编码方法 | |
CN101090369B (zh) | 一种在流媒体系统中控制数据包发送速率的方法 | |
CN104333763A (zh) | 一种视频控制方法 | |
CN105611424A (zh) | 基于rudp的音视频可靠传输qos方法、系统 | |
CN114024787B (zh) | 智能家居的远程控制方法、装置、设备和存储介质 | |
CN105306970B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |