How to install codecs for H.264 in .NET? - c#

We need to play some H.264/AAC videos in Winforms project written in C#. This should run on Windows XP SP2 and Linux (using Mono). In order to be able to do that, the computer has to have appropriate codecs installed I guess. Does anybody know if there is a way of installing the codecs as a part of installation of our project using msi installer. Is there some free or paid component, which we can use? Ideally in a form of some dll which, we could just register to the system somehow. Or is there some better way?
UPDATE:
We have found this: http://vlcdotnet.codeplex.com/ It is not ideal so far, but we will try to investigate more.

The MPEG-4 codecs are not free (MPEG LA licensing terms apply) in first place, so the first thing is to find what exactly codecs you are going to redistribute, and check this SDK/with this vendor how to correctly install and redistribute their software.
You will find some codec implementations listed here on Wikipedia:
AVC software implementations

In the end we used this library: http://libvlcnet.codeplex.com/, which proofs to be exactly what we need. We can play videos and auidos encoded in H.264/AAC codecs on every system (Win7, Win8, XP and various distribution of Linux), with very quite small effort now.

Related

How to use OpenCV with C# (Commercial use)

I am trying to do a project in C#. For now, I want to just stream and save video from 2 PC cameras at the same time, but will be using more of OpenCV later on.
I came EmguCV, but they have separate terms for commercial license: http://www.emgu.com/wiki/index.php/Licensing:
Is there some other good alternative I can use to get OpenCV working with C#? thanks!
Have you tried OpenCvSharp? It is licensed under the BSD 3-Clause License, so commercial use should be no problem.
Some colleagues of mine use OpenCvSharp in their projects, and I haven't heard any bad from them about it.

WinRt C# Audio Library

I am looking to develop an app in C# WinRt, but was wondering what libraries are available for playback and for complicated manipulation. I am looking for a free library that allows for an extensive list of audio formats to be played (for example mp3, wma, wav, ogg, etc.) and also to be analyzed. Thats pretty much the basic functionality I would need. But if I could get picky, a library that can convert audio files between the formats would be handy. Doing a google search I came across the Naudio library, but it was not so greatly compatible with WinRt.Thanks for any tips or advice on this.
The current alpha build of NAudio 1.7 (available via NuGet) does contain a Windows RT assembly and the source code includes a simple demo of playback and recording as a Windows Store app. Since it uses Media Foundation, you'll be able to play most of the file types you suggested (although ogg won't be supported out of the box), and you can construct your audio pipeline to access the audio as floating point samples for analysis.
Things that aren't currently supported are using the Media Foundation encoders to encode, and the various reader/writer classes need to be re-written to use the WinRT asynchronous streams and File I/O APIs instead of the regular .NET ones. Hopefully these features will be added to the library soon.

Windows 7 OCR API

I have been reviewing replacements for the Office 2007 MODI OCR (OneNote's 2010 solution has lesser quality/results than 2007 :-( ). I notice that Windows 7 contains an OCR library once you install the optional tiff filter
The OCR component gets installed to
%programfiles%\Common Files\microsoft shared\OCR\7.0\xocr3.psp.dll
but I don't see any API for it?
Does anyone see how this can be interfaced preferably in C#?
ANSWER: Found the soluation, once the optional tiff ifilter win7 feature is installed, i can then get a textoutput of a screenshot using the code/exe on http://www.codeproject.com/KB/cs/IFilter.aspx. Also if add the same [HKEY_CLASSES_ROOT.tiff\PersistentHandler] for .png and .jpg then OCR also works for jpg and png's.
Tessnet OCR is a good solution, but pretty old (last release from 2009). There are couple of very good free OCR solutions available for .NET:
Asprise C# OCR SDK. Very good and fast one.
Microsoft Research Project Hawaii Web-based (cloud) OCR solution with full docs and samples (discontinued 2013)
Bing OCR Web based (cloud) OCR replacement for above. (discontinued March 2014)
Try TessNet, using the suggestions I made to the Poster in this post (enlarge image, use separate process):
c# OCR can't recognize digits (tesseract 2)
I was exploring the windows 7 dlls and I found 3 libraries that might be useful: thocr.psp.dll ,xocr3.psp.dll, and ximage3b.dll. In this website and other similar websites I found out that ximage3b is a Windows system ocr engine. I have been looking for documentation online but I have not been succesful, but hey! at least I know that it's there, I will give you guys an update if I find out how to use it with C#/C/C++.

Streaming video library for C#

I'm looking at options for adding streaming video to a social web site written in ASP.NET/C#. I have a great deal of experience with Flash too, so I'm comfortable using FLV players, but I'd definitely go Silverlight if the right library is available.
The library would need to be able to encode user uploaded video in a web format.
I imagine playback will be Flash or Silverlight based.
It would need to create thumbnails of the video.
It would need to have server software for streaming the video or have some 3rd party way of doing so.
I don't mind paying a licensing fee for the software, so it does not have to be open source or free.
The license must allow use on a commercial web site.
The closest thing I have found is MediaSoft's offering. But I never heard of this company before starting my search and don't know anyone using their software. They seem to be using FFMPEG to perform encoding, which I heard can spawn legal issues for commercial web sites. Though I'm not very familiar with the licensing of FFMPEG myself so please correct me if I heard wrong.
Has anyone used MediaSoft? Any other video libraries that you have used that worked well? Did you just end up writing your own video encoding and serving library?
Not sure about Silverlight, but Flash will render both h.264 and FLV videos. FFMPEG can convert into both via liblame for FLV and x264 for h.264. It can also generate thumbnails.
It and the corresponding modules are licensed under the LGPL/GPL which means you can use FFMPEG to generate videos/thumbnails without restriction as long as you have the rights to the original movies that you're transcoding. The GPL/LGPL license restrictions only apply to the FFMPEG code/binaries which won't matter until you decide to distribute those binaries to other people.
In addition to the above answer, you can look at red5 as a streaming solution
http://osflash.org/red5

Loading an AAC / MP3 file "manually"

For an application I'm creating, I need to be able to read AAC and MP3 files and get the waveform data (not play it directly, I need to manipulate the data before playing).
Ideally, I should be able to read any MP3/AAC file out there (VBR, different bitrates, etc), or at least anything that could potentially show up in iTunes.
This last point is very important, as Chuck commented. I assumed iTunes would be MP3s, I didn't know they used AAC. In essence, I must be able to read anything that is in iTunes.
What approach do you recommend me to use?
What kind of libraries are out there?
This is for a commercial application that will run on Windows, written in C# 3.0. I can use Open Source libraries, but nothing with a license that will make me release my source code later.
Any pointers are greatly appreciated!
Take a look at mpg123 which is LGPL licenced.
There's also MAD, which is GPL but a commercial license can be negotiated.
For AAC there's FAAD2, but it is GPL. Not sure if other terms are available. Another source of enquiry might be checking the sources and licences used in this list of AAC software on wikipedia.

Categories

Resources