Skip to content

FILE

media.ingest.file

Descrição

A entrada file transforma um arquivo MP4 ou Matroska local num stream ao vivo de verdade: o arquivo toca em loop. É uma ferramenta de produção para canais de vinheta: um canal técnico de «voltamos já», um canal de promoção e um fallback para quando as fontes caem.

Configuração

Configure o stream pela API do central. Trecho de configuração:

streams:
  - name: promo
    inputs:
    - file:
        path: /storage/promo.mp4
    dvr: {}

Parâmetros

Parâmetro Descrição
path caminho do arquivo MP4 ou Matroska no streamer. O processo Sapsan deve poder lê-lo.

Opções de transporte

Sistema de arquivos local, contêiner MP4 ou Matroska. A reprodução é cíclica; não requer conexão de rede.

Codecs compatíveis

  • H.264
  • HEVC / H.265
  • AV1
  • JPEG (MP4)
  • AAC
  • AC-3
  • E-AC-3
  • MPEG Audio (MP4: Layer II / III; Matroska: MP3)
  • Opus

MP4 e Matroska são contêineres. O leitor Matroska processa arquivos .mkv e .webm; os demais caminhos usam o leitor MP4. Matroska aceita vídeo H.264, HEVC e AV1; JPEG se aplica ao MP4. Em MP4, AV1 requer av01/av1C, Opus requer Opus/dOps e MPEG Audio é identificado por esds ou uma sample entry MP3. A sample entry mp4a por si só não significa AAC. Ler frames comprimidos do arquivo não os transcodifica automaticamente.

Comportamento em caso de erro

O estado da entrada e a causa da falha estão nas estatísticas do stream. Desconexão ou ausência de quadros usa os mecanismos de repetição e comutação para reserva.

Aplicação de alterações

Aplique as alterações pela API do central. Alterar o endereço ou o formato reabre a captura e pode interrompê-la durante a conexão. Verifique depois o estado e a chegada de quadros.

Contadores

As tabelas mostram os nomes exatos dos campos de estatísticas do protocolo, incluindo contadores de eventos e indicadores do valor atual. Campos zerados podem ser omitidos. API e Prometheus expõem projeções diferentes; uma única resposta da Admin API não contém necessariamente toda a lista. O detalhe depende da licença de contadores.

Totais comuns da entrada: bytes, frames, errors, warnings. Eles agregam dados do protocolo; não devem ser somados novamente aos contadores do protocolo.

FilePlay

Campo Tipo
bytes counter
frames counter
memory_bytes gauge

Outros detalhes

Como preparar o arquivo com ffmpeg

Para um arquivo MBR tocar sem emendas, todas as qualidades devem estar perfeitamente alinhadas: timestamps idênticos e keyframes nos mesmos lugares. Isso é conseguido com uma única passada de ffmpeg usando o filtro split:

ffmpeg -y -i source.mkv \
  -filter_complex "\
[0:v:0]split=3[vhi][vme][vlo]; \
[vhi]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=25,setpts=PTS-STARTPTS[v1]; \
[vme]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=25,setpts=PTS-STARTPTS[v2]; \
[vlo]scale=960:540:force_original_aspect_ratio=decrease,pad=960:540:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=25,setpts=PTS-STARTPTS[v3]" \
  -map "[v1]" -c:v:0 libx264 -b:v:0 6000k -g:v:0 100 -keyint_min:v:0 100 \
    -sc_threshold:v:0 0 -x264-params:v:0 "scenecut=0:open_gop=0" \
  -map "[v2]" -c:v:1 libx264 -b:v:1 3000k -g:v:1 100 -keyint_min:v:1 100 \
    -sc_threshold:v:1 0 -x264-params:v:1 "scenecut=0:open_gop=0" \
  -map "[v3]" -c:v:2 libx264 -b:v:2 1200k -g:v:2 100 -keyint_min:v:2 100 \
    -sc_threshold:v:2 0 -x264-params:v:2 "scenecut=0:open_gop=0" \
  -map 0:a:0 -c:a:0 aac -b:a:0 192k -ac 2 -ar 48000 \
  -metadata:s:v:0 title="1080p" -metadata:s:v:1 title="720p" -metadata:s:v:2 title="540p" \
  -metadata:s:a:0 language=eng \
  -movflags +faststart \
  promo.mp4

O que importa aqui:

  • uma única passada, uma única fonte, split — todas as qualidades ganham timestamps idênticos;
  • setpts=PTS-STARTPTS — a linha do tempo de cada qualidade começa no zero;
  • o mesmo fps em todas as qualidades;
  • GOP rígido: -g = -keyint_min, -sc_threshold 0 e scenecut=0:open_gop=0 — keyframes estritamente a cada N quadros e nos mesmos lugares; o codificador não pode inseri-los nas mudanças de cena;
  • áudio AAC a 48 kHz estéreo;
  • -movflags +faststart — o índice no começo do arquivo;
  • -metadata:s:v title=... / language=... — as etiquetas de qualidade e os idiomas das faixas acabam nas playlists.

Um exemplo completo e funcional com várias faixas de áudio está no repositório do sapsan: storage/king.sh.

Verificação

Abra http://server/streaming/v/promo/index.m3u8 — na playlist master devem estar todas as qualidades, e a comutação entre elas não deve engasgar.

Próximos passos