You need to enable JavaScript to run this app.
文档中心
对象存储

对象存储

复制全文
下载 pdf
视频处理
创建视频转码模板(Java SDK)
复制全文
下载 pdf
创建视频转码模板(Java SDK)
本文介绍如何通过 TOS Java SDK 创建视频转码模板。​
注意事项​
仅 Java SDK 2.9.8 及以上版本支持创建视频转码模板功能。​
示例代码​
​
// 创建视频转码模板​
package org.example.PutVideoConvertTemplate;​
​
import com.volcengine.tos.TOSV2;​
import com.volcengine.tos.TOSV2ClientBuilder;​
import com.volcengine.tos.TosClientException;​
import com.volcengine.tos.TosServerException;​
import com.volcengine.tos.comm.common.*;​
import com.volcengine.tos.model.bucket.*;​
import com.volcengine.tos.model.object.*;​
​
import java.nio.charset.StandardCharsets;​
import java.util.Base64;​
​
public class PutVideoConvertTemplateExample {​
private static String base64String(String originalStr){​
// 步骤1:将字符串转为字节数组(指定UTF-8,避免乱码)​
byte[] originalBytes = originalStr.getBytes(StandardCharsets.UTF_8);​
​
// 步骤2:Base64 编码(Basic 编码器)​
byte[] encodedBytes = Base64.getEncoder().encode(originalBytes);​
​
// 步骤3:将编码后的字节数组转为字符串​
String encodedStr = new String(encodedBytes, StandardCharsets.UTF_8);​
return encodedStr;​
}​
public static void main(String[] args) {​
String endpoint = System.getenv("TOS_ENDPOINT");​
String region = System.getenv("TOS_REGION");​
String accessKey = System.getenv("TOS_ACCESS_KEY");​
String secretKey = System.getenv("TOS_SECRET_KEY");​
​
// 填写 BucketName​
String bucketName = System.getenv("TOS_BUCKET");​
​
// 初始化客户端​
TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);​
​
try {​
// 设置转码时间区间,从视频第 0 秒开始,持续 10 秒​
// 说明:start 表示起始时间,duration 表示持续时长,单位均为毫秒​
TimeInterval timeInterval = TimeInterval.builder()​
.start(0)​
.duration(10000)​
.build();​
​
// 配置输出容器:使用 MP4 格式​
Container container = Container.builder()​
.format(ContainerFormatType.MP4)​
.build();​
​
// 配置视频编码参数:​
Video video = Video.builder()​
.codec("h264")​
// - 编码格式:h264​
.width(1920)​
// - 分辨率:1920x1080(全高清)​
.height(1080)​
// - CRF:23(质量与码率折中)​
.crf(23)​
// - 像素格式:yuv420p​
.pixFmt("yuv420p")​
// - 码率:4 Mbps​
.bitRate(4_000_000)​
// - 帧率:30 fps​
.fps(30)​
.remove(false)​
.build();​
​
// 配置音频编码参数:​
Audio audio = Audio.builder()​
// - 编码格式:mp3​
.codec("mp3")​
.bitRate(128_000)​
// - 采样格式:fltp​
.sampleFormat("fltp")​
// - 采样率:44100 Hz​
.sampleRate(44_100)​
// - 声道数:2(立体声)​
.channels(2)​
.remove(false)​
.build();​
​
// 配置 AIGC 元数据信息,用于标记内容生产与传播链路(示例值)​
AIGCMetadata aigcMetadata = AIGCMetadata.builder()​
.label("demo-label")​
.contentProducer("demo-producer")​
.produceID("demo-produce-id")​
.contentPropagator("demo-propagator")​
.propagateID("demo-propagate-id")​
.reservedCode1(base64String("123abc"))​
.reservedCode2(base64String("456def"))​
.build();​
​
// 通过 TranscodeConfigOptions 填充元数据配置​
TranscodeConfigOptions options = TranscodeConfigOptions.builder()​
.aigcMetadata(aigcMetadata)​
.build();​
​
// 汇总转码配置,将时间区间、容器、视频、音频以及 AIGC 元数据统一到 Transcode 中​
Transcode transcodeConfig = Transcode.builder()​
.timeInterval(timeInterval)​
.container(container)​
.video(video)​
.audio(audio)​
.options(options)​
.build();​
​
// 组装创建视频转码模板的输入参数:​
// - bucket:模板所属存储桶​
// - name:模板名称(示例为 example-video-template)​
// - transcodeConfig:上述完整转码配置​
PutVideoConvertTemplateInput input = PutVideoConvertTemplateInput.builder()​
.bucket(bucketName)​
.name("example-video-template")​
.transcodeConfig(transcodeConfig)​
.build();​
​
// 调用 API 创建视频转码模板​
PutVideoConvertTemplateOutput output = tos.putVideoConvertTemplate(input);​
​
// 打印关键返回结果,便于排查与确认:​
// - RequestID:请求在服务端的唯一标识​
// - StatusCode:HTTP 状态码​
// - 模板 ID:后续创建转码任务可直接引用的模板标识​
System.out.println("创建视频转码模板成功");​
System.out.println("RequestID: " + output.getRequestInfo().getRequestId());​
System.out.println("StatusCode: " + output.getRequestInfo().getStatusCode());​
System.out.println("模板ID: " + output.getId());​
​
} catch (TosClientException e) {​
// 操作失败,捕获客户端异常,一般情况是请求参数错误,此时请求并未发送​
System.out.println("操作失败");​
System.out.println("Message: " + e.getMessage());​
if (e.getCause() != null) {​
e.getCause().printStackTrace();​
}​
} catch (TosServerException e) {​
// 操作失败,捕获服务端异常,可以获取到从服务端返回的详细错误信息​
System.out.println("操作失败");​
System.out.println("StatusCode: " + e.getStatusCode());​
System.out.println("Code: " + e.getCode());​
System.out.println("Message: " + e.getMessage());​
System.out.println("RequestID: " + e.getRequestID());​
} catch (Throwable t) {​
// 作为兜底捕获其他异常,一般不会执行到这里​
System.out.println("操作失败");​
System.out.println("unexpected exception, message: " + t.getMessage());​
}​
}​
}​
​
相关文档​
关于创建视频转码模板的相关API接口,请参见PutVideoConvertTemplate。​
​
最近更新时间:2026.08.12 10:48:48
这个页面对您有帮助吗?
有用
有用
无用
无用