腾讯云直播 FLV 加密方案

admin2026-06-20 15:56:367372

实践教程文档中心入门中心API 中心SDK 中心文档活动我的反馈文档反馈官招募中,报名立赚积分兑换代金券!> HOT文档中心>实践教程>云直播>直播安全>腾讯云直播 FLV 加密方案腾讯云直播 FLV 加密方案最近更新时间:2025-03-12 15:53:13

微信扫一扫QQ新浪微博复制链接链接复制成功我的收藏本页目录:iOS 接入Android 接入License 获取大部分隐私直播或者需要内容安全的直播并不需要硬件级别安全,以及复杂的证书派发验证过程。而且在国内直播中,FLV 直播方式也比较流行。需要针对 FLV 的安全直播方案。使用场景:在使用 FLV 协议播放的情况下,希望流内容加密,黑客无法通过网络抓取,即使将流 dump 到本地也无法播放。实施方案:腾讯云直播自研流加密方案,客户通过提工单要求对 FLV 加密,提出加密模式(视频加密,音视频加密),腾讯云按指定模块对直播流进行加密。在解密播放时,客户通过腾讯云 API 接口 DescribeDRMLicense 请求获取 TXEncryptionToken 密钥字段,添加到播放 URL 参数中,供播放 SDK 解密播放。

自研加解密流程如下:实施方法:具体实施过程请联系腾讯云商务或者提工单联系腾讯云直播。方案优势:全部过程可控,密钥和加解密有产品和工具支持,腾讯云提供播放器 SDK,集成方便,方案成熟。存在的问题:需要集成 SDK,只能支持客户自研播放器。Web 端和浏览器无法播放。本方案提供 iOS 和 Android 两种接入方式,单击这里 下载 SDK。iOS 接入/** * 创建Player 实例。 */V2TXLivePlayer *player = [[V2TXLivePlayer alloc] init];/** * 设置播放器的视频渲染 View。 该控件负责显示视频内容。 * * @param view 播放器渲染 View * @return 返回值 {@link V2TXLiveCode} * - V2TXLIVE_OK:成功 */[player setRenderView:view];/** * 设置播放器回调。 * * 通过设置回调,可以监听 V2TXLivePlayer 播放器的一些回调事件, * 包括播放器状态、播放音量回调、音视频首帧回调、统计数据、警告和错误信息等。 * * @param observer 播放器的回调目标对象,更多信息请查看 {@link V2TXLivePlayerObserver} */[player setObserver:self];/** * 密钥请求请参考License获取 * 设置密钥 * * @note json中的url必须与startLivePlay的url相同,SDK通过url进行二次校验,避免key与url不匹配导致错误解密的情况。 */NSString *url = @"http://5000.liveplay.myqcloud.com/live/flvtest100_1000.flv?request_type=STDFLV&TXEncryptionToken=ZW5jTW9kZT01JmVuY0tleT0yNmFjZWIxMjViNDczMWNjODRkZTAxZWEyNDA3ZDVmZCZlbmNJVj1iZmEwYmI0NDRhN2NhNDUyMDRjMmNhNzZhYWQyMWFjNA==";/** * 开始播放音视频流。 * * @param url 音视频流的播放地址,支持 RTMP, HTTP-FLV, TRTC,HLS。 * @return 返回值 {@link V2TXLiveCode} * - V2TXLIVE_OK: 操作成功,开始连接并播放 * - V2TXLIVE_ERROR_INVALID_PARAMETER: 操作失败,url 不合法 * - V2TXLIVE_ERROR_REFUSED: RTC 不支持同一设备上同时推拉同一个 StreamId。 */[player startLivePlay:url];Android 接入/** * 创建Player 实例。 */V2TXLivePlayer player = new V2TXLivePlayer();/** * 设置播放器的视频渲染 View。 该控件负责显示视频内容。 * * @param view 播放器渲染 View * @return 返回值 {@link V2TXLiveCode} * - V2TXLIVE_OK:成功 */player.setRenderView(view);/** * 设置播放器回调。 * * 通过设置回调,可以监听 V2TXLivePlayer 播放器的一些回调事件, * 包括播放器状态、播放音量回调、音视频首帧回调、统计数据、警告和错误信息等。 * * @param observer 播放器的回调目标对象,更多信息请查看 {@link V2TXLivePlayerObserver} */player.setObserver(this);/** * 密钥请求请参考License获取 * 设置密钥 * * @note json中的url必须与startLivePlay的url相同,SDK通过url进行二次校验,避免key与url不匹配导致错误解密的情况。 */String url = "http://5000.liveplay.myqcloud.com/live/flvtest100_1000.flv?request_type=STDFLV&TXEncryptionToken=ZW5jTW9kZT01JmVuY0tleT0yNmFjZWIxMjViNDczMWNjODRkZTAxZWEyNDA3ZDVmZCZlbmNJVj1iZmEwYmI0NDRhN2NhNDUyMDRjMmNhNzZhYWQyMWFjNA==";/** * 开始播放音视频流。 * * @param url 音视频流的播放地址,支持 RTMP, HTTP-FLV, TRTC,HLS。 * @return 返回值 {@link V2TXLiveCode} * - V2TXLIVE_OK: 操作成功,开始连接并播放 * - V2TXLIVE_ERROR_INVALID_PARAMETER: 操作失败,url 不合法 * - V2TXLIVE_ERROR_REFUSED: RTC 不支持同一设备上同时推拉同一个 StreamId。 */player.startLivePlay(url);License 获取设置 API 接口名称为 DescribeDRMLicense。接口请求域名: drm.tencentcloudapi.com。开发者需要指定使用的 DRM 类型取值 NORMALAES、和需要加密的 Track 类型取值 SD,ContentType 取值 LiveVideo,ContentId 为用户的流 id。示例:测试环境请求:POST / HTTP/1.1Host: drm.tencentcloudapi.comContent-Type: application/jsonX-TC-Action: DescribeDRMLicense<公共请求参数>{ "DrmType":"NORMALAES", "ContentId":"flvtest100", "Tracks":[ "SD" ], "ContentType":"LIVEVIDEO"}请求结果:{ "Response": { "ContentId": "flvtest100", "TXEncryptionToken": "ZW5jTW9kZT01JmVuY0tleT0yNmFjZWIxMjViNDczMWNjODRkZTAxZWEyNDA3ZDVmZCZlbmNJVj1iZmEwYmI0NDRhN2NhNDUyMDRjMmNhNzZhYWQyMWFjNA==", "RequestId": "47f336fd-b05a-4192-b1f4-8f9d4c5f76f1" }}上一篇: 视频直播播放安全下一篇: 防盗链计算Copyright © 2013-2026 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有深圳市腾讯计算机系统有限公司ICP备案/许可证号:粤B2-20090059粤公网安备44030502008569号腾讯云计算(北京)有限责任公司京ICP证150476号 | 京ICP备11018762号中国站中文International文档“捉虫”活动检视指定产品文档,发现和反馈有效问题,奖!API专项"捉虫"反馈API文档问题,代金券、周边好礼奖不停!文档建议,你提了吗快来使用腾讯云产品文档,提出有效建议,奖!咨询