Moved ffmpeg to the controller project and added ffprobe
This commit is contained in:
parent
59a3dcc8c1
commit
3e86104641
|
@ -197,61 +197,5 @@ namespace MediaBrowser.Api
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static string _FFMpegDirectory = null;
|
||||
/// <summary>
|
||||
/// Gets the folder path to ffmpeg
|
||||
/// </summary>
|
||||
public static string FFMpegDirectory
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_FFMpegDirectory == null)
|
||||
{
|
||||
_FFMpegDirectory = System.IO.Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "ffmpeg");
|
||||
|
||||
if (!Directory.Exists(_FFMpegDirectory))
|
||||
{
|
||||
Directory.CreateDirectory(_FFMpegDirectory);
|
||||
}
|
||||
}
|
||||
|
||||
return _FFMpegDirectory;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _FFMpegPath = null;
|
||||
/// <summary>
|
||||
/// Gets the path to ffmpeg.exe
|
||||
/// </summary>
|
||||
public static string FFMpegPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_FFMpegPath == null)
|
||||
{
|
||||
string filename = "ffmpeg.exe";
|
||||
|
||||
_FFMpegPath = Path.Combine(FFMpegDirectory, filename);
|
||||
|
||||
// Always re-extract the first time to handle new versions
|
||||
if (File.Exists(_FFMpegPath))
|
||||
{
|
||||
File.Delete(_FFMpegPath);
|
||||
}
|
||||
|
||||
// Extract ffprobe
|
||||
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MediaBrowser.Api.FFMpeg." + filename))
|
||||
{
|
||||
using (FileStream fileStream = new FileStream(_FFMpegPath, FileMode.Create))
|
||||
{
|
||||
stream.CopyTo(fileStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return _FFMpegPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -164,8 +164,8 @@ namespace MediaBrowser.Api.HttpHandlers
|
|||
startInfo.RedirectStandardOutput = true;
|
||||
startInfo.RedirectStandardError = true;
|
||||
|
||||
startInfo.FileName = ApiService.FFMpegPath;
|
||||
startInfo.WorkingDirectory = ApiService.FFMpegDirectory;
|
||||
startInfo.FileName = Kernel.Instance.ApplicationPaths.FFMpegPath;
|
||||
startInfo.WorkingDirectory = Kernel.Instance.ApplicationPaths.FFMpegDirectory;
|
||||
startInfo.Arguments = GetCommandLineArguments();
|
||||
|
||||
Logger.LogInfo(startInfo.FileName + " " + startInfo.Arguments);
|
||||
|
|
|
@ -86,12 +86,6 @@
|
|||
<Name>MediaBrowser.Model</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="FFMpeg\ffmpeg.exe" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="FFMpeg\readme.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System.IO;
|
||||
using System.Reflection;
|
||||
using MediaBrowser.Common.Configuration;
|
||||
|
||||
namespace MediaBrowser.Controller.Configuration
|
||||
|
@ -150,5 +151,94 @@ namespace MediaBrowser.Controller.Configuration
|
|||
}
|
||||
}
|
||||
|
||||
private string _FFMpegDirectory = null;
|
||||
/// <summary>
|
||||
/// Gets the folder path to ffmpeg
|
||||
/// </summary>
|
||||
public string FFMpegDirectory
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_FFMpegDirectory == null)
|
||||
{
|
||||
_FFMpegDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "FFMpeg");
|
||||
|
||||
if (!Directory.Exists(_FFMpegDirectory))
|
||||
{
|
||||
Directory.CreateDirectory(_FFMpegDirectory);
|
||||
}
|
||||
}
|
||||
|
||||
return _FFMpegDirectory;
|
||||
}
|
||||
}
|
||||
|
||||
private string _FFMpegPath = null;
|
||||
/// <summary>
|
||||
/// Gets the path to ffmpeg.exe
|
||||
/// </summary>
|
||||
public string FFMpegPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_FFMpegPath == null)
|
||||
{
|
||||
string filename = "ffmpeg.exe";
|
||||
|
||||
_FFMpegPath = Path.Combine(FFMpegDirectory, filename);
|
||||
|
||||
// Always re-extract the first time to handle new versions
|
||||
if (File.Exists(_FFMpegPath))
|
||||
{
|
||||
File.Delete(_FFMpegPath);
|
||||
}
|
||||
|
||||
// Extract exe
|
||||
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MediaBrowser.Controller.FFMpeg." + filename))
|
||||
{
|
||||
using (FileStream fileStream = new FileStream(_FFMpegPath, FileMode.Create))
|
||||
{
|
||||
stream.CopyTo(fileStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return _FFMpegPath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _FFProbePath = null;
|
||||
/// <summary>
|
||||
/// Gets the path to ffprobe.exe
|
||||
/// </summary>
|
||||
public string FFProbePath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_FFProbePath == null)
|
||||
{
|
||||
string filename = "ffprobe.exe";
|
||||
|
||||
_FFProbePath = Path.Combine(FFMpegDirectory, filename);
|
||||
|
||||
// Always re-extract the first time to handle new versions
|
||||
if (File.Exists(_FFProbePath))
|
||||
{
|
||||
File.Delete(_FFProbePath);
|
||||
}
|
||||
|
||||
// Extract exe
|
||||
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MediaBrowser.Controller.FFMpeg." + filename))
|
||||
{
|
||||
using (FileStream fileStream = new FileStream(_FFProbePath, FileMode.Create))
|
||||
{
|
||||
stream.CopyTo(fileStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return _FFProbePath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
a304265e8410291c1f696e74a4f9b84970bb5753
|
|
@ -79,6 +79,13 @@
|
|||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="FFMpeg\ffmpeg.exe" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="FFMpeg\ffprobe.exe" />
|
||||
<Content Include="FFMpeg\readme.txt" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
|
Loading…
Reference in New Issue
Block a user