Posted on 2010-05-25 09:32
S.l.e!ep.¢% 閱讀(914)
評論(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