Preset(模板)
更新时间:2021-12-29
模板是系统预设的对于一个视频资源在做转码计算时所需定义的集合。用户可以更简便的将一个模板应用于一个和多个视频的转码任务,以使这些任务输出相同规格的目标视频资源。
音视频转码为用户预设了丰富且完备的系统模板,以满足用户对于目标规格在格式、码率、分辨率、加解密、水印等诸多方向上的普遍需求,对于不希望过多了解音视频复杂技术背景的用户来说,是最佳的选择。百度为那些在音视频技术上有着丰富积累的用户,提供了可定制化的转码模板,以帮助他们满足复杂业务条件下的转码需求。
当用户仅需对于音视频的容器格式做变化时,百度提供Transmux模板帮助用户以秒级的延迟快速完成容器格式的转换,比如从MP4转换成HLS,而保持原音视频的属性不变。
模板接口的各参数含义和取值方法参考Preset-API。
查询当前用户Preset及所有系统Preset
用户可以通过如下代码查询所有的Preset:
                Plain Text
                
            
            1response = client.list_presets()
2
3for preset in response.presets:
4  print preset查询指定的Preset信息
用户可以通过如下代码指定的某个Preset:
                Plain Text
                
            
            1preset_name = "your_preset"
2response = client.get_preset(preset_name)
3print response创建Preset
如果系统预设的Preset无法满足用户的需求,用户可以自定义自己的Preset。根据不同的转码需求,可以使用不同的接口创建Preset。
创建仅支持容器格式转换的Preset
如下代码创建仅执行容器格式转换Preset:
                Plain Text
                
            
            1preset_name = "your_preset"
2container = "hls"
3response = client.create_preset(preset_name, container)
4print response创建音频文件的转码Preset,不需要截取片段和加密
如果创建一个不需要截取片段和加密的音频文件转码Preset,可以参考如下代码:
                Plain Text
                
            
            1preset_name = "your_preset"
2container = "mp3"
3audio = {'bitRateInBps': 25600, 'sampleRateInHz': 32000, 'channels': 1}
4response = client.create_preset(preset_name, container, audio=audio)
5print response创建音频文件转码Preset,需要设置片段截取属性和加密属性
如果创建一个支持截取片段和加密的音频文件转码Preset,可以参考如下代码:
                Plain Text
                
            
            1preset_name = "your_preset"
2container = "mp4"
3
4clip = {'startTimeInSecond':0, 'durationInSecond': 50}
5audio = {'bitRateInBps': 1980, 'sampleRateInHz': 32000, 'channels': 1}
6encryption = {'aesKey': 'abcdefghij123456','strategy': 'Fixed'}
7response = client.create_preset(preset_name, container, clip=clip, audio=audio, encryption=encryption)
8print response创建视频文件转码Preset,不需要截取片段和加密
如果创建一个不需要截取片段和加密的音频文件转码Preset,可以参考如下代码:
                Plain Text
                
            
            1preset_name = "your_preset"
2container = "mp4"
3codecOptions = {'profile': 'baseline'}
4video = {
5    'codec': 'h264',
6    'codecOptions': codecOptions,
7    'bitRateInBps': 32000,
8    'maxFrameRate': 30,
9    'maxWidthInPixel': 4096,
10    'maxHeightInPixel': 96,
11    'sizingPolicy': 'stretch'
12}
13audio = {'bitRateInBps': 1980, 'sampleRateInHz': 32000, 'channels': 1}
14response = client.create_preset(preset_name, container, video=video, audio=audio)
15print response创建视频文件转码Preset,需要设置片段截取属性和加密属性
如果创建一个截取片段和加密的音频文件转码Preset,可以参考如下代码:
                Plain Text
                
            
            1preset_name = "your_preset"
2container = "mp4"
3codecOptions = {'profile': 'baseline'}
4video = {
5    'codec': 'h264',
6    'codecOptions': codecOptions,
7    'bitRateInBps': 32000,
8    'maxFrameRate': 30,
9    'maxWidthInPixel': 4096,
10    'maxHeightInPixel': 96,
11    'sizingPolicy': 'stretch'
12}
13clip = {'startTimeInSecond':0, 'durationInSecond': 50}
14audio = {'bitRateInBps': 1980, 'sampleRateInHz': 32000, 'channels': 1}
15encryption = {'aesKey': 'abcdefghij123456','strategy': 'Fixed'}
16response = client.create_preset(preset_name, container, video=video, clip=clip, audio=audio, encryption=encryption)
17print response创建Preset,指定所有的参数
如果需要定制所有配置参数,可以参考如下代码:
                Plain Text
                
            
            1preset_name = "your_preset"
2
3container = "mp4"
4desc = 'My Desc'
5transmux = True
6codecOptions = {'profile': 'baseline'}
7video = {
8    'codec': 'h264',
9    'codecOptions': codecOptions,
10    'bitRateInBps': 32000,
11    'maxFrameRate': 30,
12    'maxWidthInPixel': 4096,
13    'maxHeightInPixel': 96,
14    'sizingPolicy': 'stretch'
15}
16clip = {'startTimeInSecond':0, 'durationInSecond': 50}
17audio = {'bitRateInBps': 1980, 'sampleRateInHz': 32000, 'channels': 1}
18encryption = {'aesKey': 'abcdefghij123456','strategy': 'Fixed'}
19response = client.create_preset(preset_name, container, transmux=transmux, description=desc, video=video, clip=clip, audio=audio, encryption=encryption)
20print response更新Preset
用户可以修改自己创建的模板。
如下代码可以更新指定模板的音频目标码率:
                Plain Text
                
            
            1preset_name = "your_preset"
2preset = self.the_client.get_preset_for_update(preset_name)
3preset.audio.bitRateInBps = 256000
4response = self.the_client.update_preset(preset_name, preset)
5print response更新其他参数类似
