-
Notifications
You must be signed in to change notification settings - Fork 257
Latest FFMPEG version is incompatible #642
Description
I was installing FFME for first time today and encountered an issue with linking to the correct version of ffmpeg. Just wanted to share my solution here.
I was trying to make the sample application work and no matter what I did it wouldn't recognize the path where ffmpeg was installed. After digging into the FFME code it appears that the version of the ffmpeg library files is hard coded in FFME (FFmpeg\FFLibrary.cs, line 68 public static FFLibrary LibAVCodec { get; } = new FFLibrary(Names.AVCodec, 58, 1); etc. For example here the 58 is the version of the library)
So with current version of FFME what you need to install is version 4.4 of ffmpeg. There is a more recent version of ffmpeg that has been released that will not work because all the library files have different version numbers.
Specifically, you want to install the full GPL (LGPL won't do because 2 dlls would be missing) shared version of ffmpeg 4.4, e.g. ffmpeg-n4.4-latest-win64-gpl-shared-4.4.zip, which you can find at https://github.com/BtbN/FFmpeg-Builds/releases
Note that I also tried the more expedient way of changing the library numbers directly in FFlibrary.cs. Unfortunately it then raises another error where it says it can't load the dll file. Am pretty sure the version number is hard coded a second time somewhere else in the code and one would need to go change that as well. At that point I couldn't bother and gave up trying to update FFME (also thinking about the possibility there is other code in FFME that may be incompatible with new ffmpeg version) and just went and found the correct ffmpeg version to use with this.
assume the FFME devs will update the code here at some point, but in meantime hope this helps someone.