windows+nginx+ffmpeg实现移动端html5直播m3u8
前端条件:
1、windows操作系统
2、nginx服务(nginx-rtmp-module编译的windows版RTMP服务端完整实例)
3、ffmpeg解码器(下载地址)
NodeMedia Dev Server是基于nginx-rtmp-module编译的windows版RTMP服务端完整实例。无需配置,一键运行,是您快速开发,测试,验证RTMP流的好帮手。 可以用来开发:视频直播间,音视频聊天,游戏直播,远程视频监控等。
包含以下实用工具:
RTMP流媒体服务端
Flash Rtmp流播放器
Flash HLS直播流播放器
Flash Rtmp摄像头视频发布器
Flash 视频聊天Demo
此版本作为RTMP流媒体开发的实用工具,不建议作为产品级部署。
nginx服务解压之后就可以直接使用,这个版本的已经配置好,如果还需要其它功能的话可以修改conf目录下的nginx.conf配置文件,启动服务器也很简单,双击根目录下的nginx.exe文件就可以了。
服务器已经准备就绪,接下来就ffmpeg的工作了。
web移动端不支持flash,所以rtmp协议的直播流就无法播放了,只支持基于HTTP协议的流媒体解决方案
接下来对M3U8流系统的认识一下
HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。
在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。
但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。
在App Store中的视频相关的应用,基本都是应用的此种技术。
该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)。
支持的视频流编码为H.264,音频流编码为AAC。
以笔记本电脑的摄像头做为视频源采集和nginx服务器放在f盘为例:
ffmpeg切片命令如下:
ffmpeg -f vfwcap -i "0" -strict -2 -c:v libx264 -c:a aac -f hls F:\nginx\temp\hls\test.m3u8
运行命令之后会自动在 F:\nginx\temp\hls\目录下自动生成一个test.m3u8切片索引文件和若干个.ts的视频片段文件如:test0.ts,test1.ts。。。。。
html5直播的video视频源如下:
http://nginx服务IP:端口号/hls/test.m3u8
代码如下:
<video src="http://192.168.1.113:8080/hls/test.m3u8"></video>
具体的参数详细介绍请点击以下链接查看:
http://www.jq-school.com/MD.aspx?id=1222
如果您觉得本文的内容对您的学习有所帮助:
关键字:
windows nginx ffmpeg html5 m3u8 hls