Eu gostaria de usar um cubo Teradek conectado a uma câmera de transmissão para enviar para um servidor executando ffmpeg com uma porta RTMP aberta e faça com que o ffmpeg transmita novamente esse feed para um decodificador usando RTMP ou RTSP.

O Monaserver faz isso, mas preciso duplicar essa funcionalidade usando o ffmpeg. Eu usaria o cubo como um servidor, exceto que poderia estar transmitindo em qualquer lugar, portanto, abrir portas em todos os locais para os quais a câmera vai não é uma opção. Nosso decodificador é um Teradek Slice. Qualquer outra sugestão sobre como fazer isso seria muito apreciada.

Obrigado!

Resposta

Você pode usar FFmpeg como um servidor RTMP da seguinte forma ffmpeg -f flv -listen 1 -i rtmp://localhost:1935/live/app -c copy rtsp://YOUR_RTSP_HOST

Observações:

  • -listen 1 faz FFmpeg atuar como um servidor RTMP quando usado com protocolo RTMP
  • Use rtmp://localhost:1935/live/app como o URL do servidor RTMP na fonte
  • Você pode definir qualquer caminho de reprodução rtmp://localhost:1935/any/thing e qualquer porta
  • A principal vantagem desta forma é a simplicidade, a desvantagem é que o servidor pára se a fonte parou ou teve erros de codificação
  • A outra opção é usar nginx com nginx-rtmp-module

Comentários

  • Perfeito, muito obrigado. Se eu ' d quiser usar um aplicativo como o VLC para receber o fluxo do servidor, o ffmpeg pode escutar uma conexão e enviar para a porta local 1935 também?
  • Sim, ffmpeg -f flv -listen 1 -i rtmp://localhost:8889/live/app -c copy -f flv -listen 1 rtmp://localhost:1935/live/app, basta definir portas diferentes para entrada e saída
  • Obrigado novamente, isso é exatamente o que eu preciso. Durante o teste, ' tentei quase todas as combinações de / live / app no Teradek Cube e vários aplicativos de streaming de vídeo RTMP do iOS para testar isso, e ffmpeg não responde enquanto o monaserver funciona. É o ' app ' a chave e deve ser incluído no cliente ' s url?
  • Você elaboraria como definir os urls RTMP no Cube, aplicativos iOS e Monaserver? você abre as portas necessárias? Você pode definir qualquer playpath / qualquer / coisa
  • Além disso, o servidor de entrada FFmpeg inicia quando recebe o fluxo e a saída começa quando recebe uma solicitação

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *