Shipping app with a video/x-flv decoder - windows

I have an application that needs to play video/x-flv files. Not all customers have codecs installed, and codecs for video/x-flv are not shipped with Windows, so I have to ship it with my app.
The problem is I can't manage to understand what I need to ship in order to enable video/x-flv decoding on a fresh computer, which didn't install any codec packs.
I've tried installing ffdshow and FLVSplitter, but without luck.
Installing the Combined Community Codec Pack works - but I don't want to ship my app with a full codec pack, but with the minimum required to decode video/x-flv.
Any ideas?

Gabest'sFLVSplitter is not longer supported on Windows 7 systems.
There are two solutions:
Install the LAV Filters.
Compile your own tiny binary of libavformat (in case your framework using a binary as it's backend).
Because the LAV Filters themselves are ~7MB, and CCCP is ~9MB, I decided to install the whole codec pack on the users' computer (with their approval, of course).

Related

Installing CUDA Windows 10

I am trying to install the CUDA toolkit in order to be able to use Thundersvm in my personal computer.
However I keep getting the following message in the GUI installer:
"You already have a newer version of the NVIDIA Frameview SDK installed"
I read in the CUDA forums that this most probably results from having installed Geforce Experience (which I have installed). So I tried removing it from the Programs and Features windows panel. However I still got the error, so my guess is that the "Nvidia Corporation" folder was not removed.
In the same question, they also suggested performing a custom install. However I could not find any information on how to do a custom install of the CUDA toolkit. I would really appreciate if someone could explain how to do this custom install or safely remove the previous drivers. I thought of using DDU but I read that sometimes it may actually lead to trouble.
I had the same problem while I was trying to get TensorFlow to use my NVIDIA GTX1070 GPU for calculations. Here's what allowed me to perform the CUDA Toolkit installation on my Windows 10 machine.
As the error message in the installer says - you already have a newer Frameview SDK installed. It was the case for me.
Go to Settings/Uninstall or modify programs.
Remove the NVIDIA Frameview program. It should be there with GeForce Experience, PhysX, etc.
Uninstalling only this NVIDIA program didn't cause any driver problems for my machine and I was able to progress through the CUDA Toolkit installation.
I just met the same problem and fixed it now.
This problem occurred because you chose the default installation configuration, which might contain many installed parts. In my situation, I have installed NVIDIA Nsight Compute, which is the culprit during the first few installs.
Unchecking the redundant parts should be helpful.

Distributing H264 with a Qt5 QtMultimedia program for Windows

I'm developing a Qt5 Application for Windows/Linux, it has to play a H264/AAC flv video.
This works wonderful on Linux after installing gstreamer-plugins. This also works after installing K-lite codec pack on Windows.
I need to distribute my program with the required files to be able to play the video without installing anything else.
I have tried copying the refrenced DLL files listed by Process Explorer (All related to A/V,libav*, av*, *.ax , etc), but this doesn't work.
What else do I need to set up?
You cannot do this due to MPEG-4 licensing. If you distribute h.264 decoders you must contact MPEGLA.com and obtain a license. (Currently free up to 100,000 installs per year, but $20K if you exceed that).
Things like K-Lite skirt this requirement by having the end-user install the codecs "for their personal use".
So, you can direct your users to install K-Lite, or other codecs, but you can't ship them yourselves. This is fairly common in the open source world.

Playing .mp4 in Pyside Phonon without K-Lite

I'm developing a media player using PySide and Phonon. My player cannot play .mp4 files or many other file types unless the K-Lite codec pack is installed.
Is there any way to package the needed codecs/backend with my program, preventing the need for my users to go and install K-Lite to their computers? Thanks!

How to detect Windows Media pack installed on system

One of the components in my application is failing on Windows because Windows K/KN systems don't have Media Feature Pack installed. To prevent this I was thinking of adding a check during install time to see if Media Feature Pack is installed on the current system. However, I haven't found enough information about MFP to do so.
For most versions of Windows it's already installed but some Windows 8 and 8.1 installations don't have it. I need a programmatic way to do this.
I would need any one of the info to achieve this:
Regkey based
What are the regkeys that can be used to determine if Media Feature Pack is installed? Does Media Feature Pack (like .NET framework / VC redistribution) set some regkey which can be used to determine this?
Is there any API that can be used to detect Media Feature Pack?
Are there any DLLs that can be used to for detection?
I know mf.dll and mfplat.dll are installed in sys32 folder, but can I rely on these two files for MFP detection?
Found the answer and posting here if helps someone
There is a registry key at:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\WindowsFeatures\WindowsMediaVersion
Some links:
http://support.microsoft.com/kb/922474
This will help you detect the actual windows flavor:
http://msdn.microsoft.com/en-us/library/ms724358%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/aa394239%28v=vs.85%29.aspx
Got to Control Panel > Programs > Turn Windows Feature On/Off
in my case it's installed. You can also install by marking on it. then hit OK

Third party codecs in AV Foundation

I was under the impression that AV Foundation doesn't support third-party codecs. If I try to open an Avid DNxHD QuickTime movie in my application it doesn't work, as expected.
However, if I open a DNxHD movie in QuickTime Player X (which also uses AVF) it opens and plays back fine and even says it's a DNxHD in the Info window.
Does anyone know how Apple is achieving this?
I believe that QuickTime Player X is built on QT X, not on top of AVF. In fact, I think it uses (something like) QTKit, which will launch a 32-bit proxy process if necessary to open files that are only supported by 32-bit codecs.
You can access QT X via the QTKit framework, if you specify the 'playback only' attribute when you open the file, but then you can only play it back (as the flag suggests!). Even enumerating the number of tracks will fail. If you don't specify playback-only, then you are limited to QT7 components, accessed via a 32-bit proxy if your app is 64-bit.

Resources