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模式对原视频中的视频片段进行重新编码

相关推荐
晚霞的不甘11 小时前
CANN 支持多模态大模型:Qwen-VL 与 LLaVA 的端侧部署实战
人工智能·神经网络·架构·开源·音视频
拾荒的小海螺20 小时前
开源项目:LTX2 高效可控的开源视频生成模型
开源·音视频
EasyGBS1 天前
视频画面模糊、卡顿、丢失?EasyGBS新增“视频质量诊断”功能,告别人工盯屏
视觉检测·音视频·gb28181·花屏·视频质量诊断·蓝屏检测
zhuweisky1 天前
ArkTS实现鸿蒙手机视频聊天、屏幕分享(HarmonyOS)
音视频·harmonyos·鸿蒙开发
XHW___0011 天前
webrtc 关键模块创建的时机
网络·音视频·webrtc
Leinwin1 天前
VibeVoice-ASR:突破60分钟长音频处理瓶颈,语音识别进入端到端时代
人工智能·音视频·语音识别
EasyDSS1 天前
直播点播/视频会议EasyDSS一站式视频云平台,全场景视频服务开箱即用
音视频·hls·m3u8·点播技术·流媒体直播
Guheyunyi1 天前
什么是安全监测预警系统?应用场景有哪些?
大数据·运维·人工智能·安全·音视频
LittroInno1 天前
TVMS视频管理平台 —— 目标识别跟踪
人工智能·计算机视觉·音视频
newbiai1 天前
电商直播AI视频生成工具哪个方便快捷?
人工智能·python·音视频