I have raw H264 video data that I want to wrap into some kind of container format so that I can play it in a video player like WMP or VLC, and I want to do this in .NET (C#), or C++. What is the easiest approach? Does anyone know of a free/open source SDK that would make this easy?
You can simply play it through a WPF media element if the computer has the appropriate Codec's installed.
Related
I am working on an existing application written on C#.NET 3.5.
I am looking for a free (open-source if it is possible) library, that allows to play h264 files.
You can use DirectShow and one of many media player controls if you install the appropriate h264 filters along with your app.
Another option is to use a library that has built in decoding, like VLC Dot Net
http://vlcdotnet.codeplex.com/
I am looking for a effective way to compress a real time video stream. In my project, the streaming seems important because my system will send and receive both the audio and video streams at the same time. I am considering using H261 or H263. How can I achieve such compression ratio using C#?
PS I found something called H323Plus, but I do not know how to call this library because it is written in C++.
If you want to do real-time streaming over UDP with both audio and video stream you can use the DirectShow API (if you're targeting Windows).
http://msdn.microsoft.com/en-us/library/windows/desktop/dd375454(v=vs.85).aspx
You will find a .NET wrapper for DirectShow here
http://directshownet.sourceforge.net/
You will also find more samples on codeproject.com, most of them use this wrapper
http://www.codeproject.com/kb/audio-video/#DirectShow
If you plan on targeting Windows 7 and newer only, then you will want to use Windows Media Foundation API
http://msdn.microsoft.com/en-us/library/windows/desktop/ms694197(v=vs.85).aspx
I'm looking for a way to stream video from an AXIS M10 IP camera, and display the feed using windows forms (or better, wpf). However, it need to be running on 64-bit platform.
This means that I can't use the AXIS Media Control ActiveX component.
Also, I found that these methods work but only in 32bit environment:
1.Using MediaElement Class for WPF
2.Using embedded media player
3.VlcLib (for dotnet)
So far it looks like my only option is to directly implement RTSP protocol and decode the given RTP/AVP stream using Media Foundation (for .net) and display it somehow. (I was able to get the camera to stream to a UDP port using RTSP calls).
I'm fairly new to RTSP/streaming, so I'm concerned that I might be missing the big picture - Will I be able to use media foundation to render/display videos on winform/wpf, or do I have to look at that functionality elsewhere?(from my research it looked like it could decode H.264 streams, but I did not see any video-playing capabilities). I also came across DirectShow - should I use DirectShow over Media Foundation?
Or better yet, is there a library that is able to handle RTSP streaming that runs in 64bit?
VisioForge Video Capture SDK .Net for example (but commercial), WPF controls included.
Decoding using FFMPEG, with DirectShow engine. Really, I don't see any Media Foundation advantages here.
Also any other way using FFMPEG.
Or, you can write RTSP source filter (based on DirectShow Push Source sample) with H264 output pin for video and G726/G711/AAC for audio. Also you can made virtual video capture source filter and use it in MF or DirectShow. You can use live555 library for RTSP implementation.
So, no simple ways here, if you are starting from zero.
If you just need the Video, I would prefer to just display the MJPEG stream of the camera. This is really easy done without the complexity of DirectShow or MediaFoundation. I display 12 cameras at the same time in my application with this little library in WPF: MJPEG Decoder. You can also use it in WinForms. It decodes the MJPEG Stream and gives you the images to display.
The 64 bits Axis Media Control SDK is available now, but requires an account on Axis web site to be downloaded.
After Sign in, you need to join Axis Developper program (free) and download the AMC SDK.
You will install a executable file (.exe), this install all the libs and samples in your Drive
C:\Program Files\Axis Communication\SDK
I found a way to use VLC in 64bits without ActiveX DLL :
The VLCSharp Library is composed of multiple NuGets to use VLC Player on severals platforms (WPF, Winforms, Xamarion, TvOS).
It is working fine on Onvif Cameras
I am looking for a component for WPF application that will can work with webcams and video input devices, I need it to be able to:
Capture video
Capture still image
Work with Webcams
I am open to both open source and commercial libraries
Thanks
EDIT: I am currently using MediaKit
Aforge .NET is a free library for .net framework, it helps you capture vieos from webcam and process images within the video.
DirectShow.NET is an option too.
I am working on one of the media project (windows application). In this the flv, avi and mpeg are the main file types which i have to play in application. I can use wmpLib, but it will not play flv files. So what procedure should i follow and what tools or libraries should i use.Is there any free opensource libraries to do media work. Thanks in advance
Also you can use ffmpeg lib see here, I think it would be easy to convert to another format using that for playback I don't really know, maybe you can take a look at the source of vlc or take a look at some flv opensourced player around.
If you have the right direct show filters installed media player will play flv files.