private void testfn() // 压缩视频
{
string file_name = 视频文件路径;
string command_line = " -i " + file_name + " -vcodec` libx264 -cqp 25 -y " + file_name.Replace(".avi", "_264") + ".avi";
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.WorkingDirectory = Application.StartupPath;
proc.StartInfo.UseShellExecute = false; //use false if you want to hide the window
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "ffmpeg";
proc.StartInfo.Arguments = command_line;
proc.Start();
proc.WaitForExit();
proc.Close(); // 删除原始avi文件
FileInfo file = new FileInfo(file_name);
if (file.Exists)
{
try
{
file.Delete(); //删除单个文件
}
catch(Exception e) {
MessageBox.Show("删除视频文件“"+file_name+"”出错!"+e.Message);
}
}
//myThread.Abort();
}
这是我在网上找的一个压缩视频的例子,windowForm的,运行没有出错,可是看不到什么效果,除了删除了我的视频外,请高手给看下这是什么问题,说说怎么判断压缩是否成功。
{
string file_name = 视频文件路径;
string command_line = " -i " + file_name + " -vcodec` libx264 -cqp 25 -y " + file_name.Replace(".avi", "_264") + ".avi";
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.WorkingDirectory = Application.StartupPath;
proc.StartInfo.UseShellExecute = false; //use false if you want to hide the window
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "ffmpeg";
proc.StartInfo.Arguments = command_line;
proc.Start();
proc.WaitForExit();
proc.Close(); // 删除原始avi文件
FileInfo file = new FileInfo(file_name);
if (file.Exists)
{
try
{
file.Delete(); //删除单个文件
}
catch(Exception e) {
MessageBox.Show("删除视频文件“"+file_name+"”出错!"+e.Message);
}
}
//myThread.Abort();
}
这是我在网上找的一个压缩视频的例子,windowForm的,运行没有出错,可是看不到什么效果,除了删除了我的视频外,请高手给看下这是什么问题,说说怎么判断压缩是否成功。
最好是,你能了解下ffmpeg,再使用ffmpeg的代码自己写个程序。
这种利用别人的软件做处理的东西,写出来也不会太好用的。
如果只是做压缩,也不一定非要使用ffmpeg的。
网上有其他的编码(压缩)器,可以使用这些编码器进行压缩的。
不过都是要花时间研究,写代码的。
不是这么简单就可以的。当然,效果也要好很多的。