Nginx+ffmpeg的HLS开源server搭建配置及开发具体解释

本文概述:

至眼下为止。HLS 是移动平台上很重要并十分流行的流媒体传输协议。做移动平台的流媒体开发,不知道它不掌握它 。真是一大遗憾。而HLS的平台搭建有一定的难度,本文针对对该方向有一定了解的朋友,将方案实施中的一些细节和流程进行分享交流。本文介绍了。使用开源servernginx 搭建 HLS 服务比較具体的方案。測试使用 VLC以及JWPlayer播放。

切片器:

HLS 是依照切片发送流媒体子块的,切片当然不可少。

编译和使用的命令例如以下,能够參考。

编译m3u8-segment 改动makefile

all:
	gcc -Wall -g segmenter.c -o segmenter -lm -lbz2 -lz -lpthread -lavformat -lavcodec -lavutil -std=c99

clean:
	rm segmenter

install: segmenter
	cp segmenter /usr/local/bin/

uninstall:
	rm /usr/local/bin/segmenter

參考segmenter和ffmpeg转换ts流以及分片的命令:

使用ffmpeg将測试视频和音频转为mpeg ts格式文件

ffmpeg -i /var/flvs/baluobu.flv  -f mpegts -acodec libmp3lame -ar 48000 -ab 128k -vcodec libx264 -b 96k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 5 -trellis 1 -refs 1 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate 96k -bufsize 96k -rc_eq ‘blurCplx^(1-qComp)’ -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 -aspect 320:240 -g 30 -async 2 /var/app/baluobu/baluobu.ts

ffmpeg -i /var/flvs/10year.mp3  -f mpegts -acodec libmp3lame -ar 48000 -ab 128k -vcodec libx264 -b 96k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 5 -trellis 1 -refs 1 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate 96k -bufsize 96k -rc_eq ‘blurCplx^(1-qComp)’ -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 -aspect 320:240 -g 30 -async 2 /var/app/10year/10year.ts

cd /var/app/10year

segmenter -i 10year.ts -d 5 -o 10year -x 10year.m3u8

cd /var/app/baluobu

segmenter -i baluobu.ts -d 5 -o buluobu -x baluobu.m3u8

切片之后例如以下图所看到的:

server搭建:

在切片完毕后,仅仅须要一个nginxserver。HLS服务端就能够正常開始工作啦。

nginxserver下载地址:

http://nginx.org/en/linux_packages.html#stable

PCRE下载地址:

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

过程非常easy。

不多说了。假设不清楚,具体的能够阅读文章尾的參考文章。假设还有问题的话能够发邮件交流:[email protected]。

安装完毕后例如以下图:

測试:

搭建完毕后使用vlc检測效果成功例如以下图:

有的时候假设ts的编码存在问题,在跳转播放时间时不能正常反应,同一时候网页測试时也不能通过,以下是网页測试的一个地址:

即:HLSProvider - HLS Flash Plugin for JWPlayer

http://streambox.fr/HLSProvider/jwplayer6/

同一时候还有flash的安全文件须要增加后html才干正常播放。

參考文章:

nginx上搭建HLS流媒体server

http://blog.csdn.net/cjsafty/article/details/7922849

怎样用nginx+ffmpeg实现苹果HLS协议 (http
living stream)

http://blog.csdn.net/funkri/article/details/10192095

ffmpeg+HLS的project演示样例

http://jueshizhanhun.blog.51cto.com/4372226/1368768

基于HTTP Live Streaming(HLS)
搭建在线点播系统

http://blog.csdn.net/funkri/article/details/10946027

nginx安装教程:

http://wwwzhouhui.iteye.com/blog/1305512

RTMP,RTSP,HLS比較与分析

http://blog.csdn.net/xiaoliouc/article/details/8613935

RTMP/RTP/RTSP/RTCP的差别

http://blog.csdn.net/xiaoliouc/article/details/8613935

时间: 2024-10-07 14:47:32

Nginx+ffmpeg的HLS开源server搭建配置及开发具体解释的相关文章

【OpenCV笔记】使用VS2012和OpenCV2.4.9搭建配置OpenCV开发环境

使用MS Visual C++来创建OpenCV工程,由于不同的VS版本在配置时有所差别,现特把配置过程总结下来,以方便自己和其他朋友使用. 1.软件准备 安装Visual Studio2012和OpenCV2.4.9 这里就不再对软件的安装和环境变量的设置进行说明了,其他类似的文章的设置都大抵相似,本文重点介绍一下VS2012环境的配置. 2.配置VS2012环境 (1)新建工程 你可以创建简单的控制台应用或者拥有图形用户界面的复杂应用,此处我们选择最简单常用的控制台应用. 理解解决方案(So

新书《Nginx实战:基于Lua语言的配置、开发与架构详解》开始发售

新书<Nginx实战:基于Lua语言的配置.开发与架构详解>开始发售https://item.jd.com/12487157.html#none <Nginx实战:基于Lua语言的配置.开发与架构详解>主要讲解了Nginx在反向代理和应用开发中的作用,阅读本书可以了解Nginx在互联网开发中扮演的多个角色,充分利用这些角色的各项功能有助于提升服务的整体性能.<Nginx实战:基于Lua语言的配置.开发与架构详解>所介绍的大部分功能是通过Nginx+Lua进行开发和配置的

如何搭建配置php开发环境

PHP的配置 1.打开解压后的C:\Program Files (x86)\php-5.3.5文件夹 将php.ini-development文件并更改名称为php.ini(留个备份,好习惯) 2. 查找找到extension_dir 更改为extension_dir = "C:\Program Files (x86)\php-5.3.5\ext" 3.查找default_charset 更改为default_charset ="utf-8" 4.将这些extens

nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器

本文概要: nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择.本文介绍了一种简易方法快速搭建rtmp流媒体服务器,也叫rtsp转播,数据源不是读取文件,而是采用获取rtspNal流后使用ffmpeg转播.csdn固本培元:[email protected] 开发环境:centos6.4 (主流的linux服务器选择,30%以上的市场占有率) 需要这几个包. 版本号:nginx 1.7.3  openssl 1.0.2   rtmp-module(版本未知)

使用Nginx+ffmpeg搭建直播点播服务器

背景 最近做一个直播平台项目,调研了一些开源的或者商用的流媒体服务器,包括Live555,Red5,Wowza,ffmpeg,EasyDarwin,FMS等:经过对比考量,因为本次需求相对比较简单,流协议基于RTMP,因此最终决定选型Nginx+ffmpeg. 选型 Nginx + nginx-rtmp-module + ffmpeg Nginx本身是一个非常出色的HTTP服务器,ffmpeg也是目前最好用的音视频解决方案,而这两个框架通过一个nginx的模块nginx-rtmp-module组

centos7下linux运行asp.net,c#网站搭建配置-mono+nginx

centos7下linux运行asp.net,c#网站搭建配置-mono+nginx 一.首先安装一些需要的软件包 首先更新CentOS上的软件包: yum –y update 安装一些需要的库: yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel fr

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面)

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面): 既然要用 eclipse 可视环境下开发,那首先要安装图形界面喽!!! 对开发者来说,个人认为 linux 选择界面优先选择顺序:Awesome(性能最好) > Xfce4 > gnome > unity-2d //////////////////////////////////////////////// 首先

Nginx 笔记与总结(4)配置 server 访问日志

打开 nginx.conf: [[email protected] ~]# cd /usr/local/nginx/conf [[email protected] conf]# vim nginx.conf 在默认的 server 段中包含以下内容: #access_log logs/access.log main; 表示该 server 的访问日志文件是 logs/access.log Nginx 允许针对不同的 server 做不同的 log main 表示日志使用的格式是 'main' 格

Linux之LAMP架构搭建配置

Linux之LAMP架构搭建配置 LAMP简介 LAMP定义指Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台. 对于大流量.大并发量的网站系统架构来说,除了硬件上使用高性能的服务器.负载均衡.CDN 等之外,在软件架构上需要重点关注下面几个环节: 使用高性能的操作系统 (OS) . 高性能的网页服务器 (Web Server) .高性能的数据库(Data