备注:
以前写过使用ffmpeg 转换为m3u8进行hls 视频处理,实际上有一个开源的很强大的工具,我们基本不用什么代码就可以实现hls、
dash、Thumbnail ,很强大

安装

  • 使用源码编译

参考 https://github.com/kaltura/nginx-vod-module

./configure --add-module=/path/to/nginx-vod-module
make
make install
  • 使用容器

已经有别人做好的镜像了

docker pull nytimes/nginx-vod-module

基本使用

我直接clone 别人的参考代码

docker run -p 3030:80 -v $PWD/videos:/opt/static/videos -v $PWD/nginx.conf:/usr/local/nginx/conf/nginx.conf nytimes/nginx-vod-module

访问

HLS: http://localhost:3030/hls/devito,360p.mp4,480p.mp4,720p.mp4,.en_US.vtt,.urlset/master.m3u8
Dash: http://localhost:3030/dash/devito,360p.mp4,480p.mp4,720p.mp4,.en_US.vtt,.urlset/manifest.mpd
Thumbnail: http://localhost:3030/thumb/devito360p.mp4/thumb-1000.jpg

配置说明

nginx config

   hls  dash   thumb
location /hls/ {
vod hls;
alias /opt/static/videos/;
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
} location /thumb/ {
vod thumb;
alias /opt/static/videos/;
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
} location /dash/ {
vod dash;
alias /opt/static/videos/;
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
} 核心vod 配置 vod_mode local;
vod_metadata_cache metadata_cache 16m;
vod_response_cache response_cache 2048m;
vod_last_modified_types *;
vod_segment_duration 9000;
vod_align_segments_to_key_frames on;
vod_dash_fragment_file_name_prefix "segment";
vod_hls_segment_file_name_prefix "segment";
vod_manifest_segment_durations_mode accurate;
open_file_cache max=1000 inactive=5m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;

参考资料

https://github.com/NYTimes/nginx-vod-module-docker/tree/master/examples
https://github.com/kaltura/nginx-vod-module
https://hub.docker.com/r/nytimes/nginx-vod-module/

 
 
 
 

最新文章

  1. TeamCity : 自动触发 Build
  2. BZOJ1492: [NOI2007]货币兑换Cash
  3. Web之路笔记之四
  4. python-基础介绍
  5. 深入探究js中无所不在的this
  6. UTL_FILE
  7. The Blocks Problem
  8. Android播播放完SD卡指定文件夹音乐之后,自动播放下一首
  9. setting bundle 多语言,本地化,系统设置
  10. R︱Rstudio 1.0版本尝鲜(R notebook、下载链接、sparkR、代码时间测试profile)
  11. Theano环境搭建/安装
  12. 『集群』007 如何测试Slithice源代码
  13. centos7之zabbix3.2搭建
  14. C# 制作向导
  15. Expo大作战(三十八)--expo sdk api之 FileSystem(文件操作系统)
  16. EMC EMI 自行评估记录
  17. 初始化ha环境下的hadoop的hdfs
  18. quartz + spring 配置示例
  19. javaScript 载入自执行
  20. dp练习(11)——石子并归

热门文章

  1. WebApi_返回Post格式数据
  2. 钉钉,连续获取Token一样么? Js_ticket重复获取一样么?
  3. 前端学习笔记之CSS知识汇总
  4. SQL学习笔记四(补充-2-1)之MySQL SQL查询作业答案
  5. 20145314郑凯杰《网络对抗技术》可选实验 shellcode注入与Return-to-libc攻击实验
  6. Xcode7.2与iOS9之坑 (持续更新)
  7. 使用awk分割字符串并且获取分割后的最后一个字符串
  8. CNN中dropout层的理解
  9. Vue.js 2.x中事件总线(EvevntBus)及element-ui中全屏loading的使用
  10. Hadoop-1.0.4集群搭建笔记