Question

I am working on a project that involves live streaming video content from a source to a webpage/player (source can be camera, webcam, external server).

The trouble I'm having is that I give that address of the streaming device to the user and the user creates a connection directly to the streamer.

What i will like to to is to buffer the video content in a central place (some server) and have a the end user create he connection to the server rather to the actual streaming device.

An optional feature will be to edit the video as it collects at the server coming in so the end user will get a finished video (kinda like streaming raw video from a new studio, adding on the channel logo, sub-titles, time and so on)

The video will be displayed on a page that is generated with php and will have a player and a video player that will use HTTP streaming from some source (after editing).

How will I go about this "double buffering" process? I was thinking of something on the lines of a python task running and doing the video editing on the fly and outputting it to a file, and then HTTP stream the file/ But this will cause the video to play from the beginning and not from the current position (Is would be nice to collect the video in a file for future access).

I have had no real results for searching this topic so anything will help. Thanks for reading :)

Was it helpful?

Solution

The way you mentioned will be too tedious to get your job done. there is nothing called double buffering, even if you do it via python, the huge amount of video data will be overwhelming your software.

You have a hardware alternative to get it done, by using a suitable capture card, by which you can overlap your original video with graphics/text or effects (just like they do on TV live). It will be bit expensive, but thats a standard solution.

The below card is a starting point. http://www.bhphotovideo.com/c/product/598248-REG/Blackmagic_Design_BDLKSDI_DeckLink_SDI_PCI_Express.html

complete range of products. http://www.blackmagicdesign.com/in/products/decklink

choose whichone fits your budget. Once you have the card, you can use the software which ships with your card or any third party tool to apply filters.

If you want even a custom tailored solution, you can use the video stream from the card and manipulate it on the fly with C++/C# API libraries available from http://www.blackmagicdesign.com/support/sdks/

Even better SDK's there from thirdparties. http://www.medialooks.com/mplatform/

If you want a 'software only' means, "ManyCam" (google for it) can get it done.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top