Skip to content

Sobreposição de logo

media.transcode.logo

O transcodificador do Sapsan recodifica o stream de entrada: muda codecs, taxa de bits e resolução, e prepara uma escada de qualidades multibitrate (MBR) a partir de uma única fonte.

O transcodificador sobrepõe uma imagem de logotipo ao vídeo — o logotipo do canal no canto do quadro ou uma marca d'água. O logotipo fica «gravado» na trilha de vídeo: aparece em qualquer dispositivo e vai para o arquivo. A seção logo vive nos parâmetros de vídeo do degrau e é aplicada ao quadro pronto de cada degrau separadamente — depois do escalonamento e das bordas do fit —, então o tamanho em pixels da imagem não depende da resolução de saída.

Em um cluster gerenciado pelo central, use a biblioteca de logotipos como principal método de entrega. Envie a imagem uma vez na console do central e selecione-a no cartão Logotipo da escada. O central armazena a imagem, enquanto a configuração do stream contém image: logo@<sha256>. O Sapsan baixa as imagens ausentes pelo canal autenticado de sincronização com o central, verifica o SHA-256 e as mantém em cache local. Não é preciso copiar o arquivo para cada streamer.

Para configurar pela API, envie JSON com name e bytes (bytes da imagem em base64 padrão) para POST /central/api-v4/logos, com autenticação de gerenciamento. A resposta contém key e created; defina logo.image como logo@ seguido dessa chave. GET /central/api-v4/logos lista as entradas e GET /central/api-v4/logos/{key} retorna uma entrada com a imagem em base64 para visualização. Um caminho local ou uma URL HTTP(S) são alternativas, inclusive para um Sapsan independente sem o central.

No exemplo, substitua <sha256> pela chave retornada pelo central.

streams:
  - name: tv1
    inputs:
    - udp: {host: 239.0.0.1, port: 5000}
    transcoder:
      output:
      - source: !content video          # 1080p — o topo da escada
        codec: !set h264
        bitrate: 2800000
        params: !video
          logo:
            image: logo@<sha256>
            position: top_right
            x: 24
            y: 16
            height: 72
      - source: !content video          # 720p
        codec: !set h264
        bitrate: 1200000
        params: !video
          resize: !fit
            height: 720
          logo:
            image: logo@<sha256>
            position: top_right
            x: 16
            y: 10
            height: 48
Campo O que define
image o endereço da imagem: um caminho no nó, uma URL http(s) ou uma referência a um registro da biblioteca de logotipos logo@<sha256>
position o ponto de ancoragem no quadro — um dos cinco, obrigatório
x, y deslocamentos em pixels a partir da ancoragem, 0 por padrão
width, height o tamanho da imagem em pixels do quadro do degrau

As ancoragens são top_left, top_right, bottom_left, bottom_right e center. Os deslocamentos são contados da ancoragem para dentro: nos cantos, do canto correspondente; em center, um deslocamento a partir do centro.

O tamanho é dado em pixels do quadro do degrau. Com os dois campos — a imagem é ajustada a eles; com um — o outro é derivado da proporção da imagem, sem distorção; com nenhum — a imagem é usada no tamanho nativo. Para o logotipo ocupar a mesma fração do quadro em toda a escada, os tamanhos dos degraus são calculados pela altura: no exemplo acima, 72 px em 1080p e 48 px em 720p são a mesma fração do quadro. Os degraus sem a seção logo ficam como estavam.

Requisitos da imagem:

  • Formato — PNG ou JPEG pela assinatura dos bytes. Um PNG com canal alfa mantém a transparência: os pixels transparentes não tocam o quadro e os semitransparentes se misturam com ele.
  • Limites — no máximo 1 MB de bytes e 4096 pixels por lado.
  • A URL é baixada ao configurar o degrau, com timeout de 10 segundos.
  • A mesma imagem em vários degraus é carregada e decodificada uma única vez.

Restrições:

  • O logotipo é sobreposto apenas numa saída com codificação: um degrau com codec: same e os codecs de transmissão brutos (j2k, v210, uyvy422) não o suportam — essa seção é rejeitada na gravação.
  • width e height são inteiros positivos não maiores que 4096; o zero e o que passa do limite são rejeitados na gravação, indicando o campo.
  • A imagem é lida ao montar o degrau, não em cada quadro: mudar o endereço, a ancoragem ou os deslocamentos é uma edição comum da configuração — o degrau é remontado e o stream continua.

Um logotipo quebrado é um erro do degrau

Se a imagem não puder ser carregada ou decodificada — não há arquivo, a URL não responde, o limite é excedido, os bytes não se leem —, o degrau não é montado: no estado da saída e no log aparece um erro com nome, enquanto os demais degraus e o próprio stream continuam funcionando. O transcodificador nunca servirá o stream sem o logotipo em silêncio. A recuperação é editar o endereço da imagem: a nova configuração remonta o degrau sem reiniciar o processo.

A referência logo@<sha256> aponta para um registro da biblioteca de logotipos do central: o nó baixa a imagem ao aplicar o corte de configuração e entrega ao transcodificador um arquivo pronto. Num nó isolado (sem central) essa referência dá um erro de degrau com nome — ali funcionam o caminho no nó e a URL http(s). No console do central o logotipo da escada é definido com o cartão Logotipo da escada (Sobreposição de logotipo).