直播转封装及转码

最后更新时间:2021-07-21 19:26:02

    直播转封装功能

    直播转封装功能,是指将直播现场推送出来的原始流(一般使用 RTMP 协议推送到云端),在云端转换为不同的封装格式的视频流推送给观众,同时支持输出纯音频或者纯视频功能,

    支持的输出封转格式

    • 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。
    视频分辨率
    • 支持宽度范围:0 - 3000。
    • 支持高度范围:0 - 3000。
    • 支持单独指定宽度,高度依照宽度等比例缩放。
    • 支持单独指定高度,宽度依照高度等比例缩放。
    视频 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 500kbps 23 H264
    标清 900 按比例缩放 * 720 1000kbps 25 H264
    高清 2000 按比例缩放 * 1080 2000kbps 25 H264

    极速高清转码功能

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

    场景举例

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

    功能优势

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

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

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

    主要参数

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

    直播添加水印功能介绍

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

    水印相关参数

    水印的主要参数包括水印位置和水印大小,水印位置和大小由参数 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?鉴权串
    注意:

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

    使用接口