使用nginx-vod-module hls &&dash &&Thumbnail 处理
2024-08-24 21:28:10
备注:
以前写过使用ffmpeg 转换为m3u8进行hls 视频处理,实际上有一个开源的很强大的工具,我们基本不用什么代码就可以实现hls、
dash、Thumbnail ,很强大
安装
- 使用源码编译
./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/
最新文章
- TeamCity : 自动触发 Build
- BZOJ1492: [NOI2007]货币兑换Cash
- Web之路笔记之四
- python-基础介绍
- 深入探究js中无所不在的this
- UTL_FILE
- The Blocks Problem
- Android播播放完SD卡指定文件夹音乐之后,自动播放下一首
- setting bundle 多语言,本地化,系统设置
- R︱Rstudio 1.0版本尝鲜(R notebook、下载链接、sparkR、代码时间测试profile)
- Theano环境搭建/安装
- 『集群』007 如何测试Slithice源代码
- centos7之zabbix3.2搭建
- C# 制作向导
- Expo大作战(三十八)--expo sdk api之 FileSystem(文件操作系统)
- EMC EMI 自行评估记录
- 初始化ha环境下的hadoop的hdfs
- quartz + spring 配置示例
- javaScript 载入自执行
- dp练习(11)——石子并归
热门文章
- WebApi_返回Post格式数据
- 钉钉,连续获取Token一样么? Js_ticket重复获取一样么?
- 前端学习笔记之CSS知识汇总
- SQL学习笔记四(补充-2-1)之MySQL SQL查询作业答案
- 20145314郑凯杰《网络对抗技术》可选实验 shellcode注入与Return-to-libc攻击实验
- Xcode7.2与iOS9之坑 (持续更新)
- 使用awk分割字符串并且获取分割后的最后一个字符串
- CNN中dropout层的理解
- Vue.js 2.x中事件总线(EvevntBus)及element-ui中全屏loading的使用
- Hadoop-1.0.4集群搭建笔记