tencent cloud

云直播

动态与公告
公告
新手指南
产品简介
产品概述
子产品简介
基本概念
产品功能
应用场景
产品优势
使用限制
购买指南
计费概述
基础服务费
增值服务费
预付费资源包
购买流程
计费变更
退款说明
账单查询
续费说明
欠费停服说明
计费常见问题
标准直播
概述
应用场景
快速入门
SDK 接入说明
快直播(超低延时直播)
概述
快直播和标准直播区别
应用场景
快速入门
SDK 接入说明
云导播台
概述
应用场景
功能区介绍
云导播台管理
通用云导播
配置节目单和自动导播
控制台指南
控制台介绍
概览
域名管理
流管理
资源包管理
AI 智能
功能配置
拉流转推
计费用量
业务监控
常用工具
无忧直播
CAM 访问控制
功能实践
直播推流与播放
直播增值功能
典型场景实践
云端原生录制
直播安全
海外直播
回调事件消息通知
常见第三方工具指南
SDK 实践
0. SDK 接入引导
1. 推流
2. 播放
3. 高级功能
API 文档
History
Introduction
API Category
Making API Requests
Live Pad APIs
Live Stream Mix APIs
Time Shifting APIs
Monitoring Data Query APIs
Billing Data Query APIs
Live Transcoding APIs
Delayed Playback Management APIs
Domain Name Management APIs
Watermark Management APIs
Certificate Management APIs
Stream Pulling APIs
Recording Management APIs
Live Callback APIs
Screencapturing and Porn Detection APIs
Authentication Management APIs
Live Stream Management APIs
Data Types
Error Codes
运维指南
优化视频卡顿
推流失败问题排查
播放失败问题排查
CLS 协助直播问题排查
直播延迟问题排查
拉流视频质量不清晰问题排查
COS bucket 授权给直播实现截图存储
故障处理
直播混流报错:InvalidParameter.OtherError
常见问题
服务地区相关
直播基础相关
推流播放相关
直播计费相关
直播海外相关
直播录制相关
云端混流相关
域名配置相关
云导播台相关
适配苹果 ATS 相关
服务等级协议
云直播服务等级协议
CSS 政策
隐私协议
数据处理和安全协议
词汇表

HttpDNS 调度

PDF
聚焦模式
字号
最后更新时间: 2025-01-13 15:02:56

方案背景

云直播海外的推流和播放调度默认使用域名的 DNS 解析调度,它是一种最常见、最简单的接入方式。由于国内外的网络环境较为复杂,导致域名解析错误或流量跨网的问题普遍存在,云直播推荐您使用 HTTPDNS 方案来优化直播调度。
运营商 LocalDNS 的出口根据权威 DNS 目标 IP 地址进行 NAT,或者将解析请求转发至其他 DNS 服务器,导致权威 DNS 无法正确识别运营商的 LocalDNS IP,从而引发域名解析错误和流量跨网等问题。腾讯云 HTTPDNS 具有全球领先的 DNS 集群技术,可支持多运营商和自定义线路,进行优化调度。详细请参见 移动解析 HTTPDNS
说明:
本文为您阐述如何将 HTTPDNS 调度方案用于腾讯云国内和海外直播推流和播放的调度加速,HTTPDNS 接口请参见 移动解析 HTTPDNS

前期准备

1. 开通 HTTPDNS 服务,请参见腾讯云移动解析 HTTPDNS 控制台的服务 开通步骤
2. 前往 开发配置页,查看鉴权信息:授权 ID、 DES 密钥。




上行推流使用 HTTPDNS 进行调度

请求上行接入点 IP

HTTPDNS 请求:http://119.29.29.98/d?dn={$push_domain DES加密字符串}&ip={$ip DES加密字符串}&id=$id ,HTTP Get 请求,参数的含义如下:
push_domain 代表推流域名,该字段需要经过 DES 加密,密钥信息通过 HTTPDNS开发配置页 获取,具体请参见 DES 加解密说明
ip 字段代表请求端的外网出口 IP,这个 IP 代表最终会调度到的接入点 IP 所在的地区和运营商,该字段也同样需要经过 DES 加密。
id 字段代表用户鉴权标识,唯一标识每个用户。

解密接入点IP

通过 HTTPDNS 获取到的数据为 DES 密文,需要经过 DES 解密,得到 server_ip,具体请参见 DES 加解密说明

拼接上行推流 URL

这里的 server_ip 为请求上行接入点 IP 中获取到的 IP,那么拼接的推流 URL 如下:rtmp://server_ip/live/streamname?txTime=xxx&txSecret=xxx&txHost=domain,最重要的是在原有的推流参数中新增代表业务推流域名的字段 txHost。

下行播放使用 HTTPDNS 进行调度

请求下行接入点 IP

HTTPDNS 请求:http://119.29.29.98/d?dn={$domain DES加密字符串}&ip={$ip DES加密字符串}&id=$id ,HTTP Get 请求,参数的含义如下:
字段
含义
play_domain
播放域名,该字段需要经过 DES 加密,密钥信息通过 HTTPDNS开发配置页 获取,具体请参见 DES 加解密说明
ip
请求端的外网出口 IP,这个 IP 代表最终会调度到的接入点 IP 所在的地区和运营商,该字段也同样需要经过 DES 加密。
id
用户鉴权标识,唯一标识每个用户。

解密接入点IP

通过 HTTPDNS 获取到的数据为 DES 密文,需要经过 DES 解密,得到 server_ip,具体请参见 DES 加解密说明

拼接下行播放 URL

HTTP:包含 FLV 以及 HLS 的播放协议,这里的 server_ip 为请求下行接入点 IP 中获取到的 IP,play_domain 代表播放域名,则 HTTP 的播放 URL 拼接如下:
http://server_ip/play_domain/live/streamname.flv?xxxxxxxxxx
http://server_ip/play_domain/live/ streamname.m3u8?xxxxxxxxxx
http://server_ip/play_domain/live/ streamname -123.ts?xxxxxxxxxx
RTMP:这里的 server_ip 为请求下行接入点 IP 中获取到的 IP,play_domain 代表播放域名,则 RTMP 的播放 URL 拼接如下:
rtmp://server_ip/play_domain/live/ streamname?xxxxxxxxxx
说明:
由于 HTTPDNS 请求有小概率异常,如 HTTPDNS 访问超时,或者返回的结果非 IP 格式,或者返回为空等等,请兜底至 LocalDNS 进行域名解析。
由于 IP 不支持 HTTPS ,暂不支持使用该方案进行优化调度。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈