title: Solutions to stream from a decklink card to browsers (Gstreamer -> TCP MJPEG -> ?)
body: <p>I need to live stream from a decklink card to a browser. I also must be able to do it with a very poor network link (128kbits/s...), so I need to be able to stream at a very low fps (1 fps is fine) and a very low image quality.</p>
  
  <p>At the moment I'm using GStreamer to get the video from the card, to transcode it to MJPEG, and to stream it with TCP. This part is perfectly working, but now I need to tube this tcp stream to an HTTP stream.</p>
  
  <p>I can do this with VLC and it works well at a "normal" framerate (15 fps -> 0.5 sec of latency). But if I feed VLC with a 1 fps stream, it introduces a latency of around 11 sec, which is not fine for my purpose.</p>
  
  <p>So, now I'm looking for a replacement of VLC. I see 3 ways of doing it :</p>
  
  <ul>
  <li><p>use the GStreamer's souphttpclientsink to stream to an HTTP streaming server</p></li>
  <li><p>create my own HTTP server, wich listens to the TCP stream and re-streams it to the clients. I tried in Python and Node.js and it is nearly working, but I would prefer to have a more robust solution like the previous one</p></li>
  <li><p>even more tricky : create my own HTTP server, listen to the TCP stream and send the data to the client with websockets, and then decode then stream client side...</p></li>
  </ul>
  
  <p>Then, my questions are :</p>
  
  <ul>
  <li><p>do you know which HTTP streaming servers (if possible free) are usable with souphttpclientsink (or tcpclientsink) ?</p></li>
  <li><p>do you have any other idea to stream a GStreamer stream to a browser ?</p></li>
  </ul>
  
  <p>Thanks for reading !</p>