資源簡介
網(wǎng)上C#調(diào)用FFmpeg的API例子很少,大多是C/C++的,因為ffmpeg.autogen的名稱與FFmpeg完全一樣,所以C#中可以直接復(fù)制C/C++代碼,然后在FFmpeg的方法前加入 ffmpeg.?即可。
代碼片段和文件信息
using?System;
using?System.IO;
using?System.Runtime.InteropServices;
namespace?FFmpegDemo
{
????public?class?FFmpegBinariesHelper
????{
????????private?const?string?LD_LIBRARY_PATH?=?“LD_LIBRARY_PATH“;
????????internal?static?void?RegisterFFmpegBinaries()
????????{
????????????switch?(Environment.OSVersion.Platform)
????????????{
????????????????case?PlatformID.Win32NT:
????????????????case?PlatformID.Win32S:
????????????????case?PlatformID.Win32Windows:
????????????????????var?current?=?Environment.CurrentDirectory;
????????????????????var?probe?=?$“FFmpeg/bin/{(Environment.Is64BitProcess???@“x64“?:?@“x86“)}“;
????????????????????while?(current?!=?null)
????????????????????{
????????????????????????var?ffmpegDirectory?=?Path.Combine(current?probe);
????????????????????????if?(Directory.Exists(ffmpegDirectory))
????????????????????????{
????????????????????????????Console.WriteLine($“FFmpeg?binaries?found?in:?{ffmpegDirectory}“);
????????????????????????????RegisterLibrariesSearchPath(ffmpegDirectory);
????????????????????????????return;
????????????????????????}
????????????????????????current?=?Directory.GetParent(current)?.FullName;
????????????????????}
????????????????????break;
????????????????case?PlatformID.Unix:
????????????????case?PlatformID.MacOSX:
????????????????????var?libraryPath?=?Environment.GetEnvironmentVariable(LD_LIBRARY_PATH);
????????????????????RegisterLibrariesSearchPath(libraryPath);
????????????????????break;
????????????}
????????}
????????private?static?void?RegisterLibrariesSearchPath(string?path)
????????{
????????????switch?(Environment.OSVersion.Platform)
????????????{
????????????????case?PlatformID.Win32NT:
????????????????case?PlatformID.Win32S:
????????????????case?PlatformID.Win32Windows:
????????????????????SetDllDirectory(path);
????????????????????break;
????????????????case?PlatformID.Unix:
????????????????case?PlatformID.MacOSX:
????????????????????string?currentValue?=?Environment.GetEnvironmentVariable(LD_LIBRARY_PATH);
????????????????????if?(string.IsNullOrWhiteSpace(currentValue)?==?false?&&?currentValue.Contains(path)?==?false)
????????????????????{
????????????????????????string?newValue?=?currentValue?+?Path.PathSeparator?+?path;
????????????????????????Environment.SetEnvironmentVariable(LD_LIBRARY_PATH?newValue);
????????????????????}
????????????????????break;
????????????}
????????}
????????
????????[DllImport(“kernel32“?SetLastError?=?true)]
????????private?static?extern?bool?SetDllDirectory(string?lpPathName);
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????187??2018-09-12?12:26??FFmpegDemo\FFmpegDemo\App.config
?????文件???25478656??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x64\avcodec-57.dll
?????文件????1433088??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x64\avdevice-57.dll
?????文件????6795776??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x64\avfilter-6.dll
?????文件????3971584??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x64\avformat-57.dll
?????文件?????687104??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x64\avutil-55.dll
?????文件?????126464??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x64\postproc-54.dll
?????文件?????377344??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x64\swresample-2.dll
?????文件?????528896??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x64\swscale-4.dll
?????文件???22285824??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\avcodec-57.dll
?????文件????1208320??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\avdevice-57.dll
?????文件????6437376??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\avfilter-6.dll
?????文件????3991552??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\avformat-57.dll
?????文件?????693248??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\avutil-55.dll
?????文件?????297984??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\ffmpeg.exe
?????文件?????147968??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\ffplay.exe
?????文件?????162816??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\ffprobe.exe
?????文件?????116224??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\postproc-54.dll
?????文件?????324096??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\swresample-2.dll
?????文件?????504320??2017-10-16?13:22??FFmpegDemo\FFmpegDemo\bin\FFmpeg\bin\x86\swscale-4.dll
?????文件?????217771??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\avcodec.h
?????文件???????2570??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\avdct.h
?????文件???????3111??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\avfft.h
?????文件???????2853??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\d3d11va.h
?????文件???????4044??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\dirac.h
?????文件???????3715??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\dv_profile.h
?????文件???????2361??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\dxva2.h
?????文件???????1650??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\jni.h
?????文件???????2825??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\mediacodec.h
?????文件???????3763??2017-11-13?05:32??FFmpegDemo\FFmpegDemo\bin\FFmpeg\include\libavcodec\qsv.h
............此處省略137個文件信息
評論
共有 條評論