C#实现 ffmpeg视频转码、播放

近来公司项目要求实现全景相机的视频截取,但是截取的视频需求转码上传。经过研究采用ffmpeg转码,奉上一个详细介绍的博文

最简单的基于FFMPEG的转码程序

主要是转码的操作过程,能够实现了从相机获取的MP4转换成普通播放器播放的MP4格式;

 1         //转码方法
 2         private void Test1()
 3         {
 4 
 5             Process p = new Process();
 6             
 7 
 8             p.StartInfo.FileName = path +"ffmpeg.exe";
 9 
10             p.StartInfo.UseShellExecute = false;
11             string srcFileName = "";
12             string destFileName = "";
13             srcFileName = path + "InitVideo1.mp4";
14 
15             destFileName = path + "InitVideo.mp4";
16 
17             p.StartInfo.Arguments = "-i " + srcFileName + " -y  -vcodec h264 -b 500000 " + destFileName;    //执行参数
18 
19             p.StartInfo.UseShellExecute = false;  ////不使用系统外壳程序启动进程
20             p.StartInfo.CreateNoWindow = true;  //不显示dos程序窗口
21 
22             p.StartInfo.RedirectStandardInput = true;
23 
24             p.StartInfo.RedirectStandardOutput = true;
25 
26             p.StartInfo.RedirectStandardError = true;//把外部程序错误输出写到StandardError流中
27 
28             p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived);
29 
30             p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
31 
32             p.StartInfo.UseShellExecute = false;
33 
34             p.Start();
35 
36             p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
37 
38             p.BeginErrorReadLine();//开始异步读取
39 
40 
41 
42             p.WaitForExit();//阻塞等待进程结束
43 
44             p.Close();//关闭进程
45 
46             p.Dispose();//释放资源
47         }

附测试Demo程序:

代码下载

posted @ 2015-10-19 23:47  Mars、少年  阅读(20394)  评论(2编辑  收藏  举报