Preset模板
更新时间:2020-02-20
模板是系统预设的对于一个视频资源在做转码计算时所需定义的集合。用户可以更简便的将一个模板应用于一个和多个视频的转码任务,以使这些任务输出相同规格的目标视频资源。
音视频转码为用户预设了丰富且完备的系统模板,以满足用户对于目标规格在格式、码率、分辨率、加解密、水印等诸多方向上的普遍需求,对于不希望过多了解音视频复杂技术背景的用户来说,是最佳的选择。百度为那些在音视频技术上有着丰富积累的用户,提供了可定制化的转码模板,以帮助他们满足复杂业务条件下的转码需求。
当用户仅需对于音视频的容器格式做变化时,百度提供Transmux模板帮助用户以秒级的延迟快速完成容器格式的转换,比如从MP4转换成HLS,而保持原音视频的属性不变。
查询当前用户Preset及所有系统Preset
用户可以通过如下代码查询所有的Preset
Java
1public void listPresets(MediaClient client) {
2 ListPresetsResponse resp = mediaClient.listPresets();
3 for (GetPresetResponse preset : resp.getPresets()) {
4 System.out.println("presetName: " + preset.getPresetName());
5 System.out.println("description: " + preset.getDescription());
6 System.out.println("container: " + preset.getContainer());
7 System.out.println("transmux: " + preset.getTransmux());
8 }
9}
查询指定的Preset信息
用户可以通过如下代码指定的某个Preset
Java
1public void getPreset(MediaClient client, String presetName) {
2 GetPresetResponse preset = client.getPreset(presetName);
3 System.out.println("presetName: " + preset.getPresetName());
4 System.out.println("description: " + preset.getDescription());
5 System.out.println("container: " + preset.getContainer());
6 System.out.println("transmux: " + preset.getTransmux());
7}
创建Preset
如果系统预设的Preset无法满足用户的需求,用户可以自定义自己的Preset。根据不同的转码需求,可以使用不同的接口创建Preset。
创建仅支持容器格式转换的Preset
如下代码创建仅执行容器格式转换Preset
Java
1public void createPreset(MediaClient client, String presetName, String description, String container) {
2 client.createPreset(presetName, description, container);
3}
创建音频文件的转码Preset,不需要截取片段和加密
如果创建一个不需要截取片段和加密的音频文件转码Preset,可以参考如下代码
Java
1public void createPreset(MediaClient client, String presetName, String description, String container,
2 Audio audio) {
3 client.createPreset(presetName, description, container, audio);
4}
创建音频文件转码Preset,需要设置片段截取属性和加密属性
如果创建一个支持截取片段和加密的音频文件转码Preset,可以参考如下代码
Java
1public void createPreset(MediaClient client, String presetName, String description, String container,
2 Clip clip, Audio audio, Encryption encryption) {
3 client.createPreset(presetName, description, container, clip, audio, encryption);
4}
创建视频文件转码Preset,不需要截取片段、加密和水印属性
如果创建一个不需要截取片段,加密和水印的视频文件转码Preset,可以参考如下代码
Java
1public void createPreset(MediaClient client, String presetName, String description, String container,
2 Audio audio, Video video) {
3 client.createPreset(presetName, description, container, audio, video);
4}
创建视频文件转码Preset,需要设置片段截取、加密和水印属性
如果创建一个需要截取片段,加密和添加水印的视频文件转码Preset,可以参考如下代码
Java
1public void createPreset(MediaClient client, String presetName, String description, String container,
2 Clip clip,Audio audio, Video video, Encryption encryption, String watermarkId) {
3 client.createPreset(presetName, description, container, clip, audio, video, encryption, watermarkId);
4}
创建Preset,指定所有的参数
如果需要定制所有配置参数,可以参考如下代码
Java
1public void createPreset(MediaClient client, String presetName, String description, String container,
2 boolean transmux, Clip clip,Audio audio, Video video, Encryption encryption,
3 Watermarks watermarks, TransCfg transCfg, ExtraCfg extraCfg) {
4 client.createPreset(presetName, description, container, transmux, clip, audio, video, encryption,
5 watermarks, transCfg, extraCfg);
6}
说明:
- watermarks、transCfg、extraCfg等可设置为null,表示不使用功能。
- 不可同时设置watermarks和watermarkId。推荐设置watermarks,其支持多水印设置且可以应用更多的水印控制功能。
更新Preset
用户可以根据模板名更新自己创建的模板:
Java
1public void updatePreset(MediaClient client, String presetName, String description, String container) {
2 GetPresetResponse preset = client.getPreset(presetName);
3 preset.setDescription(description);
4 preset.setContainer(container);
5 client.updatePreset(new UpdatePresetRequest().withPreset(preset));
6}
更新其他参数类似