sy-records/vod-hls
Composer 安装命令:
composer require sy-records/vod-hls
包简介
Tencent cloud video HLS encryption.
README 文档
README
安装
composer require sy-records/vod-hls
加密过程
- 创建 HLS 普通加密模板
- 对需加密视频进行加密转码
- 前端利用 tcplayer(或者超级播放器)播放视频;
- 播放器自动请求 getkeyurl 获取 dk,getkeyurl 根据业务侧逻辑确认是否返回 dk;
- 成功返回 dk 播放器自动解码播放。
使用方法
1. 创建 HLS 普通加密模板
/** * 创建 HLS 普通加密模板 * @url https://cloud.tencent.com/document/product/266/35167 */ $config = [ "Action" => "CreateSimpleAesTemplate", // 接口指令的名称 "get_key_url" => "", // HLS 普通加密模板的 GetKeyURL 必须https "Region" => "", // 区域参数 "Timestamp" => time(), // 当前 UNIX 时间戳 "Nonce" => uniqid(), // 随机正整数,与 Timestamp 联合起来, 用于防止重放攻击 "SecretId" => "", // 由腾讯云平台上申请的标识身份的 SecretId ]; $secretKey = ""; // 由腾讯云平台上申请的标识身份的SecretKey 需要生成签名 $data = Core::getCloudData($config, $secretKey);
2. 通过 ProcessFile 接口发起视频加密
/** * 通过 ProcessFile 接口发起视频加密 * @url https://cloud.tencent.com/document/product/266/9642 */ $config = [ "Action" => "ProcessFile", "fileId" => "", // 文件 ID "transcode.definition.0" => 230, // 转码输出模板号 "transcode.drm.definition" => 10, // 视频加密控制参数,加密方式; "Region" => "", // 区域参数 "Timestamp" => time(), // 当前 UNIX 时间戳 "Nonce" => uniqid(), // 随机正整数,与 Timestamp 联合起来, 用于防止重放攻击 "SecretId" => "", // 由腾讯云平台上申请的标识身份的 SecretId "notifyMode" => "Finish" // 任务流状态变更通知模式任务流状态变更通知模式。 ]; $secretKey = ""; // 由腾讯云平台上申请的标识身份的SecretKey 需要生成签名 $data = Core::getCloudData($config, $secretKey);
3. 获取视频信息(获取EDK)
获取 EDK 时,drm 内容需要在视频转码完成后获取,需要依靠 视频转码完成回调 ,或多次请求
GetVideoInfo
/** * 获取视频信息 * @url https://cloud.tencent.com/document/product/266/8586 */ $config = [ "Action" => "GetVideoInfo", "fileId" => "", // 文件 ID "Region" => "", // 区域参数 "Timestamp" => time(), // 当前 UNIX 时间戳 "Nonce" => uniqid(), // 随机正整数,与 Timestamp 联合起来, 用于防止重放攻击 "SecretId" => "", // 由腾讯云平台上申请的标识身份的 SecretId "notifyMode" => "Finish" // 任务流状态变更通知模式任务流状态变更通知模式。 ]; $secretKey = ""; // 由腾讯云平台上申请的标识身份的SecretKey 需要生成签名 $data = Core::getCloudData($config, $secretKey);
4. 根据业务侧逻辑确认是否返回 dk
/** * getkeyurl获取dk * @url https://cloud.tencent.com/document/product/266/9643 */ $config = [ "Action" => "DescribeDrmDataKey", "edkList.0" => "", // 视频edk "Region" => "", // 区域参数 "Timestamp" => time(), // 当前 UNIX 时间戳 "Nonce" => uniqid(), // 随机正整数,与 Timestamp 联合起来, 用于防止重放攻击 "SecretId" => "", // 由腾讯云平台上申请的标识身份的 SecretId ]; $secretKey = ""; // 由腾讯云平台上申请的标识身份的SecretKey 需要生成签名 $data = Core::getCloudData($config, $secretKey); $res = json_decode($data,true); // 需要进行decode还原为二进制 echo base64_decode($res['data']['keyList'][0]['dk']);
EDK 和 DK 关系一一对应,可直接缓存
至此,业务方成功返回 dk,播放器自动解码播放 🎉
sy-records/vod-hls 适用场景与选型建议
sy-records/vod-hls 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 22 次下载、GitHub Stars 达 1, 最近一次更新时间为 2019 年 09 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「video」 「tencent」 「hls」 「vod」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 sy-records/vod-hls 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sy-records/vod-hls 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 sy-records/vod-hls 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Easy to use SDK with grabber for multiple platforms at once like YouTube, Dailymotion, Facebook and more.
The yii2-videojs-widget is a Yii 2 wrapper for the [video.js](http://www.videojs.com/). A JavaScript and CSS library that makes it easier to work with and build on HTML5 video. This is also known as an HTML5 Video Player.
A Laravel package to interact with Shaka Streamer for media packaging.
PHP package for easy integration with solvecaptcha API.
Display a video using native HTML5 video
PHP library for generating video m3u8 playlist
统计信息
- 总下载量: 22
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2019-09-09