发布网友 发布时间:2022-04-20 08:01
共1个回答
热心网友 时间:2023-07-05 22:04
一,目标: 利用开源或者免费工具实现一个直播系统;同时支持在浏览器、播放器和嵌入到 PC 应 用或者移动 APP 中观看直播。 二,技术选型: 视音频源端:: Adobe Flash Media Live Encoder 3.2,可以在 windows 和 mac 安装; 如果你已有一些支持 RTMP 的采集设备,那是最好了; 或许你想在自己的应用中实现,这样你就必须自己开发处理采集,编码和协议传输了(以后 再表); RTMP Server: FMS -- Adobe 公司出品的服务器,价格昂贵,当然是最正宗的,因为 RTMP 就是 Adobe 公 司的私有协议; Wowza -- 同样需要授权费, 大概是$55 per month/instance,效率和稳定性都还不错; Red5 -- 一个开源实现, 效率和稳定性都稍微差些,由于它是 java 实现的,所以天生支持 跨平台运行; Nignx-rtmp-mole - -nginx 的一个第三方模块,如果你熟悉 nginx 那是不错的选择,当然它 也是免费的,不过功能就没有其他几个丰富了; 这里我选择 nginx+nginx-rtmp-mole 作为服务器,这是我认为最容易上手的一种方式了(如 果 你 把 windows 作 为 服务 器 那 可 能 麻烦 些 , 官 方 提供 的 windows 二 进 制版 本 是 没 有 nignx-rtmp-mole 的,而且 nginx 在 windows 下的性能比 linux 就差太多了) 客户端: VLC 也可以安装其他支持 rtmp 的播放器; JW Media Player 一个开源的 flash 视音频播放器, 利用它我们可以直接在浏览器观看直播; (移动端的浏览器是不知道 flash 的) ffmpge/librtmp 如果你希望在自己的应用中实现播放器,或者希望在移动端直接接收 RTMP 流,那就要自己开发了(以后再表) 最后选型是: Adobe Flash Media Live Encoder 3.2 + Nignx-rtmp-mole + JW Media Player 三,实现 (本文将 nginx 安装到 Centos 6.5 下,IP 为 192.168.0.51) 1,下载安装 Adobe Flash Media Live Encoder 3.2 2,编译安装配置 nginx + nginx-rtmp-mole (nginx 1.7 无法编译通过) #wget http://nginx.org/download/nginx-1.6.2.tar.gz #tar -zxvf nginx-1.6.2.tar.gz #git clone https://github.com/arut/nginx-rtmp-mole.git (如果没有安装 git 则直接下载 zip 包) #cd nginx-1.6.2 #./configure --add-mole=../nginx-rtmp-mole --with-http_ssl_mole #make #make install 配置 ( 详细查看 https://github.com/arut/nginx-rtmp-mole), 编辑 nginx/nginx.conf ,增加 rtmp 模块: rtmp { server { Listen 1935; chunk_size 4000; #可以将 mylive 改成你想要的名字 application mylive { live on; } } } 在 http 模块增加: location /stat{ rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl{ root html; } 同时需要将 nginx-rtmp-mole 源码目录下的 stat.xsl 拷贝到 nginx/html 下,这样就可以通过 网页查看服务器的 RTMP 状态了。