多媒体实时直播的方法和装置的制造方法

文档序号:10539596阅读:331来源:国知局
多媒体实时直播的方法和装置的制造方法
【专利摘要】本发明涉及通信技术领域,公开了多媒体实时直播的方法和装置,该方法包括:接收多媒体流;将接收的多媒体流转化为实时消息传输协议RTMP流;将所述RTMP流传输给服务器,以使所述服务器对所述RTMP流进行分发来实现多媒体流的实时直播。本发明能够将实时获得的多媒体传输给服务器,通过服务器分发实现多媒体的实时播放;此外,因为采用RTMP流进行多媒体传输,可以利用各种通信网络,承载多媒体数据,进而使用户能够在多种环境下进行多媒体实时播放。
【专利说明】
多媒体实时直播的方法和装置
技术领域
[0001]本发明涉及通信技术领域,具体地,涉及一种多媒体实时直播的方法和装置。
【背景技术】
[0002]随着智能终端技术的发展,用户进行视频拍摄和音频录音变得越来越容易。用户在完成视频拍摄或音频录音后,可能会希望将该视频或音频与他人分享。在此种情况下,需要解决如何与他人分享多媒体数据的问题。
[0003]相关技术中采用多种方式进行多媒体数据的分享。例如,在视频拍摄完成后,在即时通信工具中发布该视频,使得同一群组中的好友可以分享用户的视频。或者,在视频拍摄完成后,将视频发布在平台网站中,使得公众可以浏览到用户拍摄的视频。上述多媒体播放的方法,都是在用户完成多媒体数据录制之后进行共享,其无法实现对多媒体的实时播放。因此,针对现有技术需要提供一种能够实时播放多媒体的技术。

【发明内容】

[0004]本发明的目的是提供多媒体实时直播的方法和装置,以解决或者至少部分地解决上述技术问题。
[0005]为了实现上述目的,本发明提供一种多媒体实时直播的方法,该方法包括:接收多媒体流;将接收的多媒体流转化为实时消息传输协议RTMP流;将所述RTMP流传输给服务器,以使所述服务器对所述RTMP流进行分发来实现多媒体流的实时直播。
[0006]优选地,所述接收多媒体流包括:接收所述终端设备中拍摄组件拍摄的视频和/或音频数据流。
[0007]优选地,所述将接收的多媒体流转化为实时消息传输协议RTMP流包括:调用终端设备的操作系统中媒体记录器将接收的多媒体流编码成实时传输协议RTP流;对RTP流进行格式转换,将RTP流转换为RTMP流。
[0008]优选地,所述将所述RTMP流传输给服务器包括:在接收到开始指令后,获取服务器的IP地址和端口号;根据获取的服务器的IP地址和端口号与所述服务器建立连接;利用建立的连接将所述RTMP流传输给所述服务器。
[0009]优选地,所述方法还包括:接收到停止指令后,停止将所述RTMP流传输给所述服务器,并停止将接收的多媒体流转化为RTMP流。
[0010]根据本发明的另一方面,提供一种多媒体实时直播的装置,该装置包括:多媒体接收模块,用于接收多媒体流;数据转化模块,用于将接收的多媒体流转化为实时消息传输协议RTMP流;数据传输模块,用于将所述RTMP流传输给服务器,以使所述服务器对所述RTMP流进行分发来实现多媒体流的实时直播。
[0011]优选地,所述多媒体接收模块用于接收所述终端设备中拍摄组件拍摄的视频和/或音频数据流。
[0012]优选地,所述数据转化模块用于调用终端设备的操作系统中媒体记录器将接收的多媒体流编码成实时传输协议RTP流;对RTP流进行格式转换,将RTP流转换为RTMP流。
[0013]优选地,所述装置还包括:指令接收模块,用于接收开始指令;所述数据传输模块用于在所述指令接收模块接收到开始指令后,获取服务器的IP地址和端口号;根据获取的服务器的IP地址和端口号与所述服务器建立连接;利用建立的连接将所述RTMP流传输给所述服务器。
[0014]优选地,所述装置还包括:指令接收模块,用于接收停止指令;所述数据传输模块还用于在所述指令接收模块接收到停止指令后,停止将所述RTMP流传输给所述服务器;所述数据转化模块还用于在所述指令接收模块接收到停止指令后,停止将接收的多媒体流转化为RTMP流。
[0015]通过上述技术方案,在接收到多媒体流之后,将接收的多媒体流转化为RTMP(实时消息传输协议)流,将RTMP流传输给服务器,以使服务器对RTMP流进行分发来实现多媒体流的实时直播。如此,因为在接收多媒体流的同时使用RTMP将接收的多媒体传输给服务器,所以能够将实时获得的多媒体传输给服务器,通过服务器分发来实现多媒体的实时播放。此夕卜,因为采用RTMP流进行多媒体传输,可以利用各种通信网络,例如3G、4G的运营商网络、WIFI(无线局域网)网络,承载多媒体数据,进而使用户能够在多种环境下进行多媒体实时播放。
[0016]本发明的其它特征和优点将在随后的【具体实施方式】部分予以详细说明。
【附图说明】
[0017]附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0018]图1是根据本发明一【具体实施方式】的多媒体实时直播的方法的流程图;
[0019]图2是根据本发明一【具体实施方式】的将多媒体流转化为RTMP流的方法的流程图;
[0020]图3是根据本发明一【具体实施方式】的将RTMP流传输给服务器的方法的流程图;
[0021 ]图4是根据本发明一【具体实施方式】的应用场景示意图;
[0022]图5是根据本发明一【具体实施方式】的多媒体实时直播的方法的流程图;
[0023]图6是根据本发明一【具体实施方式】的多媒体实时直播的装置的结构图;
[0024]图7是根据本发明一【具体实施方式】的多媒体实时直播的装置的结构图;以及
[0025]图8是根据本发明一【具体实施方式】的多媒体实时直播的系统的结构图。
【具体实施方式】
[0026]以下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[0027]图1是根据本发明一【具体实施方式】的多媒体实时直播的方法的流程图,该方法可用于终端设备,所述终端设备可包括手机、PAD(平板电脑)、或PC(个人电脑)等。所述多媒体可包括视频、音频或音视频等。如图1所示,该方法可包括如下步骤S110-S130。
[0028]在步骤SllO中,接收多媒体流。
[0029]在一实施例中,所述接收多媒体流可包括接收终端设备中拍摄组件拍摄的视频和/或音频数据流。其中,拍摄组件可以包括摄像头(例如,前置摄像头或后置摄像头)和麦克风等能够进行音频、视频拍摄的组件。
[0030]下面以拍摄组件为摄像头,多媒体流为视频数据流为例,对上述步骤进行示例性说明。
[0031]在终端设备中安装APP(应用)。当APP开启后,调用终端设备中的摄像头,对周围环境进行拍摄。可替换地,可以在APP中设置拍摄按钮,当在APP开启后拍摄按钮被用户点击时,接收到开始指令;接收到开始指令后,调用终端设备中的摄像头,对周围环境进行拍摄。之后,APP接收摄像头拍摄的视频数据。可选择地,可以在调用摄像头进行视频拍摄时,在终端屏幕中实时显示拍摄到的视频画面。该视频画面可以全屏显示,也可以通过可缩放的窗口进行显示。
[0032]可替换地,可以在终端设备的相机应用中插入插件,当插件中启动按钮被点击后,接收到开始指令。接收到开始指令后,插件接收相机应用通过摄像头拍摄的视频数据流。
[0033]其中,每当接收到音频或视频中完整的一帧或多帧数据后,可开始进行如下所述的RTMP流转换过程。
[0034]上述说明为示例性说明,在上述步骤中可以接收各种拍摄组件拍摄的视频、音频或音视频数据流。例如,通过安装的APP或在已有的APP中插入插件,来接收麦克风接收到的音频数据流。
[0035]在步骤SI20中,将接收的多媒体流转化为RTMP流。
[0036]例如,可以通过终端设备中的处理芯片将接收的多媒体流转化为RTMP流。每当接收到音频或视频的一帧或多帧数据后,可开始进行转化为RTMP流的过程。以每秒25帧为例,每帧40毫秒,在接收多媒体流40毫秒之后,可以启动转化为RTMP流的过程。
[0037]在一实施例中,如图2所示,所述将接收的多媒体流转化为RTMP流包括如下步骤S122和步骤S124。
[0038]在步骤S122中,调用终端设备的操作系统中媒体记录器将接收的多媒体流编码成RTP 流。
[0039]在步骤S124中,对RTP流进行格式转换,将RTP流转换为RTMP流。
[0040]以终端设备中安装有安卓系统的情况为例,对本实施例进行示例性说明。在终端设备中,调用安卓的MediaRecorder(媒体记录器)将接收的视频、音频、或者音视频编码为RTP流。得到RTP流的数据后,等到RTP流的一个或多个数据包可以解析出一帧或多帧数据后,可开始进行RTMP转化,将RTP流转换为RTMP流。例如,通过FFmpeg(FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序)中的格式转换将RTP流转换为RTMP流。
[0041 ]在本实施例中,直接调用操作系统中媒体记录器将接收的多媒体流编码成RTP流,再通过格式转换将RTP流转换为RTMP流,如此,能够减少开发工作量,从而降低了开发成本,提尚了开发效率。
[0042]在步骤S130中,将RTMP流传输给服务器,以使服务器对RTMP流进行分发来实现多媒体流的实时直播。
[0043]RTMP可以通过TCP/IP或UDP/IP连接进行传输。
[0044]在一实施例中,如图3所示,所述将RTMP流传输给服务器包括如下步骤S132-S136。在步骤S132中,在接收到开始指令后,获取服务器的IP地址和端口号。在步骤S134中,根据获取的服务器的IP地址和端口号与服务器建立连接。在步骤S136中,利用建立的连接将RTMP流传输给服务器。
[0045]举例而言,在终端设备中安装APP,在APP中设置拍摄按钮,当在APP开启后拍摄按钮被用户点击时,接收到开始指令。在接收到开始指令后,获取服务器的IP地址和端口号。其中,可以直接从APP的配置文件中获得服务器的IP地址和端口号;也可以从APP的配置文件中获得服务器的域名,对服务器的域名进行域名解析,根据解析到的服务器IP地址与服务器协商获得端口号,根据IP地址和端口号与服务器进行传输层连接(例如,TCP/IP或UDP/IP连接),再利用建立的传输层连接将RTMP流传输给服务器。服务器可以包括直播的云平台服务器。服务器在接收到RTMP流后,可利用HLS(基于HTTP协议的流媒体解决方案,HTTPLive Streaming),对RTMP流进行分发。也就是,采用HLS技术,将多媒体流切分成小片TS并建立索引文件m3u8,然后利用m3u8进行多媒体流分发。进而通过服务器对终端设备拍摄的多媒体数据进行直播。
[0046]本领域所属技术人员应当理解,上述步骤SI 1和S130之间没有的时间顺序限制。例如,在终端设备中安装APP,在APP中设置拍摄按钮,当在APP开启后拍摄按钮被用户点击时,接收到开始指令,此时调用终端设备中的拍摄组件对周围环境进行拍摄,将拍摄的多媒体流转化为RTMP流进行缓存。在进行上述处理的同时,可获取服务器的IP地址和端口号,与服务器建立连接,之后读取缓存中的RTMP流,利用建立的连接将RTMP流发送给服务器。
[0047]在一实施例中,所述方法还可包括:接收到停止指令后,停止将RTMP流传输给服务器,并停止将接收的多媒体流转化为RTMP流。
[0048]举例而言,在终端设备中安装APP,在APP中设置停止按钮,当停止按钮被用户点击时,接收到停止指令;接收到停止指令后,停止将RTMP流传输给服务器,并停止将接收的多媒体流转化为RTMP流。可选择地,在接收到停止指令后,还可以停止接收多媒体流。例如,退出对拍摄组件的调用,并将屏幕中的视频画面显示窗口进行关闭。
[0049]采用本实施例中方法,能够将实时获得的多媒体传输给服务器,通过服务器分发实现多媒体的实时播放。此外,因为采用RTMP流进行多媒体传输,可以利用各种通信网络,例如3G、4G的运营商网络、WIFI(无线局域网)网络,承载多媒体数据,进而使用户能够在多种环境下进行多媒体实时播放。并且,可以通过直接调用操作系统中媒体记录器将接收的多媒体流编码成RTP流,再将RTP流转换为RTMP流,使得多媒体流到RTMP流的转换更加容易实现,降低了开发成本,提高了开发效率。
[0050]图4是根据本发明一【具体实施方式】的应用场景示意图。如图4所示,终端设备A通过网络与云服务器连接,云服务器通过网络将终端设备A的多媒体数据分发给终端设备I?η。其中,终端设备A中安装有安卓系统,在安卓系统中安装用于实现直播的ΑΡΡ,ΑΡΡ中设置有拍摄按钮和停止按钮,APP的配置文件中配置有服务器的IP地址和端口号。图5是根据本发明一【具体实施方式】的多媒体实时直播的方法的流程图,如图5所示,该方法包括如下步骤。
[0051]在步骤S510中,当拍摄按钮被点击时,接收到开始指令,调用摄像头进行视频拍摄,接收拍摄的视频数据,并获得服务器的IP地址和端口号,根据IP地址和端口号与云服务器建立连接。在步骤S520中,调用安卓系统中MediaRecorder将接收的多媒体流编码成RTP流。在步骤S530中,通过FFmpeg对RTP流进行格式转换,将RTP流转换为RTMP流。在步骤S540中,利用与云服务器建立的连接,将RTMP流传输给云服务器,以使云服务器对该RTMP流进行分发。在步骤S550中,当停止按钮被点击时,接收到停止指令,停止将RTMP流传输给服务器,并停止将接收的多媒体流转化为RTMP流,退出对摄像头的调用。
[0052]本实施例中对使用摄像头进行视频拍摄,将视频进行直播的方法进行示例性说明。采用麦克风进行音频录制,将音频进行直播,以及采用摄像头和麦克风进行音视频拍摄,对音视频进行直播的方法与此类似,在此不再赘述。
[0053]以上描述仅为本发明中方法进行了示例性说明,该说明不用于限定本发明。任何本领域所属技术人员能够理解的任何等同替换手段均在本发明的保护范围之内。
[0054]根据本发明还提供一种多媒体实时直播的方法,该方法包括:终端设备执行前述任一所述的方法;服务器接收到终端设备发送的RTMP流,对RTMP流进行分发以实现对多媒体的实时直播。
[0055]如如所述,在终?而设备中安装APPο当APP开启后,终?而设备调用摄像头对周围环境进行拍摄,接收多媒体流。终端设备调用安卓的MediaRecorder将接收的视频编码为RTP流,等到RTP流的一个或多个数据包可以解析出一帧或多帧数据后,开始进行RTMP转化,将RTP流转换为RTMP流。终端设备通过与服务器间的连接将RTMP流传输给服务器。服务器在接收到RTMP流后,可利用HLS(基于HTTP协议的流媒体解决方案,HTTP Live Streaming)将RTMP流分发给其他终端设备,进而实现对终端设备拍摄的多媒体流的实时直播。
[0056]图6是根据本发明一【具体实施方式】的多媒体实时直播的装置的结构图。所述终端设备可包括手机、PAD(平板电脑)、或PC(个人电脑)等。所述多媒体可包括视频、音频或音视频等。如图6所示,该装置包括如下模块:多媒体接收模块610,用于接收多媒体流;数据转化模块620,用于将接收的多媒体流转化为实时消息传输协议RTMP流;以及数据传输模块630,用于将RTMP流传输给服务器,以使服务器对RTMP流进行分发来实现多媒体流的实时直播。
[0057]在一实施例中,多媒体接收模块610用于接收终端设备中拍摄组件拍摄的视频和/或音频数据流。
[0058]在一实施例中,数据转化模块620用于调用终端设备的操作系统中媒体记录器将接收的多媒体流编码成实时传输协议RTP流;对RTP流进行格式转换,将RTP流转换为RTMP流。
[0059]在一实施例中,如图7所示,装置还包括:指令接收模块710。
[0060]指令接收模块710用于接收开始指令;数据传输模块630用于在指令接收模块710接收到开始指令后,获取服务器的IP地址和端口号;根据获取的服务器的IP地址和端口号与服务器建立连接;利用建立的连接将RTMP流传输给服务器。
[0061 ]在一实施例中,如图7所示,装置还包括:指令接收模块710,该指令接收模块710用于接收停止指令;数据传输模块630还用于在指令接收模块710接收到停止指令后,停止将RTMP流传输给服务器。数据转化模块620还用于在指令接收模块710接收到停止指令后,停止将接收的多媒体流转化为RTMP流。
[0062]下面以拍摄组件为摄像头,多媒体流为视频数据流为例,对上述装置进行示例性说明。
[0063]在终端设备中安装APP,在APP中设置拍摄按钮,当在APP开启后拍摄按钮被用户点击时,指令接收模块710接收到开始指令;在指令接收模块710接收到开始指令后,多媒体接收模块610调用摄像头进行视频拍摄,接收拍摄的视频数据,数据传输模块630获得服务器的IP地址和端口号,根据IP地址和端口号与云服务器建立连接。数据转化模块620调用安卓系统中MediaRecorder将接收的多媒体流编码成RTP流,通过FFmpeg对RTP流进行格式转换,将RTP流转换为RTMP流。数据传输模块630利用与云服务器建立的连接,将RTMP流传输给云服务器,以使云服务器对该RTMP流进行分发。当停止按钮被点击时,指令接收模块710接收到停止指令,数据传输模块630停止将RTMP流传输给服务器,数据转化模块620停止将接收的多媒体流转化为RTMP流,多媒体接收模块610退出对摄像头的调用。
[0064]采用本实施例中装置,能够将实时获得的多媒体传输给服务器,通过服务器分发实现多媒体的实时播放。此外,因为采用RTMP流进行多媒体传输,可以利用各种通信网络,例如3G、4G的运营商网络、WIFI(无线局域网)网络,承载多媒体数据,进而使用户能够在多种环境下进行多媒体实时播放。并且,可以通过直接调用操作系统中媒体记录器将接收的多媒体流编码成RTP流,再将RTP流转换为RTMP流,使得多媒体流到RTMP流的转换更加容易实现,降低了开发成本,提高了开发效率。
[0065]图8是根据本发明一【具体实施方式】的多媒体实时直播的系统的结构图。如图8所示,该系统包括:包括前述任一所述的装置的终端设备100,以及服务器200,用于接收终端设备100发送的RTMP流,对RTMP流进行分发以实现多媒体流的实时直播。
[0066]如前所述,多媒体接收模块610调用摄像头对周围环境进行拍摄,接收多媒体流。数据转化模块620调用安卓的MediaRecorder将接收的视频编码为RTP流,等到RTP流的一个或多个数据包可以解析出一帧或多帧数据后,开始进行RTMP转化,将RTP流转换为RTMP流。数据传输模块630通过与服务器200间的连接将RTMP流传输给服务器。服务器200在接收到RTMP流后,可利用HLS将RTMP流分发给其他终端设备,进而实现对终端设备100拍摄的多媒体流的实时直播。
[0067]以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0068]另外需要说明的是,在上述【具体实施方式】中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。
[0069]此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
【主权项】
1.一种多媒体实时直播的方法,用于终端设备,该方法包括: 接收多媒体流; 将接收的多媒体流转化为实时消息传输协议RTMP流; 将所述RTMP流传输给服务器,以使所述服务器对所述RTMP流进行分发来实现多媒体流的实时直播。2.根据权利要求1所述的方法,其特征在于,所述接收多媒体流包括: 接收所述终端设备中拍摄组件拍摄的视频和/或音频数据流。3.根据权利要求1或2所述的方法,其特征在于,所述将接收的多媒体流转化为实时消息传输协议RTMP流包括: 调用终端设备的操作系统中媒体记录器将接收的多媒体流编码成实时传输协议RTP流; 对RTP流进行格式转换,将RTP流转换为RTMP流。4.根据权利要求1或2所述的方法,其特征在于,所述将所述RTMP流传输给服务器包括: 在接收到开始指令后,获取服务器的IP地址和端口号; 根据获取的服务器的IP地址和端口号与所述服务器建立连接; 利用建立的连接将所述RTMP流传输给所述服务器。5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 接收到停止指令后,停止将所述RTMP流传输给所述服务器,并停止将接收的多媒体流转化为RTMP流。6.一种多媒体实时直播的装置,用于终端设备,该装置包括: 多媒体接收模块,用于接收多媒体流; 数据转化模块,用于将接收的多媒体流转化为实时消息传输协议RTMP流; 数据传输模块,用于将所述RTMP流传输给服务器,以使所述服务器对所述RTMP流进行分发来实现多媒体流的实时直播。7.根据权利要求6所述的装置,其特征在于,所述多媒体接收模块用于接收所述终端设备中拍摄组件拍摄的视频和/或音频数据流。8.根据权利要求6或7所述的装置,其特征在于,所述数据转化模块用于调用终端设备的操作系统中媒体记录器将接收的多媒体流编码成实时传输协议RTP流;对RTP流进行格式转换,将RTP流转换为RTMP流。9.根据权利要求6或7所述的装置,其特征在于,所述装置还包括: 指令接收模块,用于接收开始指令; 所述数据传输模块用于在所述指令接收模块接收到开始指令后,获取服务器的IP地址和端口号;根据获取的服务器的IP地址和端口号与所述服务器建立连接;利用建立的连接将所述RTMP流传输给所述服务器。10.根据权利要求6或7所述的装置,其特征在于,所述装置还包括: 指令接收模块,用于接收停止指令; 所述数据传输模块还用于在所述指令接收模块接收到停止指令后,停止将所述RTMP流传输给所述服务器; 所述数据转化模块还用于在所述指令接收模块接收到停止指令后,停止将接收的多媒 体流转化为RTMP流。
【文档编号】H04N21/6437GK105898620SQ201510843743
【公开日】2016年8月24日
【申请日】2015年11月26日
【发明人】王涛
【申请人】乐视移动智能信息技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1