Inicia uma tarefa de gravação em nuvem RTC.
Descrição da operação
A gravação em nuvem é um recurso pago. Para detalhes sobre cobrança, consulte Taxas de gravação em nuvem.
Endpoints
Os seguintes endpoints estão ativos para esta operação:
| Região | ID da região | Endpoint público |
| Xangai | 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 |
Limite de taxa
O limite de QPS por usuário individual para esta operação é de 50 chamadas por segundo. Se o limite for excedido, as chamadas de API serão limitadas, o que pode afetar seus negócios. Invoque esta operação conforme necessário.
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 primária da conta que chama esta operação. |
********-7074-****-9ef5-85c19a4***** |
| ChannelId |
string |
Sim |
O ID do canal a ser gravado. Certifique-se de que o canal tenha usuários ativos quando você 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 entradas UserId assinadas. No modo de gravação de fluxo único, cada UserId é gravado separadamente. No modo de gravação com mixagem de fluxos, o áudio e o vídeo de todos os UserIds são misturados em um único conjunto de áudio e vídeo. Nota
|
|
|
object |
Não |
As informações sobre um UserId assinado. |
||
| UserId |
string |
Sim |
O UserId assinado. |
userA |
| StreamType |
integer |
Não |
O tipo de mídia do UserId assinado. Valores válidos:
Valores válidos:
|
0 |
| SourceType |
integer |
Não |
O tipo de fluxo de entrada de vídeo do UserId. Este parâmetro é válido apenas quando a assinatura não é apenas de áudio (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 da gravação. Valores válidos:
Valores válidos:
|
0 |
| MaxFileDuration |
integer |
Não |
A duração máxima de um arquivo de gravação, em segundos. Arquivos de gravação que excedem essa duração são divididos. O valor deve estar no intervalo de [180, 7200], que corresponde a no máximo 2 horas. Se não especificado, o valor padrão é 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, que especificam o formato, o local de armazenamento e a nomenclatura dos arquivos de gravação. Este parâmetro é válido apenas quando StorageType está definido como OSS. Nota
Um arquivo de gravação é gerado para cada elemento no array 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 cada formato de arquivo. |
||
| Format |
string |
Sim |
O formato de armazenamento do arquivo. Valores válidos:
Valores válidos:
|
HLS |
| FileNamePattern |
string |
Não |
O formato de nomenclatura do arquivo. Você pode selecionar e combinar as seguintes variáveis em qualquer ordem:
Valores padrão:
Nota
|
{AppId}_{ChannelId}_{StartTime}_{UserId} |
| SliceNamePattern |
string |
Não |
O formato de nomenclatura do segmento. Este parâmetro é válido apenas no formato HLS. É semelhante ao FileNamePattern, exceto que uma variável adicional Sequence está disponível:
Valores padrão:
Nota
|
{AppId}_{ChannelId}_{StartTime}_{Sequence} |
| FilePathPrefix |
array |
Não |
O caminho de armazenamento do arquivo. Cada elemento no array 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 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. O valor deve estar no intervalo de [10, 30]. (Valor padrão: 30) Se você não tiver requisitos especiais, use o valor padrão. |
30 |
| OSSParams |
object |
Não |
A configuração de armazenamento OSS. Este parâmetro é obrigatório quando o método de armazenamento é OSS e é inválido quando o método de armazenamento é VOD. |
|
| OSSEndpoint |
string |
Sim |
O endpoint do armazenamento OSS. O ID da região correspondente deve corresponder ao endpoint selecionado. |
oss-cn-shanghai.aliyuncs.com |
| OSSBucket |
string |
Sim |
O nome do bucket OSS. O bucket deve pertencer à conta primária da conta que chama esta operação. |
mytest-bucket |
| VodParams |
object |
Não |
A configuração de armazenamento VOD. Este parâmetro é obrigatório quando o método de armazenamento é VOD e é inválido quando o método de armazenamento é OSS. Nota
|
|
| StorageLocation |
string |
Não |
O endereço de armazenamento configurado no console de vídeo sob demanda em Gerenciamento de Ativos de Mídia > Gerenciamento de Armazenamento. Os arquivos de gravação são salvos primeiro neste local e depois carregados no VOD. 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 VOD usado para transcodificar o novo vídeo composto automaticamente no ApsaraVideo VOD. 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 com mixagem de fluxos. |
|
| 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 kbps. O valor deve estar no intervalo de [8, 500]. Este parâmetro é obrigatório no modo de mixagem de fluxos. |
300 |
| AudioChannels |
integer |
Sim |
O número de canais de áudio. Valores válidos:
Este parâmetro é obrigatório no modo de mixagem de fluxos. 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 mixagem de fluxos. 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 kbps. O valor deve estar no intervalo de [1, 10000]. Este parâmetro é obrigatório no modo de mixagem de fluxos quando se espera que a saída da gravação contenha vídeo. É inválido em outros casos. |
5000 |
| VideoFramerate |
integer |
Não |
A taxa de quadros de vídeo em fps. O valor deve estar no intervalo de [1, 60]. Este parâmetro é obrigatório no modo de mixagem de fluxos quando se espera que a saída da gravação contenha vídeo. É inválido em outros casos. |
30 |
| VideoGop |
integer |
Não |
O GOP de vídeo. Existe um I-frame a cada VideoGop quadros. O valor deve estar no intervalo de [1, 60]. Este parâmetro é obrigatório no modo de mixagem de fluxos quando se espera que a saída da gravação contenha vídeo. É inválido em outros casos. |
30 |
| VideoHeight |
integer |
Não |
A altura do vídeo em pixels. O valor deve estar no intervalo de [0, 1920]. (Valor padrão: 0) |
480 |
| VideoWidth |
integer |
Não |
A largura do vídeo em pixels. O valor deve estar no intervalo de [0, 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 com mixagem de fluxos quando se espera que a saída da gravação contenha arquivos que não sejam apenas de áudio. |
|
| MixBackground |
object |
Não |
A imagem de fundo global para mixagem de fluxos. |
|
| RenderMode |
integer |
Não |
O modo de exibição para a saída. Valores válidos:
Valores válidos:
|
0 |
| Url |
string |
Não |
A URL da imagem de fundo. O comprimento máximo é de 2048 caracteres. |
https://xxxx.com/photos/my-test-picture.png |
| UserPanes |
array<object> |
Não |
As informações de layout de janela para usuários assinados. Apenas UserIds com informações de layout configuradas são colocados no vídeo. Este parâmetro é obrigatório no modo de mixagem de fluxos ao gravar arquivos que não sejam apenas de áudio. |
|
|
array<object> |
Não |
A configuração da janela no vídeo. |
||
| UserId |
string |
Não |
O UserId correspondente a esta janela.
|
userA |
| SourceType |
integer |
Não |
O tipo de fluxo de entrada de vídeo do UserId. Definir SourceType é inválido quando UserId não é especificado. 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 é a camada inferior, a camada 1 está acima da camada 0, e assim por diante. (Valor padrão: 0) |
0 |
| SubBackground |
object |
Não |
A imagem de fundo do subpainel. Quando um usuário desliga a câmera, não iniciou a ingestão de fluxo após entrar 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 para a saída do subpainel. Valores válidos:
Valores válidos:
|
0 |
| Url |
string |
Não |
A URL da imagem de fundo. O comprimento máximo é de 2048 caracteres. |
https://xxxx.com/photos/my-test-pane-picture.png |
| NotifyUrl |
string |
Não |
A URL para receber mensagens de callback. Mensagens de status da tarefa são enviadas para esta URL via POST no formato JSON. O comprimento máximo é de 2048 caracteres. Para detalhes sobre mensagens de callback, consulte Documentação. |
http://xxxx/test/mycallback |
| NotifyAuthKey |
string |
Não |
A chave de autenticação para mensagens de callback. Se não especificada, nenhuma autenticação é realizada. Se especificada, o comprimento deve estar no intervalo de [16, 64] caracteres e conter apenas letras maiúsculas, minúsculas e dígitos.
|
mytestkeymytestkey |
| NotifyFileUploadedFormat |
array |
Não |
Os formatos especificados para os quais uma mensagem de callback é enviada quando um evento de geração de arquivo de gravação (RecordFileUploaded) é acionado. |
|
|
string |
Não |
O formato de arquivo específico para o qual um callback é recebido. 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, o formato selecionado deve estar incluído nos formatos de arquivo especificados em StorageParams.FileInfo. |
MP4 |
|
| MaxIdleTime |
integer |
Não |
O período de tempo limite de ociosidade. Quando a tarefa permanece ociosa por mais tempo do que MaxIdleTime, a tarefa é parada automaticamente. Unidade: segundos. O valor deve estar no intervalo de [10, 14400], que corresponde a no máximo 4 horas. (Valor padrão: 300 segundos)
|
600 |
-
No modo de gravação de fluxo único:
Você pode assinar simultaneamente os fluxos de câmera e de compartilhamento de tela do mesmo UserId, mas os parâmetros FileNamePattern e SliceNamePattern devem incluir a variável SourceType para evitar que os arquivos de gravação se sobrescrevam.
Assinar apenas o fluxo de vídeo de um UserId não é suportado. No modo de fluxo único, UserInfo.StreamType não pode ser definido como 2.
-
No modo de gravação de fluxo único:
Se RecordParams.StreamType estiver definido como apenas áudio (valor 1), SubscribeParams não poderá conter nenhuma assinatura apenas de vídeo (valor 2 em SubscribeParams).
Se RecordParams.StreamType estiver definido como apenas vídeo (valor 2), SubscribeParams não poderá conter nenhuma assinatura apenas de áudio (valor 1 em SubscribeParams).
-
No modo de gravação com mixagem de fluxos:
Se RecordParams.StreamType estiver definido como apenas áudio (valor 1), nem todos os UserIds em SubscribeParams podem estar assinados como apenas vídeo (todos os valores de SubscribeParams definidos como 2).
Se RecordParams.StreamType estiver definido como apenas vídeo (valor 2), nem todos os UserIds em SubscribeParams podem estar assinados como apenas áudio (todos os valores de SubscribeParams definidos como 1).
-
Durante a gravação, se o canal for fechado no meio do caminho, os usuários devem entrar novamente e retomar a ingestão de fluxo dentro do período de tempo limite de ociosidade. Caso contrário, a tarefa será parada automaticamente.
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
Os parâmetros de 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 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 parâmetro 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. | |
| 404 | InvalidParameter.AppId | %s, please check the appId. | O parâmetro AppId é inválido. Verifique o valor do parâmetro. |
| 405 | InvalidParameter.StorageParams.VodParams | %s, please check the vodParams of storageParams. | |
| 405 | InvalidParameter.NotifyAuthKey | %s, please check the notifyAuthKey. | |
| 405 | InvalidParameter.MaxIdleTime | %s, please check the maxIdleTime. | |
| 405 | InvalidParameter.RecordParams | %s, please check the recordParams. | |
| 405 | InvalidParameter.StorageParams.StorageType | %s, please check the storageType of storageParams. | O parâmetro StorageType é inválido. Verifique o valor do parâmetro. |
| 405 | InvalidParameter.NotifyFileUploadedFormat | %s, please check the notifyFileUploadedFormat. | O parâmetro NotifyFileUploadedFormat é inválido. Verifique o valor do parâmetro. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.