一种rtsp直播录像方法及系统的制作方法

文档序号:10627205阅读:779来源:国知局
一种rtsp直播录像方法及系统的制作方法
【专利摘要】本发明公开了一种RTSP直播录像方法及系统,所述方法包括:获取摄像头和话筒采集的音视频信号;将所述音视频信号根据预先设定的参数编码形成音视频文件;获取所述音视频文件并编译成为RTSP流数据;分发所述RTSP流数据。本发明实施例的方案,能够简易方式实现RTSP直播录像功能,满足用户在非专业设备情况下对直播录像的需求,极大的提高了用户体验度。
【专利说明】
一种RTSP直播录像方法及系统
技术领域
[0001] 本发明涉及互联网技术领域,特别涉及一种RTSP直播录像方法及系统。
【背景技术】
[0002] 视频直播系统是把现场的信号(摄像机)、电视信号(如电视节目、录像带)等进 行实时采集编码成标准流式数据(FLV、WMV)进行管理、分类等传送到服务器上由页面形式 发布出去,供大家通过网络实时观看到现场节目或电视节目。
[0003] 视频直播系统通常包括如下功能:
[0004] 1、采集编码管理
[0005] 对现场视频信号(如摄像机)、电视信号(如电视节目)等进行实时采集编码成 标准流式数据(如WMV、FLV)支持直播或录播应用。系统支持多码流、多格式数据的编码管 理。
[0006] 2、直播录播管理
[0007] 实现对直播信号源的自动化采集、上传、存储和发布功能,支持多路电视节目的直 播录播及节目的分段存储等。直播时的节目可以自动录制、上传、发布、发布后的内容直接 上传到V0D服务供点播应用。
[0008] 3、虚拟直播
[0009] 利用已有的电视信源、视频节目库、广告库等自由创建任意多虚拟网络电视频道, 支持实现文件虚拟直播、文件与实时采集信号的混合直播等。
[0010] 4、广告插播
[0011] 可实现广告与流式媒体无缝衔接,提供多样化的广告插入功能,包括定时插入广 告、文字广告、动画广告等多种方式。
[0012] 5、直播流加密
[0013] 可以对直播节目进行数字版权加密认证(DRM),即使知道真实的直播IP地址,非 法用户也无法收看直播节目。
[0014] 6、用户认证管理
[0015] 只有合法的用户才能看到直播节目。系统验证可以做到视频服务器和web服务器 的两次认证,也可以根据
[0016] 需要只进行一次认证。
[0017] 7、系统监控
[0018] 可实时监控服务器当前的运行状态、用户访问情况的动态实时监控等。
[0019] 8、统计/日志管理
[0020] 可以记录日志,对节目收视率、访问用户情况进行独立或组合统计,并以图表方式 汇总等。
[0021] 9、内容分发管理
[0022] 通过定义内容分发策略,实施多个服务器之间的分布式中心流媒体服务器对边缘 服务器流媒体内容同步分发传输法制;有效支持大容量用户直播应用。
[0023] 10、负载均衡管理
[0024] 提供高效的流量平衡和用户数限制管理机制,支持多种负载均衡伺候。
[0025] 现有技术中,视频直播系统需要很多硬件设备及专业的采集设备才行,例如,需要 专业的摄像机、处理系统、采编系统等才可以完成,管理和应用都不方便。因而,亟需要一种 新的可以满足用户对于直播系统简化应用需要的方案,以提高用户体验度。

【发明内容】

[0026] 本发明提供一种RTSP直播录像方法及系统,用以解决现有技术中没有简化的直 播系统的问题。
[0027] 本发明提供一种RTSP直播录像方法,包括:
[0028] 获取摄像头和话筒采集的音视频信号;
[0029] 将所述音视频信号根据预先设定的参数编码形成音视频文件;
[0030] 获取所述音视频文件并编译成为RTSP流数据;
[0031] 分发所述RTSP流数据。
[0032] 所述方法还包括:
[0033] 通过FFmpeg编码软件调用所述摄像头和话筒并获取音视频信号。
[0034] 所述方法还包括:
[0035] 所述预先设定的参数包括采集音视频分辨率及码率;根据所述采集音视频分辨率 及码率编码所述音视频信号形成音视频文件。
[0036] 所述方法还包括:
[0037] 将所述音视频文件根据预设的时长分段读取到共享内存,从所述共享内存调用所 述音视频文件的分段。
[0038] 所述方法还包括:
[0039] 通过Live555软件读取共享内存中的音视频文件分段并编译成为RTSP流数据。
[0040] 一种RTSP直播录像系统,包括:
[0041] 采集单元,用于获取摄像头和话筒采集的音视频信号;
[0042] 编码单元,用于将所述音视频信号根据预先设定的参数编码形成音视频文件;
[0043] 编译单元,用于获取所述音视频文件并编译成为RTSP流数据;
[0044] 分发单元,用于分发所述RTSP流数据。
[0045] 所述系统还包括:
[0046] 摄像头单元,用于采集视频信息;
[0047] 话筒单元,用于采集音频信息。
[0048] 所述系统还包括:
[0049] 参数设定单元,用于设定编码参数;
[0050] 所述编译单元,根据所述编码参数编码所述音视频信号形成音视频文件。
[0051] 所述系统还包括:
[0052] 共享内存单元,用于将所述音视频文件根据预设的时长分段读取到共享内存;从 所述共享内存调用所述音视频文件的分段。
[0053] 本发明实施例获取摄像头和话筒采集的音视频信号;将所述音视频信号根据预先 设定的参数编码形成音视频文件;获取所述音视频文件并编译成为RTSP流数据;分发所述 RTSP流数据。本发明实施例的方案,能够简易方式实现RTSP直播录像功能,满足用户在非 专业设备情况下对直播录像的需求,极大的提高了用户体验度。
[0054] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0055] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】
[0056] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0057] 图1为本发明实施例1提供的一种RTSP直播录像方法原理流程图;
[0058] 图2为本发明实施例3提供的一种RTSP直播录像系统结构示意图。
【具体实施方式】
[0059] 以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实 施例仅用于说明和解释本发明,并不用于限定本发明。
[0060] 如图1所示,为本发明实施例1提供的一种RTSP直播录像方法原理流程图,其中,
[0061] 步骤11,获取摄像头和话筒采集的音视频信号。
[0062] 对于音视频数据的采集,首先需要通过摄像头和话筒采集音视频信号。摄像头采 集视频信号,话筒采集音频信号。音视频信号经过话筒和摄像头采集后,统一发送到系统 中。
[0063] 出于简易化的考虑,这里的摄像头和话筒可以是普通非专业的摄像头和话筒,包 括USB接口的摄像头和话筒等。首先用USB摄像头及话筒接到Linux主机上。系统编译安 装FFmpeg编码软件,编译好后用FFmpeg调用本地摄像头及话筒进行音视频信号采集。音 视频信号的采集根据实际需求指定采集视频分辨率及视频码率。这里的采集视频分辨率及 视频码率可以预先设定,也可以根据需要随时调整。
[0064] FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算 机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。 它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质 量,libavcodec里很多codec都是从头开发的。
[0065] FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行, 包括町11(1〇¥8、]\^〇03乂等。这个项目最早由?&131';^6 13611&1(1发起,现在由組(311已61 Niedermayer维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是 放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的〃FF〃代表 ''Fast Forward'、
[0066] FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算 机程序。它包括了领先的音/视频编码库libavcodec等。
[0067] libavformat :用于各种音视频封装格式的生成和解析,包括获取解码所需信息以 生成解码上下文结构
[0068] 和读取首视频帧等功能;
[0069] libavcodec :用于各种类型声音/图像编解码;
[0070] libavutil :包含一些公共的工具函数;
[0071] libswscale :用于视频场景比例缩放、色彩映射转换;
[0072] libpostproc :用于后期效果处理;
[0073] FFmpeg :该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等;
[0074] ffsever :-个HTTP多媒体即时广播串流服务器;
[0075] ffplay :是一个简单的播放器,使用FFmpeg库解析和解码,通过SDL显示。
[0076] FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加 水印等。
[0077] FFmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像, 还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器, 支持直播应用。
[0078] FFmpeg在Linux下的视频采集在Linux平台上,FFmpeg对V4L2的视频设备提供 了很好的支持,如:
[0079] ./FFmpeg-t l〇-f video41inux2-s 176*144-r 8-i/dev/video〇-vcodec h263-frtp rtp://192. 168. 1. 105:5060>/tmp/FFmpeg. sdp
[0080] 以上命令表不:米集10秒钟视频,对video41inux2视频设备进彳丁米集,米集 QCIF(176*144)的视频,每秒8帧,视频设备为/dev/videoO,视频编码为h263,输出格式为 RTP,后面定义了 IP地址及端口,将该码流所对应的SDP文件重定向到/tmp/FFmpeg. sdp 中,将此SDP文件上传到流媒体服务器就可以实现直播了。
[0081] FFmpeg在windows下的视频采集在windows下关于FFmpeg视频采集的资料非 常少,但是FFmpeg还是支持windows下视频采集的。FFmpeg支持windows下video for windows (VFW)设备的视频采集,不过VFW设备已经过时,正在被WDM的视频设备所取代,但 是FFmpeg还没有支持WDM的计划,不过好像有将WDM转为VFW的工具,因此FFmpeg还是可 以在windows下进行视频采集的。
[0082] FFmpeg视频转换功能。视频格式转换,比如可以将多种视频格式转换为flv格式, 可不是视频信号转换。
[0083] FFmpeg可以轻易地实现多种视频格式之间的相互转换(wma, rm, avi, mod等),例 如可以将摄录下的视频avi等转成视频网站所采用的flv格式。
[0084] 对于选定的视频,截取指定时间的缩略图。视频抓图,获取静态图和动态图,不提 倡抓gif文件;因为抓出的gif文件大而播放不流畅。
[0085] 可以使用FFmpeg视频添加水印(logo)。
[0086] 本步骤中,主要是通过Ffmpeg获取摄像头和话筒采集的音视频信号并存储。
[0087] 步骤12,将音视频信号根据预先设定的参数编码形成音视频文件。
[0088] 音视频信号需要根据预先设定的参数进行重新编码形成音视频文件。预先设定的 参数是根据需要设定的,包括采集音视频分辨率及码率等。根据这些参数,可以对采集到的 音视频信号进行编码形成新的音视频文件。
[0089] 通常,音视频文件会写入共享内存中去,共享内存中存储1分钟视频,内存中的视 频数据会不断刷新覆盖。也就是说,音视频文件存储后,会根据预设的时长分段读取到共享 内存,从所述共享内存调用所述音视频文件的分段。例如,可以以1分钟为预设时长,则音 视频文件会以每1分钟的内容为单位存储到共享内存中。后续操作同样需要从共享内存中 分别以1分钟为单位获取音视频文件。
[0090] 步骤13,获取音视频文件并编译成为RTSP流数据。
[0091] Live555是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标 准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格 式的音视频数据的流化、接收和处理等支持,包括MPEG、H. 263+、DV、JPEG视频和多种音频 编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。目前,Live555已 经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、MPlayer。
[0092] Live555 Streaming Media 整体框架如下:
[0093] UsageEnvironment模块是对系统环境的抽象,包括抽象类UsageEnvironment 和TaskScheduler。UsageEnvironment主要用于消息的输入输出和用户交互功能; TaskScheduler实现事件的异步处理、事件处理函数的注册等,它通过维护一个异步读取源 实现对诸如通信消息到达等事件的处理,通过使用DelayQueue实现对其他注册函数的延 时调度。该模块还包含一个HashTable类,在整个项目中都可以用到它。程序设计者通过 自定义该抽象了类UsageEnvironment和TaskScheduler类的子类,就可以在特定环境(如 GUI环境)中运行,不需要进行过多的修改。
[0094] BasicUsageEnvironment 模块是 UsageEnvironment 的一个控制台应用的实现。它 针对控制台的输入输出和信号响应进行具体实现。
[0095] GroupSock模块用于实现数据包的发送和接收。GroupSock主要被设计用以支持 多播,但它也完全支持单播通信。
[0096] LiveMedia模块是Live555最重要的模块。该模块声明了一个抽象类Medium,其 他所有类都派生自该类,下面简要介绍这些类:
[0097] 0 RTSPClient :该类实现RTSP请求的发送和响应的解析,同时根据解析的结果创 建对应的RTP会话。
[0098] 0 MediaSession :用于表不一个RTP会话,一个MediaSession可能包含多个子会 话(MediaSubSession),子会话可以是音频子会话、视频子会话等。
[0099] 0 RTCPInstance :该类实现RTCP协议的通信。
[0100] 0 Source和Sink :这两个概念类似DirectShow中的Filter。Source抽象了数据 源,比如通过RTP读取数据。Sink是数据消费者的抽象,比如把接收到数据存储到文件,该 文件就是一个Sink。数据的流动可能经过多个Source和Sink。MediaSink是各种类型的 Sink的基类,MediaSource是各种类型Source的基类,各种类型的流媒体格式和编码的支 持即是通过对这两个类的派生实现的。Source和Sink通过RTP子会话(MediaSubSession) 联系在一起。
[0101] 本步骤中,编译安装Live555软件(需要用到liv555 RTSP库),读取共享内存中 的视频调用Live555 RTSP库直接做RTSP流,这时视频直播就实时发布出去了。
[0102] 步骤14,分发RTSP流数据。
[0103] 分发RTSP流数据的目的在于向用户直播,用户通过播放器输入RTSP流地址即可 观看直播视频了。
[0104] 本发明实施例2提供的一种RTSP直播录像方法,其中,
[0105] 首先用USB摄像头及话筒接到Linux主机上。
[0106] 系统编译安装fTmpeg编码软件,编译好后用fTmpeg调用本地摄像头及话筒设备, 需指定采集视频分辨率,及视频码率,然后存储成视频文件,此时该文件会不断被写入。
[0107] 读取该文件并写入共享内存中去,内存中存储1分钟视频,内存中的视频数据会 不断刷新覆盖。
[0108] 编译安装Live555软件(需要用到liv555 RTSP库)。
[0109] 读取共享内存中的视频调用Live555 RTSP库直接做RTSP流分发,这时视频直播 就实时发布出去了。
[0110] 用户通过播放器输入RTSP流地址即可观看直播视频了。
[0111] 如图2所示,为本发明实施例3提供的一种RTSP直播录像系统结构示意图,其中,
[0112] 采集单元31,用于获取摄像头和话筒采集的音视频信号;
[0113] 编码单元32,用于将所述音视频信号根据预先设定的参数编码形成音视频文件;
[0114] 编译单元33,用于获取所述音视频文件并编译成为RTSP流数据;
[0115] 分发单元34,用于分发所述RTSP流数据。
[0116] 特别的,上述系统还包括:
[0117] 摄像头单元35,用于采集视频信息;
[0118] 话筒单元36,用于采集音频信息。
[0119] 特别的,上述系统还包括:
[0120] 参数设定单元37,用于设定编码参数;
[0121] 所述编译单元,根据所述编码参数编码所述音视频信号形成音视频文件。
[0122] 特别的,上述系统还包括:
[0123] 共享内存单元38,用于将所述音视频文件根据预设的时长分段读取到共享内存; 从所述共享内存调用所述音视频文件的分段。
[0124] 综上所述,本发明实施例获取摄像头和话筒采集的音视频信号;将所述音视频信 号根据预先设定的参数编码形成音视频文件;获取所述音视频文件并编译成为RTSP流数 据;分发所述RTSP流数据。本发明实施例的方案,能够简易方式实现RTSP直播录像功能, 满足用户在非专业设备情况下对直播录像的需求,极大的提高了用户体验度。
[0125] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序 产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形 式。
[0126] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一 流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算 机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理 器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生 用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能 的装置。
[0127] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
[0128] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图 一个方框或多个方框中指定的功能的步骤。
[0129] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1. 一种RTSP直播录像方法,其特征在于,包括: 获取摄像头和话筒采集的音视频信号; 将所述音视频信号根据预先设定的参数编码形成音视频文件; 获取所述音视频文件并编译成为RTSP流数据; 分发所述RTSP流数据。2. 如权利要求1所述的方法,其特征在于,所述方法还包括: 通过FFmpeg编码软件调用所述摄像头和话筒并获取音视频信号。3. 如权利要求1所述的方法,其特征在于,所述方法还包括: 所述预先设定的参数包括采集音视频分辨率及码率;根据所述采集音视频分辨率及码 率编码所述音视频信号形成音视频文件。4. 如权利要求1所述的方法,其特征在于,所述方法还包括: 将所述音视频文件根据预设的时长分段读取到共享内存,从所述共享内存调用所述音 视频文件的分段。5. 如权利要求4所述的方法,其特征在于,所述方法还包括: 通过Live555软件读取共享内存中的音视频文件分段并编译成为RTSP流数据。6. -种RTSP直播录像系统,其特征在于,包括: 采集单元,用于获取摄像头和话筒采集的音视频信号; 编码单元,用于将所述音视频信号根据预先设定的参数编码形成音视频文件; 编译单元,用于获取所述音视频文件并编译成为RTSP流数据; 分发单元,用于分发所述RTSP流数据。7. 如权利要求6所述的系统,其特征在于,所述系统还包括: 摄像头单元,用于采集视频信息; 话筒单元,用于采集音频信息。8. 如权利要求6所述的系统,其特征在于,所述系统还包括: 参数设定单元,用于设定编码参数; 所述编译单元,根据所述编码参数编码所述音视频信号形成音视频文件。9. 如权利要求6所述的系统,其特征在于,所述系统还包括: 共享内存单元,用于将所述音视频文件根据预设的时长分段读取到共享内存;从所述 共享内存调用所述音视频文件的分段。
【文档编号】H04N21/643GK105992013SQ201510060660
【公开日】2016年10月5日
【申请日】2015年2月5日
【发明人】张新亮
【申请人】天脉聚源(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1