Moved ffmpeg to the controller project and added ffprobe

This commit is contained in:
LukePulverenti Luke Pulverenti luke pulverenti
2012-08-18 16:47:10 -04:00
parent 59a3dcc8c1
commit 3e86104641
8 changed files with 100 additions and 64 deletions

View File

@@ -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;
}
}
}
}

View File

@@ -0,0 +1 @@
faf137524dd67edb423344830e1436dcdca83daf

View File

@@ -0,0 +1 @@
a304265e8410291c1f696e74a4f9b84970bb5753

View File

@@ -0,0 +1,3 @@
This is the 32-bit static build of ffmpeg, located at:
http://ffmpeg.zeranoe.com/builds/

View File

@@ -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.