如何在nginx服务器上实现多媒体流的录制和转码

如何在nginx服务器上实现多媒体流的录制和转码,第1张

1、首先需要说明的是,不能用exec命令。他会在客户端推流结束的同时自动终止调用的外部程序,结果就是最后ffmpeg无法进行完整的编码。该命令只适合将接到的流转推到其他地址。

2、应该使用exec_record_done配合record命令使用。即在录制结束之后自动对已录制的文件进行转码操作得到MP4文件。根据是否使用record_interval命令又有两种不同的情况。

2A、若不使用record_interval,则会在推流停止后(即record完全停止后)才进行转码,在这之前得不到任何输出

2B、若使用record_interval,即可设置每隔一段时间就重新开始录制,结合record_append on命令,可确保最后录制的视频都在一个文件中,否则就会给每段录制都生成一个单独的文件。使用这两个命令之后,转码也会相应地每隔一段时间就进行一次,但最后都输出(覆盖)到同一个文件中。优点是能近乎“实时”地进行转码,缺点是会重复调用ffmpeg,占用系统资源。

3、需要注意的是,以上两种方法最后得到的转码文件(的时长)是相同的。

4、nginxconf配置示例

[html] view plain copy

application hls {

live on;

hls on;

record all;

record_path /home/zhanghui/test;

#record_interval 10s;

#record_append on;

hls_path /tmp/app;

hls_fragment 5s;

# convert recorded file to mp4 format

exec_record_done '/usr/local/bin/ffmpeg' -y -i /home/zhanghui/test/livestreamflv -vcodec libx264 -f mp4 /home/zhanghui/test/test_recordmp4 2>>/home/zhanghui/test/test_recordlog;

}

你说的应该是指流媒体服务器

过去人们想从网络上观看影片或收听音乐,必须先将影音档案下载至计算机储存后,才可以点选播放,不但浪费下载时间、硬盘空间,也无法满足消费者使用方便及确切的需要。

Streaming Media-中文译为「(串)流媒体」——的发展,改变了网络上影音观赏的不便。串流媒体技术系利用网络上封包传输,将数据流不断地传送至使用者计算机上;我们可以将之想象成使用自来水时,只要打开水龙头,就可以汲取所需的水资源一般。当使用者想要观赏某部影片或收听某首歌曲时,只要连上网络,点选想要的影音档案,使用者马上可以享受到影音内容,就像使用遥控器看电视一样,随选随播,非常方便。当然,前提是使用者必须事先安装播放软件才行,网络上主流的多媒体播放软件有RealPlayer、Windows Media Player、QuickTime Player三款。

影音的内容呈现当然比文字来的真实生动,但容量也比文字内容大的多,一般如果使用低传输率(单位为bps-即每秒传输位单位,低传输率系指144kbps~566kbps,通称为窄频)来传送文字内容,还不至于造成网络流太大的负荷;但若以窄频来传送影音档案,就好像把大海的水流量注入小河川一样,是不堪负荷的。由此可以了解,多媒体影音呈现需仰赖宽频网络的传递,才能达到相辅相成的效果。

一台电脑可以用2个显示器的。

对显卡没有要求,最简单的方法,只需要买一个一进二出的HDMI分配器,将视频输入插在HDMI分配器上,同时分配器HDMI分配器分出两个视频输出,这样就可以在两个显示器上显示内容。HDMI分配器在各个网购网站均有销售。

HDMI系列分配器主要应用在HDTV、数字机顶盒、DVD、投影机的测试、零售、展示方面;数据中心控制;信息分配;会议室演示;教学环境和培训场所等对噪声、传输距离及安全有限制要求的领域。

扩展资料

HDMI的功能有:

1、具有信号缓冲、放大能力;

2、可以通过串接的方法实现超过15米的远距离传输(扩展);

3、可通过堆叠的方法提高HDMI输出端口的数量;

4、可同时显示支持720i,720p,1080i,1080p分辨率;

5、支持HDCP设备,支持高清视频,优质、清晰、高达1080p的HDTV分辨率;

6、完全支持HDMI13协议。

一台主机 二台显示器(或者三屏,四屏,六屏,八屏),一套键盘鼠标实现快速切换,各屏幕完全独立显示运行各自程序。广泛应用于炒股期货外汇交易看盘,高效办公,实时监控,出版编辑。

参考资料:

HDMI分配器

sewise流媒体服务器软件系统是一整套流媒体编码、分发和存储的软件系统,包含直播、点播、虚拟直播、剪切、转码、视频管理系统。这些软件支持多屏多系统播放,终端客户使用手机、平板、电脑、电视等终端,ios、安卓、windows、linux等系统,都能支持播放。 UMS通过使用RTMP协议向Flash Player传输或接收多种比特率的直播/点播媒体流、数据以及远程调用信息UMS服务器支持基于Adobe Flash/AIR技术平台的流媒体点播/直播及其他功能

AMS流媒体服务系统是一套完整的基于IP网络的音视频应用平台,采用模块化,跨平台的架构设计,采用自主研发的高性能流媒体服务引擎,支持多种主流流媒体协议(RTP、RTSP、RTMP、http、HLS等);支持直播、点播、录播等多种应用模式;支持PC机、手机、机顶盒等多种接入终端。方便用户建立多种应用模式

21 使用UMSMonitor配置UMS服务

UMSMonitor是一款专门用于管理Ultrant MediaServer服务器软件的工具软件,使用它可以方便地启动、停止、重启Ultrant Media Server服务,并可以设置各种运行参数。您可以通过鼠标右键点击Windows托盘右下角的蚂蚁图标来弹出系统菜单,见下图:

弹出上图菜单后,用鼠标左键选取“打开Ultrant Media Server Monitor”选项,即可弹出UMSMonitor的主控界面,如下图:

在UMSMonitor软件主控界面上,您可以通过左边的“服务状态”列表查看已经安装的UMS相关服务及其工作状态,要管理其中某一项服务,您需要先选中左边的列表项,然后找到右边的三个服务控制按钮,分别是“启动服务”、“停止服务”、“重启服务”,这三个按钮分别对应的功能是:启动UMS相关服务、停止UMS相关服务、重启UMS相关服务。 在UMSMonitor软件主控界面上,您需要先选中“Ultrant Media Server(UMS)”项,然后通过鼠标左键点击右边的“配置服务”按钮来进入Ultrant Media Server服务器软件配置界面。配置界面如下图:

配置完成后,您需要点击“应用”以确认修改,然后点击“确定”使修改立刻生效,此时软件会提示您是否重启Ultrant Media Server服务以使修改生效,选择“确定”是配置生效。

22 测试点播功能

要使用点播功能,您需要自己准备一个FLV格式的视频文件,并将其拷贝至任一媒体库路径下(媒体库路径可以通过UMSMonitor来添加),或将该FLV格式视频文件所在路径添加至媒体库路径。

视频文件及媒体库路径准备好后,请确保修改的设置已经生效,以及文件名没有冲突。如果您使用的是安装程序自带的Nginx Web服务器,请将nginx安装目录下html子文件夹中的vodhtml文件用记事本打开;如果您使用已有的Web服务器,请将Web服务器根目录下的UMS\vodhtml用记事本打开,找到下述代码:

soaddVariable('file','6roomsflv');

soaddVariable('start','0');

soaddVariable('streamer','rtmp://127001:1935/vod');

将127001改为您当前服务器的IP地址;如果您使用自己准备的FLV格式视频文件,请将vodhtml文件中上述代码中的“6roomsflv”改为您自己准备的视频文件名称。

如果您使用安装程序自带的Nginx Web服务器,您可以通过浏览器访问http://{服务器IP地址}/vodhtml来访问点播页面;如果您使用您的计算机原有的Web服务器,您可以通过浏览器访问http://{服务器IP地址}/UMS/vodhtml来访问点播页面。

播放页面正常出现后,点击播放器即可播放。

23 测试直播功能

您可以使用Adobe公司提供的免费软件Adobe Flash Media Live Encoder31来测试UltrantMedia Server软件的直播功能。

231 安装Adobe Flash Media Live Encoder31

安装过程及帮助详见Adobe官方网站。

232 准备摄像设备

您可以使用USB网络摄像头或专业的视频采集卡(需要Adobe Flash Media Live Encoder31程序能够识别)来作为视频源。

233 使用Adobe Flash Media Live Encoder31发布直播流

打开Adobe Flash MediaLive Encoder31软件,确保视频采集设备和音频采集设备能正常工作,正常工作的硬件设备看似应该如下图所示:

请正确设置好坐图红色矩形框所标注的位置,其中,FMS URL位置处的URL地址应该为”rtmp://{UltrantMedia Server所在服务器IP地址}/live”,Stream位置处应该为”livestream”。设置完成后,要首先按下”Connect”按钮,如果“Connect”按钮上的文字变成“Disconnect”,则表明连接成功;然后按最下边红色矩形框标注的“Start”按钮,以启动直播发布。正常工作的Adobe Flash Media LiveEncoder31看似应该如下图所示:

234 查看直播视频

如果您使用的是安装程序自带的NginxWeb服务器,请将nginx安装目录下html子文件夹中的livehtml文件用记事本打开;如果您使用已有的Web服务器,请将Web服务器根目录下的UMS\livehtml文件用记事本打开,找到下述代码:

soaddVariable('file','livestream');

soaddVariable('streamer','rtmp://127001:1935/live');

将127001改为您当前服务器的IP地址;如果您重新命名了发布的视频流的名称,请将livehtml文件中上述代码中的“livestream”改为您自己命名的视频流的名称。

如果您使用安装程序自带的Nginx Web服务器,您可以通过浏览器访问http://{服务器IP地址}/livehtml来访问直播页面;如果您使用您的计算机原有的Web服务器,您可以通过浏览器访问http://{服务器IP地址}/UMS/livehtml来访问直播页面。 UMS支持可伸缩的无限级连直播集群组网功能,通过简单的可视化配置,您就可以将多台装有UMS服务器软件的服务器组成一个统一的直播网络群,其中的每一个节点都可以对外提供一致的直播服务。

31使用UMSMonitor管理工具配置直播集群组网功能

打开UMSMonitor的服务配置界面,找到其中的”CDN配置”选项页,如下图:

如果您选择“使用直播流转发服务器功能”,则UMS可以作为直播流转发服务器使用。当您选择“应用”配置,选择“确定”并重启服务使配置生效后,您当前配置的UMS服务器软件将自动连接到上级UMS直播源服务器的同步地址和端口,以获取直播同步信息。注意:您必须启用上级UMS服务器的“使用直播流服务器功能”,也就是启用上级UMS服务器同等的上述配置页面的下半部分选项。只有在与上级UMS服务器的同步端口和同步口令一致的情况下,当前配置的UMS服务器才能连接到上级直播源服务器的同步端口,才能进行直播信息同步。

“上级直播源服务器服务地址”理论上与“上级直播源服务器同步地址”是一致的,都是上级服务器的地址(当设置UMS的对外视频直播服务IP与UMS对外直播同步服务IP不一致的情况除外),“上级直播源服务器服务端口”就是上级UMS服务器在UMSMonitor配置工具服务配置页面中的“基本配置”页面上的“IP地址和端口”栏中设置的监听端口,上级UMS通过这个端口对外提供视频数据直播服务。当前配置的UMS服务器也是从上级服务器的对外视频数据直播服务端口获取实时视频直播数据,并经由本地转发的。

启用本地的“使用直播流源服务器功能”后,当前配置的UMS服务器即可作为直播源服务器,为下级UMS服务器提供直播信息同步服务和直播视频流传输服务。

UMS服务器在进行上下级组网同步直播信息和直播数据流的同时,还能对用户提供视音频数据的点播和直播功能。下图描绘的是使用UMS进行直播组网后的效果图:

从版本189开始,Ultrant Media Server引入了一种新的服务器程序,即媒体内容访问控制服务器(UMAS,即Ultrant Media Access Service)。UMAS为Ultrant Media Server服务器系统提供了强大而灵活的网络授权功能,可以有效地保护您的媒体内容。

41 UMAS服务模式介绍

UMAS是一个口令生成与管理服务器软件。UMAS提供访问口令的生成、管理与分发功能,并提供友好的开发集成接口。UMAS与UMS对外服务主程序的协作图如下:

或见下图:

42 配置UMAS及UMS以使用访问控制功能

您可以通过UMSMonitor程序来配置UMAS服务,以及配置UMS与UMAS的连接参数。

421配置UMAS服务

请首先确保UMAS服务已经安装。打开UMSMonitor配置工具(方法见22),您可以从已安装的服务列表中查看UMAS服务是否已经安装。要配置UMAS服务,先用鼠标选中Ulrant Media Access Service(UMAS)行,点击面板右边的“配置服务”按钮,即会弹出UMAS服务的配置页面,如下图。其中,口令分发服务相关参数影响UMS主服务程序与UMAS服务的连接,包括口令分发服务配置栏目和口令分发服务连接设置栏目;口令获取服务相关参数影响通过HTTP连接接口创建并返回口令功能,该部分设置包括口令获取服务配置和口令获取服务连接设置栏目。要获取各个参数的使用方法,请将鼠标移动至相关文本框,您可以通过界面提示信息来修改参数。

注意:这里设置的IP地址是UMAS服务要绑定的IP地址,通常设置为0000,即绑定任意地址;两个端口值分别是UMAS要监听的口令分发服务端口和口令获取服务端口,配置适当的UMS服务主程序将连接到口令分发服务端口与UMAS进行通信,Web系统集成则需要后端服务脚本通过口令获取服务端口创建和获取访问控制口令。与上述两个端口对应的口令则是服务的接入口令。

422配置UMS以连接UMAS

要配置UMS服务,请打开UMSMonitor配置工具(方法见22),先用鼠标选中Ulrant Media Server(UMS)行,点击面板右边的“配置服务”按钮,即会弹出UMS服务的配置页面,再选中“综合配置”页面,如下图所示。

上图中,右下角的“媒体访问控制配置”包含了需要配置的若干选项。其中,UMAS服务器地址是UMAS服务器软件对外提供服务的IP地址(注意:这个IP地址跟章节321配置的UMAS的绑定地址不是一回事);UMAS服务器端口应与章节321中配置的分发服务器端口一致;UMAS服务器口令应与章节321中配置的分发服务器口令一致。

注意:一旦您选定连接访问控制服务器(UMAS)选项,对于所有访问该UMS服务的连接,均需提供正确的访问控制口令才能访问媒体内容,否则将无法继续访问媒体内容。该功能必须与UMAS一起使用,您需要参照章节321和章节33来设计您的内容管理系统。

43 UMAS内部集成接口

UMAS为方便与现有web系统集成,设计为通过标准HTTP请求创建并获取口令,在此同时,UMAS会自动将新生成的访问口令分发到连接至自身的UMS服务器。UMAS与web系统以及UMS主服务器程序可以分别部署在不同的硬件服务器上。 参数中文释义 参数项 说明 页面 gettoken UMAS提供的获取访问口令的接口页面(内部虚拟页面)。 服务接入口令 token 外部应用访问口令获取接口必须提供的接入口令,该口令通过UMSMonitor程序设置,是为了防止不合法用户使用口令获取功能。 应用名称 app 设置要获取的口令所能访问的应用名称,如果不设置该参数,则获取的口令可以访问所有可用应用。 有效时间 duration 设置要获取的口令的有效时间,超过有效时间的访问口令将不再起作用。(数值类型:整数;单位:秒) 使用次数 limit 设置要获取的口令的使用次数,超过使用次数的访问口令将不再起作用。(数值类型:整数;单位:次)。

注意:如果一个访问口令在有效次数内超过有效时间,其仍会失去有效性。 返回格式 format 设置UMAS返回的口令的格式。(数值类型:枚举(xml和json),如果不设置则返回文本类型)。返回的xml格式举例:

<xml version =10 encoding=utf-8>

<Token>CiQY56Fy6X65ltXH</Token>

返回的json格式举例:

{Token:xDDcnR4V07Iqyn3n}

返回的文本格式举例:

39VvZGpnrmVcsSiZ 44接口使用示例

在使用之前请先确保UMAS服务器程序在正常运行,并开启相关的防火墙端口。您需要先向UMAS管理员获取UMAS对外提供服务的IP地址和端口值,以及服务访问口令,通过下述形式访问UMAS服务以获取媒体访问控制口令(protocol仅支持HTTP):

{protocol}://{umas_ip}:{umas_port}/gettokentoken={umas_token}&app=vod&duration=100&limit=10&format=xml

45媒体访问控制口令的使用

媒体访问控制口令是一个16位的字符串,在播放器与UMS主服务器程序建立RTMP连接的时候使用,使用方式如下(protocol仅支持rtmp、rtmpe):

{protocol}://{ums_ip}:{ums_port}/{app_name}token={从UMAS获取的媒体访问控制口令}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在nginx服务器上实现多媒体流的录制和转码

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情