编辑
2025-11-22
C#
00

目录

环境准备
安装NuGet包
实现老电影效果的关键技术
主要视觉效果
完整代码示例
使用示例
效果解析
滤镜详解
高级定制
注意事项
性能优化建议
结语

在数字时代,我们常常怀念老电影的独特魅力 - 颗粒感、微小的抖动、黑白滤镜以及复古的质感。通过Xabe.FFmpeg,我们可以轻松地为现代视频赋予怀旧的老电影风格。

环境准备

安装NuGet包

首先,需要安装以下NuGet包:

  • Xabe.FFmpeg
Bash
Install-Package Xabe.FFmpeg

实现老电影效果的关键技术

主要视觉效果

  1. 黑白滤镜
  2. 颗粒噪点
  3. 胶片抖动
  4. 对比度调整
  5. 边缘模糊

完整代码示例

C#
public static async Task ApplyOldMovieEffect(string inputVideo, string outputVideo) { try { // 视频滤镜字符串 string videoFilters = "format=gray," + // 黑白滤镜 "noise=alls=10:allf=t+u," + // 添加颗粒噪点 "curves=preset=vintage," + // 复古色调曲线 "vignette," + // 简单的暗角效果 "gblur=sigma=1.5"; // 轻微模糊 // 创建转换 var conversion = FFmpeg.Conversions.New() .AddParameter($"-i \"{inputVideo}\"") .AddParameter($"-vf \"{videoFilters}\"") .AddParameter("-c:v libx264") // 使用 H.264 编码 .AddParameter("-preset medium") // 编码预设 .AddParameter("-crf 23") // 质量控制 .AddParameter("-c:a copy") // 保留原音频 .SetOutput(outputVideo); // 开始转换 await conversion.Start(); Console.WriteLine("视频转换完成"); } catch (Exception ex) { Console.WriteLine($"转换过程中发生错误: {ex.Message}"); } }

使用示例

C#
static async Task Main(string[] args) { // 设置FFmpeg的二进制文件路径(如果是非标准安装) FFmpeg.SetExecutablesPath("D:\\Software\\ffmpeg-master-latest-win64-gpl-shared\\bin"); await ApplyOldMovieEffect( inputVideo: @"D:\Video\1.mp4", outputVideo: @"d:\old_movie_output.mp4" ); }

image.png

效果解析

滤镜详解

  • format=gray:转换为黑白
  • noise=alls=10:allf=t+u:添加颗粒噪点
  • curves=preset=vintage:应用复古色调
  • vignette:创建边缘暗角效果
  • gblur:轻微模糊处理

高级定制

可以通过调整滤镜参数实现更精细的效果:

  • 调整噪点强度
  • 改变颜色曲线
  • 调节模糊程度

注意事项

  • 确保系统已安装FFmpeg
  • 大型视频处理可能需要较长时间
  • 根据硬件配置调整转换参数

性能优化建议

  • 使用较低的CRF值
  • 选择适当的编码预设
  • 对大文件考虑分段处理

结语

通过Xabe.FFmpeg,我们可以轻松地为现代视频赋予怀旧的老电影风格,重现经典电影的独特魅力。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!