转:http://itindex.net/detail/51186-nginx-ffmpeg-hls

本文概述:

至目前为止,HLS 是移动平台上非常重要并十分流行的流媒体传输协议。做移动平台的流媒体开发,不知道它不掌握它 ,真是一大遗憾。而HLS的平台搭建有一定的难度,本文针对对该方向有一定了解的朋友,将方案实施中的一些细节和流程进行分享交流。本文介绍了,使用开源服务器nginx 搭建 HLS 服务比较详细的方案。测试使用 VLC以及JWPlayer播放。交流邮箱leoluopy@gmail.com,本文出自CSDN-固本培元。转载请注明出处。

切片器:

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

编译和使用的命令如下,可以参考。

编译m3u8-segment 修改makefile

[plain]  view plain copy  

 
  1. all:
  2. gcc -Wall -g segmenter.c -o segmenter -lm -lbz2 -lz -lpthread -lavformat -lavcodec -lavutil -std=c99
  3. clean:
  4. rm segmenter
  5. install: segmenter
  6. cp segmenter /usr/local/bin/
  7. uninstall:
  8. rm /usr/local/bin/segmenter

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

[plain]  view plain copy  

 
  1. 使用ffmpeg将测试视频和音频转为mpeg ts格式文件
  2. 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
  3. 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
  4. cd /var/app/10year
  5. segmenter -i 10year.ts -d 5 -o 10year -x 10year.m3u8
  6. cd /var/app/baluobu
  7. segmenter -i baluobu.ts -d 5 -o buluobu -x baluobu.m3u8

切片之后如下图所示: 

服务器搭建:

         在切片完成后,只需要一个nginx服务器,HLS服务端就可以正常开始工作啦。
 

nginx服务器下载地址:

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

PCRE下载地址:

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

过程很简单。不多说了。如果不清楚,详细的可以阅读文章尾的参考文章。如果还有问题的话可以发邮件交流:leoluopy@gmail.com。

安装完成后如下图:

测试:

 

搭建完成后使用vlc检测效果成功如下图:

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

即: HLSProvider - HLS Flash Plugin for JWPlayer

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

同时还有flash的安全文件需要加入后html才能正常播放。

转:Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解的更多相关文章

  1. Nginx+ffmpeg的HLS开源服务器搭建配置及开发详

    本文概述: 至目前为止,HLS 是移动平台上非常重要并十分流行的流媒体传输协议.做移动平台的流媒体开发,不知道它不掌握它 ,真是一大遗憾.而HLS的平台搭建有一定的难度,本文针对对该方向有一定了解的朋 ...

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

    本文概述: 至眼下为止.HLS 是移动平台上很重要并十分流行的流媒体传输协议.做移动平台的流媒体开发,不知道它不掌握它 .真是一大遗憾.而HLS的平台搭建有一定的难度,本文针对对该方向有一定了解的朋友 ...

  3. javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  4. javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  5. javaCV开发详解之6:本地音频(话筒设备)和视频(摄像头)抓取、混合并推送(录制)到服务器(本地)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  6. javaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  7. javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  8. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...

  9. 搭建zabbix监控系统详解

    搭建zabbix监控系统详解 文:warren   博文大纲:一.前言 二.zabbix监控架构三.搭建Zabbix监控服务器四.搭建过程中遇到有些服务无法正常启动的解决办法 一.前言 : 要想实时的 ...

随机推荐

  1. ocp 1Z0-051 1-22题解析

    1. View the Exhibit andexamine the structure of the SALES, CUSTOMERS, PRODUCTS, and TIMES tables. Th ...

  2. Umbraco中的Member登录时的Lock out功能

    请参看文章 https://our.umbraco.org/forum/using-umbraco-and-getting-started/76389-preventing-member-lock-o ...

  3. Google中rel="canonical"的相关解释和用法

    转载原地址 http://blog.sina.com.cn/s/blog_673b01740100jxlz.html 近听到很多SEO 对在页面的规范版本用规范 URL 标签( canonical U ...

  4. Linux 的进程组、会话、守护进程

    一.进程组ID 每个进程都属于一个进程组.每个进程组有一个领头进程.进程组是一个或多个进程的集合,通常它们与一组作业相关联,可以接受来自同一终端的各种信号.每个进程组都有唯一的进程组ID(整数,也可以 ...

  5. Unity3D之移植学习笔记:移植到Android平台更好的方法

    接上文,之前我们采用了直接将Unity项目导出为Eclipse项目来修改的方式,这种做法存在的一个最大的问题就是:每当Unity被修改之后,都需要重新导出,而每次导出的项目在Android平台方面的J ...

  6. cloudstack4.2+xenserver6.0.2 详细配置攻略

    搭建一台安装了XenServer的服务器 搭建一台安装了CloudStack的服务器用以管理云平台 可以使用CloudStack云平台进行虚拟机管理 使用远程桌面访问windows虚拟机 由于最近实验 ...

  7. appcompat_v7/res/values-v21/themes_base.xml No resource found that matches the given name

    今天晕死了 将工作区里的appcompat_v7删除掉了, 然后随意新建了一个工程,因为已经升级到5.0了,appcompat_v7内容有所改变, 以前的工程引用旧的appcompat_v7的某些属性 ...

  8. iOS 判断只有数字、小数点和减号

    #define NUMBERS @"0123456789.-" //数字 #define NUM @"0123456789" //字母 #define ALPH ...

  9. TC SRM 663 div2 A ChessFloor 暴力

    ChessFloor Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 TC Description Samantha is renovating a squa ...

  10. 【智能家居篇】wifi在智能家居中的应用

    转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 在设计智能家居系统方案时,一个很关键的point就是组网方式.组网方式关系到整个智能家居系统的稳定性.可扩展性.实时 ...