You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 5/6/7中MP4转GIF实现求助(原.NET Framework方案已实现)

.NET Core 5/6/7 实现MP4转GIF方案

问题原因

你之前用的NReco.VideoConverter在.NET Framework中能直接运行,是因为该库的.NET Framework版本默认打包了FFmpeg二进制文件;但在.NET Core环境下,需要手动处理FFmpeg的依赖——要么通过NuGet自动引入对应平台的FFmpeg,要么手动下载并指定路径。

解决方案步骤

  1. 安装必要的NuGet包
    首先安装核心库和FFmpeg依赖包:

    Install-Package NReco.VideoConverter
    Install-Package NReco.VideoConverter.FFmpeg
    

    第二个包会自动为当前平台(Windows/Linux/macOS)下载对应的FFmpeg二进制文件,无需手动配置路径。

  2. 调整代码实现
    基本用法和.NET Framework类似,无需大改,若使用自动引入的FFmpeg,代码可直接复用(注意路径格式跨平台兼容,建议用Path.Combine):

    using NReco.VideoConverter;
    using System.IO;
    
    var inputPath = "input.mp4";
    var outputPath = Path.Combine(Directory.GetCurrentDirectory(), "output.gif");
    
    var converter = new FFMpegConverter();
    // 可添加额外参数控制GIF质量、帧率、尺寸等
    converter.ConvertMedia(
        inputPath, 
        outputPath, 
        Format.gif,
        new ConvertSettings {
            VideoFrameRate = 10, // 控制GIF帧率,降低可减小文件体积
            VideoSize = "640x?" // 按比例缩放宽度,高度自动适配
        }
    );
    
  3. 手动指定FFmpeg路径(可选)
    如果你不想用NuGet的FFmpeg包,可自行下载对应平台的FFmpeg二进制文件,然后在代码中指定路径:

    var converter = new FFMpegConverter();
    converter.FFmpegToolPath = "/path/to/ffmpeg"; // Linux/macOS
    // converter.FFmpegToolPath = @"C:\ffmpeg\ffmpeg.exe"; // Windows
    converter.ConvertMedia(inputPath, outputPath, Format.gif);
    

注意事项

  • 跨平台部署时,确保FFmpeg二进制文件与目标平台匹配(32/64位,Windows/Linux/macOS)
  • 若部署到Linux,需给FFmpeg文件添加执行权限:chmod +x ffmpeg
  • 可通过ConvertSettings调整输出GIF的参数,比如帧率、分辨率、质量,平衡文件大小和效果

内容的提问来源于stack exchange,提问作者Miles Morales

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 22:35:52