环境搭建

(一)下载源代码

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)相关推荐

  1. FFmpeg入门详解之100:搭建Nginx流媒体服务器

    这里小编给大家推荐一款流媒体服务器Nginx,可以实现RTMP和HLS等.搭建完成后,可以使用FFmpeg推流,实现直播功能. 注意:操作环境是Ubuntu18.04, 总共分为几个步骤: 1.安装N ...

  2. LiveQing全新升级的RTMP流媒体服务器支持HLS(m3u8)、RTMP、HTTP-FLV高性能分发

    什么是LiveQing LiveQing云平台直播点播流媒体服务: 提供设备接入: RTMP推流服务.RTMP分发.HLS分发.HTTP-FLV分发: 云端录像.云端录像检索.云端录像点播.云端录像下 ...

  3. 搭建树莓派流媒体服务器支持HTTP-FLV播放

    安装ngnix 1.首先下载安装nginx-1.16.1 $ wget http://nginx.org/download/nginx-1.16.1.tar.gz 2.安装相关依赖 sudo apt- ...

  4. 海康摄像机视频rtsp转rtmp,windows下搭建nginx流媒体服务器,使用ffmpeg推流。

    1.运行nginx服务: cmd命令运行切换目录 cd/ e: cd E:\nginx nginx.exe -c conf/nginx-win.conf 2.ffmpeg视频推流 cmd命令切换目录 ...

  5. 使用 NGINX 搭建 RTMP 流媒体服务器实现直播功能

    使用 NGINX 搭建 RTMP 流媒体服务器实现直播功能 本文介绍了如何使用 Nginx 搭建 RTMP 流媒体服务器,并提供配置文件和前端示例,实现直播功能. 环境 操作系统: Ubuntu 18 ...

  6. Windows上搭建rtsp-simple-server流媒体服务器实现rtsp、rtmp等推流以及转流、前端html与Vue中播放hls(m3u8)视频流

    场景 Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流: Nginx-http-flv-module流媒体服务器搭建 ...

  7. Windows基于Nginx搭建RTMP流媒体服务器(附带所有组件下载地址及验证方法)

    RTMP服务时常用于直播时提供拉流推流传输数据的一种服务.前段时间由于朋友想搭建一套直播时提供稳定数据传输的服务器,所以就研究了一下如何搭建及使用. 1.下载nginx 首先我们要知道一般nginx不 ...

  8. 使用nginx结合nginx-rtmp-module搭建rtmp流媒体服务器

    环境:centos7.nginx 1.15.2.nginx-rtmp-module(nginx模块).win7主机,vmvare虚拟机(已安装号centos7系统) 安装前提:centos已安装Ope ...

  9. 树莓派直播推流---nginx流媒体服务器搭建

    参考: https://blog.csdn.net/li_wen01/article/details/70639397 https://www.jianshu.com/p/76c1be068170 1 ...

最新文章

  1. c语言 linux取运行目录,c语言获取当前工作路径的实现代码(windows/linux)
  2. 【剑指offer-Java版】07用两个栈实现队列
  3. php PDO php.ini
  4. Hive学习笔记 —— Hive的安装
  5. 设计师社区网站-交流、学习、展示
  6. Spring Boot:Consider defining a bean of type ‘*.*.*‘ in your configuration解决方案
  7. 手机扣费软件大曝光 金山手机卫士帮您免费检测
  8. 大众点评字体解密(最新)2020/4/17
  9. 游戏1024设计分析
  10. Android kernel中wakeup_sources解析
  11. android游戏工作心得体会,幼儿园游戏的心得体会(精选6篇)
  12. Keras实现小数量集图片分类——6类别Birds数据集分类
  13. 简要分析“荒野乱斗”基本元素
  14. python负数的处理
  15. WinUSB安装以及与Linux通讯
  16. 小渔夫 | 月销2亿,融资1亿,这家内衣企业有点东西
  17. 渣土车空车未盖盖识别系统 OpenCv
  18. teamviewer 使用数量到达上限_Teamviewer免费版到达设备上限号就废了?
  19. easyUI datagrid 控制列隐藏和显示
  20. 商城App接入快递100

热门文章

  1. leetcode83 删除排序链表中的重复元素
  2. C++(STL):02---tuple容器
  3. C++:17---函数指针
  4. MachineLearning(2)-图像分类常用数据集
  5. 好玩的脚本代码大全_Github | 推荐一个Python脚本集合项目
  6. STL源码剖析 第二次温习 细节审核
  7. std::chrono::duration_cast时间计算
  8. Java JUC工具类--CyclicBarrier
  9. 科研必备学士搜索引擎推荐
  10. 一个DEMO让你彻底理解线程池