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才能正常播放。

 

 

 

參考文章:

nginx上搭建HLS流媒體服務器

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

如何用nginx+ffmpeg實現蘋果HLS協議 (http living stream)

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

ffmpeg+HLS的工程示例

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM