Posted on 2010-05-25 09:32
S.l.e!ep.¢% 阅读(906)
评论(0) 编辑 收藏 引用 所属分类:
Video Processing
FLV视频转换的利器 - ffmpeg.exe
大家应该都知道Youtobe、Google Video之类视频分享网站。他们的视频全部是使用Flash播放,而通过探索实际地址,会发现下载回来的东西都是Flash支持的FLV格式。这种格式的视频,播放和转换是非常麻烦的。但是,有一个源于Linux的工具软件ffmpeg可以轻易地实现FLV向其它格式(avi(mpeg4)、asf、mpeg)的转换或者将其它格式转换为flv。 =OD'GuQ
ffmpeg作为Linux下的LGPL开源程序,在Windows下编译需要特殊的工具。我这里提供的ffmpeg.exe是2004年的旧版本,使用MinGW编译,只有一个可执行文件,可直接运行(命令行程序)。 b<td|kk
FLV向其它格式(avi(mpeg4)、asf、mpeg)转换的简易方法:(圆括号内必填,方括号内可选) khOG Kh*
转换成wmv/asf JZvQCf;$
ffmpeg -i (要转换的flv文件完整路径) -f asf -vcodec (wmv1或wmv2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的asf/wmv文件完整路径) !.C1}Wf
转换成mpeg1 n Xa Os&
ffmpeg -i (要转换的flv文件完整路径) -f mpeg -vcodec mpeg1video [-b 视频码率] -acodec mp2 [-ab 音频码率] (输出的mpg文件完整路径) =mmBjG}0{
转换成avi(msmpeg4) z4%EYCZ'
ffmpeg -i (要转换的flv文件完整路径) -f avi -vcodec (msmpeg4或msmpeg4v1或msmpeg4v2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的avi文件完整路径) AImbKhOK'
8J}`s07
其它格式向flv转换的简易办法 qf1975fI
ffmpeg -i (输入的文件完整路径,RM/RMVB不支持,最好是mpeg4的AVI或者MPEG1文件,对新版的wmv支持不好)-f flv -vcodec flv [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的flv文件) P'P#Kl
/Wu3)RjK
ffmpeg其实还有很多选项。说明文件全部嵌在代码里了。 C(V+Ej*!"
下载:ffmpeg.zip v -d5$ +O
http://freehost25.websamba.com/yksoft/download/ffmpeg.zip (%&"f_5q
附:flv播放器 S\99i*X0H
http://freehost25.websamba.com/yksoft/download/rivaflvplayer.zip
------------------------------------------
public static string VideoConvertFlv(string FromName, string WidthAndHeight, string ExportName)
{
string ffmpeg = HttpContext.Current.Server.MapPath("~/FLV/ffmpeg.exe");
string Command =" -i " + FromName + " -y -ab 56 -ar 22050 -b 500 -r 15 -s " + WidthAndHeight + " "+ ExportName; //Flv格式
//string Command = "E:\\FFmpeg\\ffmpeg.exe -i E:\\ClibDemo\\VideoPath\\admin\\a.wmv -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 "+ ExportName;
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = ffmpeg;
p.StartInfo.Arguments = Command;
p.StartInfo.WorkingDirectory = HttpContext.Current.Server.MapPath("~/FLV/");
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
//开始执行
p.Start();
p.BeginErrorReadLine();
p.WaitForExit();
p.Close();
p.Dispose();
//p.StandardInput.WriteLine(Command);
//p.StandardInput.WriteLine("Exit ");
return ExportName;
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/octverve/archive/2007/09/24/1798231.aspx