搭建简单hls直播测试服务

经过实践,通过h5 video 直接m3u8直播, ios 是都没有问题的。android 4.2以上才基本上没问题。4.2以下的各品牌有些问题需要做不同的兼容。

HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。

在测试直播各种兼容性时, 为了测试方便,可以自己搭建一个直播服务器来输入视频流供测试。

rtmp直播流会被动态切分为ts片段和一个不断刷新的u3m8文件, 这个正是h5直播时的方式,因此我们通过配置nginx 的rtmp 模块来支持 rtmp 流媒体直播服务。

主要以下几步, 一些具体的安装步骤就不细说了:

1. 安装强大的音视频转换工具ffmpeg , 相信你对这个不陌生.

2.安装nginx 以及 nginx-rtmp-module 模块(自行搜索下载)

进入你的nginx源码目录, 执行以下命令, 注意, 之前安装的模块如果有其他配置需要带上

./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/nginx-rtmp-module --with-debug
make
make install

 3.配置 nginx 以支持rtmp

在nginx.conf配置文件末尾加上以下配置:

rtmp{
        server{ 
                listen 1935;
                chunk_size      4000;   
                # For HLS to work please create a directory in tmpfs (/tmp/app here)   
        # for the fragments. The directory contents is served via HTTP (see  
        # http{} section in config)  
        #       
        # Incoming stream must be in H264/AAC. For iPhones use baseline H264  
        # profile (see ffmpeg example).  
        # This example creates RTMP stream from movie ready for HLS:  
        #       
        # ffmpeg -loglevel verbose -re -i movie.avi  -vcodec libx264   
        #    -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1   
        #    -f flv rtmp://localhost:1935/hls/movie  
        #       
        # If you need to transcode live stream use 'exec' feature.  
        #       
                application hls{
                        live on;
                        hls on; 
                        hls_path        /data/maxwellxwma/html5hls/html/hls;
                        hls_fragment 5s;
                }       
        
        }       
}

 这样配置好后, 我们就可以对当前服务器生成rtmp 直播流了,执行以下命令会不断向/data/maxwellxwma/html5hls/html/hls下面写入ts片段和m3u8文件:

./ffmpeg -re -i /data/maxwellxwma/src/t.flv -vcodec copy -acodec copy -f flv rtmp://10.6.224.185/hls/mystream

 如下图所示:

边生成边播放边删除:

4. 配置vhosts支持外部调用m3u8文件播放:

server{

        listen 8080;
        server_name html5hls.qq.com;
        error_log /data/maxwellxwma/logs/nginx/hls.qq.com_error.log;

        index index.html index.php;
        root /data/maxwellxwma/html5hls/html;
        location        /hls{   
                #server HLS fragments
                types{  
                        text/html html htm;
                        #application/vnd.apple.mpegurl m3u8;
                        application/x-mpegurl m3u8;
                        video/mp2t ts;
                }       
                root /data/maxwellxwma/html5hls/html;
                index index.html;
                expires -1;
        }       

}

 这些配置可以直接加入到nginx.conf里, 但建立虚拟主机配置,增加可维护性

然后重启nginx  ,  直播服务就搭建好了。

用VLC播放器测试一下正常:

 

5. html5  video 标签嵌入播放测试:

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>HLS Player</title>
</head>
<body>
<video id="video" src="http://10.6.224.185:8080/hls/mystream.m3u8" width="100%" heigh="100%" autoplay="autoplay" controls="controls">不支持videos</video>
</body>
</html> 

 

m3u8文件记录了待播放的ts列表:

好了, 到此终于可以随心随地随时,随心所欲的测试直播了, 还有那些非常蛋疼的安卓兼容 性问题

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一款免费的流媒体直播软件,主要用于流媒体直播,视频直播,视频点播,视频录制等应用,与FMS、WOWZA、RED5一道,作为用户流媒体直播应用的可选方案。 1、支持Windows/Linux等多种操作系统; 2、采用开发的流媒体协议,而非私有协议,可以与主流系统对接,至少支持RTMP推流,RTMP拉流,RTSP拉流三种方式获取直播流,支持对获取的直播流再按照TS组播或者单播,RTMP,RTSP,HLS,TS OVER HTTP,FLV OVER HTTP等标准流媒体协议的方式进行对外直播转发; 3、支持录制,可定时录制或手动录制,能录制MP4或者FLV格式文件,录制时支持生成新文件或者追加文件两种方式,支持录制超过4G的文件; 4、单台服务器可支持1000个以上并发用户,直播延时小于2秒; 5、支持RTMP转发功能,能够把AMS上的直播流转发给其它AMS服务器或者第三方的RTMP服务器,例如RED5,FMS,WOWZA流媒体服务器; 6、 支持PC/手机/平板电脑等多终端访问,无论是windows,linux,或者andriod以及IOS系统访问收看直播时都无需下载插件,直接观看; 7、响应点播时间控制在100ms以内,支持暂停、拖动等特技操作; 8、支持文件直播,可把硬盘上存在的FLV文件编目后,按设定好的任务和顺序进行直播; 9、内置Web应用系统,无需复杂配置,可直接部署到用户服务器使用,也可以选配更复杂的媒资管理系统,完成类似优酷土豆的应用模式; 10、开放的系统架构,提供二次开发接口,可轻松的融入到用户已有的平台或网站平台中、或在此基础上进行二次开放等 ------------------------------------------------------------------------- 使用说明: 1、关于安装运行:软件解压到硬盘上后,执行AokuMServiceManager,即可完成AMS服务的安装,安装完成后,在Windows系统服务中会出现一个AokuMService服务; 2、关于端口:AMS默认的管理端口是9001,可通过浏览器登陆http://127.0.0.1:9001/main.html进行管理;AMS默认的RTMP端口是1935,默认的rtsp端口是5554,默认的flv over http端口是7000,默认的ts over http端口是8008,默认的hls端口也是9001; 3、关于推流:使用直播你需要有一个支持rtmp推流的编码器,建议用奥酷全接口高清编码器,当然你也可以通过FME进行软编码来实现; 4、关于接收直播:AMS正常启动并发布上直播流后,你可以在网络内的任一电脑上打开http://ip:9001,通过浏览器观看直播,若开启了hls功能,通过iphone或者ipad登陆http://ip:9001即可观看直播。 5、若开启了TS组播,请确认防火墙是否允许组播,另外您网络内的路由器是否支持组播,接收组播是需要用VLC播放器来完成; 6、接收flv over http也是通过VLC播放器或者支持类似协议的播放器来测试。 7、若使用中出现问题,你可以查看logs目录下的rtmpserver.log文件,里面有详细的错误日志描述。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值