资源简介
网上C#调用FFmpeg的API例子很少,大多是C/C++的,因为ffmpeg.autogen的名称与FFmpeg完全一样,所以C#中可以直接复制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个文件信息
相关资源
- C#程序设计经典300例源代码
- FFMpeg_FFPlay 源码剖析(杨书良)
- H264视频解压缩封装 c++
- 在VS2015中用C++创建DLL并用C#调用且同时
- ffmpeg-20191004-e6625ca-win64-static.rar
- Visual Studio C#数据库开发经典案例
- C++基于HTTP的POST上传,C#的网站接收并
- Emgucvopencv+C#例程集锦
- AutoCAD二次开发文档C++ C# 史上最全版
- 拼图游戏大型课程设计C# C++
- IFC文件解析,有C# C++ VB.Net
- VC++6.0官方版
- VS2019编译的32位最新版ffmpeg类库文件
- C#调用C++包括C++的opencv
- WinForm程序C++词法分析器
- CMM编译器(用C#写的一个c语言子集的
- C语言 词法分析器 C#实现
- c++语言-物流管理系统
- C#实时监测usb设备的插拔情况,winfo
- PC微信多开器,C#编写,C++ DLL
- C# C语言分别与labview调用DLL范例
- 使用C++编写超经典的坦克大战
- 用vs2012做ActiveX控件并使用html、c#、
- C# WinForm 向导控件
- 零基础学C#+代码+视频+光盘资料 提取
- 基于c#的RGB转yuv程序
- Demo: c/c++动态库DLL调用,c#等其他语言
- PQ分解法电力系统潮流计算c#版本
- C++ 转 C# 工具破解版
- 用C#和C++实现的进程调度算法程序操作
评论
共有 条评论