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


本文概述:

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

交流邮箱leoluopy@gmail.com,本文出自CSDN-固本培元。转载请注明出处。

切片器:

         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。

不多说了。假设不清楚,具体的能够阅读文章尾的參考文章。假设还有问题的话能够发邮件交流:leoluopy@gmail.com。


安装完毕后例如以下图:




測试:


搭建完毕后使用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



posted on 2017-05-01 13:06  blfbuaa  阅读(331)  评论(0编辑  收藏  举报