Inicia uma tarefa de gravação em nuvem do RTC.
Descrição da operação
A gravação em nuvem é um recurso cobrável. Para detalhes de cobrança, consulte Cobrança de gravação em nuvem.
Após o início de uma tarefa de gravação, as taxas ainda são incorridas no estado ocioso (quando nenhum fluxo é ingerido). Portanto, chame StopRtcCloudRecording prontamente quando a gravação terminar ou reduza o valor de MaxIdleTime conforme necessário.
O número padrão de tarefas simultâneas suportadas por conta varia de acordo com a região:
-
China (Shanghai): 500 tarefas simultâneas
-
Singapura: 200 tarefas simultâneas
-
EUA (Virgínia): 500 tarefas simultâneas
Para aumentar a cota, entre em contato com o gerente de conta da Alibaba Cloud ou envie um ticket. Para mais informações sobre como enviar um ticket, consulte Fale conosco.
Endpoints de registro de serviço
Os seguintes endpoints de registro de serviço estão ativos para esta operação:
| Nome da região | ID da região | Endpoint público |
| China (Shanghai) | cn-shanghai | live.aliyuncs.com |
| Singapura | ap-southeast-1 | live.ap-southeast-1.aliyuncs.com |
| EUA (Virgínia) | us-east-1 | live.us-east-1.aliyuncs.com |
Limites de QPS
O limite de consultas por segundo (QPS) para esta operação é de 50 por usuário. Se o número de chamadas exceder o limite, o limitador será acionado, o que pode afetar seus negócios. Tenha cuidado ao chamar esta operação.
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
live:StartRtcCloudRecording |
create |
*Todos os recursos.
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| AppId |
string |
Sim |
O ID do aplicativo ao qual o canal a ser gravado pertence. O aplicativo deve pertencer à conta da Alibaba Cloud do chamador atual. |
********-7074-****-9ef5-85c19a4***** |
| ChannelId |
string |
Sim |
O ID do canal a ser gravado. Certifique-se de que haja usuários presentes no canal ao chamar esta operação. Caso contrário, a tarefa de gravação não será criada. |
room1024 |
| SubscribeParams |
object |
Sim |
Os parâmetros de assinatura. |
|
| SubscribeUserIdList |
array<object> |
Sim |
A lista de IDs de usuário para assinar. No modo de gravação de fluxo único, cada ID de usuário é gravado separadamente. No modo de gravação de fluxo misto, os fluxos de áudio e vídeo de todos os IDs de usuário são misturados em um único fluxo de áudio e vídeo. Nota
|
|
|
object |
Não |
As informações sobre o ID de usuário a ser assinado. |
||
| UserId |
string |
Sim |
O ID de usuário a ser assinado. |
userA |
| StreamType |
integer |
Não |
O tipo de mídia do ID de usuário a ser assinado. Valores válidos:
Valores válidos:
|
0 |
| SourceType |
integer |
Não |
O tipo de fluxo de entrada de vídeo do ID de usuário. Este parâmetro é válido apenas quando um fluxo não exclusivo de áudio é assinado (StreamType != 1). Valores válidos:
Valores válidos:
|
0 |
| RecordParams |
object |
Sim |
Os parâmetros de gravação. |
|
| RecordMode |
integer |
Sim |
O modo de gravação. Valores válidos:
Valores válidos:
|
0 |
| StreamType |
integer |
Não |
O tipo de mídia do fluxo de saída a ser gravado. Valores válidos:
Valores válidos:
|
0 |
| MaxFileDuration |
integer |
Não |
A duração máxima de um arquivo de gravação, em segundos. Os arquivos de gravação que excederem essa duração serão divididos. Valores válidos: 180 a 7200, o que significa um máximo de 2 horas. Se você não especificar este parâmetro, o valor padrão é 7200 (2 horas). |
7200 |
| StorageParams |
object |
Sim |
Os parâmetros de armazenamento. |
|
| StorageType |
integer |
Sim |
O método de armazenamento. Valores válidos:
Valores válidos:
|
1 |
| FileInfo |
array<object> |
Não |
As informações de armazenamento de arquivos, usadas para especificar o formato, o local de armazenamento e a convenção de nomenclatura dos arquivos de gravação. Este parâmetro é válido apenas quando StorageType é definido como 1 (OSS). Nota
Um arquivo de gravação é gerado para cada elemento na matriz com base na configuração correspondente. Se nenhum formato for especificado, o formato HLS será usado por padrão. |
|
|
object |
Não |
A configuração de armazenamento para diferentes formatos de arquivo. |
||
| Format |
string |
Sim |
O formato de armazenamento de arquivo. Valores válidos:
Valores válidos:
|
HLS |
| FileNamePattern |
string |
Não |
A convenção de nomenclatura de arquivos. Você pode selecionar e combinar as seguintes variáveis em qualquer ordem:
Valores padrão:
Nota
|
{AppId}_{ChannelId}_{StartTime}_{UserId} |
| SliceNamePattern |
string |
Não |
A convenção de nomenclatura de segmentos. Este parâmetro é válido apenas no formato HLS. É semelhante ao FileNamePattern, exceto que a variável Sequence também está disponível:
Valores padrão:
Nota
|
{AppId}_{ChannelId}_{StartTime}_{Sequence} |
| FilePathPrefix |
array |
Não |
O caminho de armazenamento do arquivo. Cada elemento na matriz corresponde a um nível de diretório. Por exemplo, se o valor do parâmetro for ["dir1","dir2"], o arquivo xxx.m3u8 será salvo como dir1/dir2/TaskId/xxx.m3u8. Se este parâmetro estiver vazio, o arquivo no exemplo anterior será salvo diretamente como TaskId/xxx.m3u8.
|
|
|
string |
Não |
O nome de cada nível de diretório. |
dir1 |
|
| SliceDuration |
integer |
Não |
O comprimento do segmento, em segundos. Este parâmetro é válido apenas no formato HLS. Valores válidos: 10 a 30. Valor padrão: 30. Recomendamos que você use o valor padrão, a menos que haja outros requisitos. |
30 |
| OSSParams |
object |
Não |
A configuração de armazenamento do OSS. Este parâmetro é obrigatório quando o método de armazenamento é OSS e é inválido quando o método de armazenamento é ApsaraVideo VOD. |
|
| OSSEndpoint |
string |
Sim |
O endpoint do bucket do OSS. O ID da região correspondente deve ser o mesmo que o endpoint de registro de serviço selecionado. |
oss-cn-shanghai.aliyuncs.com |
| OSSBucket |
string |
Sim |
O nome do bucket do OSS. O bucket deve pertencer à conta da Alibaba Cloud do chamador atual. |
mytest-bucket |
| VodParams |
object |
Não |
A configuração de armazenamento do ApsaraVideo VOD. Este parâmetro é obrigatório quando o método de armazenamento é ApsaraVideo VOD e é inválido quando o método de armazenamento é OSS. Nota
|
|
| StorageLocation |
string |
Não |
O endereço de armazenamento incluído no console de vídeo sob demanda > Ativos de mídia > Gerenciamento de armazenamento. Os arquivos de gravação são salvos primeiro aqui e depois enviados para o vídeo sob demanda. Nota
|
mytest.oss-cn-shenzhen.aliyuncs.com |
| VodTranscodeGroupId |
string |
Não |
O ID do grupo de modelos de transcodificação de vídeo sob demanda. Nota
|
****8a914d3989e9825eb90530b2**** |
| AutoCompose |
integer |
Não |
Especifica se a mesclagem automática deve ser ativada. Valores válidos:
Valores válidos:
|
0 |
| ComposeVodTranscodeGroupId |
string |
Não |
O ID do grupo de modelos de transcodificação de vídeo sob demanda usado para transcodificar o vídeo recém-gerado no serviço de vídeo sob demanda após a mesclagem automática. Nota
|
****4c34112cfe68248f2f77759c**** |
| MixTranscodeParams |
object |
Não |
Os parâmetros de transcodificação. Deixe este parâmetro vazio no modo de gravação de fluxo único. Este parâmetro é obrigatório no modo de gravação de fluxo misto. |
|
| FrameFillType |
integer |
Não |
O tipo de preenchimento de quadro quando um fluxo é interrompido. Valores válidos:
Valores válidos:
|
0 |
| AudioBitrate |
integer |
Sim |
A taxa de bits de áudio, em Kbit/s. Valores válidos: 8 a 500. Este parâmetro é obrigatório no modo de fluxo misto. |
300 |
| AudioChannels |
integer |
Sim |
O número de canais de áudio. Valores válidos:
Este parâmetro é obrigatório no modo de fluxo misto. Valores válidos:
|
2 |
| AudioSampleRate |
integer |
Sim |
A taxa de amostragem de áudio, em Hz. Valores válidos:
Este parâmetro é obrigatório no modo de fluxo misto. Valores válidos:
|
32000 |
| VideoCodec |
string |
Não |
O formato de codificação de vídeo. Valores válidos:
Valores válidos:
|
H.264 |
| VideoBitrate |
integer |
Não |
A taxa de bits de vídeo, em Kbit/s. Valores válidos: 1 a 10000. No modo de fluxo misto, este parâmetro é obrigatório se você quiser que a saída de gravação inclua vídeo. É inválido em outros casos. |
5000 |
| VideoFramerate |
integer |
Não |
A taxa de quadros de vídeo, em fps. Valores válidos: 1 a 60. No modo de fluxo misto, este parâmetro é obrigatório se você quiser que a saída de gravação inclua vídeo. É inválido em outros casos. |
30 |
| VideoGop |
integer |
Não |
O grupo de imagens (GOP) de vídeo. Existe um I-frame a cada VideoGop quadros. Valores válidos: 1 a 60. No modo de fluxo misto, este parâmetro é obrigatório se você quiser que a saída de gravação inclua vídeo. É inválido em outros casos. |
30 |
| VideoHeight |
integer |
Não |
A altura do vídeo, em pixels. Valores válidos: 0 a 1920. Valor padrão: 0. |
480 |
| VideoWidth |
integer |
Não |
A largura do vídeo, em pixels. Valores válidos: 0 a 1920. Valor padrão: 0. |
640 |
| MixLayoutParams |
object |
Não |
Os parâmetros de layout. Deixe este parâmetro vazio no modo de gravação de fluxo único. Este parâmetro é obrigatório no modo de gravação de fluxo misto se você quiser gerar um arquivo não exclusivo de áudio. |
|
| MixBackground |
object |
Não |
A imagem de fundo global para gravação de fluxo misto. |
|
| RenderMode |
integer |
Não |
O modo de exibição para saída de vídeo. Valores válidos:
Valores válidos:
|
0 |
| Url |
string |
Não |
A URL da imagem de fundo. O comprimento máximo é de 2.048 caracteres. |
https://xxxx.com/photos/my-test-picture.png |
| UserPanes |
array<object> |
Não |
Especifica as informações de layout de janela para os usuários inscritos. Apenas os usuários cujo UserId tem informações de layout configuradas são exibidos no vídeo. Este parâmetro é obrigatório quando a mixagem de fluxo está ativada e a gravação não é um arquivo de áudio puro. |
|
|
array<object> |
Não |
A configuração da janela no vídeo. |
||
| UserId |
string |
Não |
O UserId correspondente à janela.
|
userA |
| SourceType |
integer |
Não |
O tipo de fluxo de entrada de vídeo do UserId. Se o UserId não for especificado, a configuração de SourceType aqui será inválida. Valores válidos:
A combinação de UserId e SourceType especificada aqui deve estar incluída em SubscribeUserIdList. Valores válidos:
|
0 |
| Height |
string |
Não |
A altura do painel, como uma porcentagem normalizada. O valor deve estar no intervalo de [0,1]. Valor padrão: 0. |
0.5 |
| Width |
string |
Não |
A largura do painel, como uma porcentagem normalizada. O valor deve estar no intervalo de [0,1]. Valor padrão: 0. |
0.5 |
| X |
string |
Não |
A coordenada X, como uma porcentagem normalizada. O valor deve estar no intervalo de [0,1]. Valor padrão: 0. |
0 |
| Y |
string |
Não |
A coordenada Y, como uma porcentagem normalizada. O valor deve estar no intervalo de [0,1]. Valor padrão: 0. |
0 |
| ZOrder |
integer |
Não |
A ordem de empilhamento. 0 indica a camada inferior, 1 indica a camada acima de 0, e assim por diante. Valor padrão: 0. |
0 |
| SubBackground |
object |
Não |
A imagem de fundo da subimagem. Quando um usuário desliga a câmera, não realiza a ingestão de um fluxo após entrar no canal ou sai do canal no meio do caminho, a imagem correspondente é exibida na posição do layout. |
|
| RenderMode |
integer |
Não |
O modo de exibição quando a subimagem é gerada. Valores válidos:
Valores válidos:
|
0 |
| Url |
string |
Não |
A URL da imagem de fundo. O comprimento máximo é de 2.048 caracteres. |
https://xxxx.com/photos/my-test-pane-picture.png |
| NotifyUrl |
string |
Não |
A URL que recebe mensagens de callback. As mensagens de status da tarefa são enviadas para esta URL no formato JSON usando o método POST. O comprimento máximo é de 2048 caracteres. Para obter mais informações sobre mensagens de callback, consulte a documentação. |
http://xxxx/test/mycallback |
| NotifyAuthKey |
string |
Não |
A chave de autenticação para mensagens de callback. Por padrão, este parâmetro é deixado vazio, o que significa que nenhuma autenticação é realizada. Se especificado, o comprimento deve ser de 16 a 64 caracteres e pode conter apenas letras maiúsculas e minúsculas e dígitos.
|
mytestkeymytestkey |
| NotifyFileUploadedFormat |
array |
Não |
Os formatos especificados. Quando um evento de geração de arquivo de gravação (RecordFileUploaded) é acionado, uma mensagem de callback é enviada. |
|
|
string |
Não |
Os formatos de arquivo específicos para os quais os callbacks são recebidos. Valores válidos (não diferencia maiúsculas de minúsculas):
O modo de armazenamento VOD não é suportado. Para o modo de armazenamento OSS, os formatos selecionados devem estar incluídos nos formatos de arquivo de StorageParams.FileInfo. |
MP4 |
|
| MaxIdleTime |
integer |
Não |
O período de tempo limite de ociosidade. Se a tarefa permanecer ociosa por uma duração que exceda MaxIdleTime, a tarefa será interrompida automaticamente. Unidade: segundos. Valores válidos: 10 a 14400, que é um máximo de 4 horas. Valor padrão: 300.
|
600 |
-
No modo de gravação de fluxo único:
Você pode se inscrever tanto na câmera quanto no compartilhamento de tela do mesmo UserId ao mesmo tempo. No entanto, os parâmetros FileNamePattern e SliceNamePattern devem conter a variável SourceType para evitar que os arquivos de gravação se sobrescrevam.
A inscrição apenas no fluxo de vídeo puro de um UserId específico não é suportada. Ou seja, no modo de fluxo único, o valor de UserInfo.StreamType não pode ser definido como 2.
-
No modo de gravação de fluxo único:
Se RecordParams.StreamType for um fluxo de áudio puro (valor: 1), SubscribeParams não poderá conter inscrições para fluxos de vídeo puro (ou seja, o valor de SubscribeParams não pode ser 2).
Se RecordParams.StreamType for um fluxo de vídeo puro (valor: 2), SubscribeParams não poderá conter inscrições para fluxos de áudio puro (ou seja, o valor de SubscribeParams não pode ser 1).
-
No modo de gravação com mixagem de fluxo:
Se RecordParams.StreamType for um fluxo de áudio puro (valor: 1), nem todos os UserIds em SubscribeParams podem se inscrever apenas em fluxos de vídeo puro (ou seja, os valores de todos os SubscribeParams não podem ser 2).
Se RecordParams.StreamType for um fluxo de vídeo puro (valor: 2), nem todos os UserIds em SubscribeParams podem se inscrever apenas em fluxos de áudio puro (ou seja, os valores de todos os SubscribeParams não podem ser 1).
-
Durante a gravação, se o canal for fechado no meio do caminho, você deve entrar novamente no canal e iniciar a ingestão de fluxo dentro do período de tempo limite de ociosidade. Caso contrário, a tarefa será interrompida automaticamente.
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
O conteúdo da resposta. |
||
| RequestId |
string |
O ID da solicitação. |
******58-5876-****-83CA-B56278****** |
| TaskId |
string |
O ID da tarefa. |
******73-8501-****-8ac1-72295a****** |
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "******58-5876-****-83CA-B56278******",
"TaskId": "******73-8501-****-8ac1-72295a******"
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|---|---|---|---|
| 400 | InvalidParameter.NotifyUrl | %s, please check the notifyUrl. | O formato do parâmetro NotifyUrl é inválido. Verifique o parâmetro. |
| 400 | InvalidParameter.StorageParams.FileInfo | %s, please check the fileInfo of storageParams. | O parâmetro FileInfo contém campos inválidos. Verifique o parâmetro. |
| 400 | InvalidParameter.StorageParams.OSSParams | %s, please check the ossParams of storageParams. | O parâmetro OSSParams contém campos inválidos. Verifique o parâmetro. |
| 400 | NotFound.OSSBucket | %s, please check the ossBucket of storageParams. | O parâmetro OSSBucket especificado não existe. |
| 400 | InvalidParameter.SubscribeParams.SubscribeUserIdList | %s, please check the subscribeUserIdList of subscribeParams. | O parâmetro SubscribeUserIdList é inválido. Verifique o parâmetro. |
| 400 | InvalidParameter.MixLayoutParams.UserPanes | %s, please check the userPanes of mixLayoutParams. | O parâmetro UserPanes contém campos inválidos. Verifique o parâmetro. |
| 400 | InvalidParameter.MixTranscodeParams | %s, please check the transcodeParams. | O parâmetro MixTranscodeParams contém campos inválidos. Verifique o parâmetro. |
| 400 | MissingParameter | %s. | Um parâmetro obrigatório está ausente. |
| 403 | InvalidParameter.UserId | %s, please check the UserId. | O UserId é inválido. Verifique o parâmetro. |
| 403 | QuotaExceed.RunningTask | The number of active cloud recording tasks has reached the limit. | O número de tarefas ativas de gravação em nuvem atingiu o limite superior. |
| 404 | InvalidParameter.ChannelId | %s, please check the channelId. | O parâmetro ChannelId é inválido. Verifique o parâmetro. |
| 404 | InvalidParameter.AppId | %s, please check the appId. | O parâmetro AppId é inválido. Verifique o parâmetro. |
| 405 | InvalidParameter.StorageParams.VodParams | %s, please check the vodParams of storageParams. | O parâmetro VodParams contém campos inválidos. Verifique o parâmetro. |
| 405 | InvalidParameter.NotifyAuthKey | %s, please check the notifyAuthKey. | O formato do parâmetro NotifyAuthKey é inválido. Verifique o parâmetro. |
| 405 | InvalidParameter.MaxIdleTime | %s, please check the maxIdleTime. | O parâmetro MaxIdleTime é inválido. Verifique o parâmetro. |
| 405 | InvalidParameter.RecordParams | %s, please check the recordParams. | O parâmetro RecordParams contém campos inválidos. Verifique o parâmetro. |
| 405 | InvalidParameter.StorageParams.StorageType | %s, please check the storageType of storageParams. | O parâmetro StorageType é inválido. Verifique o parâmetro. |
| 405 | InvalidParameter.NotifyFileUploadedFormat | %s, please check the notifyFileUploadedFormat. | O parâmetro NotifyFileUploadedFormat é inválido. Verifique o parâmetro. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.