human: 如何处理七牛云的对象存储实时转码（边转边播）

gpt: [对象存储](https://developer.qiniu.com/kodo) > 使用指南 >
[开发指南](https://developer.qiniu.com/kodo/development_guidelines/8596/development-
guidelines) >
[数据处理](https://developer.qiniu.com/kodo/development_guidelines/8615/dev-the-
data-processing) > 实时转码（边转边播）

#  实时转码（边转边播）

最近更新时间: 2024-08-21 14:01:21

对象存储 Kodo 提供多种方式对空间中的视频文件做处理：

  * 可以在空间上配置 [任务触发器](https://developer.qiniu.com/dora/6489/task-workflow)，上传的文件满足规则策略时会自动触发已经编排好的异步视频处理。
  * 可以在单次上传文件的时候，指定 [异步处理动作](https://developer.qiniu.com/kodo/1661/persistent-op)。支持配置成模板，用于在 [控制台上传文件时触发转码处理](https://developer.qiniu.com/kodo/8624/dev-transcoding-style)。
  * 支持 实时转码和视频样式，可以在访问时触发视频处理、秒级开播、实时查看转码后的视频
  * 支持开启 [CDN 热点视频瘦身](https://developer.qiniu.com/kodo/12748/hot-video-slim)，可以依据文件在 **七牛 CDN** 上的访问统计次数自动识别热点视频、触发视频瘦身处理，节省视频分发成本。

本文主要介绍实时转码（边转边播）功能。

# **实时转码**

传统离线转码需要对整个视频进行解码和编码后才能访问处理后的视频，这是一种异步处理模式，需要用户的等待时间较长。然而，实时转码技术可以即播即转、秒级开播，为用户提供全新的转码体验。

![](https://dn-odum9helk.qbox.me/Fuf2RUQ7lr8LfDYifCw9t5m-3jgm)

## **功能优势**

  * 耗时极短：无需等待异步转码完成，即播即转、可以在极短时间内播放实时转码后的视频
  * 使用/对接简单：无需接收离线转码任务完成回调、开发复杂业务逻辑，接入简单
  * 节约转码成本：只在视频访问时才触发转码处理、非必要不转码，减少转码量

实时转码按输出时长计量计费，实时转码定价参考 [智能多媒体服务定价 __](https://www.qiniu.com/prices/dora)。

# **视频样式**

实时转码的使用方式和图片处理类似。您可以将视频实时转码的参数保存成视频样式，作为视频文件访问时触发实时处理的模板。

  * 不支持 av1 和 H.265 HDR 编码的视频输入
  * 输入封装格式暂时仅支持 mp4、mov，输出封装格式暂时仅支持 m3u8
  * 输出分辨率不超过2K（2560×1440）
  * 不支持管道命令
  * 实时转码目前仅限国内华东-浙江、华南-广东、华北-河北区域使用。

视频样式访问链接格式：`视频访问链接 + 分隔符 + 样式名称`

  * 视频样式，是视频实时处理参数组合的模板。
  * 样式分隔符，是用于连接资源链接和视频样式的特殊符号。
  * 服务处理访问请求时，会优先定位到链接中的分隔符、并尝试以分隔符之后的内容去匹配视频样式、触发视频处理。

## **使用案例**

  1. 转码为标清 720P 的 m3u8 文件，视频样式命名为 `sd.m3u8`，并指定样式分隔符为 `-`。
  2. 原始视频链接 `http://aaa.com/sample.mp4`。
  3. 将原始视频链接使用样式分隔符 `-` 拼接视频样式名 `sd.m3u8`，即访问 `http://aaa.com/sample.mp4-sd.m3u8` 便可直接获得 720P 的 m3u8 视频文件。

# **处理参数**

注意：接口规格不含任何空格与换行符，下列内容经过格式化以便阅读。

    
    
    avcvt/3/<Format>
         /segtime/<SegSeconds> 
         /t/<Duration> 
         /vcodec/<VideoCodec> 
         /vb/<VideoBitRate>  
         /r/<FrameRate>   
         /s/<Resolution>      
         /acodec/<AudioCodec>
         /ab/<AudioBitRate> 
         /ar/<SamlingRate>    
         /output/<Output> 
    

分类 | 参数名 | 类别 | 必填 | 说明  
---|---|---|---|---  
封装格式 | `<Format>` | A/V | Y | 封装格式，只支持输出 m3u8 流（HLS协议）  
切片时长 | `segtime/<SegSeconds>` | A/V | Y | 音视频切片时长，单位为秒（s），精确到毫秒（ms），取值范围为 2-120 秒，默认为10秒。  
截取长度 | `/t/<Duration>` | A/V | Y | 指定音视频截取的长度，单位：秒，支持精确到毫秒，例如1.500s。用于截取（0,Duration] 的音视频流进行切片。  
视频编码格式 | `/vcodec/<VideoCodec>` | V | N | 视频编码格式，支持libx264，libx265等，默认采用libx264  
视频码率 | `/vb/<VideoBitRate>` | V | N | 1、视频码率，单位：比特每秒（bit/s），常用视频码率：128k，1.25m，5m等。  
2、默认等于源视频码率，在不改变视频编码格式时，若指定码率大于原视频码率，则使用原视频码率进行转码。  
3、参数末尾使用 ! ，如 128k!，可以强制使用指定码率转码,
使平均码率不高于指定值，会牺牲一些视频播放质量；不使用!强制，会在码率与视频质量之间自动平衡。  
视频帧率 | `/r/<FrameRate>` | V | N | 1、视频帧率，每秒显示的帧数，单位：赫兹（Hz），常用帧率：24，25，30 等。  
2、默认等于源视频帧率，取值范围[1,30]。  
分辨率 | `/s/<Resolution>` | V | N | 1、指定目标视频分辨率，格式为宽 x 高，长边范围[20,2560]，短边取值范围[20,1440]。  
2、w、h 都为空时，则和原视频保持一致。  
3、w为空，h不为空，则按h的值对原视频等比例缩放。  
4、w不为空，h为空时，则按w的值对原视频等比例缩放。  
5、w、h都不为空时，则根据w、h来缩放。  
音频编码格式 | `/acodec/<AudioCodec>` | A | N | 音频编码格式，支持：libmp3lame，libfdk_aac等，默认采用libfdk_aac。  
音频码率 | `/ab/<AudioBitRate>` | A | N | 1、音频码率，单位：比特每秒（bit/s），常用码率：64k，128k，192k，256k，320k等。  
2、默认等于源音频码率，在不改变音频编码格式时，若指定码率大于原音频码率，则使用原音频码率进行转码。  
3、参数末尾使用 !, 可以以强制使用指定码率转码, 如 64k!  
音频采样频率 | `/ar/<AudioSamplingRate>` | V | N | 音频采样频率，单位：赫兹（Hz），常用音频采样频率有 8000, 11025、12000、16000、22050、24000、32000、44056、44100、47250、48000、50000、64000、88200、96000 等。默认等于源音频采样频率。  
m3u8 文件名 | `/output/<Output>` | A/V | N | 指定 m3u8 文件存储时的文件名（url 安全的 base64 编码）。ts 文件名为 <m3u8_name>~/$(count).ts，其中 $(count) 是六位的占位符数字串。比如 m3u8 是 aaa.m3u8，则 ts 文件名为 aaa.m3u8~/000000.ts、aaa.m3u8~/000001.ts 。  
  
# **操作方式**

Kodo 支持通过控制台设置视频样式。

支持的操作方式 | 参考文档  
---|---  
控制台 | [设置视频样式](https://developer.qiniu.com/kodo/development_guidelines/12738/set-the-video-style)  
  
以上内容是否对您有帮助？