搭建nginx流媒体服务器(支持HLS)
环境搭建
(一)下载源代码
nginx,地址:http://nginx.org/可以选择需要的版本下载
nginx_mod_h264_streaming-2.2.7.tar.gz ,支持MP4流,具体的说明在下面的这个网页
http://h264.code-shop.com/trac/wiki/Mod-H264-Streaming-Nginx-Version2
m3u8-segmenter: HLS分片工具 ,下载地址,https://github.com/johnf/m3u8-segmenter
ffmpeg:媒体编解码工具,这里做为HLS 直播流的发布工具
(二)安装nginx
tar -zxvf nginx_mod_h264_streaming-2.2.7.tar.gz
tar -zxvf nginx-1.4.4.tar.gz
cd nginx-1.4.4
./configure --prefix=/usr/local/nginx-stream --with-debug --with-http_dav_module --with-http_gzip_static_module --with-http_ssl_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --add-module=../nginx_mod_h264_streaming-2.2.7 --with-http_flv_module --with-http_mp4_module
如果没有出现错误
make
如果出现错误类似:‘ngx_http_request_t’ 没有名为 ‘zero_in_uri’ 的成员,则进入 nginx_mod_h264_streaming-2.2.7目录,进入src,修改 ngx_http_streaming_module.c,注释掉 TODO window32 模块下的:
if (r->zero_in_uri) {
return NGX_DECLINED;
}
然后make clean之后重新configure和make
如果出现错误类似:[objs/addon/src/mp4_reader.o]..进入nginx源码中的obis目录,修改Makefile,删除 --wrror
然后重新编译make
编译通过后
sudo make install
(三)安装 m3u8-segmenter,这个在下载地址中有安装步骤。
(四)安装ffmpeg,在本博客其它日志中有安装方式。
配置
在server模块下加入以下内容:
location /hls {
alias /usr/local/media/hls;
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
add_header Cache-Control no-cache;
expires -1;
}
location ~* \.flv$ {
flv;
root /usr/local/media/flv;
}
location ~* \.mp4$ {
mp4;
root /usr/local/media/mp4;
}
然后保存退出,启动nginx服务器
点播flv,mp4视频
在FLV和MP4的根目录(usr/local/media/flv,/usr/local/media/mp4)分别放入测试视频test.flv和test.mp4
使用ffmpeg中的播放器ffplay测试,
ffplay http://ip:port/test.flv
ffplay http://ip:port/test.mp4
HLS 点播
使用m3u8-segmenter把视频切成一系列TS文件同时生成后缀为m3u8的播放列表,视频编码需为H264/AAC 或者H264/MP3。
进入 /usr/local/media/hls,放入测试文件test.ts,然后使用以下命令分割,
m3u8-segmenter -i testvod.ts -d 10 -p test -m testvod.m3u8 -u http://ip:port/hls/
-i ,输入文件
-d ,每个分片的时长
-p ,每个分片的名称的前缀
-m ,播放列表名称
-u ,播放列表中url前缀
使用ffplay测试:
ffplay http://ip:port/hls/test.m3u8
HLS直播
使用ffmpeg发布直播流,这里没有用设备抓取视频,使用ffmpe 的-re选项来模拟直播流,re表示依照输入视频的帧率
ffmpeg -re -i test.ts -codec copy -hls_time 10 testlive.m3u8
使用ffplay测试
ffplay http://ip:port/hls/testlive.m3u8
注:mp4转ts ,ffmpeg -i test.mp4 -codec copy -vbsf h264_mp4toannexb test.ts
hls协议支持自适应码率,可以使用播放列表的嵌套,nginx-rtmp-module对hls有类似的一些支持
搭建nginx流媒体服务器(支持HLS)相关推荐
- FFmpeg入门详解之100:搭建Nginx流媒体服务器
这里小编给大家推荐一款流媒体服务器Nginx,可以实现RTMP和HLS等.搭建完成后,可以使用FFmpeg推流,实现直播功能. 注意:操作环境是Ubuntu18.04, 总共分为几个步骤: 1.安装N ...
- LiveQing全新升级的RTMP流媒体服务器支持HLS(m3u8)、RTMP、HTTP-FLV高性能分发
什么是LiveQing LiveQing云平台直播点播流媒体服务: 提供设备接入: RTMP推流服务.RTMP分发.HLS分发.HTTP-FLV分发: 云端录像.云端录像检索.云端录像点播.云端录像下 ...
- 搭建树莓派流媒体服务器支持HTTP-FLV播放
安装ngnix 1.首先下载安装nginx-1.16.1 $ wget http://nginx.org/download/nginx-1.16.1.tar.gz 2.安装相关依赖 sudo apt- ...
- 海康摄像机视频rtsp转rtmp,windows下搭建nginx流媒体服务器,使用ffmpeg推流。
1.运行nginx服务: cmd命令运行切换目录 cd/ e: cd E:\nginx nginx.exe -c conf/nginx-win.conf 2.ffmpeg视频推流 cmd命令切换目录 ...
- 使用 NGINX 搭建 RTMP 流媒体服务器实现直播功能
使用 NGINX 搭建 RTMP 流媒体服务器实现直播功能 本文介绍了如何使用 Nginx 搭建 RTMP 流媒体服务器,并提供配置文件和前端示例,实现直播功能. 环境 操作系统: Ubuntu 18 ...
- Windows上搭建rtsp-simple-server流媒体服务器实现rtsp、rtmp等推流以及转流、前端html与Vue中播放hls(m3u8)视频流
场景 Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流: Nginx-http-flv-module流媒体服务器搭建 ...
- Windows基于Nginx搭建RTMP流媒体服务器(附带所有组件下载地址及验证方法)
RTMP服务时常用于直播时提供拉流推流传输数据的一种服务.前段时间由于朋友想搭建一套直播时提供稳定数据传输的服务器,所以就研究了一下如何搭建及使用. 1.下载nginx 首先我们要知道一般nginx不 ...
- 使用nginx结合nginx-rtmp-module搭建rtmp流媒体服务器
环境:centos7.nginx 1.15.2.nginx-rtmp-module(nginx模块).win7主机,vmvare虚拟机(已安装号centos7系统) 安装前提:centos已安装Ope ...
- 树莓派直播推流---nginx流媒体服务器搭建
参考: https://blog.csdn.net/li_wen01/article/details/70639397 https://www.jianshu.com/p/76c1be068170 1 ...
最新文章
- c语言 linux取运行目录,c语言获取当前工作路径的实现代码(windows/linux)
- 【剑指offer-Java版】07用两个栈实现队列
- php PDO php.ini
- Hive学习笔记 —— Hive的安装
- 设计师社区网站-交流、学习、展示
- Spring Boot:Consider defining a bean of type ‘*.*.*‘ in your configuration解决方案
- 手机扣费软件大曝光 金山手机卫士帮您免费检测
- 大众点评字体解密(最新)2020/4/17
- 游戏1024设计分析
- Android kernel中wakeup_sources解析
- android游戏工作心得体会,幼儿园游戏的心得体会(精选6篇)
- Keras实现小数量集图片分类——6类别Birds数据集分类
- 简要分析“荒野乱斗”基本元素
- python负数的处理
- WinUSB安装以及与Linux通讯
- 小渔夫 | 月销2亿,融资1亿,这家内衣企业有点东西
- 渣土车空车未盖盖识别系统 OpenCv
- teamviewer 使用数量到达上限_Teamviewer免费版到达设备上限号就废了?
- easyUI datagrid 控制列隐藏和显示
- 商城App接入快递100
热门文章
- leetcode83 删除排序链表中的重复元素
- C++(STL):02---tuple容器
- C++:17---函数指针
- MachineLearning(2)-图像分类常用数据集
- 好玩的脚本代码大全_Github | 推荐一个Python脚本集合项目
- STL源码剖析 第二次温习 细节审核
- std::chrono::duration_cast时间计算
- Java JUC工具类--CyclicBarrier
- 科研必备学士搜索引擎推荐
- 一个DEMO让你彻底理解线程池