zoukankan      html  css  js  c++  java
  • 转:Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解

    转: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 在CODE上查看代码片 派生到我的代码片
     
    1. all:  
    2.     gcc -Wall -g segmenter.c -o segmenter -lm -lbz2 -lz -lpthread -lavformat -lavcodec -lavutil -std=c99  
    3.   
    4. clean:  
    5.     rm segmenter  
    6.   
    7. install: segmenter  
    8.     cp segmenter /usr/local/bin/  
    9.   
    10. uninstall:  
    11.     rm /usr/local/bin/segmenter  

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

    [plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
     
    1. 使用ffmpeg将测试视频和音频转为mpeg ts格式文件  
    2.   
    3. 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  
    4.   
    5. 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  
    6.   
    7. cd /var/app/10year  
    8.   
    9. segmenter -i 10year.ts -d 5 -o 10year -x 10year.m3u8  
    10.   
    11. cd /var/app/baluobu  
    12.   
    13. 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才能正常播放。

  • 相关阅读:
    目标跟踪的评价指标
    [c++] stringstream的用法
    [OpenCV] sift demo
    [TCP/IP] 滑动窗口
    [python] 一行命令搭建http服务内网传文件
    YII 获取系统级请求参数的常用方法
    windows系统npm如何升级自身
    修补--Redis未授权访问漏洞
    MySQL中的两个时间函数,用来做两个时间之间的对比
    Centos 安装mongodb
  • 原文地址:https://www.cnblogs.com/jhj117/p/5521066.html
Copyright © 2011-2022 走看看