API 文档

文档中心 > 云直播 > 最佳实践 > 直播转封装及转码

直播转封装及转码

最近更新时间:2020-08-03 16:01:59

直播转封装功能

直播转封装功能,是指将直播现场推送出来的原始流(一般使用 RTMP 协议推送到云端),在云端转换为不同的封装格式的视频流推送给观众,同时支持输出纯音频或者纯视频功能,也支持各种不同的 DRM 加密方案,以满足数字版权保护的需求。

支持的输出封转格式

  • RTMP
  • FLV
  • HLS
  • DASH
  • HDS
  • TS 流

支持选择指定媒介输出

  • 纯音频输出:即删除视频媒介,只输出音频媒介,封装格式如前文所述。
  • 纯视频输出:即删除音频媒介,只输出视频媒介,封装格式如前文所述。

支持的媒体加密方案

  • Fairplay
    HLS 封装支持 Apple fairplay drm 解决方案。
  • Widevine
    DASH 封装支持 Google widevine drm 解决方案。
  • HLS 通用 Aes-128 加密
    HLS 封装支持使用通用的 Aes-128 的加密方案。

直播转码功能

直播转码功能(包含视频转码和音频转码),是指将直播现场推送出来的原始流,在云端转换为不同编码格式、不同分辨率、不同码率的转码流推送给观众,以满足不同网络环境、不同终端设备等各种场景下的播放需求。

典型应用场景举例

  • 将原始视频流转换为不同清晰度的转码流,用户可以根据自己的网络情况选择不同码率的视频流进行播放,以保证播放的流畅性。
  • 将原始视频流中打上官方自定义水印,给视频加上独有的标志,以标明版权,也可以起到宣传推广的效果。
  • 将视频流转换为编码压缩率更优的视频编码格式,例如某一条原始编码格式为 H264 的视频流,在观看的人数比较大的情况下,可以尝试将原始 H264 的视频流转换为压缩率更高的 H265 视频流,从而能够达到节省带宽,节约成本的效果。
  • 将原始视频流转化为不同的编码格式,以适应特殊终端的播放需求,例如有些特殊场景下解码 H264 视频由于性能问题无法达到实时播放的体验,需要将原始 H264 流转换为 Mpeg 编码格式的视频,从而达到终端实时解码播放的体验。

视频转码参数

参数类型说明
视频编码方式 支持以下视频编码格式:
  • H264
  • H265
视频编码档次 支持以下三种编码档次:
  • Baseline
  • Main
  • High
视频编码码率
  • 支持视频输出码率范围:50kbps - 10Mbps。
  • 支持当指定输出码率大于输入原始码率时,输出码率保持为原始码率。例如指定输出码率为3000kbps,但是原始输入流的码率只有2000kpbs,这种情况下可以保持输出码率为2000kbps。
视频编码帧率
  • 支持视频输出帧率范围:1fps - 60fps。
  • 支持当指定输出帧率大于输入原始帧率时,输出帧率保持为原始帧率。例如指定输出帧率为30fps,但是原始输入流的帧率只有20fps,这种情况下可以保持输出帧率为20fps。
视频分辨率
  • 支持宽度范围:128 - 4096。
  • 支持高度范围:128 - 4096。
  • 支持单独指定宽度,高度依照宽度等比例缩放。
  • 支持单独指定高度,宽度依照高度等比例缩放。
视频 GOP 长度 支持视频 GOP 长度范围:1秒 - 10秒,一般建议2秒 - 4秒。
视频码率控制方法 支持如下两种码率控制方法:
  • 固定比特率(CBR)。
  • 动态比特率(VBR)。
视频画面旋转 支持将原视频画面顺时针旋转3个角度:
  • 顺时针旋转90度。
  • 顺时针旋转180度。
  • 顺时针旋转270度。

音频转码参数介绍

参数类型说明
音频编码方式 支持以下编码规格:
  • AAC-LC
  • AAC-HE
  • AAC-HEV2
音频采样率 支持以下常用采样率,常用的采样率为48000和44100。
  • 96000
  • 64000
  • 48000
  • 44100
  • 32000
  • 24000
  • 16000
  • 12000
  • 8000
音频编码码率 音频支持码率范围:20kbps - 192kbps,常用音频码率如下:
  • 48kbps
  • 64kbps
  • 128kbps
音频声道数 音频支持以下声道数:
  • 单声道
  • 双声道

视频转码常用预设模板

清晰度 模板名称 视频分辨率 视频码率 视频帧率 视频编码格式
流畅 550 按比例缩放 * 540 500kpbs 23 H264
标清 900 按比例缩放 * 720 1000kpbs 25 H264
高清 2000 按比例缩放 * 1080 2000kpbs 25 H264

极速高清转码功能

基于腾讯视频云多年音视频编码技术积累、智能场景识别、动态编码技术、CTU/行/帧三级码率精准控制模型,为直播、点播等行业以更低的码率(平均节省30%+)提供更高清的流媒体服务。

场景举例

当直播推流码率高并且画面复杂时,可以通过智能动态技术和码率精准控制模型,实现高清低码,保证同等主观画质。

功能优势

随着当今各视频平台用户对视频源清晰度观看体验要求越来越高,当前直播行业1080P、码率3Mbps - 10Mbps已逐渐成为主流配置,所以带宽成本已经占据了视频平台成本比例中很大的一部分。而降低视频码率能够十分有效的减少带宽成本。
示例:
一场标准直播码率为3Mbps,直播时间4小时,观看人数200人,编码方式使用 H.264,分辨率1080P,不使用极速高清转码时,使用 直播价格计算器 计算产生的带宽成本为372元。

  • 使用极速高清转码降低码率之后,产生的带宽成本大约为:372 ×(100% - 30%)= 260.4元。
  • 使用极速高清转码产生的费用:0.2511 × 240 = 60.264元(刊例价格,不计算任何折扣)。
  • 成本总计:260.4 + 60.264 = 320.664元。

因此极速高清转码在为用户提供更优质的观看体验的同时,十分有效的降低了平台的带宽成本。

主要参数

极速高清转码与标准直播转码的参数配置方法基本一致,请参见 视频转码参数

直播添加水印功能介绍

视频流添加水印功能,指的是在原始流的基础上,给视频画面添加上各种预设好的标志图片,给视频加上独有的标志,以标明版权,也可以起到宣传推广的效果。

水印相关参数

水印的主要参数包括水印位置和水印大小,水印位置和大小由参数 XPosition、YPosition、Width 和 Height 决定,各参数含义如下:

  • XPosition:X轴偏移,表示水印左侧和视频左侧边沿X轴偏移的百分比距离。
  • YPosition:Y轴偏移,表示水印顶部和视频顶部边沿Y轴偏移的百分比距离。
  • Width:水印宽度,占直播原始画面宽度百分比。
  • Height:水印高度,占直播原始画面高度度百分比。

注意:

当一个流启用了多种码率转码时(即一路原始流转化为多种分辨率的转码流),这种情况下需要添加水印,可以在 云直播控制台API 中设置 X 轴,Y 轴的百分比位置,系统会自适应水印的位置。

水印参数例子

视频输出画面为1920×1080,水印大小为320×240,使用百分比计算方式 XPosition = 5,YPosition = 5,Width=10。
根据视频输出画面的分辨率计算出水印的绝对位置和大小如下:

XPosition_pixel = 1920 * 5% = 96
YPosition_pixel = 1080 * 5% = 54
Width_pixel = 1920 * 10% = 192
Height_pixel = 192 * 240 / 320 = 144

因此,水印位置距离视频视频画面左边沿为96像素,距离视频输出画面上边沿为54像素,水印大小为192像素 * 144像素。

使用方法概述

添加水印可以通过两种方式来实现,一种是通过 云直播控制台 来实现,另一种是通过 服务端 API 来实现。根据您的业务需求选择对应的使用方式。

直播控制台

  1. 进入【功能模板】>【水印配置】添加水印配置模板,设置水印相关参数,并生成一个对应的水印模板 ID。具体操作请参见 水印模板配置
  2. 【域名管理】对您需操作的推流域名,单击【管理】>【模板配置】,将此域名与水印模板进行关联。具体操作请参见 水印配置

API 调用

1 调用 AddLiveWatermark 添加水印接口,设置水印的名称和参数信息。
2 调用 CreateLiveWatermarkRule 创建水印规则,设置参数推流域名 DomainName 和 WatermarkId(第1步返回),AppName 与推流和播放地址中的 AppName 保持一致,默认为 live

注意:

使用添加水印功能,会产生标准转码费用。

转码参数设置使用方法

使用方法概述

设置转码参数可以通过两种方式来实现,一种是通过 云直播控制台 来实现,另一种是通过 服务端 API 来实现。不管使用哪一种方式,主要涉及水印模板、转码模板、转码规则的相关操作。

直播控制台

  1. 进入【功能模板】>【转码配置】添加转码配置模板,支持添加 普通转码极速高清转码 模板。
  2. 根据您的需求创建对应的转码类型,设置转码相关参数。也可以使用我们系统默认的参数,并生成一个对应的转码模板 ID。
  3. 【域名管理】找到您需操作的拉流域名,单击【管理】>【模板配置】,将此域名与转码模板进行关联。具体操作请参见 转码配置

API 调用

  1. 调用 CreateLiveTranscodeTemplate 创建转码模板接口,设置您需要的转码类型参数信息。
  2. 调用 CreateLiveTranscodeRule 创建转码规则,设置参数拉流域名 DomainName 和 TemplateId(第1步返回)。在 AppName 及 StreamName 填写空字符串,表示通配此域名下所有拉流的转码。您还可以将转码模板与不同流名称进行关联,以此实现部分直播流开启转码的效果。
  3. 每一个转码模板都有对应一个唯一转码模板名称,转码模板名称作为播放转码流的唯一标识,把转码模板名称添加到播放拉流地址中流 ID 名称的后面,就可以拉取到对应各种转码模板的转码流。
注意:

转码规则的操作,主要用来控制某个域名或者某条流启用某个转码模板,只有创建了转码规则,对应的播放域名拉取相应的转码模板才能生效。若没有创建转码规则,直接使用转码模板名称拼接的拉流地址是无效的。

使用方法举例

播放地址 = 播放域名 + 播放路径 + 流 ID 名称_转码模板名称 + 鉴权串

对于一个推流,流 ID 为 1234_test,通过以下3个地址可以播放不同带水印码流的流:

  • 原始流:http://liveplay.tcloud.com/live/1234_test.flv?鉴权串
  • 标清转码流(带水印):http://liveplay.tcloud.com/live/1234_test_sd.flv?鉴权串
  • 高清流转码流(带水印):http://liveplay.tcloud.com/live/1234_test_hd.flv?鉴权串
注意:

播放带水印的流,需要对应的推流域名绑定创建的水印模板。

使用接口

  1. 通过控制台管理转码模板
    控制台支持查询、添加、修改和删除转码模板。
  2. 通过服务端 API 管理转码模板
    功能模块API 接口
    直播转码 创建转码模板
    修改转码模板
    查询转码模板详情
    查询转码模板列表
    删除转码模板
    创建转码规则
    查询转码规则
    删除转码规则
    直播水印 创建水印模板
    修改水印模板
    删除水印模板
    查询水印模板详情列表
目录