下载到电脑的狸窝flv视频转换器文件如何具体地转换成何种格式,...

问一下是不是在线视频缓存到电脑上后缀名只能改成flv格式啊~~~改成别的格式能播放吗??_百度知道
问一下是不是在线视频缓存到电脑上后缀名只能改成flv格式啊~~~改成别的格式能播放吗??
提问者采纳
不会变,比如优酷在线播放使用的是流媒体。至于楼上说的格式转换器,你可以直接注册某个视频网,别用其他的.mp3都能播放.flv改为XX,在重命名时后缀改成其他格式如XX,不像其他的,转换后有水印,上面同样有格式转换,下载客户端,很好用、土豆什么的,缓存是flv格式
其他类似问题
按默认排序
其他2条回答
在线视频大多都是flv格式,直接改后缀名是没有任何效果的,flv就是flv但可以用视频格式转换软件进行转换,转换后可以播放
flv格式适合网上传播,你要是想转换成其他格式,要用格式转换器转换,格式工厂可以,后缀不可以直接改
您可能关注的推广
flv格式的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁> 对不起!您查找的页面在火星,地球暂时无法访问
内部服务器错误(Internal Server Error)
秒之后页面自动跳转,您可以:
2) 去其他地方逛逛:   1563人阅读
&首先,我们部署一下文件夹.在工程的目录下新建几个文件夹如下图:
UpFiles文件夹是要保存你上传的文件,PlayFiles文件夹是用于你转换后保存的文件(用于网上播放)
ImgFile文件夹是保存截取视频文件的图片,然后那两个mencoder和ffmpeg文件夹是视频转换工具.此视频转换也
可叫做mencoder+ffmpeg视频转换.
首先,在配置文件中给这些文件夹进行路径的配置.如下
&appSettings&
&!--工具文件夹--&
&add key=&ffmpeg& value=&ffmpeg/ffmpeg.exe&/&
&add key=&mencoder& value=&mencoder/mencoder.exe&/&
&add key=&mplayer& value=&mencoder/mplayer.exe&/&
&!--上传文件的路径--&
&add key=&upfile& value=&UpFiles&/&
&!--上专文件图片路径--&
&add key=&imgfile& value=&ImgFile&/&
&!--上传文件图片大小--&
&add key=&CatchFlvImgSize& value=&240x180&/&
&add key=&widthSize& value=&400&/&
&add key=&heightSize& value=&350&/&
&!--转换后文件路径--&
&add key=&playfile& value=&PlayFiles&/&
&/appSettings&
在上传.ASPX页面中
标题:&asp:TextBox ID=&txtTitle& runat=&server& Width=&358px&&&/asp:TextBox&
&asp:RequiredFieldValidator ID=&RequiredFieldValidator2& runat=&server& ControlToValidate=&txtTitle&
ErrorMessage=&标题不为空&&&/asp:RequiredFieldValidator&
&asp:FileUpload ID=&FileUpload1& runat=&server& Width=&339px& /&
&asp:Button ID=&btnUpload& runat=&server& OnClick=&btnUpload_Click& Text=&上传视频& Width=&70px& /&
文件类型&span style=&color:R&&(.asf|.flv|.avi|.mpg|.3gp|.mov|.wmv|.rm|.rmvb)&/span&
&asp:RegularExpressionValidator ID=&imagePathValidator& runat=&server& ErrorMessage=&文件类型不正确&
ValidationGroup=&vgValidation& Display=&Dynamic& ValidationExpression=&^[a-zA-Z]:(\\.+)(.asf|.flv|.avi|.mpg|.3gp|.mov|.wmv|.rm|.rmvb){1}
ControlToValidate=&FileUpload1&&
&/asp:RegularExpressionValidator&
&asp:RequiredFieldValidator ID=&RequiredFieldValidator1& runat=&server& ControlToValidate=&FileUpload1&
ErrorMessage=&文件不为空&&&/asp:RequiredFieldValidator&&/div&
&div style=& height:0 border-top:solid 1 font-size:0&&&/div&
&div&上传列表.&/div&
程序工作的原理是:视频先上传上去,然后跟着就是开始转换.
所以.在CS 文件中有
这里为了方便我是用sqlDatasource数据控件做数据的操作.
using System.D
using System.C
using System.W
using System.Web.S
using System.Web.UI;
using System.Web.UI.WebC
using System.Web.UI.WebControls.WebP
using System.Web.UI.HtmlC
public partial class _Default : System.Web.UI.Page
// 扩展名定义
string[] strArrFfmpeg = new string[] {&asf&,&avi&,&mpg&,&3gp&,&mov& };
string[] strArrMencoder = new string[] {&wmv&,&rm&,&rmvb& };
protected void Page_Load(object sender, EventArgs e)
protected void btnUpload_Click(object sender, EventArgs e)
string upFileName = &&;
if (this.FileUpload1.HasFile)
string fileName = PublicMethod.GetFileName(this.FileUpload1.FileName);// GetFileName();
if ((string)Session[&file&] == fileName)
upFileName = Server.MapPath(PublicMethod.upFile + fileName);
this.FileUpload1.SaveAs(upFileName);
string saveName = DateTime.Now.ToString(&yyyyMMddHHmmssffff&) ;
string playFile = Server.MapPath(PublicMethod.playFile + saveName);
string imgFile = Server.MapPath(PublicMethod.imgFile + saveName);
//System.IO.File.Copy(Server.MapPath(PublicMethod.playFile + &.jpg&), Server.MapPath(PublicMethod.imgFile+&aa.jpg&));
PublicMethod pm = new PublicMethod();
string m_strExtension = PublicMethod.GetExtension(this.FileUpload1.PostedFile.FileName).ToLower();
if (m_strExtension == &flv&)
{//直接拷贝到播放文件夹下
System.IO.File.Copy(upFileName, playFile+&.flv&);
pm.CatchImg(upFileName, imgFile);
string Extension = CheckExtension(m_strExtension);
if (Extension == &ffmpeg&)
  pm.ChangeFilePhy(upFileName, playFile, imgFile);
else if (Extension == &mencoder&)
pm.MChangeFilePhy(upFileName, playFile, imgFile);
InsertData(this.txtTitle.Text, fileName,saveName);
Session[&file&] = fileN
private string CheckExtension(string extension)
string m_strReturn = &&;
foreach (string var in this.strArrFfmpeg)
if (var == extension)
m_strReturn = &ffmpeg&;
if (m_strReturn == &&)
foreach (string var in strArrMencoder)
if (var == extension)
m_strReturn = &mencoder&;
return m_strR
#region 插入数据到数据库中
private void InsertData(string MediaName,string fileName,string saveName)
//string name=fileName.Substring(0, fileName.LastIndexOf('.'));
string imgName = saveName + &.jpg&;//图片文件名;
string playName = saveName + &.flv&;
string sqlstr = &insert into Media(FMediaName,FMediaUpPath,FMediaPlayPath,FMediaImgPath) values(@MName,@MUppath,@MPlaypath,@MImgpath)&;
//string constr = ConfigurationManager.ConnectionStrings[&sqlcon&].ToString();
SqlDataSource1.InsertCommand =
SqlDataSource1.InsertCommandType = SqlDataSourceCommandType.T// CommandType.T
SqlDataSource1.InsertParameters.Add(&MName&,MediaName);
SqlDataSource1.InsertParameters.Add(&MUppath&,PublicMethod.upFile+fileName);
SqlDataSource1.InsertParameters.Add(&MPlaypath&,PublicMethod.playFile+playName);
SqlDataSource1.InsertParameters.Add(&MImgpath&,PublicMethod.imgFile+imgName);
SqlDataSource1.Insert();
#endregion
PublicMethod类如下:
在这个类里面主要是做文件转换和保存,在转换文件的时候CPU的利用率可以达100%.
它的主要原理是另起一个进程在转换的时候你会发现你的进程里多了一个.
using System.C
/// &summary&
/// Summary description for PublicMethod
/// &/summary&
public class PublicMethod:System.Web.UI.Page
public PublicMethod()
//文件路径
public static string ffmpegtool = ConfigurationManager.AppSettings[&ffmpeg&];
public static string mencodertool = ConfigurationManager.AppSettings[&mencoder&];
public static string mplayertool = ConfigurationManager.AppSettings[&mplayer&];
public static string upFile = ConfigurationManager.AppSettings[&upfile&] + &/&;
public static string imgFile = ConfigurationManager.AppSettings[&imgfile&] + &/&;
public static string playFile = ConfigurationManager.AppSettings[&playfile&] + &/&;
//文件图片大小
public static string sizeOfImg = ConfigurationManager.AppSettings[&CatchFlvImgSize&];
//文件大小
public static string widthOfFile = ConfigurationManager.AppSettings[&widthSize&];
public static string heightOfFile = ConfigurationManager.AppSettings[&heightSize&];
// // //获取文件的名字
public static string GetFileName(string fileName)
int i = fileName.LastIndexOf(&\\&) + 1;
string Name = fileName.Substring(i);
//获取文件扩展名
public static string GetExtension(string fileName)
int i = fileName.LastIndexOf(&.&)+1;
string Name = fileName.Substring(i);
#region //运行FFMpeg的视频解码,(这里是绝对路径)
/// &summary&
/// 转换文件并保存在指定文件夹下面(这里是绝对路径)
/// &/summary&
/// &param name=&fileName&&上传视频文件的路径(原文件)&/param&
/// &param name=&playFile&&转换后的文件的路径(网络播放文件)&/param&
/// &param name=&imgFile&&从视频文件中抓取的图片路径&/param&
/// &returns&成功:返回图片虚拟地址; 失败:返回空字符串&/returns&
public string ChangeFilePhy(string fileName, string playFile, string imgFile)
//取得ffmpeg.exe的路径,路径配置在Web.Config中,如:&add key=&ffmpeg& value=&E:\51aspx\ffmpeg.exe& /&
string ffmpeg = Server.MapPath(PublicMethod.ffmpegtool);
if ((!System.IO.File.Exists(ffmpeg)) || (!System.IO.File.Exists(fileName)))
return &&;
//获得图片和(.flv)文件相对路径/最后存储到数据库的路径,如:/Web/User1/00001.jpg
string flv_file = System.IO.Path.ChangeExtension(playFile, &.flv&);
//截图的尺寸大小,配置在Web.Config中,如:&add key=&CatchFlvImgSize& value=&240x180& /&
string FlvImgSize = PublicMethod.sizeOfI
System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.H
FilestartInfo.Arguments = & -i & + fileName + & -ab 56 -ar 22050 -b 500 -r 15 -s & + widthOfFile + &x& + heightOfFile + & & + flv_
//ImgstartInfo.Arguments = & -i & + fileName + & -y -f image2 -t 0.05 -s & + FlvImgSize + & & + flv_
System.Diagnostics.Process.Start(FilestartInfo);
CatchImg(fileName, imgFile);
//System.Diagnostics.Process.Start(ImgstartInfo);
return &&;
return &&;
public string CatchImg(string fileName,string imgFile)
string ffmpeg = Server.MapPath(PublicMethod.ffmpegtool);
string flv_img =imgFile+&.jpg&;
string FlvImgSize = PublicMethod.sizeOfI
System.Diagnostics.ProcessStartInfo ImgstartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
ImgstartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.H
ImgstartInfo.Arguments = & -i & + fileName + & -y -f image2 -ss 2 -vframes 1 -s & + FlvImgSize + & & + flv_
System.Diagnostics.Process.Start(ImgstartInfo);
return &&;
if (System.IO.File.Exists(flv_img))
return flv_
return &&;
#endregion
#region //运行FFMpeg的视频解码,(这里是(虚拟)相对路径)
/// &summary&
/// 转换文件并保存在指定文件夹下面(这里是相对路径)
/// &/summary&
/// &param name=&fileName&&上传视频文件的路径(原文件)&/param&
/// &param name=&playFile&&转换后的文件的路径(网络播放文件)&/param&
/// &param name=&imgFile&&从视频文件中抓取的图片路径&/param&
/// &returns&成功:返回图片虚拟地址; 失败:返回空字符串&/returns&
public string ChangeFileVir(string fileName, string playFile, string imgFile)
//取得ffmpeg.exe的路径,路径配置在Web.Config中,如:&add key=&ffmpeg& value=&E:\51aspx\ffmpeg.exe& /&
string ffmpeg = Server.MapPath(PublicMethod.ffmpegtool);
if ((!System.IO.File.Exists(ffmpeg)) || (!System.IO.File.Exists(fileName)))
return &&;
//获得图片和(.flv)文件相对路径/最后存储到数据库的路径,如:/Web/User1/00001.jpg
string flv_img = System.IO.Path.ChangeExtension(Server.MapPath(imgFile), &.jpg&);
string flv_file = System.IO.Path.ChangeExtension(Server.MapPath(playFile), &.flv&);
//截图的尺寸大小,配置在Web.Config中,如:&add key=&CatchFlvImgSize& value=&240x180& /&
string FlvImgSize = PublicMethod.sizeOfI
System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
System.Diagnostics.ProcessStartInfo ImgstartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.H
ImgstartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.H
//此处组合成ffmpeg.exe文件需要的参数即可,此处命令在ffmpeg 0.4.9调试通过
//ffmpeg -i F:\01.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\test.flv
FilestartInfo.Arguments = & -i & + fileName + & -ab 56 -ar 22050 -b 500 -r 15 -s & + widthOfFile + &x& + heightOfFile + & & + flv_
ImgstartInfo.Arguments = & -i & + fileName + & -y -f image2 -t 0.001 -s & + FlvImgSize + & & + flv_
System.Diagnostics.Process.Start(FilestartInfo);
System.Diagnostics.Process.Start(ImgstartInfo);
return &&;
///注意:图片截取成功后,数据由内存缓存写到磁盘需要时间较长,大概在3,4秒甚至更长;
///这儿需要延时后再检测,我服务器延时8秒,即如果超过8秒图片仍不存在,认为截图失败;
///此处略去延时代码.如有那位知道如何捕捉ffmpeg.exe截图失败消息,请告知,先谢过!
if (System.IO.File.Exists(flv_img))
return flv_
return &&;
#endregion
#region //运行mencoder的视频解码器转换(这里是(绝对路径))
public string MChangeFilePhy(string vFileName, string playFile, string imgFile)
string tool = Server.MapPath(PublicMethod.mencodertool);
//string mplaytool = Server.MapPath(PublicMethod.ffmpegtool);
if ((!System.IO.File.Exists(tool)) || (!System.IO.File.Exists(vFileName)))
return &&;
string flv_file = System.IO.Path.ChangeExtension(playFile, &.flv&);
//截图的尺寸大小,配置在Web.Config中,如:&add key=&CatchFlvImgSize& value=&240x180& /&
string FlvImgSize = PublicMethod.sizeOfI
System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(tool);
FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.H
FilestartInfo.Arguments = & & + vFileName + & -o & + flv_file + & -of lavf -lavfopts
i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc
-lavcopts vcodec=flv:vbitrate=200:mbd=2:mv0:trell:v4mv:cbp:last_pred=1:dia=-1:cmp=0:vb_strategy=1
-vf scale=& + widthOfFile + &:& +heightOfFile + & -ofps 12 -srate 22050&;
System.Diagnostics.Process.Start(FilestartInfo);
CatchImg(flv_file, imgFile);
return &&;
return &&;
#endregion
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:53841次
积分:1235
积分:1235
排名:第16667名
原创:72篇
转载:11篇
(18)(1)(4)(25)(35)•回答
•回答
•回答
•回答
•回答
你自己用itudou就可以转啊
猜你感兴趣
服务声明: 信息来源于互联网,不保证内容的可靠性、真实性及准确性,仅供参考,版权归原作者所有!Copyright &
.&&闽ICP备号&&&
Powered by}

我要回帖

更多关于 狸窝flv视频转换器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信