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);
var progName = "ffmpeg";
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}";
_ffmpegPath = FFMpegOptions.Options.FFmpegBinary;
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.Runtime.InteropServices;
namespace FFMpegCore.FFMPEG
{
@ -24,5 +27,49 @@ static FFMpegOptions()
}
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);
var progName = "ffprobe";
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}";
_ffprobePath = FFMpegOptions.Options.FFProbeBinary;
}
/// <summary>

Binary file not shown.

Binary file not shown.

View file

@ -127,18 +127,6 @@
<Content Include="FFMPEG\bin\presets\libx264-veryslow_firstpass.ffpreset">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</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>

View file

@ -73,19 +73,6 @@ public static void RootExceptionCheck(string root)
if (root == null)
throw new FFMpegException(FFMpegExceptionType.Dependency,
"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,
"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}...");
}
}
}