Pular para o conteúdo

Transmitir uma imagem estática como vídeo ao vivo com FFmpeg

Neste exemplo, vamos criar um stream de vídeo que transmite continuamente um arquivo estático (por exemplo, uma imagem de calibração).

  1. Comece adicionando um novo perfil e informe o nome dele.

  2. Em seguida, no comando do perfil, use:

    Terminal window
    ffmpeg -re -stream_loop -1 -i ${i} -vcodec mpeg4 -aspect 16:9 -f mpegts ${o}

    Adicionar perfil para transmitir imagens estáticas

  3. Salve o perfil

Você verá o novo perfil na lista de perfis. O perfil deve aparecer na lista

Em seguida, você pode adicionar esse perfil ao stream. Defina os parâmetros de entrada e saída. Neste exemplo, baixamos um arquivo ts para o servidor e informamos o caminho no campo de entrada (veja como trabalhar com arquivos para mais detalhes); depois, definimos um stream udp como saída.

Usar o novo perfil no stream

Agora você pode ver o resultado no VLC!

  • -re lê o arquivo na própria velocidade, em vez de o mais rápido possível, para que a saída se comporte como uma fonte ao vivo.
  • -stream_loop -1 reinicia o arquivo toda vez que ele termina, para sempre.
  • -vcodec mpeg4 -aspect 16:9 codifica o vídeo em MPEG-4 com proporção 16:9, e -f mpegts o encapsula em MPEG-TS para ${o}.

Na tabela Streams, o stream tem um indicador de status verde (um stream que não está em execução tem um cinza). Clique no link log na linha dele: o log completo do ffmpeg da sessão atual fica no final da página, e as linhas de progresso (frame=, fps=, bitrate=) continuam crescendo enquanto o stream está em execução. Se o stream parar, o relatório da sessão mostra as últimas 100 linhas do log. Veja Logs do stream.

  • Um caminho de entrada errado ou inacessível. O navegador de arquivos só funciona com Display file system ativado em Settings, e o usuário que executa o Senta precisa conseguir ler o arquivo. Veja Trabalhando com arquivos.
  • A porta de destino já está sendo usada por outro processo. Abra o log do stream para ver o erro do ffmpeg.