相关文章推荐
强健的碗  ·  org.openqa.selenium.We ...·  2 年前    · 
强悍的小刀  ·  science ...·  2 年前    · 
  • 创建AcsClient实例。
    client = AcsClient(access_key_id, access_key_secret, mps_region_id);
  • 创建request,并设置参数。
    request = SubmitJobsRequest.SubmitJobsRequest()
    request.set_accept_format('json')
  • 设置转码参数。
  • 通过SDK提交转码作业时Object需经URLEncode,否则会导致转码失败。更多信息,请参见 URL Encoding说明
  • 请按照规范填写文件名称,否则会找不到文件导致转码失败。详细名称规范,请参见 参数详情
  • Input
    job_input = {'Location': oss_location,
                  'Bucket': oss_bucket,
                  'Object': quote(oss_input_object) }
    request.set_Input(json.dumps(job_input))
  • Output
    output = {'OutputObject': quote(oss_output_object)}
    • Container
      output['Container'] = {'Format': 'mp4'}
    • Video
      说明 如果使用转码模板进行转码则无需配置此参数。如果配置此参数,则覆盖指定转码模板中的对应参数。
      output['Video'] = {'Codec': 'H.264',
                            'Bitrate': 1500,
                            'Width': 1280,
                            'Fps': 25}
    • Audio
      说明 如果使用转码模板进行转码则无需配置此参数。如果配置此参数,则覆盖指定转码模板中的对应参数。
      output['Audio'] = {'Codec': 'AAC',
                            'Bitrate': 128,
                            'Channels': 2,
                            'Samplerate': 44100}
    • TemplateId
      output['TemplateId'] = template_id
    • PipelineId
      request.set_PipelineId(pipeline_id)
    • 发起API请求并显示返回值。
      response_str = client.do_action_with_exception(request)
      response = json.loads(response_str)
      print 'RequestId is:', response['RequestId']
      if response['JobResultList']['JobResult'][0]['Success']:
      print 'JobId is:', response['JobResultList']['JobResult'][0]['Job']['JobId']
      else:
      print ('SubmitJobs Failed code:',
            response['JobResultList']['JobResult'][0]['Code'],
            ' message:',
            response['JobResultList']['JobResult'][0]['Message'])
    • 完整代码
      # -*- coding: utf8 -*-
      import json
      from urllib import quote
      from aliyunsdkcore.client import AcsClient
      from aliyunsdkmts.request.v20140618 import SubmitJobsRequest
      access_key_id = 'xxx'
      access_key_secret = 'xxx'
      # 服务地域ID
      mps_region_id = 'cn-hangzhou'
      # 管道ID
      pipeline_id = 'xxx'
      # 模板ID
      template_id = 'S00000001-200010'
      # OSS的Location
      oss_location = 'oss-cn-hangzhou'
      # OSS的Bucket
      oss_bucket = 'xxx'
      # 输入Object
      oss_input_object = 'input.mp4'
      # 输出Object
      oss_output_object = 'output.mp4'
      # 创建AcsClient实例
      client = AcsClient(access_key_id, access_key_secret, mps_region_id);
      # 创建request,并设置参数
      request = SubmitJobsRequest.SubmitJobsRequest()
      request.set_accept_format('json')
      # Input
      job_input = {'Location': oss_location,
                   'Bucket': oss_bucket,
                   'Object': quote(oss_input_object) }
      request.set_Input(json.dumps(job_input))
      # Output
      output = {'OutputObject': quote(oss_output_object)}
      # Ouput->Container
      output['Container'] = {'Format': 'mp4'}
      # Ouput->Video
      output['Video'] = {'Codec': 'H.264',
                         'Bitrate': 1500,
                         'Width': 1280,
                         'Fps': 25}
      # Ouput->Audio
      output['Audio'] = {'Codec': 'AAC',
                         'Bitrate': 128,
                         'Channels': 2,
                         'Samplerate': 44100}
      # Ouput->TemplateId
      output['TemplateId'] = template_id
      outputs = [output]
      request.set_Outputs(json.dumps(outputs))
      request.set_OutputBucket(oss_bucket)
      request.set_OutputLocation(oss_location)
      # PipelineId
      request.set_PipelineId(pipeline_id)
      # 发起API请求并显示返回值
      response_str = client.do_action_with_exception(request)
      response = json.loads(response_str)
      print 'RequestId is:', response['RequestId']
      if response['JobResultList']['JobResult'][0]['Success']:
          print 'JobId is:', response['JobResultList']['JobResult'][0]['Job']['JobId']
      else:
          print ('SubmitJobs Failed code:',
                 response['JobResultList']['JobResult'][0]['Code'],
                 ' message:',
                 response['JobResultList']['JobResult'][0]['Message'])
  •