I'm using ffmpeg lib.
I try #include "libavutil/internal.h" but received error 'libavutil/internal.h' file not found.
What should I have to do?
FFmpeg is a C application (mainly). But still support some object orientation features like information hiding (Encapsulation).
You should stick with the exposed interface (API - libav). There is a good reason for this. The header and its functions as the name suggest is "internal". Not safe to use (may change, etc..).
Have you installed ffmpeg?
First, ffmpeg is a software, not a library. It contains several libraries such as libavutil.
Then, once ffmpeg is installed, look if it's in your library path.
I suppose you're trying to compile with gcc/g++, so, you can also try to add -I[dir_where_libavutil_is]
Of course, you need libavutil-dev installed in your system.
Related
We have a C++-based application that runs on Windows, Mac, and Linux. I now need to add h.264 and h.265 decoding within this application. It seems ffmpeg will do the trick.
As ours is a commercial application, we cannot disclose the source code to public. However, as I understand, FFMpeg is based on LGPL licensing requirements. Going through various articles on LGPL requirements, it seems I can use ffmpeg without disclosing our source code as long as:
I build ffmpeg as a shared libraries and make sure that I don't use "--enable-gpl" flag during configuration.
I acknowledge in our About dialog box that we are using ffmpeg shared libraries.
Can someone please verify if this more or less meets the requirements? Regards.
Note that I need ffmpeg only to decode and not to encode. Therefore, I don't have to use "--enable-libx264" and "--enable-libx265" flags.
As a FFmpeg developer, I would expect you to follow the considerations mentioned on our website:
Compile FFmpeg without "--enable-gpl" and without
"--enable-nonfree".
Use dynamic linking (on windows, this means
linking to dlls) for linking with FFmpeg libraries.
Distribute the
source code of FFmpeg, no matter if you modified it or not.
Make
sure the source code corresponds exactly to the library binaries you
are distributing.
Run the command "git diff > changes.diff" in the
root directory of the FFmpeg source code to create a file with only
the changes.
Explain how you compiled FFmpeg, for example the
configure line, in a text file added to the root directory of the
source code.
Use tarball or a zip file for distributing the source
code.
Host the FFmpeg source code on the same webserver as the
binary you are distributing.
Add "This software uses code of FFmpeg licensed under the LGPLv2.1 and its source can be downloaded here [where here is a link to the source code]" to every page in your website
where there is a download link to your application.
Mention "This
software uses libraries from the FFmpeg project under the LGPLv2.1"
in your program "about box".
Mention in your EULA that your program
uses FFmpeg under the LGPLv2.1.
If your EULA claims ownership over
the code, you have to explicitly mention that you do not own FFmpeg,
and where the relevant owners can be found.
Remove any prohibition
of reverse engineering from your EULA.
Apply the same changes to all
translations of your EULA.
Do not misspell FFmpeg (two capitals F
and lowercase "mpeg").
Do not rename FFmpeg dlls to some obfuscated
name, but adding a suffix or prefix is fine (renaming "avcodec.dll"
to "MyProgDec.dll" is not fine, but to "avcodec-MyProg.dll" is).
Go
through all the items again for any LGPL external library you
compiled into FFmpeg (for example LAME).
Make sure your program is
not using any GPL libraries (notably libx264).
From what you've said so far, I think you're doing only point 1-2, 9-11, 15-18. You need to make the source code (of FFmpeg) including modifications (3-5, 7-8) available along with your application, mention build instructions (6), remove ownership claims on FFmpeg, remove reverse engineering prohibitions (if any), and check your EULA (12-14).
Yes, with lgpl you can use it as a dll/shared lib and you won't need to make your source code available.
But you should be aware that it's not the licensing of the code is the issue for commercial use, but the patents around h.264/h.265 and you need license for that. AFAIK, even if you simply want to decode you'll still need to have license.
MPEGLA is the licensing body for h264 codec patent pool.
Does the onvif have any problem with gsoap 2.8.43 version?
we have two different vendors onvif camera (one is Cohu and one is Axis) that we need to test it under Oracle Linux 7.1
If I use gsoap 2.8.17r wsdl2h with devicemgmt.wsdl and use GetSystemDateAndTime, I can get response with both camera.
But with gsoap 2.8.43 with same code I cannot compile it.
It keep complain that
main.cpp:26:98: error: no matching function for call to ‘DeviceBindingProxy::GetSystemDateAndTime(_tds__GetSystemDateAndTime*&, _tds__GetSystemDateAndTimeResponse*&)’
result = proxy.GetSystemDateAndTime(tds__GetSystemDateAndTime, tds__GetSystemDateAndTimeResponse);
Any idea what I do wrong?
many thanks in advance
Is the GetSystemDateAndTime function signature different when using wsdl2h 2.8.43? That might be the problem.
If so, then simply use the 2.8.17r version to generate the .h file and use the 2.8.43 version to generate all the rest with soapcpp2. You can use an older .h file generated with wsdl2h with a newer gSOAP version of soapcpp2 and libraries.
I am currently developing a program using the Windows SDK.
I'm trying to feed a ".webm" file into the SDK, but I'm getting the following error:
Encountered an AffdexException Error opening video file: C:\1.webm
Source: __thiscall FileVideoCapture::FileVideoCapture(const class boost::filesystem::path &,const float)(C:\Jenkins\workspace\affdexface-win32\src\modules\utils\FileVideoCapture.cpp LINE 12)
This occurs when I use the .process(path_to_file) method of the VideoDetector class.
I'm guessing it has something to do with OpenCV because the VideoCapture class is apart of OpenCV.
Any help would be greatly appreciated!
Another possibility is that your video use a good container but not a good codec. You can check the list of supported formats.
In my case I use a .avi with FMP4 codec. It should be supported but I got the same error as you. I reencoded the video with another codec and now it works.
The VideoDetector class uses FFmpeg in order to access video codecs.
Please make sure that the opencv_ffmpeg.dll is loadable by your application either by copying it to your application binary folder or by adding it’s location to your PATH environment variable.
The dll is included in the sdk archive under the bin directory.
can someone give a link to lrelease binary for windows?
I can't seem to find it everywhere.
I have a server app that translates the ui dynamically via web translate engine (like google translate) and translates the entries in the .ts file. Now I need to generate a .qm from .ts and return it to the client.
So I need to put the lrelease utility on the server. Don't want to install the whole qt framework. Just the .exe and maybe some depending .dll-s.
// UPDATE
Thanks for replies. I managed to get it working in Windows.
Same question, but looking for Linux (Ubuntu) binary.
How can I check just lrelease dependencies.
I know it is in the qt4-dev-tools package, but it depends on almost whole Qt.
So is there any way to check only the lrelease dependencies?
You could download e.g. [QT for VS 2008][1], install it on some machine and copy lrelease and the required DLLs (I'd assume QtCore and QtXml) from there to the server. I don't think you'll find up-to-date standalone binaries on the net.
Tasked with converting wav to mp3 in my mac program, I've downloaded and compiled the LAME encoder. I was wondering how I then use it in my xcode project? Previous 3rd party libraries have been in the form of a framework, but LAME just produces a dylib.
Thank you.
The use of a dynamic library is similar to a Framework Apple doc on dynamic libraries
The library will need to be in a known place
In the target build options set the header and library search paths. To use the library drag it into Xcode (These set the -I -L and -l options to the compiler)