human: 如何处理七牛云的智能多媒体服务普通转码

gpt: [智能多媒体服务](https://developer.qiniu.com/dora) > 使用指南 > 开发指南 >多媒体处理能力 >普通转码

#  普通转码

最近更新时间: 2024-04-29 10:46:33

转码是多媒体处理中重要的一步，本文为您介绍转码的简介，如何通过上传自动触发方式、控制台、API发起转码，并为您详细介绍普通转码预设的参数。

# **简介**

**什么是普通转码**

视频转码（Video
Transcoding）是指将已经压缩编码的视频码流转换成另一个视频码流，以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。转码本质上是一个先解码、再编码的过程，因此转换前后的码流可能遵循相同的视频编码标准，也可能不遵循相同的视频编码标准。

转码在视频生产流程中的位置如下：

![](https://dora-doc.qiniu.com/WX20201210-151346%402x.png)

**转码功能特性**

  * 视频处理：完善的转码与转封装]能力，进行丰富的媒体格式转换。
  * 音频处理：音频转码、音频抽取、音频替换、音频混音等。
  * 水印：支持图片水印、文字水印，并且支持多水印添加。
  * 多清晰度预设：标清、全高清、2k、4k等多个预置清晰度，提供最佳经验值，降低接入门槛。
  * 片段截取：是指裁剪视频的某一段，输出成一个新视频。常用于截取视频中精彩或关键的内容。
  * 视频马赛克：在视频中添加马赛克，满足遮标需求。

**使用场景**

  * 多终端设备适配：适配PC、TV以及移动终端等多平台播放。
  * 多种网络环境适配：多种网络环境适配：不同网络带宽的用户选择最佳码率，流畅播放
  * 水印添加：在视频上添加企业Logo、电视台台标、用户ID或昵称等标志性信息，用于品牌宣传或者宣示当前视频的版权归属。

**不转码的情况**

  * 如果用户已经自己在本地进行过转码操作，不需要进行二次处理，也可以选择不转码。
  * 在短视频等场景下，视频通常已在端上进行过拍摄和压缩，已经具备多终端播放的能力。此时可以不进行转码。

# **发起转码的方式**

  * 通过上传自动触发方式转码

    * 登录 **[智能多媒体](https://developer.qiniu.com/dora/7507/ordinary-transcoding01)** ，点击左侧【导航栏->任务触发器】，进入任务触发器列表页。

    * 创建一个转码的任务触发器，具体操作，请参考 [任务触发器 __](https://developer.qiniu.com/dora/manual/6489/task-workflow)

![img](https://dora-doc.qiniu.com/WX20201210-165435.png)

    * 可根据配置的回调，将转码后的任务处理结果回调给用户。

  * 通知指定文件发起转码

    * 用户对 bucket 中已存在的多媒体文件发起转码。

    * 登录 **[智能多媒体](https://developer.qiniu.com/dora/7507/ordinary-transcoding01)** ，点击左侧【导航栏->任务】，进入添加任务页面。选择需要使用的工作流（或者自定义工作流），单击**保存** ，即可触发转码，具体操作，请参考 [添加任务 __](https://developer.qiniu.com/dora/manual/6488/task-01)

![img](https://dora-doc.qiniu.com/WX20201210-172128.png)

  * 通过API发起转码

    * 通过调用 API 手动发起转码处理任务请求。该操作常用于工作流无法满足用户场景时，需用户自己判断业务逻辑，使用API提交转码任务。例如：并不是所有的视频都需要转码，不同视频需要设置不同的转码配置。

# **普通转码参数说明**

转码参数十分复杂，为了避免用户将过多精力集放在参数管理，控制台可以将这一系列复杂参数保存为预设。用户可自行定义转码预设，它是转码参数（音频、视频等）的集合，可以满足用户个性化的转码需求。方便用户低门槛、快速使用。

下面对各类型参数的关键参数含义及取值范围进行说明。

## **1\. 基础参数**

类别 | 中文名 | 参数名称 | 必填 | 参数侧边栏文案  
---|---|---|---|---  
封装格式 | 封装格式 |  | Y | 封装格式支持以下几种： mp4、hls、flv、mov、gif、mp3、m4a  
| 高质量 gif | `/gifHighColor/<GIFHighColor>` | N | 输出为 gif 时，可以选择输出高画质的 gif 文件。  
开启时，只支持与以下参数共用：  
1、帧率（输出 gif 的帧数最多为 4500）  
2、分辨率  
3、片段截取  
4、视频按比例缩放  
转码时长 | 源视频时长 | `/ss/<SeekStart>` | N | 默认是源文件时长。  
| 片段截取开始时间 | `/ss/<SeekStart>` | N | 如果只需要源文件中的一部分内容，可以选择片段截取来完成。  
从输入源中截取一段音视频，指定截取开始时间，单位：秒。  
| 片段截取长度 | `/t/<Duration>` | N | 从输入源中截取一段音视频，指定截取的长度，单位：秒。  
  
## **2\. 视频参数**

类别 | 中文名 | 参数名称 | 必填 | 说明  
---|---|---|---|---  
禁用视频 | 禁用视频 | `/vn/<VideoNo>` | N | 是否去除视频流，默认保留，勾选禁用视频后，会去除视频流。  
编码格式 | 编码格式 | `/vcodec/<VideoCodec>` | N | 视频编码格式，支持 H.264 和 H.265 两种，默认 H.264。  
码率 | 自定义码率 | `/vb/<VideoBitRate>` | N | 1、视频码率，单位：千比特每秒（kbit/s），常用视频码率：128k，1.25m，5m等，码率限制大小为 [1,50000]，支持到小数点后一位。  
2、在不改变视频编码格式时，若指定码率大于原视频码率，则使用原视频码率进行转码。  
3、可以强制使用指定码率转码, 使平均码率不高于指定值，会牺牲一些视频播放质量；不使用强制，会在码率与视频质量之间自动平衡。  
| CRF质量因子 | `/Crf/<Crf>` | N | 设置crf值，为整数，其值越小，输出视频质量越好，输出文件可能变大。通常 18 接近无损压缩，建议配置 23-27 之间。  
1、编码格式为 H.264 时取值为范围 [18,28]  
2、编码格式为 H.265 时取值范围为 [23,41]  
高质量转码 | 高质量转码 | `/refine/<Refine>` | N | 默认不启用，启用后会2pass转码，保证在视频内优化码率分配。转码后文件更小，质量更高，码率更合理。  
譬如，设定码率为1800kbps，第一遍pass可能是1700kbps，第二遍pass会在第一遍的基础上，压缩出1750kbps，更接近设置的码率。  
最高码率 | 最高码率 | `/maxrate/<Maxrate>` | N | 1、当启用高质量转码时，使用最高码率可以限制输出视频流的峰值码率。  
a、当不设置码率值，该值不可低于输入源视频码率；  
b、当设置码率值时，该值不可低于由码率参数指定的视频码率。  
  
2、当不启用高质量转码时，无使用限制。  
a、如果设置了自定义码率值，则最高码率值不可低于自定义码率值；  
b、如果没有设置自定义码率值，则最高码率在范围[1,50000]即可。  
分辨率 | 分辨率 | `/s/<Resolution>` | N | 0、指定目标视频分辨率，格式为宽 x 高 ，长边取值范围[20,8192]的整数，短边取值范围[20,4320]的整数。  
1、w、h 都为空时，则和原视频保持一致。  
2、w为空，h不为空，则按h的值对原视频等比例缩放。  
3、w不为空，h为空时，则按w的值对原视频等比例缩放。  
4、w、h都不为空时，则根据w、h来缩放。  
视频按比例缩放 | 视频按比例缩放 | `/autoscale/<Autoscale` | N | 0、直接缩放时，会强制缩放到目标分辨率，可能造成视频变形。  
1、裁剪缩放，原视频比例（A)和目标分辨率比例(B)进行比对，比例=宽/高；  
1）若A<B，原视频按照目标分辨率的`高`进行缩放  
2）若A>B，原视频按照目标分辨率的{{宽}}进行缩放  
  
2、补黑边调整，原视频比例（A)和目标分辨率比例(B)进行比对,比例=宽/高；  
1）若A<B，原视频按照目标分辨率的`高`进行缩放，再放到目标分辨率矩形框内，并填充黑边  
2）若A>B，原视频按照目标分辨率的{{宽}}进行缩放，再放到目标分辨率矩形框内，并填充黑边。  
  
示例：原视频（1280x 720），A(1.78);目标分辨率（800x400）,B(2)  
1）选择裁剪播放，A<B,此时按照`高`进行缩放，结果文件分辨率为710x400;  
2）选择补黑边调整，A<B,此时按照`高`进行缩放，原视频缩放为710x400，再放入800x400的矩形框，并填充黑边。  
播放器显示比例 | 播放器显示比例 | `/aspect/<Aspect>` | N | 该参数为视频在播放器中显示的宽高比，格式为`<width>:<height>，取值范围为[1,100]的整数。`例如：取值`3:4`表示视频在播放器中播放是`宽:高`=`3:4。`  
帧率 | 帧率 | `/r/<FrameRate>` | N | 1、视频帧率，每秒显示的帧数，单位：赫兹（Hz），常用帧率：24，25，30帧等，帧率限制大小在 [1，60]。  
  
2、普通帧率和高帧率的收费标准不同，[参考价格详情 __](https://www.qiniu.com/prices?source=dora)。  
  
帧率为为 [1,30]时，按照普通帧率进行收费。  
帧率为 (30 , 60]的时，按照高帧率进行收费。  
| 高帧率 | `/hr/<HighFrameRate>` | N | 视频高帧率，与帧率配合使用，默认为不保留高帧率，即常规帧率，开启后表示保留高帧率。  
  
1、不开启高帧率，帧率取值在[1,30]时，超出范围取25帧；  
2、开启高帧率，取值[1,60]，超出范围取60帧。  
**比如** ：设置帧率为45，不开启高帧率，实际帧率取25，开启高帧率，实际帧率取值45。  
  
  
关键帧最大间隔 | 关键帧最大间隔 | `/gop/<GroupOfPictures>` | N | GOP参数，即视频流关键帧间的间隔帧数，取值[0,3000]的整数。  
1、不填或者取值为0，表示采用指定视频编码格式的默认GOP值（例如H264格式，默认GOP值为250）。  
2、锐智转码1.0版本不支持该参数。  
注意：GOP取值过小会影响视频编码压缩率，码率变大，过大会使图像群组的时长跨度过大，影响播放随机性，故一般建议采用默认值。  
  
## **2.1 视频高级参数**

类别 | 中文名 | 参数名称 | 必填 | 说明  
---|---|---|---|---  
视频加减速 | 视频加减速 | `/vspeed/<vspeed>` | N | 加/减速视频，默认为1，表示保持源视频速度不变。  
1、加速，取值范围 [1,100]，取值到小数点后两位 减速，取值范围 [0.01,1]，取值到小数点后两位  
2、减速，取值范围 [0.01,1]，取值到小数点后两位  
编码级别 | 编码级别 | `/h264Profile/<H264Profile>` | N | H.264 规定了三种主要级别，不同硬件可播放的编码级别不同。当一个视频输出多清晰度时，建议：  
1、最低清晰度设置适合移动设备（baseline）  
2、其他清晰度设置为适合标准分辨率设备（main）  
3、适合高分辨率设备（high）  
编码level | 编码level | `/h264Level/<H264Level>` | N | 设置 h264 的 level 值，合法的值有 3.0、3.1、4.0、4.1、4.2。  
视频颜色格式 | 视频颜色格式 | `/pixFmt/<PixFmt>` | N | 指定视频像素格式，目前仅支持设置yuv420p。  
HDR到SDR转化 | HDR到SDR变换 | `/sdr/<SDR>` | N | 是否启用HDR转SDR。  
  
1.当输入源为HDR时，开启时，转为SDR视频，不支持hdr的设备上也能尽可能还原hdr效果。  
2.默认关闭，跟随源视频，即hdr到hdr，sdr到sdr。  
备注：  
不支持hdr的设备播放hdr视频，没有hdr效果。  
视频旋转/翻转 | 顺时针旋转 | `/rotate/<Degree>` | N | 指定顺时针旋转的度数，可取值为`90`、`180`、`270`、`auto`，默认为 auto。  
| 视频翻转 | `/flip/<Flip>` | N | 视频翻转, 水平翻转 `horizontal`, 垂直翻转 `vertical。`  
视频马赛克 | 马赛克位置 | `/mosaicGravity/<MosaicGravity>` | N | 马赛克的位置，参考锚点参数表，默认值为`NorthEast`（右上角）  
| 马赛克位置 | `/mosaicOffsetX/<MosaicOffsetX>` | N | 马赛克位置的相对横向偏移量 `，正数则向右偏移，负数向左偏移。`  
| 马赛克位置 | `/mosaicOffsetY/<MosaicOffsetY>` | N | 马赛克位置的相对纵向偏移量 `，正数则向下偏移，负数向上偏移。`  
| 马赛克大小 | `/mosaicSize/<MosaicSize>` | N | 马赛克区域大小，即指定马赛克的宽和高。  
| 起始时间 | `/mosaicStart/<MosaicStart>` | N | 马赛克起始时间， 默认为0。  
| 持续时间 | `/mosaicDuration/<MosaicDuration>` | N | 马赛克持续时间， 默认直到片尾  
清除metadata | 清除metadata | `/stripmeta/<StripMeta>` | N | 是否清除文件的`metadata`，1为清除，0为保留。  
  
## **3\. 音频参数**

分类 | 中文名 | 参数名称 | 必填 | 说明  
---|---|---|---|---  
禁用音频 | 禁用音频 | `/an/<AudioNo>` | N | 是否去除音频流，0为保留，1为去除。默认值为0。  
编码格式 | 编码格式 | `/acodec/<AudioCodec>` | N | 1、音频编码格式，支持 MP3 、AAC 。  
2、为空时，与源视频一致  
编码级别 | 编码级别 | `/audioProfile/<profile>` | N | AAC音频编码级别，支持：aac_he。需配合 aac 编码方案使用，如 avthumb/m4a/acodec/libfdk_aac/audioProfile/aac_he。  
采样率 | 采样率 | `/ar/<SamplingRate>` | N | 1、音频采样频率，单位：赫兹（Hz），取值为整数。  
2、常用音频采样频率有 8000,
11025、12000、16000、22050、24000、32000、44056、44100、47250、48000、50000、64000、88200、96000
等。  
码率 | 自定义码率 | `/ab/<BitRate>` | N | 1、音频码率，单位：比特每秒（kbit/s），常用码率：64k，128k，192k，256k，320k等，音频码率限制大小为 [1，600]，支持到小数点后一位。  
2、在不改变音频编码格式时，若指定码率大于原音频码率，则使用原音频码率进行转码。  
3、勾选【强制使用】，可以强制指定码率进行转码。  
| 音频质量因子 | `/aq/<AudioQuality>` | N | 设置音频质量因子，其值越小，输出音频质量越好。  
1、mp3取值范围：0-9  
2、aac取值范围：10-500  
声道数 | 声道数 | `/ac/<ChannelNum>` | N | 音频声道数量，单位：整数值，输出文件的声道数不能大于输入源的声道数量；  
1、音频编码格式为mp3时，支持的声道数量为 1、2，其他数值不合法。  
2、音频编码格式为aac时，支持的声道数量为 1、2、4、5、6、8，其他数值不合法；  
音量设置 | 源视频音量 |  |  | 默认跟随源视频音量  
| 音量调节 | `/volume/<Volume>` | N | 1、调整音频音量为原音频音量的倍数, 精确到小数点后2位 ，默认值为 1.0, 范围 [0.01, 3]；  
2、不可与【音频响度标准化】共用。  
| 音量响应度 | `/loudnorm/<LoudNorm>` | N | 1、是否使用音频响度标准化调整，0为不使用，1为使用。默认值为0；  
2、不可与volume共用。  
|  | `/loudnormI/<LoudNormI>` | N | 音频整体响度值，当 loudnorm 为1时有效，取值范围 [-70.0, -5.0], 默认为 -24.0  
|  | `/loudnormLRA/<LoudNormLRA>` | N | 音频响度范围，当 loudnorm 为1时有效， 取值范围 [1.0, 20.0], 默认为 7.0  
|  | `/loudnormTP/<LoudNormTP>` | N | 音频最高峰值，当 loudnorm 为1时有效， 取值范围 [-9.0, 0.0], 默认为 -2.0  
|  | `/loudnormRefine/<LoudNormRefine` | N | 使用增强音频响度标准化（/loudnormRefine/<LoudNormRefine），可以尽量让不同轨道的音量保持一致，分为：  
1、音频优先，会严格按照用户的参数配置响度。  
2、使用响度优先，会有一些限制不一定能达到用户配置的响度值。  
|  | `/loudnormF/<LoudNormF>` | N | 音量均衡，可以解决单个文件音频中存在音量忽大忽小的问题，比如一个音频前面几秒跟后面几秒声音听起来大小不同。  
  
1、设置片段时长大小（/loudnormF/），单位：毫秒，取值范围 [10, 8000]，取值越小拉平越明显，默认为 500。  
  
2、设置平滑窗口大小（/loudnormG/）单位：帧，取值范围为 [3, 301]的奇数, 取值越小拉平越明显，默认为 31  
|  | `/loudnormG/<LoudNormG>` | N | 同上  
  
## **3.1 音频高级参数**

类别 | 中文名 | 参数名称 | 必填 | 说明  
---|---|---|---|---  
音频混音 | 混音文件 | `/amix/<AmixURL>` | N | 1、期望混音的音视频文件；2、源音视频、混音文件都仅支持单音轨；3、混音的两个音频的 channel 数必须一致。备注：不支持与音频替换同时使用。  
| 开始混音时间 | `/amixOffset/<AmixOffset>` | N | 混音效果起始位置，相对于混音后视频起始位置计算，单位为秒，精确到毫秒，默认取0，即混音后音视频从起始位置起有混音效果  
| 混音文件截取开始时间 | `/amixStart/<AmixStart>` | N | 1、用于混音文件长度截取；2、混音文件截取的开始时间，单位为秒，精确到毫秒；3、默认值为0，即混音文件从起始混入源音视频。  
| 混音文件截取时长 | `/amixDuration/<AmixDuration>` | N | 1、用于混音文件长度截取；2、混音文件截取的时长，单位为秒，精确到毫秒;3、默认为目标混音文件音轨原始长度，即全部混入源音视频。  
音频替换 | 替换文件 | `/multiArep/<MultiAudioReplaceURL>` | N | 用于替换原视频音频的音频文件。备注：不支持与音频混音同时使用。  
| 开始替换时间 | `/multiArepOffset/<MultiAudioReplaceOffset>` | N | 音频替换起始位置，相对于原视频音频起始位置计算，单位为秒，精确到毫秒，默认取0  
| 替换文件截取开始时间 | `/multiArepStart/<MultiAudioReplaceStart>` | N | 1、用于替换文件长度截取；2、替换文件截取的开始时间，单位为秒，精确到毫秒；3、默认值为0，即替换文件从起始混入源音视频。  
| 替换文件截取时长 | `/multiArepDuration /<MultiAudioReplaceDuration>` | N | 目标音频文件截取的时长，单位为秒，精确到毫秒，默认为目标音频文件音轨原始长度，即全部目标音频替换原视频音频。  
支持speex文件 | 支持speex文件 | /speex/ | N | 是否把源音频文件作为微信版speex处理  
  
1、开启时，作为微信版speex处理，版本为1.2rc1，不支持其他音频格式转speex。  
  
2、默认关闭，不作为微信版speex处理。  
Xing信息 | Xing信息 | /writeXing/ | N | 转码成mp3时是否写入xing heade  
  
1、默认开启，表示表示写入，写入会导致 file，avinfo 等命令识别出错误的码率。好处是在需要音频时长、帧数的时候只需要获取header。  
  
2、关闭时，表示不写入。  
  
## **4\. 字幕编辑**

中文名 | 参数名称 | 必填 | 说明  
---|---|---|---  
禁用字幕 | `/sn/<SubtitleNo>` | N | 是否去除字幕，0为保留，1为去除。默认值为0。  
添加字幕 | `/subtitle/<SubtitleURL>` | N | 添加字幕，支持：srt格式字幕（uft-8编码和和utf-8 BOM编码）、带有字幕的mkv文件、embed（将原视频的字幕流嵌入目标视频）。基于base64编码。  
  
以上内容是否对您有帮助？