智能多媒体服务

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

    音视频拼接(avconcat)

    最近更新时间: 2024-11-20 16:03:45

    简介

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

    使用限制

    1. 不支持m3u8文件的拼接。如果要拼接m3u8文件,建议先音视频转码再调用该接口拼接。
    2. 除去作为数据处理对象的源文件以外,还可以指定最多20个源文件(即总计21个片段)

    参数说明

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

    avconcat/<Mode>
            /format/<Format>
            /s/<Resolution>
            /index/<Index>
            /addAudio/<AddAudio>
            /<encodedkodocheme0>
            /<encodedkodocheme1>
            /<encodedkodocheme2>
            /<encodedkodochemeN>
    
    参数名称 必填 说明
    <Mode> 1. 值为 1 时,可改变待拼接视频的封装格式,不进行编解码,不支持设置 s addAudio 参数。
    2. 值为 2 时,可改变待拼接视频的封装格式、分辨率等。
    注意: 两个模式的计费有区别,价格参考
    <Format> 目标视频的格式,例如 flv、mp4 等。
    请参考支持转换的视频格式
    /index/<Index> 用于设置源文件在拼接时的位置(表示位于第几个视频),默认值为1,表示源文件在拼接时作为第一个视频,最大值为拼接视频的文件数,如果设置的值超过最大值,则会报错。
    /s/<Resolution> 指定视频的目标分辨率,格式为宽 x 高 ,长边取值范围[20,3840]的整数,短边取值范围[20,2160]的整数。
    /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
    

    操作方式

    您可以通过以下几种方式来创建任务:

    方式一:使用任务触发器

    • 对符合规则策略的上传文件自动触发:在具体空间下,选择任务与工作流,进入任务触发器页面,点击新建 任务触发器;创建完成后,需要开启 上传触发开关,然后通过左侧文件管理或 API/SDK 上传文件到触发器指定的输入路径;将对符合规则策略的上传文件自动触发多媒体处理,并将结果文件保存到目标路径。

      img

    方式二:使用对象存储控制台

    • 上传文件手动触发:在具体空间下, 上传文件 时,指定工作流模板 。

      img

    • 指定文件手动触发:有两种指定单个文件创建任务的入口

      • 第一个入口:在具体空间下,在文件列表中指定文件,在操作栏【更多】中点击【创建多媒体任务】。

        img

        注意:仅对音视频/gif动图/webp动图文件提供该操作。
        
      • 第二个入口:在具体空间下,选择任务与工作流,进入任务管理页面,点击【新建任务】。

        img

    方式三:使用API

    • 资源上传时手动触发:可以在构造上传凭证时在上传策略中,设置相关字段,在资源文件上传时触发处理。
    • 对已有资源手动触发:可以在调用 持久化数据处理(pfop) 时,设置相关字段,对已存在空间中的资源文件发起处理。

    方式四:使用SDK

    • 查看各语言 SDK 使用指南中 持久化数据处理 章节,可在七牛官方SDK 进行下载。

    操作示例

    对已有资源手动触发 的形式,将多段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和半角空格。访问权限,见管理凭证方式。

    计费说明

    音视频拼接服务,不同mode有不同的收费,定价参考 智能多媒体服务定价

    • 使用 avconcat/1,服务价格=音视频转封装价格。
    • 使用 avconcat/2,服务价格=普通转码价格。
    以上内容是否对您有帮助?
  • Qvm free helper
    Close