智能多媒体服务

  • 智能多媒体服务 > API 文档 > 音视频处理 >音视频拼接(avconcat)

    音视频拼接(avconcat)

    最近更新时间: 2023-12-11 14:47:23

    简介

    音视频拼接接口(avconcat),用于将指定的数个音频片段拼接成一段音频,或者将数个视频片段拼接成一段视频。

    使用限制

    1. 不支持m3u8文件的拼接。如果要拼接m3u8文件,建议先音视频转码再调用该接口拼接。
    2. 除去作为数据处理对象的源文件以外,还可以指定最多20个源文件(即总计21个片段)
    3. 本接口只能用于 持久化处理 的方式,处理结果参考处理结果另存 (saveas)

    接口规格

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

    avconcat/<Mode>
            /format/<Format>
            /s/<Resolution>
            /index/<Index>
            /addAudio/<AddAudio>
            /<encodedkodocheme0>
            /<encodedkodocheme1>
            /<encodedkodocheme2>
            /...
    
    参数名称 必填 说明
    <Mode> 值为 1 时,可改变待拼接视频的封装格式,不进行编解码,不支持设置 <Resolution> <AddAudio>
    值为 2 时,可改变待拼接视频的封装格式、分辨率等。
    <Format> 目标视频的格式,例如 flv、mp4 等。
    请参考支持转换的视频格式
    /s/<Resolution> 指定目标视频分辨率,格式为宽 x 高 ,长边取值范围[20,3840]的整数,短边取值范围[20,2160]的整数。
    /index/<Index> 用于设置源文件在拼接时的位置(表示位于第几个视频),默认值为1,表示源文件在拼接时作为第一个视频,最大值为拼接视频的文件数,如果设置的值超过最大值,则会报错。
    /maxrate/<Maxrate> 使用该参数限制输出视频流的峰值码率,单位:比特每秒(bit/s)。 <Mode> 值为 2 时,且输出格式为 mp4、mov、mkv 时有效。
    /addAudio/<AddAudio> 当待拼接视频文件中,部分有音频流部分没有音频流时,是否给没有音频流的视频文件填充空的音频流。默认值为 1,表示填充;值为 0,则表示不填充。注意:转场不支持填充音频,设置了转场动画的情况下本参数会无效。
    /<encodedUrlN> 待拼接的文件,目前支持两种类型: kodo 资源、转场动画。
    1、kodo 资源可由 kodo://<bucketname>/<key> 表示(此时 bucketname 需要与输入源在同一区域),需要经过urlsafe_base64_encode
    2、转场过渡动画可以看作一个视频,但是不占用拼接视频的数量名额,添加转场动画的方式也用 url 表示,具体格式为 video://transition/<transitionType>/<transitionTime> 表示,转场只支持 <Mode> 为 2 时使用,待拼接序列(含输入源文件)中不能连续两个转场, transitionType即转场支持的类型如下表,transitionTime 支持小数,向下取整取两位小数,不能超过两端任何一个视频的时长。支持首尾设置转场,此时的转场时间为 <transitionTime> 的一半。上述 url 均需要经过 urlsafe_base64_encode

    转场类型

    视频拼接时,在两个视频片段之间添加转场动画,可以让视频拼接过渡更自然或者实现一些特殊视觉效果,达到吸引观众的效果。下表是转场类型的效果演示。

    转场名 transitionType 取值
    闪白转场 flashwhite
    闪黑转场 flashblack

    敬请期待其他转场效果,如有需求可提交工单

    转场使用示例

    设置源文件拼接位置,index=3

    • 示例1:片头+转场特效+源文件
    avconcat/2/format/mp4/index/3/base64待拼接片头视频url/base64转场url
    
    • 示例2:片头+转场特效+源文件+转场特效+片尾
    avconcat/2/format/mp4/index/3/base64待拼接片头视频url/base64转场url/base64转场url/base64待拼接片尾视频url
    

    操作方式

    可以通过 持久化处理 的方式来调用:

    • 资源上传时自动触发:可以在上传时指定persistentOps参数
    • 对已有资源手动手动触发:调用pfop命令

    示例

    对已有资源手动触发 的形式,将多段mp4视频拼接成一段(分别是thinking-in-go.1.mp4thinking-in-go.2.mp4thinking-in-go.3.mp4。 假设这几个视频放在一个绑定了域名test.clouddn.com的空间中):

    POST /pfop/ HTTP/1.1
    Host: api.qiniu.com
    Content-Type: application/x-www-form-urlencoded
    Authorization: Qiniu <AccessToken>
    
    bucket=qiniu-ts-demo&key=thinking-in-go.1.mp4&fops=avconcat/2/format/mp4/a29kbzovL3Fpbml1LXRzLWRlbW8vdGhpbmtpbmctaW4tZ28uMi5tcDQ=/a29kbzovL3Fpbml1LXRzLWRlbW8vdGhpbmtpbmctaW4tZ28uMy5tcDQ=&notifyURL=http://fake.com/qiniu/notify
    

    注意:要在Authorization头部的<AccessToken>前添加Qiniu和半角空格。访问权限,见管理凭证方式。

    以 Python Sdk 为例,具体可以看下音视频转码的示例。需要在音视频转码示例的基础修改数据处理命令 fops ,将其修改为:

    fops = avconcat/2/format/mp4/a29kbzovL3Fpbml1LXRzLWRlbW8vdGhpbmtpbmctaW4tZ28uMi5tcDQ=/a29kbzovL3Fpbml1LXRzLWRlbW8vdGhpbmtpbmctaW4tZ28uMy5tcDQ=
    

    注意:
    其他语言 Sdk 可在官方 Sdks 下载,可以通过查看 Sdk 使用指南中 对已有资源手动触发资源上传时自动触发使用。

    计费说明

    使用 avconcat/1,按照转封装收费,0.003 元/分钟(不分帧率)。
    使用 avconcat/2,按照转码收费,其价格与音视频转码相同。具体请参考 官网说明。

    以上内容是否对您有帮助?
  • Qvm free helper
    Close