Actually, the title explains it all...
I want to read a stream, but have no idea from where to start.
I've searched the web for some documentation/tutorial/whatever with no luck.
Any help using this lib would be very appreciated.
[CLARIFICATION]
I am talking about MMS stream protocol library that can be found here.
LibMMS is a common library for parsing mms:// and mmsh:// type network streams. These are commonly used to stream Windows Media Video content over the web.
[/CLARIFICATION]
Related
In my project I need a dedicated server that dispatches the streams over to multiple clients.
More specificly, I've a callback function that gets called to gather the stream data, but no idea how to stream it over to other applications.
What's the best way to get started on this ?
What type of video are you planning to stream?
There's an open source library called liveMedia available at http://www.live555.com. This c++ library is available under LGPL and implements the RTSP, RTP/RTCP protocols and payload formats for many different media types. There is a class called DeviceSource IIRC that facilitates getting data into the library. There is an active mailing list and you should be able to find lots of information by searching the archives.
There are also a bunch of example test projects that illustrate how to stream mpeg, mp3, etc.
Should you choose to use standardized protocols, you might want to read up on RTP and RTSP.
I think you should check communication through network sockets.
There is no network concept in C++, so you have to rely on your system API or libraries ( as boost.asio for instance )
The project I'm currently working on, requires an addition to the already existing VoIP capabilities. The core for speech processing is in C, the remainder is in C++ with Qt - the audio is handled via portaudio. The connection between users is currently established via UDP, which I think has to be changed for the planned video connection. Developing platform is Windows on VS2012 - however, the system is cross-platform.
In a nutshell, what I want to do is: Grab the video signal from a webcam, synchronize audio coming from C core and video from webcam and use a library and codecs for (de-)coding/muxing the signals on the respective sides and sending via RTP. The system should be capable of multicast transmission.
I did some research for possible libraries and stumbled upon ffmpeg and libVLC. For the codec I thought about using x264. And if I'm correct, ffmpeg and libVLC should both be capable of what I'm looking for?
However I'm not sure which one to pick, and from their documentations I really can't extract, which library is the better fit. Has anybody had similar problems and can help me out - I'm quite a newbie, when it comes to video processing and encoding.
Extra question: Do you have any hints or approaches on syncing the video and audio signals?
If anyone is interested, this is what I ended up doing:
I am using the WebM container format, VP8 with Vorbis currently (but going to change to VP9 with Opus soon if out of beta), handled by ffmpeg/libav libraries for encoding/decoding/muxing etc. and SDL for displaying and threading. ffmpeg/libav was cross-compiled on Unix with LGPL support to keep our project closed source.
Can anyone tell me how to open a mms:// live media stream using C/C++. I am trying to do this for days. but can not find any book regarding these information.
Please suggest any book or any helpful sites. or if you know how to do this please teach me.
Thank you
A test stream
mms://a1926.l1856941925.c18569.g.lm.akamaistream.net/D/1926/18569/v0001/reflector:41925
Stream is NASATV provided by akamai.
In VLC media player there is a pretty good example on solving this issue. Download the sources from http://download.videolan.org/pub/videolan/vlc/2.0.1/ (it's the .xz file) and then just get the source from .\vlc-2.0.1\modules\access\mms\ (if you're on windows 7z opens xz files). The mmstu.c file is your source for information.
More info can be found at: http://get.to/sdp (address taken from mms.c)
Since this is Microsoft specific protocol, further reading can be found at http://msdn.microsoft.com/en-us/library/cc251059%28v=prot.10%29
Check live555 project, that would do the job.
I am working on a webcam streaming server project, using Live555 as the server.
I need to be able to stream from ordinary USB Webcams, which requires me to implement DeviceSource.cpp as I read on live555's FAQ page. However, I am currently not having enough knowledge or clue on how to implement this.
I intend to use ffmpeg as the encoder.
Can anybody provide me with some proper directions that I can follow?
In my project I need a dedicated server that dispatches the streams over to multiple clients.
More specificly, I've a callback function that gets called to gather the stream data, but no idea how to stream it over to other applications.
What's the best way to get started on this ?
What type of video are you planning to stream?
There's an open source library called liveMedia available at http://www.live555.com. This c++ library is available under LGPL and implements the RTSP, RTP/RTCP protocols and payload formats for many different media types. There is a class called DeviceSource IIRC that facilitates getting data into the library. There is an active mailing list and you should be able to find lots of information by searching the archives.
There are also a bunch of example test projects that illustrate how to stream mpeg, mp3, etc.
Should you choose to use standardized protocols, you might want to read up on RTP and RTSP.
I think you should check communication through network sockets.
There is no network concept in C++, so you have to rely on your system API or libraries ( as boost.asio for instance )