C#中用ffmpeg截取视频使用要点

一、代码

cs 复制代码
string inputFile = "E:\\Test\\1\\5.mp4";
string outputFile = "E:\\Test\\1\\10.mp4";
int startTime = 5; // 开始时间(秒)
int endtime = 10; // 结束时间(秒)

Process p = new Process();
p.StartInfo.FileName = ".\\ffmpeg\\ffmpeg.exe";//ffmpeg.exe路径
p.StartInfo.UseShellExecute = false;
p.StartInfo.Arguments = $"-i {inputFile} -ss {startTime} -to {endtime} -c:v copy {outputFile} ";
p.StartInfo.UseShellExecute = false;//不使用系统外壳程序启动进程
p.StartInfo.CreateNoWindow = true;  //不显示dos程序窗口
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;//把外部程序错误输出写到StandardError流中
p.StartInfo.UseShellExecute = false;
p.Start();
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.BeginErrorReadLine();//开始异步读取   
p.WaitForExit();// 
p.Close(); // 关闭进程
p.Dispose(); // 释放资源

二、代码使用解释

2.1 不使用原因 -c:v copy

-c:v copy不进行重新编码,直接拷贝原视频中的视频片段,保存为截取视频。视频长度存在较大误差

经测试,截取10秒长度视频,视频显示长度为10秒,但实际为原视频5秒长度(丢帧)

截取视频长度过短,如小于5秒,会出现视频不显示画面问题

2.2 使用原因 -c:v libx264 -crf 18

指定使用H264标准 crf=18模式对原视频中的视频片段进行重新编码

相关推荐
m0_7066532318 小时前
用PS CC2017实现视频面部优化的新突破
音视频
视频技术分享20 小时前
音视频SDK的多平台兼容性挑战与适配方案
音视频
八角Z1 天前
AI短视频创作实战心得:从玩具到生产力工具亲测
人工智能·机器学习·服务发现·音视频
王家视频教程图书馆2 天前
横屏下的全屏视频 右边视频控制器被虚拟按键遮挡了,解决方式隐藏状态栏,竖屏后在恢复
音视频
EasyDSS2 天前
EasyDSS如何基于LiveKit/AI大模型/AI会议助手/语音转写STT技术破解音视频应用核心痛点
人工智能·音视频·webrtc·语音识别·点播技术·流媒体直播
阿甘编程点滴2 天前
书单号视频搬运软件推荐8款(2026实测版)
人工智能·音视频
liulilittle2 天前
Windows 11 上搭建 YouTube 视频下载工具:yt-dlp + FFmpeg
windows·ffmpeg·音视频
yzx9910132 天前
手把手教你安装视频下载神器 Lux(多平台教程)
音视频
指尖在键盘上舞动2 天前
Cannot find matching video player interface for ‘ffpyplayer‘.解决方案
linux·ubuntu·ffmpeg·psychopy·ffpyplayer
YWamy2 天前
音视频SDK开发的三大核心挑战及高效应对策略
音视频