本篇内容介绍了“基于s3cmd的视频存储方案有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了泰州免费建站欢迎大家使用!
改造目标
1. 需要支持rtmp播放,尽量少的改动现有构架
2. 使用S3替代现有的本地存储方式,尽可能降低对本地存储的依赖。
3. 视频需要支持防盗链、防下载。
方案1(后端点播模式)
方案概述:将视频文件(只支持mp4、flv)上传到S3,并设置其访问权限为public,使用rtmp模块的play指令进行播放。
操作流程
1.上传视频到S3
将mp4或者flv文件上传到S3的movie这个bucket,比如上传的文件名称为"video.mp4",并设置访问权限为"public-read",注意设置对应的content-type,以s3cmd为例
s3cmd put video.mp4 s3://movie --acl-public
2.配置nginx的rtmp模块
配置nginx的rtmp模块,在nginx.conf中新增如下内容
rtmp { server { listen 1935; application vod_http { play http://s3.ceph.wor/movie; } }
3.测试访问
方案2(后端推流模式)
方案概述:将视频文件(只支持mp4、flv)上传到S3,并设置其访问权限为public,后端需要借助ffmpeg将S3的HTTP数据流推送到nginx,再经由rtmp模块转换成HLS。
操作流程
1.上传视频到S3
将mp4或者flv文件上传到S3的movie这个bucket,比如上传的文件名称为"video.mp4",并设置访问权限为"public-read",注意设置对应的content-type,以s3cmd为例
s3cmd put video.mp4 s3://movie --acl-public
2.配置nginx的rtmp模块
/etc/nginx/nginx.conf #nginx配置文件,注意替换{nginx_server}为nginx服务器IP或者域名
rtmp { server { listen 1935; application myapp { live on; hls on; hls_path /var/tmp/myapp; #hls文件临时存放目录 hls_keys on; hls_key_path /var/tmp/keys; #hls的加密key存放目录 hls_key_url http://{nginx_server}/keys/; #key的对外访问路径 hls_fragments_per_key 10; #每10帧更新一次key } }
/etc/nginx/conf.d/hls.conf #站点配置文件
server { listen 80; location /keys { root /var/tmp; } location /myapp { # Serve HLS fragments types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /var/tmp; add_header Cache-Control no-cache; } }
方案对比
功能 | 方案1 | 方案2 |
---|---|---|
前端rtmp播放 | 支持 | 支持 |
前端hls播放 | 不支持 | 支持 |
S3替代本地存储 | 支持 | 支持 |
防盗链下载 | 支持(客户端接收的是rtmp) | 支持(加密HLS分片,动态key方式) |
“基于s3cmd的视频存储方案有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
本文标题:基于s3cmd的视频存储方案有哪些
当前链接:http://scgulin.cn/article/ihhsih.html