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

相关推荐
却道天凉_好个秋15 小时前
OpenCV(四):视频采集与保存
人工智能·opencv·音视频
苏打水com17 小时前
字节跳动前端业务:从「短视频交互」到「全球化适配」的技术挑战
前端·音视频
人工智能技术派18 小时前
Qwen-Audio:一种新的大规模音频-语言模型
人工智能·语言模型·音视频
长沙红胖子Qt1 天前
FFmpeg开发笔记(十二):ffmpeg音频处理、采集麦克风音频录音为WAV
ffmpeg·pcm·wav·录音·麦克风
音视频牛哥2 天前
系统级超低延迟音视频直播模块时代:如何构建可控、可扩展的实时媒体底座
人工智能·音视频·大牛直播sdk·rtsp播放器·rtmp播放器·rtsp服务器·rtmp同屏推流
aqi002 天前
FFmpeg开发笔记(八十一)FFmpeg代码对RTSP和RTMP的推流区别
ffmpeg·音视频·直播·流媒体
却道天凉_好个秋2 天前
音视频学习(六十八):视频采集原理
音视频·视频采集
Gigavision2 天前
SCAMPS视频生理信号测量数据集
音视频
EasyDSS2 天前
互联网视频云平台EasyDSS无人机技术在烟火巡检场景中的的应用
音视频·无人机
千里马学框架3 天前
音频焦点学习之AudioFocusRequest.Builder类剖析
android·面试·智能手机·车载系统·音视频·安卓framework开发·audio