本篇内容介绍了“基于s3cmd的视频存储方案有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1. 需要支持rtmp播放,尽量少的改动现有构架
2. 使用S3替代现有的本地存储方式,尽可能降低对本地存储的依赖。
3. 视频需要支持防盗链、防下载。
方案概述:将视频文件(只支持mp4、flv)上传到S3,并设置其访问权限为public,使用rtmp模块的play指令进行播放。
将mp4或者flv文件上传到S3的movie这个bucket,比如上传的文件名称为"video.mp4",并设置访问权限为"public-read",注意设置对应的content-type,以s3cmd为例
s3cmd put video.mp4 s3://movie --acl-public
配置nginx的rtmp模块,在nginx.conf中新增如下内容
rtmp { server { listen 1935; application vod_http { play http://s3.ceph.wor/movie; } }
方案概述:将视频文件(只支持mp4、flv)上传到S3,并设置其访问权限为public,后端需要借助ffmpeg将S3的HTTP数据流推送到nginx,再经由rtmp模块转换成HLS。
将mp4或者flv文件上传到S3的movie这个bucket,比如上传的文件名称为"video.mp4",并设置访问权限为"public-read",注意设置对应的content-type,以s3cmd为例
s3cmd put video.mp4 s3://movie --acl-public
/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的视频存储方案有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。