A API SubmitMediaProducingJob envia um job de produção de mídia. Este job fornece processamento automatizado para tarefas de pós-produção, como edição e composição de ativos de vídeo e áudio.
Descrição da operação
-
Cobrança: a edição de vídeo é cobrada com base na duração do vídeo de saída. Para obter mais informações, consulte edição de vídeo(~~2840899~~). Jobs com falha não incorrem em cobranças.
-
Capacidades de edição flexíveis: use esta operação para organizar e projetar ativos. Ela suporta edição de vídeo complexa por meio de configurações flexíveis de linha do tempo(~~198823~~).
-
Regras de referência de ativos: os ativos referenciados na linha do tempo podem ser ativos de mídia da sua biblioteca de ativos ou objetos do OSS. URLs externas e URLs de CDN não são suportadas. Se um ativo for um objeto do OSS, MediaUrl deve ser uma URL do OSS, por exemplo: https://seu-bucket.oss-nome-da-regiao.aliyuncs.com/seu-objeto.ext.
-
Execução assíncrona de jobs: esta operação cria uma tarefa assíncrona(~~3027141~~). Após enviar um job, a operação retorna um ID de tarefa e coloca o job na fila para processamento em segundo plano. O job ainda não está concluído neste estágio. O sistema entrega o resultado final por meio de uma notificação de callback. Você também pode consultar o status do job consultando o job de edição e composição(~~441149~~).
-
Consulta de status do job:
-
Chame a operação Consultar um job de edição e composição(~~441149~~) e passe o JobId para consultar o status e o resultado do job.
-
Ao enviar um job de edição e composição, você pode incluir uma URL de callback no parâmetro UserData da sua solicitação. Quando o job for concluído ou falhar, o sistema enviará uma notificação para esta URL de callback. Você pode usar os dados do callback para recuperar o status do job.
-
-
Registro e análise de ativos de mídia: após a conclusão da composição de vídeo, o sistema registra automaticamente um novo ativo de mídia, que inicialmente está em estado de análise. Após a conclusão da análise, você pode usar o MediaId para recuperar a duração e a resolução do vídeo de saída.
Limitações
-
O limite de limitação de taxa para esta operação é de 30 QPS. Os jobs enviados são colocados em fila e processados de forma assíncrona.
NotaSe você exceder esse limite, poderá encontrar um erro Throttling.User. Para obter mais informações, consulte Erro Throttling.User ao enviar jobs de edição(~~453484~~).
-
Ao enviar um grande número de jobs (por exemplo, 1.000 ou 10.000), o sistema escala horizontalmente de forma automática, mas você pode experimentar atrasos na fila.
-
O número máximo de faixas é 100 para cada tipo: vídeo, imagem e legenda.
-
Embora não haja limite para o número de ativos, o tamanho total deles não deve exceder 1 TB.
-
A região do bucket do OSS de entrada ou saída deve corresponder à região do IMS.
-
Quando a saída é um vídeo, aplicam-se os seguintes limites de resolução:
-
Tanto a largura quanto a altura devem ter pelo menos 128 px.
-
Nem a largura nem a altura podem exceder 4096 px.
-
O lado menor não pode exceder 2160 px. edição de vídeo linha do tempo tarefa assíncrona Consultar um job de edição e composição Erro "Throttling.User" ao enviar jobs de edição
-
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
ice:SubmitMediaProducingJob |
*All Resource
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| ProjectId |
string |
Não |
O ID do projeto de edição. Chame a operação CreateEditingProject(~~441137~~) para criar um projeto de edição e obter o ProjectId para enviar um job de produção de mídia. Importante Você deve especificar um dos parâmetros ProjectId, Timeline ou TemplateId. Os outros dois parâmetros devem ser deixados vazios. |
xxxxxfb2101cb318xxxxx |
| Timeline |
string |
Não |
A linha do tempo para o job de edição na nuvem. Para organizar clipes e projetar efeitos, construa manualmente o parâmetro Timeline.
Importante
Você deve especificar um dos parâmetros ProjectId, Timeline ou TemplateId. Os outros dois parâmetros devem ser deixados vazios. |
{"VideoTracks":[{"VideoTrackClips":[{"MediaId":"****4d7cf14dc7b83b0e801c****"},{"MediaId":"****4d7cf14dc7b83b0e801c****"}]}]} |
| TemplateId |
string |
Não |
O ID de um modelo para construir rapidamente uma linha do tempo. Você pode usar modelos básicos e avançados para edição de vídeo.
Importante
Você deve especificar um dos parâmetros ProjectId, Timeline ou TemplateId. Os outros dois parâmetros devem ser deixados vazios. |
****96e8864746a0b6f3**** |
| ClipsParam |
string |
Não |
Os parâmetros de clipe que correspondem ao modelo, no formato JSON. Se TemplateId for especificado, este parâmetro será obrigatório. Para obter detalhes sobre o formato, consulte Criar e usar modelos básicos(~~445399~~) e Criar e usar modelos avançados(~~445389~~). Criar e usar modelos básicos Criar e usar modelos avançados |
See the template user guide. |
| ProjectMetadata |
string |
Não |
Os metadados do projeto de edição, no formato JSON. Para obter detalhes sobre a estrutura, consulte ProjectMetadata(~~357745#title-yvp-81k-wff~~). ProjectMetadata |
{"Description":"Video editing description","Title":"Editing title test"} |
| OutputMediaTarget |
string |
Não |
O tipo de destino para a mídia de saída. Valores válidos:
|
oss-object |
| OutputMediaConfig |
string |
Sim |
A configuração para o destino da mídia de saída, no formato JSON. Você pode definir a URL para a mídia de saída no OSS ou o local de armazenamento em um bucket do VOD.
Para obter mais informações, consulte Exemplos do parâmetro OutputMediaConfig(~~357745#title-4j6-ve7-g31~~). Exemplos do parâmetro OutputMediaConfig |
{"MediaURL":"https://example-bucket.oss-cn-shanghai.aliyuncs.com/example.mp4"} |
| UserData |
string |
Não |
Dados personalizados do usuário no formato JSON. O valor pode ter até 512 bytes de comprimento. Este parâmetro suporta a configuração de callback de conclusão de job(~~451631~~). Os campos incluem:
|
{"NotifyAddress":"https://xx.com/xx","RegisterMediaNotifyAddress":"https://xxx.com/xx"} |
| ClientToken |
string |
Não |
Um token gerado pelo cliente que garante a idempotência da solicitação. Este token deve ser um valor exclusivo de até 64 caracteres ASCII. |
****12e8864746a0a398**** |
| Source |
string |
Não |
A origem da solicitação do job de produção de mídia. Valores válidos:
|
OPENAPI |
| EditingProduceConfig |
string |
Não |
Os parâmetros para o job de produção de mídia. Para obter detalhes de configuração, consulte Detalhes do parâmetro EditingProduceConfig(~~357745#section-8a4-pb2-hkv~~). Nota
Se uma capa não estiver configurada em EditingProduceConfig, o primeiro quadro do vídeo será usado como capa padrão.
|
{ "AutoRegisterInputVodMedia": "true", "OutputWebmTransparentChannel": "true" } |
| MediaMetadata |
string |
Não |
Os metadados do vídeo de saída, no formato JSON. Para obter detalhes sobre a estrutura, consulte MediaMetadata(~~357745#97ff26d0e3c28~~). MediaMetadata |
{ "Title":"test-title", "Tags":"test-tags1,tags2" } |
Exemplos do parâmetro OutputMediaConfig
Exemplo: Saída para o OSS
{
"MediaURL":"https://my-test-bucket.oss-cn-shanghai.aliyuncs.com/test/xxxxxtest001xxxxx.mp4",
"Bitrate": 2000,
"Width": 800,
"Height": 680
}
Ao enviar a saída para o OSS, o parâmetro MediaURL é obrigatório. O parâmetro OutputMediaTarget tem como padrão oss-object, que envia a saída para o OSS. Outros parâmetros são opcionais. O parâmetro bitrate define a taxa de bits do arquivo de saída. Uma taxa de bits mais alta geralmente resulta em melhor qualidade, com um valor máximo de 5000 Kbps. Os parâmetros width e height definem a resolução do arquivo de saída.
O formato da URL do OSS é: https://bucketname.oss-region-name.aliyuncs.com/xxx/yyy.ext
bucketname é o nome do seu bucket do OSS.
oss-region-name.aliyuncs.com é o endpoint público para arquivos do OSS. Por exemplo, os endpoints públicos para as regiões China (Xangai), China (Pequim) e China (Hangzhou) são:
oss-cn-shanghai.aliyuncs.com
oss-cn-hangzhou.aliyuncs.com
oss-cn-beijing.aliyuncs.com
Exemplo: Saída para o ApsaraVideo for VOD
{
"StorageLocation": "outin-*xxxxxx7d2a3811eb83da00163exxxxxx.oss-cn-shanghai.aliyuncs.com",
"FileName": "output.mp4",
"Bitrate": 2000,
"Width": 800,
"Height": 680
}
Ao enviar a saída para o ApsaraVideo for VOD, os parâmetros storageLocation e FileName são obrigatórios. Defina o parâmetro OutputMediaTarget como vod-media para enviar a saída para um bucket de armazenamento do ApsaraVideo for VOD. Para encontrar locais de armazenamento disponíveis, visualize o local de armazenamento de um ativo de mídia carregado no console do ApsaraVideo for VOD.
Parâmetros em OutputMediaConfig
| Parâmetro | Tipo | Descrição |
| MediaURL | String | A URL do ativo de mídia de saída. Quando OutputMediaTarget está definido como oss-object, especifique a URL HTTP do objeto do OSS. Por exemplo: http://xxx-bucket-name.oss-cn-shanghai.aliyuncs.com/. O bucket do OSS e o serviço que faz a chamada devem estar na mesma região. |
| StorageLocation | String | Quando OutputMediaTarget está definido como vod-media, especifique o local de armazenamento no ApsaraVideo for VOD para o ativo de mídia. O local de armazenamento é o caminho de armazenamento de arquivos no ApsaraVideo for VOD e não deve incluir o prefixo http://. Por exemplo: outin-xxxxxx.oss-cn-shanghai.aliyuncs.com. |
| FileName | String | Quando OutputMediaTarget está definido como vod-media, especifique o nome do arquivo para o arquivo de saída. O nome do arquivo deve incluir a extensão do arquivo, mas não o caminho. |
| Width | Integer | A largura do arquivo de saída. Este parâmetro é opcional. Se não for especificado, o sistema usa a largura máxima entre todos os materiais de origem. |
| Height | Integer | A altura do arquivo de saída. Este parâmetro é opcional. Se não for especificado, o sistema usa a altura máxima entre todos os materiais de origem. |
| Bitrate | Integer | A taxa de bits do arquivo de saída, em Kbps. Este parâmetro é opcional. Se não for especificado, o sistema usa a taxa de bits mais alta entre todos os materiais de origem, com um limite de 5000 Kbps. Para reter a taxa de bits original mais alta, mesmo que exceda esse limite, defina EditingProduceConfig.KeepOriginMaxBitrate como true. Para obter mais informações, consulte EditingProduceConfig. |
| VodTemplateGroupId | String | Ao enviar a saída para o ApsaraVideo for VOD, você pode especificar um grupo de modelos de transcodificação do VOD. Se a transcodificação não for necessária, defina este parâmetro como VOD_NO_TRANSCODE. |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
Esquema da resposta. |
||
| RequestId |
string |
O ID da solicitação. |
****36-3C1E-4417-BDB2-1E034F**** |
| ProjectId |
string |
O ID do projeto. |
****b4549d46c88681030f6e**** |
| JobId |
string |
O ID do job. |
****d80e4e4044975745c14b**** |
| MediaId |
string |
O ID da mídia. |
****c469e944b5a856828dc2**** |
| VodMediaId |
string |
O ID da mídia do VOD. Retornado se o destino de saída for o VOD. |
****d8s4h75ci975745c14b**** |
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "****36-3C1E-4417-BDB2-1E034F****",
"ProjectId": "****b4549d46c88681030f6e****",
"JobId": "****d80e4e4044975745c14b****",
"MediaId": "****c469e944b5a856828dc2****",
"VodMediaId": "****d8s4h75ci975745c14b****"
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|---|---|---|---|
| 400 | InvalidParameter | The specified parameter \ is not valid. | |
| 404 | ProjectNotFound | The specified project not found |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.