如何通过RTMP将流推送给Wowza Stream Engine 4
这个部分描述了建立一个直播应用的过程以及Application.xml文件中的相关配置。
创建一个应用文件夹[install-dir]/applications/live。
创建一个配置文件夹[install-dir]/conf/live,并将[install-dir]/conf/Application.xml拷贝到这个新的文件夹下。
打开并编辑这个新拷贝的Application.xml文件,按下面的描述修改配置(可能有些配置已经是配置好的):
注意: 点击这里可以下载一个已经有默认配置的Application.xml。
将Streams/StreamType属性设置为:
Code:
live
将HTTPStreamers属性设置为:
Code:
cupertinostreaming,smoothstreaming,sanjosestreaming
将Streams/LiveStreamPacketizers属性设置为:
Code:
cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer
将RTP/Authentication/PlayMethod属性设置为:
Code:
none
打开并编辑[install-dir]/conf/publish.password文件,添加一个username和password,用来控制RTSP/RTP推送时对wowza的访问(下面是一个username为myuser,password为mypassword的文件例子):
Code:
# Publish password file (format [username][space][password])
# username password
myuser mypassword
启动Wowza Stream Engine 4
推送
在你的编码器上输入下面的信息,然后再点击Publish或Start按钮:
Host Address: [wowza-ip-address]:1935
Stream Name: live/myStream.sdp
注意: 关于在编码器上向Wowza Media Server推送直播流的具体操作依据编码器的不同而不同。要了解更多如何在编码器上推送直播流,请联系你的编码器厂家。
播放
注意:在下面的例子中,[wowza-ip-address] 是运行Wowza Stream Engine 4的IP地址或域名。
Adobe Flash Player (RTMP)
针对Wowza Media Server 3.5.0及更高版本,用浏览器打开[install-dir]/examples/LiveVideoStreaming/FlashRTMPPlayer/player.html,输入下面的信息,再点击Connect按钮。
Server: rtmp://[wowza-ip-address]/live
Stream: myStream
如果要从远程电脑上播放这个直播流,你只要将FlashRTMPPlayer文件夹拷贝到一个web server上,然后用浏览器访问: http:///FlashRTMPPlayer/player.html即可。
Adobe Flash Player (San Jose/Adobe HDS)
针对Wowza Media Server 3.5.0及更高版本,用浏览器打开[install-dir]/examples/LiveVideoStreaming/FlashHTTPPlayer/player.html,输入下面的信息,再点击Connect按钮。
如果要从远程电脑上播放这个直播流,你只要将FlashHTTPPlayer文件夹拷贝到一个web server上,然后用浏览器访问: http:///FlashHTTPPlayer/player.html即可。
注意: 要使用HDS播放这个直播流,你必须采用一个基于OSMF的Flash播放器。
Apple iOS device (Cupertino/Apple HLS)
在苹果设备上的Safari®web浏览器上打开下面的URL:
URL: http://[wowza-ip-address]:1935/live/myStream/playlist.m3u8
注意: The Apple®iPhone®3GS (及更早的设备) 以及iPod touch®终端需要视频的编码格式为H.264 format (Baseline profile level 3 或更低) 以及音频编码格式为AAC或MP3立体声。
注意:你也可以在一台Mac OS® X Snow Leopard 10.6 或更高版本的电脑上用Safari web 浏览器或QuickTime 10.x播放这个直播流。
Microsoft Silverlight (Smooth Streaming)
针对Wowza Media Server 3.5.0及更高版本,用浏览器打开[install-dir]/examples/LiveVideoStreaming/SilverlightPlayer/player.html,输入下面的信息,再点击Connect按钮。
Stream: http://[wowza-ip-address]:1935/live/myStream/Manifest
如果要从远程电脑上播放这个直播流,你只要将SilverlightPlayer文件夹拷贝到一个web server上,再访问: http:///SilverlightPlayer/player.html。
注意: The Microsoft® Silverlight® 播放器需要音频和视频同时存在。针对直播流,关键帧的频率(可以在编码器上设置或者叫做gop/fps)必须在1到4秒之间(推荐采用2秒)。只要超过4秒播放就会停止。
RTSP/RTP player
在RTSP/RTP播放器中输入下面的URL:
URL: rtsp://[wowza-ip-address]:1935/live/myStream
如何在多个Wowza Streaming Engine之间实现负载均衡
Wowza Streaming Engine 4 (著名Wowza Media Server®)高性能、扩展流媒体服务器软件支持直播、VOD、线视频聊、远程录制功能 支持种播放器技术包括: Adobe® HTTP Dynamic Streaming (HDS). Adobe Flash® 播放器Apple® HTTP Live Streaming (HLS). iPhone®, iPad®, iPod touch®, Safari® 浏览器, QuickTime® 播放器Microsoft® Smooth Streaming. Microsoft Silverlight®MPEG-DASH streaming. DASH clients.Real Time Streaming Protocol (RTSP/RTP). QuickTime 播放器, VLC 媒体播放器, 及许移终端MPEG-2 Transport Streams (MPEG-TS). 机顶盒IPTV 解决案安装JavaWowza Streaming Engine 4 基于Java 6 ( 1.6) Java 7 ( 1.7)应用程序需要先安装Java Runtime Environment (JRE) 6 或版本 Wowza Streaming Engine使用面Java安装包: Java Development Kit (JDK). JDK 包含完整JRE 并让Java 发员发调试服务端应用Java Server JRE. Server JRE 完整JRE要运行Java程序发调试用安装包第三Java虚拟机环境、 用户端Java JRE、及32位客户端环境些都运行Wowza server 软件所需要服务端环境 32位Java JRE运行Wowza Streaming Engine仅仅能用于测试环境外需要些额外配置 性能能够使用Wowza Transcoder AddOn我推荐Wowza Streaming Engine 安装 64位操作系统新64位Java JDK 或 Server JRE 注意:Wowza Transcoder AddOn 能运行64位Windows Linux 操作系统64位Java VMOracle Java SE 载页面或 所操作系统Java 载页面载载64位Java JDK 或 Server JRE根据手册或指南安装Java 环境用java –version命令验证否已经确安装JavaJava已经确安装配置命令行或终端窗口现Java版本号应该至少1.6版本 针32位Java 客户端环境运行Wowza Streaming Engine 所需要配置载32位客户端版本Java JRE比www.java.com页面点击Free Java Download 按钮 我推荐使用版本要使用需要Wowza Stream Engine 做配置: [install-dir]/conf/目录用文本编辑器打Tune.xml文件删除文件-server属性保存文件重启Wowza Streaming Engine - 或者 -Java安装目录bin文件夹通位于[java-install-dir]\bin按操作创建名字server文件夹 例Java安装C:\Program Files\java\jre7创建文件夹:Code:C:\Program Files\java\jre7\bin\server[java-install-dir]\bin\client 文件夹内容拷贝[java-install-dir]\bin\server 文件夹确认JAVA_HOME 环境变量能确匹配Java安装根目录([java-install-dir]). 例C:\Program Files\java\jre7. 环境变量设置请参考After installing latest Java version, java command is still using old Java (fix) 解更何解决信息安装Wowza Streaming Engine 4
直播系统开发需要哪些技术开发支持_直播平台软件开发
摄像头采集;1、音视频编解码;2、流媒体协议;3、音视频流推送到流媒体服务器;4、流媒体网络分发;5、用户播放器;6、音视频同步;7、网络延迟自适应;8、需要录制,多种视频文件的格式和封装;9、语言:C、C、html、php、mysql......10、开发环境:嵌入式,Linux,Windows,Web......还有就是视频播放解决方案(卡顿、延迟):1、CDN加速;2、自己架服务器;3、用别人的云服务。用CDN加速,可以尽量减少延迟。目前业内水准来看,视频延迟都在3-6秒之间。也就是在视频直播时,你看到的是几秒以前的画面。自己架服务器,如果部署的数据中心不够多,那么遇上跨网、跨省的传输,还是得用CDN加速。那么为了尽可能降低延迟,你就需要在全国各省市都部署数据中心,来解决跨网、跨省的传输。用云服务的话,就是别人把服务器给你架好了,你只要傻瓜式的用就行了。当然,不管用哪种方式,综合权衡利弊,找到适合的方案就是最好的方案。开发视频直播的流程有哪些:1、采集;2、前期处理;3、编码;4、传输;5、解码;6、渲染。采集:iOS是比较简单的,Android则要做些机型适配工作。PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只支持手机主播,目前几个新进的直播平台都是这样的。前期处理:现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。算法设计好了还要优化,无论你打算用CPU还是GPU优化,算法优化本身也需要专业知识支持。GPU虽然性能好,但是也是有功耗的。GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧。而这一切都是需要经验支撑。编码:如果你要上720p,肯定要采用硬编码。软编码720p完全没希望,硬件编码不灵活。兼容性也有问题。如何适应纷繁复杂的网络和纷繁复杂的上下行设备?安卓和芯片的坑,开发过的人都知道。那有人问,要求不高,上软编码低分辨率360p行不行?就算上低分辨率,软编码还是会让CPU发烫,CPU过热烫到摄像头,长期发烫不仅直接反应是费电。既然是手机直播,插着电源和充电器实在说不过去吧。还有,CPU发烫会降频,怎么办?这还是只说性能方面。和前处理只影响图像质量和功耗不同,视频编解码技术还关联成本计算和网络对抗。考虑性能、功耗、成本、网络这四个之后你编码的码率、帧率、分辨率。软硬件开发该如何选择?传输:自己做不现实,交给第三方服务商吧。解码:如果你用硬解码,一定要做容错处理,一定要做适配。突然一个crash导致手机重启不好吧。安卓的硬解码,不说了。如果你加了网络目前手机的硬解码还不一定支撑用软解码,功耗发热的问题又来了。渲染:为什么手机明明解码出好多帧数据。就是渲染不出来。为什么画面就是不同步。以上是媒体模块,还有信令控制,登录、鉴权、权限管理、状态管理等等,各种应用服务,消息推送,聊天,礼物系统,支付系统,运营支持系统,统计系统等。后台还有数据库,缓存,分布式文件存储,消息队列,运维系统等。以上技术要点的小结,确实能说明开发一个能用于生产环境的实时视频直播平台确非易事,跟IM里传统的实时音视频一样,这样的技术都是音视频编解码网络传输技术的综合应用体。
直播系统开发需要哪些技术开发支持
摄像头采集; 1、音视频编解码; 2、流媒体协议; 3、音视频流推送到流媒体服务器; 4、流媒体网络分发; 5、用户播放器; 6、音视频同步; 7、网络延迟自适应; 8、需要录制,多种视频文件的格式和封装; 9、语言:C、C、html、php、mysql...... 10、开发环境:嵌入式,Linux,Windows,Web...... 还有就是视频播放解决方案(卡顿、延迟): 1、CDN 加速; 2、自己架服务器; 3、用别人的云服务。 用 CDN 加速,可以尽量减少延迟。目前业内水准来看,视频延迟都在 3-6 秒之间。也就是在视频直播时,你看到的是几秒以前的画面。 自己架服务器,如果部署的数据中心不够多,那么遇上跨网、跨省的传输,还是得用 CDN 加速。那么为了尽可能降低延迟,你就需要在全国各省市都部署数据中心,来解决跨网、跨省的传输。用云服务的话,就是别人把服务器给你架好了,你只要傻瓜式的用就行了。当然,不管用哪种方式,综合权衡利弊,找到适合的方案就是最好的方案。 开发视频直播的流程有哪些: 1、采集; 2、前期处理; 3、编码; 4、传输; 5、解码; 6、渲染。 采集:iOS 是比较简单的,Android 则要做些机型适配工作。PC 最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃 PC 只支持手机主播,目前几个新进的直播平台都是这样的。 前期处理:现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。算法设计好了还要优化,无论你打算用 CPU 还是 GPU 优化,算法优化本身也需要专业知识支持。GPU 虽然性能好,但是也是有功耗的。GPU 占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧。而这一切都是需要经验支撑。 编码:如果你要上 720p,肯定要采用硬编码。软编码 720p 完全没希望,硬件编码不灵活。兼容性也有问题。如何适应纷繁复杂的网络和纷繁复杂的上下行设备?安卓和芯片的坑,开发过的人都知道。那有人问,要求不高,上软编码低分辨率 360p 行不行?就算上低分辨率,软编码还是会让 CPU 发烫,CPU 过热烫到摄像头,长期发烫不仅直接反应是费电。既然是手机直播,插着电源和充电器实在说不过去吧。还有,CPU 发烫会降频,怎么办?这还是只说性能方面。和前处理只影响图像质量和功耗不同,视频编解码技术还关联成本计算和网络对抗。考虑性能、功耗、成本、网络这四个之后你编码的码率、帧率、分辨率。软硬件开发该如何选择? 传输:自己做不现实,交给第三方服务商吧。 解码:如果你用硬解码,一定要做容错处理,一定要做适配。突然一个crash导致手机重启不好吧。安卓的硬解码,不说了。如果你加了网络目前手机的硬解码还不一定支撑用软解码,功耗发热的问题又来了。 渲染:为什么手机明明解码出好多帧数据。就是渲染不出来。为什么画面就是不同步。 以上是媒体模块,还有信令控制,登录、鉴权、权限管理、状态管理等等,各种应用服务,消息推送,聊天,礼物系统,支付系统,运营支持系统,统计系统等。后台还有数据库,缓存,分布式文件存储,消息队列,运维系统等。 以上技术要点的小结,确实能说明开发一个能用于生产环境的实时视频直播平台确非易事,跟IM里传统的实时音视频一样,这样的技术都是音视频编解码网络传输技术的综合应用体。