Crie um LiveChannel para envio de dados de áudio e vídeo via RTMP. A resposta retorna a URL de ingestão RTMP e a URL de reprodução correspondente.
Use as URLs retornadas para ingerir e reproduzir streams. Você também pode usar o nome do LiveChannel para consultar o status da ingestão, verificar registros de ingestão e desativar a ingestão de streams.
Permissões
Por padrão, uma conta Alibaba Cloud tem permissões completas. Usuários RAM ou funções RAM vinculados a uma conta Alibaba Cloud não têm permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder permissões de operação por meio de políticas do RAM ou Bucket Policy.
|
API |
Action |
Descrição |
|
PutLiveChannel |
oss:PutLiveChannel |
Crie um LiveChannel antes do envio de dados de áudio e vídeo usando o Real-Time Messaging Protocol (RTMP). |
Sintaxe da solicitação
PUT /ChannelName?live HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT date
Content-Length: Size
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<LiveChannelConfiguration>
<Description>ChannelDescription</Description>
<Status>ChannelStatus</Status>
<Target>
<Type>HLS</Type>
<FragDuration>FragDuration</FragDuration>
<FragCount>FragCount</FragCount>
<PlaylistName>PlaylistName</PlaylistName>
</Target>
<Snapshot>
<RoleName>Snapshot ram role</RoleName>
<DestBucket>Snapshot dest bucket</DestBucket>
<NotifyTopic>Notify topic of MNS</NotifyTopic>
<Interval>Snapshot interval in second</Interval>
</Snapshot>
</LiveChannelConfiguration>
Cabeçalhos da solicitação
|
Cabeçalho |
Tipo |
Obrigatório |
Descrição |
|
ChannelName |
String |
Sim |
Nome do LiveChannel a ser criado. Deve seguir as convenções de nomenclatura de objetos e não pode conter barras (/). |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
LiveChannelConfiguration |
Contêiner |
Sim |
Contêiner das configurações do LiveChannel. Nós filhos: Description, Status e Target Nós pais: nenhum |
|
Description |
String |
Não |
Descrição do LiveChannel. Tamanho máximo: 128 bytes. Nós filhos: nenhum Nós pais: LiveChannelConfiguration |
|
Status |
String enumerada |
Não |
Status do LiveChannel. Nós filhos: nenhum Nós pais: LiveChannelConfiguration Valores válidos: enabled e disabled Valor padrão: enabled |
|
Target |
Contêiner |
Sim |
Contêiner das configurações que o LiveChannel usa para armazenar os dados enviados. Nós filhos: Type, FragDuration, FragCount e PlaylistName Nós pais: LiveChannelConfiguration |
|
Type |
String enumerada |
Sim |
Formato de armazenamento dos dados enviados. Nós filhos: nenhum Nós pais: Target Valor válido: HLS Nota
|
|
FragDuration |
String |
Não |
Duração de cada arquivo ts quando Type está definido como HLS. Unidade: segundos Nós filhos: nenhum Nós pais: Target Valores válidos: [1, 100] Valor padrão: 5 Nota
Se nem FragDuration nem FragCount forem especificados, os valores padrão serão aplicados. Especifique ambos os parâmetros simultaneamente. |
|
FragCount |
String |
Não |
Quantidade de arquivos ts no arquivo m3u8 quando Type está definido como HLS. Nós filhos: nenhum Nós pais: Target Valores válidos: [1, 100] Valor padrão: 3 Nota
Se nem FragDuration nem FragCount forem especificados, os valores padrão serão aplicados. Especifique ambos os parâmetros simultaneamente. |
|
PlaylistName |
String |
Não |
Nome do arquivo m3u8 gerado quando Type está definido como HLS. Deve ter entre 6 e 128 bytes e terminar com .m3u8. Nós filhos: nenhum Nós pais: Target Valor padrão: playlist.m3u8 |
|
Snapshot |
Contêiner |
Não |
Contêiner das opções de snapshot de alta frequência. Nós filhos: RoleName, DestBucket, NotifyTopic e Interval Nós pais: LiveChannelConfiguration |
|
RoleName |
String |
Não |
Função RAM para operações de snapshot de alta frequência. A função deve ter permissões de gravação no DestBucket e permissões para enviar mensagens ao NotifyTopic. Nós filhos: nenhum Nós pais: Snapshot |
|
DestBucket |
String |
Não |
Bucket para armazenar resultados de snapshots de alta frequência. Deve pertencer ao mesmo proprietário do bucket atual. Nós filhos: nenhum Nós pais: Snapshot |
|
NotifyTopic |
String |
Não |
Tópico MNS para notificar usuários sobre resultados de snapshots de alta frequência. Nós filhos: nenhum Nós pais: Snapshot |
|
Interval |
NUMERIC |
Sim |
Intervalo para snapshots de alta frequência. Se não houver nenhum quadro-chave (como um I-frame) dentro do intervalo, nenhum snapshot será capturado. Unidade: segundos Nós filhos: nenhum Nós pais: Snapshot Valores válidos: [1, 100] Por padrão, este parâmetro fica vazio. |
Parâmetros da resposta
|
Parâmetro |
Tipo |
Descrição |
|
CreateLiveChannelResult |
Contêiner |
Contêiner da resposta CreateLiveChannel. Nós filhos: PublishUrls e PlayUrls Nós pais: nenhum |
|
PublishUrls |
Contêiner |
Contêiner da URL de ingestão de stream. Nós filhos: Url Nós pais: CreateLiveChannelResult |
|
Url |
String |
URL de ingestão de stream. Nós filhos: nenhum Nós pais: PublishUrls Nota
|
|
PlayUrls |
Contêiner |
Contêiner da URL de reprodução de stream. Nós filhos: Url Nós pais: CreateLiveChannelResult |
|
Url |
String |
URL de reprodução de stream. Nós filhos: nenhum Nós pais: PlayUrls |
Exemplos
Exemplo de solicitação
PUT /test-channel?live HTTP/1.1
Date: Wed, 24 Aug 2016 11:11:28 GMT
Content-Length: 333
Host: test-bucket.oss-cn-hangzhou.aliyuncs.com
Authorization: OOSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<LiveChannelConfiguration>
<Description/>
<Status>enabled</Status>
<Target>
<Type>HLS</Type>
<FragDuration>2</FragDuration>
<FragCount>3</FragCount>
</Target>
<Snapshot>
<RoleName>role_for_snapshot</RoleName>
<DestBucket>snapshotdest</DestBucket>
<NotifyTopic>snapshotnotify</NotifyTopic>
<Interval>1</Interval>
</Snapshot>
</LiveChannelConfiguration>
Exemplo de resposta
HTTP/1.1 200
content-length: 259
server: AliyunOSS
x-oss-server-time: 4
connection: close
x-oss-request-id: 57BD8419B92475920B0002F1
date: Wed, 24 Aug 2016 11:11:28 GMT
x-oss-bucket-storage-type: standard
content-type: application/xml
<?xml version="1.0" encoding="UTF-8"?>
<CreateLiveChannelResult>
<PublishUrls>
<Url>rtmp://test-bucket.oss-cn-hangzhou.aliyuncs.com/live/test-channel</Url>
</PublishUrls>
<PlayUrls>
<Url>http://test-bucket.oss-cn-hangzhou.aliyuncs.com/test-channel/playlist.m3u8</Url>
</PlayUrls>
</CreateLiveChannelResult>