本篇內容介紹了“基于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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。