之前分享了一篇关于使用 CloudFlare R2 托管在线视频成本优势的文章,今天来讲一下具体怎么做
https://app.justincourse.com/i/1133/
本地转换视频
ffmpeg 的安装:https://ffmpeg.org/download.html
https://github.com/justincourses/r2-hot-link-protection/blob/main/scrips/encode-hls.sh
ffmpeg -i ../[your-video].mp4 \
-c:v libx264 -profile:v high -level 4.1 -preset slow \
-crf 20 -g 48 -sc_threshold 0 \
-c:a aac -b:a 128k \
-vf "scale=w=1920:h=1080:force_original_aspect_ratio=decrease" \
-hls_time 6 -hls_playlist_type vod \
-hls_segment_filename "out_%03d.ts" \
[your-video].m3u8
上传到 R2
- 登录 Cloudflare
- 创建 R2 Bucket
- 拖放文件
Worker 转发 + 防盗链
- 使用模版创建自己的 Worker
// https://github.com/justincourses/r2-hot-link-protection/blob/main/src/index.ts#L1
const ALLOWED = new Set([
// 这里可以加上自己的 domain 白名单
]);
// https://github.com/justincourses/r2-hot-link-protection/blob/main/src/index.ts#L57
// 如果 worker 与目标网站在同一个根 domain 下可以取消下面这一行的注释,进一步提升安全性
// h.set('Cross-Origin-Resource-Policy', CORP);
引用视频
- 直接打开(Blocked)
- 未加白名单的网站(Blocked)
- 已加白名单的网站(ok)
课程讨论与答疑
提问默认仅你和管理员可见;管理员精选后会作为公开讨论展示。