本文为您介绍另存为的概念、注意事项、参数说明和使用示例。
什么是另存为
同步处理默认不保存处理后的文件,您需要在处理请求内添加另存为参数,将处理后的文件作为对象 (Object) 保存到指定的存储空间 (Bucket) 内。异步处理由于是以任务形式对文件进行异步数据处理,请求返回时只会返回任务ID,所以要求您在提交时必须添加另存为参数,将处理完成后的文件作为对象 (Object) 保存到指定的存储空间 (Bucket) 内,以便后续访问。
注意事项
权限要求:
进行另存为操作要求具有源Bucket的
oss:PostProcessTask
权限,以及目标Object的oss:PutObject
权限。另存为文件的读写权限ACL默认继承Bucket,不支持自定义。
地域要求:源文件所在Bucket和处理后另存为的目标Bucket可以相同也可以不同,但必须属于同一阿里云账号下的相同地域。
另存为方式:不支持将文件URL处理后的文件直接转存至指定Bucket。您可以将处理后的文件保存到本地,然后再上传至指定Bucket。
另存为文件存储时长:如果您需要调整另存为文件的存储时长,请结合生命周期规则介绍配置合理的文件过期策略。
参数说明
使用sys/saveas
参数时,您需要携带以下选项:
选项 | 含义 |
o | 目标Object名称,名称需经过URL安全的Base64编码。具体操作,请参见水印编码。 说明 o支持变量,变量引用格式为{varname}或字符串与{varname}的组合形式。更多信息,请参见变量。 |
b | 目标Bucket名称,名称需经过URL安全的Base64编码。如果不指定目标Bucket,则默认保存至原文件所在Bucket。 说明 b支持变量,变量引用格式为{varname}或字符串与{varname}的组合形式。更多信息,请参见变量。 |
使用阿里云SDK
您可以通过添加另存为参数(sys/saveas)的方式将阿里云SDK处理后的文件保存至指定Bucket。以下仅列举常见SDK的图片处理另存为的代码示例。关于其他SDK的代码示例,请参见简介。
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.utils.BinaryUtil;
import com.aliyun.oss.common.utils.IOUtils;
import com.aliyun.oss.model.GenericResult;
import com.aliyun.oss.model.ProcessObjectRequest;
import java.util.Formatter;
public class Demo {
public static void main(String[] args) throws Throwable {
// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 强烈建议不要把访问凭证保存到工程代码里,否则可能导致访问凭证泄露,威胁您账号下所有资源的安全。本代码示例以从环境变量中获取访问凭证为例。运行本代码示例之前,请先配置环境变量。
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// 填写Bucket名称,例如examplebucket。
String bucketName = "examplebucket";
// 填写Object完整路径。Object完整路径中不能包含Bucket名称。
String sourceImage = "exampleimage.png";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
try {
// 将图片缩放为固定宽高100 px。
StringBuilder sbStyle = new StringBuilder();
Formatter styleFormatter = new Formatter(sbStyle);
String styleType = "image/resize,m_fixed,w_100,h_100";
// 将处理后的图片命名称为example-resize.png并保存到当前Bucket。
// 填写Object完整路径。Object完整路径中不能包含Bucket名称。
String targetImage = "example-resize.png";
styleFormatter.format("%s|sys/saveas,o_%s,b_%s", styleType,
BinaryUtil.toBase64String(targetImage.getBytes()),
BinaryUtil.toBase64String(bucketName.getBytes()));
System.out.println(sbStyle.toString());
ProcessObjectRequest request = new ProcessObjectRequest(bucketName, sourceImage, sbStyle.toString());
GenericResult processResult = ossClient.processObject(request);
String json = IOUtils.readStreamAsString(processResult.getResponse().getContent(), "UTF-8");
processResult.getResponse().getContent().close();
System.out.println(json);
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\OssClient;
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
$accessKeyId = getenv("OSS_ACCESS_KEY_ID");
$accessKeySecret = getenv("OSS_ACCESS_KEY_SECRET");
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
$endpoint = "yourEndpoint";
// 填写Bucket名称,例如examplebucket。
$bucket= "examplebucket";
// 填写源Object完整路径,例如exampledir/exampleobject.jpg。Object完整路径中不能包含Bucket名称。
$object = "exampledir/exampleobject.jpg";
// 填写目标Object完整路径,例如example-new.jpg。
$save_object = "example-new.jpg";
function base64url_encode($data)
{
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false);
// 如果目标图片不在指定Bucket中,需上传图片到目标Bucket。
// $ossClient->uploadFile($bucket, $object, "D:\\localpath\\exampleobject.jpg");
// 将图片缩放为固定宽高100 px后,再旋转90°。
$style = "image/resize,m_fixed,w_100,h_100/rotate,90";
$process = $style.
'|sys/saveas'.
',o_'.base64url_encode($save_object).
',b_'.base64url_encode($bucket);
// 将处理后的图片命名称为example-new.png并保存到当前Bucket。
$result = $ossClient->processObject($bucket, $object, $process);
// 打印处理结果。
print($result);
const OSS = require('ali-oss');
const client = new OSS({
// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourregion',
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// 填写存储空间名称。
bucket: 'yourbucketname'
});
const sourceImage = 'sourceObject.png';
const targetImage = 'targetObject.jpg';
async function processImage(processStr, targetBucket) {
const result = await client.processObjectSave(
sourceImage,
targetImage,
processStr,
targetBucket
);
console.log(result.res.status);
}
// 图片处理持久化缩放。
processImage("image/resize,m_fixed,w_100,h_100")
// 图片处理持久化:裁剪。
processImage("image/crop,w_100,h_100,x_100,y_100,r_1")
// 图片处理持久化:旋转。
processImage("image/rotate,90")
// 图片处理持久化:锐化。
processImage("image/sharpen,100")
// 图片处理持久化:水印。
processImage("image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ")
// 图片处理持久化:格式转换。
processImage("image/format,jpg")
// 图片处理持久化:格式转换,并设置保存图片处理持久化结果的目标Bucket。
processImage("image/format,jpg", "target bucket")
# -*- coding: utf-8 -*-
import os
import base64
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# 填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# 指定原图所在的Bucket名称。
source_bucket_name = 'srcbucket'
# 指定用于存放处理后图片的Bucket名称,该Bucket需与原图所在Bucket在同一地域。
taget_bucket_name = 'destbucket'
# 指定原图名称。如果图片不在Bucket根目录,需携带文件完整访问路径,例如example/example.jpg。
source_image_name = 'example/example.jpg'
# 指定Bucket实例,所有文件相关的方法都需要通过Bucket实例来调用。
bucket = oss2.Bucket(auth, endpoint, source_bucket_name)
# 将图片缩放为固定宽高100 px。
style = 'image/resize,m_fixed,w_100,h_100'
# 指定处理后图片名称。如果图片不在Bucket根目录,需携带文件完整访问路径,例如exampledir/example.jpg。
target_image_name = 'exampledir/example.jpg'
process = "{0}|sys/saveas,o_{1},b_{2}".format(style,
oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(target_image_name))),
oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(taget_bucket_name))))
result = bucket.process_object(source_image_name, process)
print(result)
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
/// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// 创建OSSClient实例。
// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// 指定原图所在Bucket的名称,例如srcbucket。
bucketName := "srcbucket"
bucket, err := client.Bucket(bucketName)
if err != nil {
HandleError(err)
}
// 指定原图名称。如果图片不在Bucket根目录,需携带文件完整路径,例如example/example.jpg。
sourceImageName := "example/example.jpg"
// 指定用于存放处理后图片的Bucket名称,该Bucket需与原图所在Bucket在同一地域。
targetBucketName := "destbucket"
// 指定处理后图片名称。如果图片不在Bucket根目录,需携带文件完整访问路径,例如exampledir/example.jpg。
targetImageName = "exampledir/example.jpg"
// 将图片缩放为固定宽高100 px后转存到指定存储空间。
style = "image/resize,m_fixed,w_100,h_100"
process = fmt.Sprintf("%s|sys/saveas,o_%v,b_%v", style, base64.URLEncoding.EncodeToString([]byte(targetImageName)), base64.URLEncoding.EncodeToString([]byte(targetBucketName)))
result, err = bucket.ProcessObject(sourceImageName, process)
if err != nil {
HandleError(err)
} else {
fmt.Println(result)
}
}
#include <alibabacloud/oss/OssClient.h>
#include <sstream>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* 初始化OSS账号信息。*/
/* 指定Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。*/
std::string Endpoint = "yourEndpoint";
/* 指定Bucket名称,例如examplebucket。*/
std::string BucketName = "examplebucket";
/* 指定原图名称。如果图片不在Bucket根目录,需携带文件完整路径,例如example/example.jpg。*/
std::string SourceObjectName = "example/example.jpg";
/* 指定处理后图片名称。如果图片不在Bucket根目录,需携带文件完整访问路径,例如exampledir/example.jpg。*/
std::string TargetObjectName = "exampledir/example.jpg";
/* 初始化网络等资源。*/
InitializeSdk();
ClientConfiguration conf;
/* 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
/* 将图片缩放为固定宽高100 px后转存到当前Bucket。*/
std::string Process = "image/resize,m_fixed,w_100,h_100";
std::stringstream ss;
ss << Process
<<"|sys/saveas"
<< ",o_" << Base64EncodeUrlSafe(TargetObjectName)
<< ",b_" << Base64EncodeUrlSafe(BucketName);
ProcessObjectRequest request(BucketName, SourceObjectName, ss.str());
auto outcome = client.ProcessObject(request);
/* 释放网络等资源。*/
ShutdownSdk();
return 0;
}
使用REST API
如果对程序自定义要求较高,您可以直接发起REST API请求。直接发起REST API请求需要手动编写代码计算签名。
您可以在调用PostObject接口处理服务时,通过Body的方式传递x-oss-process
,然后在处理请求中增加sys/saveas
参数将处理后的文件保存至指定Bucket。更多信息,请参见PostObject。
如下列举各种文件另存为场景的请求示例。
使用处理参数处理图片并转存至指定Bucket
POST /ObjectName?x-oss-process HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 247
Date: Fri, 04 May 2012 03:21:12 GMT
Authorization: OSS qn6q********************:KU5h**********************
// 将目标图片test.jpg等比缩放为宽100 px后,保存到名称为test的Bucket中。
x-oss-process=image/resize,w_100|sys/saveas,o_dGVzdC5qcGc,b_dGVzdA
使用样式参数处理图片并转存至指定Bucket
POST /ObjectName?x-oss-process HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 247
Date: Fri, 04 May 2012 03:22:13 GMT
Authorization: OSS qn6q********************:KU5h**********************
// 使用名称为examplestyle的样式处理目标图片test.jpg后,保存到名称为test的Bucket中。
x-oss-process=style/examplestyle|sys/saveas,o_dGVzdC5qcGc,b_dGVzdA
使用处理参数处理文档转换并转存至指定Bucket
转换信息
转换前
文件类型:DOCX
文件名称:
example.docx
转换后
文件类型:PNG
文件存储路径:
oss://test-bucket/doc_images/
请求示例
POST /exmaple.docx?x-oss-async-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h**********************
// 将类型为DOCX的文件example.docx转换为PNG格式的图片文件,并且将转换完成的图片存储到oss://test-bucket/doc_images/路径中。
x-oss-async-process=doc/convert,target_png,source_docx|sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw
使用样式参数处理文档转换并转存至指定Bucket
转换信息
转换前
文件类型:DOCX
文件名称:
example.docx
转换后
文件存储路径:
oss://test-bucket/doc_images/
请求示例
POST /exmaple.docx?x-oss-async-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h************************
// 使用名称为examplestyle的样式将文件example.docx进行转换,并且将转换完成的文件存储到oss://test-bucket/doc_images/路径中。
x-oss-async-process=style/examplestyle|sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw
使用处理参数处理视频转码并转存至指定Bucket
转码信息
转码前
视频格式:AVI
视频名称:
example.avi
转码后
视频信息
视频格式:MP4
视频名称:
outobjprefix.mp4
视频流格式:H.265
视频分辨率:1920x1080
视频帧率:30 fps
视频码率:2 Mbps
音频信息
音频流格式:AAC
音频码率:100 Kbps
字幕流:禁用
视频存储路径:
oss://outbucket/outobj.mp4
请求示例
POST /exmaple.avi?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h************************
// 对文件example.avi进行视频转码,转码输出媒体文件容器为MP4,视频流格式为H.265,分辨率为1920x1080,帧率为30 fps,视频码率为2 Mbps;音频流格式为AAC,音频码率为100 Kbps;禁用字幕流;转码完成后将得到的文件保存为oss://outbucket/outobj.mp4。
x-oss-async-process=video/convert,f_mp4,vcodec_h265,s_1920x1080,vb_2000000,fps_30,acodec_aac,ab_100000,sn_1|sys/saveas,o_b3V0b2JqLnthdXRvZXh0fQo,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ
使用样式参数处理视频转码并转存至指定Bucket
转码信息
转码前
视频格式:AVI
视频名称:
example.avi
转码后
视频格式:MP4
视频名称:
outobjprefix.mp4
视频存储路径:
oss://outbucket/outobjprefix.mp4
请求示例
POST /exmaple.avi?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h************************
// 使用名称为examplestyle的样式将文件example.avi进行视频转码,转码完成后将得到的文件保存为oss://outbucket/outobjprefix.mp4。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ
使用处理参数处理视频转动图并转存至指定Bucket
截帧信息
转动图前
视频名称:example.mkv
转动图后
动图信息
动图格式:gif
视频间隔:1s
输出图片分辨率:100x100
文件存储路径
gif文件:oss://outbucket/outobjprefix.gif
请求示例
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h************************
// 对文件example.mkv进行视频转动图,动图格式为gif,输出图片宽度为100px,高度为100px,间隔时间为1秒,转换完成后将得到的文件保存为oss://outbucket/outobjprefix.gif。
x-oss-async-process=video/animation,f_gif,w_100,h_100,inter_1000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ
使用样式参数处理视频转动图并转存至指定Bucket
截帧信息
转动图前
视频名称:example.mkv
动图信息
动图格式:gif
转动图后
文件存储路径
gif文件:oss://outbucket/outobjprefix.gif
请求示例
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h************************
// 使用名称为examplestyle的样式对文件example.mkv进行视频转动图,转换完成后将得到的文件保存为oss://outbucket/outobjprefix.gif。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ
使用处理参数处理视频截雪碧图并转存至指定Bucket
截帧信息
截雪碧图前
视频名称:example.mkv
截雪碧图后
雪碧图信息
雪碧图格式:jpg
抽帧间隔:10s
子图分辨率:100x100
雪碧图配置:每行10张,每列10张,pad、margin均为0
文件存储路径
jpg文件:oss://outbucket/outobjprefix-%d.jpg
请求示例
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h************************
// 对文件example.mkv进行视频截雪碧图。
x-oss-async-process=video/sprite,f_jpg,sw_100,sh_100,inter_10000,tw_10,th_10,pad_0,margin_0|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg
使用样式参数处理视频截雪碧图并转存至指定Bucket
截帧信息
截雪碧图前
视频名称:example.mkv
截雪碧图后
雪碧图信息
雪碧图格式:jpg
文件存储路径
jpg文件:oss://outbucket/outobjprefix-%d.jpg
请求示例
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h************************
// 使用名称为examplestyle的样式对文件example.mkv进行视频截雪碧图。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg
使用处理参数处理视频截帧并转存至指定Bucket
截帧信息
截帧前
视频名称:example.mkv
截帧后
截帧信息
截帧格式:jpg
视频间隔:10s
输出图片分辨率:100x100
文件存储路径
jpg文件:oss://outbucket/outobjprefix-%d.jpg
请求示例
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h************************
// 对文件example.mkv进行视频截帧。
x-oss-async-process=video/snapshots,f_jpg,w_100,h_100,scaletype_crop,inter_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg
使用样式参数处理视频截帧并转存至指定Bucket
截帧信息
截帧前
视频名称:example.mkv
截帧后
截帧信息
截帧格式:jpg
文件存储路径
jpg文件:oss://outbucket/outobjprefix-%d.jpg
请求示例
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h**********************
// 使用名称为examplestyle的样式对文件example.mkv进行视频截帧。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg
使用处理参数处理视频拼接并转存至指定Bucket
拼接信息
拼接前
视频名称:pre.mov、example.mkv、sur.mov
处理方式
拼接时长与顺序:
视频名称
顺序
时长
pre.mov
1
整段视频
example.mkv
2
第10秒到结尾
sur.mov
3
开头到第10秒
拼接后
视频信息
视频格式:h264
视频帧率:25fps
视频码率:1 Mbps
音频信息
音频格式:aac
音频配置:48kHz采样率,双声道
音频码率:96 Kbps
文件存储路径
mp4文件:oss://outbucket/outobjprefix.mp4
请求示例
POST /exmaple.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h**********************
// 对文件example.mkv进行视频拼接。
x-oss-async-process=video/concat,ss_10000,f_mp4,vcodec_h264,fps_25,vb_1000000,acodec_aac,ab_96000,ar_48000,ac_2,align_1/pre,o_cHJlLm1vdgo/sur,o_c3VyLm1vdg,t_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ
使用处理参数处理音频转码并转存至指定Bucket
转码信息
转码前
音频格式:mp3
音频名称:example.mp3
处理方式
转码时长:从输入媒体文件的第1000毫秒开始并持续60000毫秒进行音频转码
转码后
音频信息
音频格式:aac
音频配置:保持原有采样率与声道数
音频码率:96 Kbps
文件存储路径
aac文件:oss://outbucket/outobjprefix.aac
请求示例
POST /exmaple.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h**********************
// 对文件example.mp3进行音频转码。
x-oss-async-process=audio/convert,ss_10000,t_60000,f_aac,ab_96000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ
使用样式参数处理音频转码并转存至指定Bucket
转码信息
转码前
音频格式:mp3
音频名称:example.mp3
转码后
音频信息
音频格式:aac
文件存储路径
aac文件:oss://outbucket/outobjprefix.aac
请求示例
POST /exmaple.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h**********************
// 使用名称为examplestyle的样式对文件example.mp3进行音频转码。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ
使用处理参数处理音频拼接并转存至指定Bucket
拼接信息
拼接前
音频名称:pre1.mp3、pre2.wav、example.mp3、sur1.aac、sur2.wma
处理方式
拼接时长与顺序:
音频名称
顺序
时长
pre1.mp3
1
整段音频
pre2.wav
2
前2秒
example.mp3
3
整段音频
sur1.aac
4
第4秒到第10秒
sur2.wma
5
第10秒到结尾
拼接后
音频信息
音频格式:aac
音频配置:48kHz采样率,单声道
音频码率:96 Kbps
文件存储路径
aac文件:oss://outbucket/outobjprefix.aac
请求示例
POST /exmaple.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q********************:KU5h**********************
// 对文件example.mp3进行音频拼接。
x-oss-async-process=audio/concat,f_aac,ab_96000,ar_48000,ac_1,align_2/pre,o_cHJlMS5tcDMK/pre,o_cHJlMi53YXYK,t_2000/sur,o_c3VyMS5hYWMK,ss_4000,t_10000/sur,o_c3VyMi53bWEK,ss_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ