FFMpegCore: remove binaries from repository (use choco)

- improve binary path detection
This commit is contained in:
Vlad Jerca 2019-05-10 20:25:57 +03:00
parent c4633f9e46
commit 4d75640a16
11 changed files with 52 additions and 60 deletions

View file

@ -1,3 +1,3 @@
{ {
"RootDirectory": "./FFMPEG/bin" "RootDirectory": "C:\\ProgramData\\chocolatey\\lib\\ffmpeg\\tools\\ffmpeg\\bin\\"
} }

View file

@ -30,16 +30,7 @@ public FFMpeg(): base()
{ {
FFMpegHelper.RootExceptionCheck(FFMpegOptions.Options.RootDirectory); FFMpegHelper.RootExceptionCheck(FFMpegOptions.Options.RootDirectory);
var progName = "ffmpeg"; _ffmpegPath = FFMpegOptions.Options.FFmpegBinary;
if (RuntimeInformation.IsOSPlatform (OSPlatform.Windows)) {
var target = Environment.Is64BitProcess ? "x64" : "x86";
progName = $"{target}{Path.DirectorySeparatorChar}{progName}.exe";
}
var path = $"{Path.DirectorySeparatorChar}{progName}";
_ffmpegPath = $"{FFMpegOptions.Options.RootDirectory}{path}";
ArgumentBuilder = new FFArgumentBuilder(); ArgumentBuilder = new FFArgumentBuilder();
} }

View file

@ -1,5 +1,8 @@
using Newtonsoft.Json; using FFMpegCore.FFMPEG.Exceptions;
using Newtonsoft.Json;
using System;
using System.IO; using System.IO;
using System.Runtime.InteropServices;
namespace FFMpegCore.FFMPEG namespace FFMpegCore.FFMPEG
{ {
@ -24,5 +27,49 @@ static FFMpegOptions()
} }
public string RootDirectory { get; set; } = _DefaultRoot; public string RootDirectory { get; set; } = _DefaultRoot;
public string FFmpegBinary
{
get
{
var target = Environment.Is64BitProcess ? "x64" : "x86";
var progName = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "ffmpeg.exe" : "ffmpeg";
if (Directory.Exists($"{Options.RootDirectory}{target}"))
{
progName = $"{target}{Path.DirectorySeparatorChar}{progName}";
}
var path = $"{Options.RootDirectory}{Path.DirectorySeparatorChar}{progName}";
if (!File.Exists(path))
throw new FFMpegException(FFMpegExceptionType.Dependency,
$"FFMpeg cannot be found @ {path}");
return path;
}
}
public string FFProbeBinary
{
get
{
var target = Environment.Is64BitProcess ? "x64" : "x86";
var progName = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "ffprobe.exe" : "ffprobe";
if (Directory.Exists($"{Options.RootDirectory}{target}"))
{
progName = $"{target}{Path.DirectorySeparatorChar}{progName}";
}
var path = $"{Options.RootDirectory}{Path.DirectorySeparatorChar}{progName}";
if (!File.Exists(path))
throw new FFMpegException(FFMpegExceptionType.Dependency,
$"FFProbe cannot be found @ {path}");
return path;
}
}
} }
} }

View file

@ -16,16 +16,7 @@ public FFProbe(): base()
{ {
FFProbeHelper.RootExceptionCheck(FFMpegOptions.Options.RootDirectory); FFProbeHelper.RootExceptionCheck(FFMpegOptions.Options.RootDirectory);
var progName = "ffprobe"; _ffprobePath = FFMpegOptions.Options.FFProbeBinary;
if (RuntimeInformation.IsOSPlatform (OSPlatform.Windows)) {
var target = Environment.Is64BitProcess ? "x64" : "x86";
progName = $"{target}{Path.DirectorySeparatorChar}{progName}.exe";
}
var path = $"{Path.DirectorySeparatorChar}{progName}";
_ffprobePath = $"{FFMpegOptions.Options.RootDirectory}{path}";
} }
/// <summary> /// <summary>

Binary file not shown.

Binary file not shown.

View file

@ -127,18 +127,6 @@
<Content Include="FFMPEG\bin\presets\libx264-veryslow_firstpass.ffpreset"> <Content Include="FFMPEG\bin\presets\libx264-veryslow_firstpass.ffpreset">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content> </Content>
<Content Include="FFMPEG\bin\x64\ffmpeg.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="FFMPEG\bin\x64\ffprobe.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="FFMPEG\bin\x86\ffmpeg.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="FFMPEG\bin\x86\ffprobe.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View file

@ -73,19 +73,6 @@ public static void RootExceptionCheck(string root)
if (root == null) if (root == null)
throw new FFMpegException(FFMpegExceptionType.Dependency, throw new FFMpegException(FFMpegExceptionType.Dependency,
"FFMpeg root is not configured in app config. Missing key 'ffmpegRoot'."); "FFMpeg root is not configured in app config. Missing key 'ffmpegRoot'.");
var progName = "ffmpeg";
if (RuntimeInformation.IsOSPlatform (OSPlatform.Windows)) {
var target = Environment.Is64BitProcess ? "x64" : "x86";
progName = $"{target}{Path.DirectorySeparatorChar}{progName}.exe";
}
var path = root + $"{Path.DirectorySeparatorChar}{progName}";
if (!File.Exists(path))
throw new FFMpegException(FFMpegExceptionType.Dependency,
"FFMpeg cannot be found in the root directory!");
} }
} }
} }

View file

@ -24,18 +24,6 @@ public static void RootExceptionCheck(string root)
throw new FFMpegException(FFMpegExceptionType.Dependency, throw new FFMpegException(FFMpegExceptionType.Dependency,
"FFProbe root is not configured in app config. Missing key 'ffmpegRoot'."); "FFProbe root is not configured in app config. Missing key 'ffmpegRoot'.");
var progName = "ffprobe";
if (RuntimeInformation.IsOSPlatform (OSPlatform.Windows)) {
var target = Environment.Is64BitProcess ? "x64" : "x86";
progName = $"{target}{Path.DirectorySeparatorChar}{progName}.exe";
}
var path = root + $"{Path.DirectorySeparatorChar}{progName}";
if (!File.Exists(path))
throw new FFMpegException(FFMpegExceptionType.Dependency,
$"FFProbe cannot be found in the in {path}...");
} }
} }
} }