用户上传视频过程中转成flv格式方法?
正在做一个视频网站,想把用户上传上来的视频文件一传上来就转换成FLV格式的文件...例如象http://www.tudou.com --------------------编程问答-------------------- http://www.flashcom.com.cn/bbs/这里有资料 --------------------编程问答-------------------- http://www.webstudio.com.cn/forum/showthread.php?t=1724 --------------------编程问答-------------------- 还是没有找到,能不能精确点啊
找了好久,没有找到.99 --------------------编程问答-------------------- 不懂 友情UP --------------------编程问答-------------------- ffmpeg + mEncoder --------------------编程问答-------------------- 有个软件可以转换,你找找 --------------------编程问答-------------------- 该回复被版主删除 --------------------编程问答-------------------- 一边上传一边转化是不是太麻烦了。效率太低了 --------------------编程问答-------------------- private void btAdd_Click(object sender, System.EventArgs e)
{
if(this.txtTitle.Text.Trim().Length ==0)
{
this.lblMsg.Text = "标题不能为空";
return;
}
string strBaseLocation = System.Configuration.ConfigurationSettings.AppSettings["TargetFolder"] ;
string filename = "";
if (null != uplTheFile.PostedFile && uplTheFile.PostedFile.ContentLength > 0 )
{
if(uplTheFile.PostedFile.ContentLength> 4 * 1024 * 1024)
{
lblMsg.Text = "文件大小超过4M!";
return;
}
System.IO.FileInfo fi = new System.IO.FileInfo(uplTheFile.PostedFile.FileName);
if(fi.Extension.ToLower() != ".avi" && fi.Extension.ToLower() != ".wmv" && fi.Extension.ToLower() != ".flv")
{
lblMsg.Text = "文件格式应为AVI, WMV, FLV视频! 现在格式为:" + fi.Extension.ToLower();
return;
}
filename = Guid.NewGuid().ToString() + fi.Name;
try
{
uplTheFile.PostedFile.SaveAs(strBaseLocation + @"old\" + filename);
}
catch (Exception ee)
{
throw ee;
}
}
string itemID = Framework.AddNewItem(this._userID,CMS.HandleString(this.txtTitle.Text),
CMS.HandleString(this.txtDesc.Text), CMS.HandleString(this.txtDesc.Text));
string fileName = System.Configuration.ConfigurationSettings.AppSettings["FFMpeg"];
string orginalFile = strBaseLocation + @"old\" + filename;
string targetFile = strBaseLocation + itemID + ".flv";
string argu = @"-i " + orginalFile + " -ab 56 -ar 22050 -b 500 -r 15 -s 480x360 " + targetFile;
try
{
if(! fileName.EndsWith(".flv"))
{
try
{
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(fileName,argu);
System.Diagnostics.Process.Start(startInfo);
}
catch
{
throw;
}
System.Threading.Thread.Sleep(6000);
}
else
{
System.IO.File.Copy(orginalFile, targetFile);
}
//picture
argu = @"-i " + targetFile + " -y -f image2 -ss 08.010 -t 0.001 -s 352x240 " + strBaseLocation + itemID + ".jpg";
System.Diagnostics.ProcessStartInfo startInfo1 = new System.Diagnostics.ProcessStartInfo(fileName,argu);
System.Diagnostics.Process.Start(startInfo1);
System.Threading.Thread.Sleep(2000);
if(! System.IO.File.Exists(strBaseLocation + itemID + ".jpg"))
{
System.IO.File.Copy(strBaseLocation + "17.jpg", strBaseLocation + itemID + ".jpg");
}
}
catch(Exception ee)
{
throw ee;
}
if(System.IO.File.Exists(targetFile) && (new System.IO.FileInfo(targetFile)).Length>10000)
{
this.lblMsg.Text = "<a href='viewitem.aspx?itemid=" + itemID + "'>添加成功!</a>";
}
else
{
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(fileName,argu);
System.Diagnostics.Process.Start(startInfo);
if(System.IO.File.Exists(targetFile) && (new System.IO.FileInfo(targetFile)).Length>10000)
{
this.lblMsg.Text = "<a href='viewitem.aspx?itemid=" + itemID + "'>添加成功!</a>";
}
else
{
Framework.DeleteItem(itemID, this._userID);
this.lblMsg.Text = "此文件格式添加失败!";
}
}
}
================
可参考以上代码,使用ffmpeg.exe来转换。另外可以生成缩略图 --------------------编程问答-------------------- 这么做服务器的开销是不是大了点?给个转换软件下载不行么? --------------------编程问答-------------------- 那有没有什么策略可以解决的啊? --------------------编程问答-------------------- UP --------------------编程问答-------------------- 好像有个叫菠萝网站吧
去找找看 --------------------编程问答-------------------- up --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 做个客户端插件,让其在客户端转换,转换完后,提供截图信息,然后压缩上传,上传后,服务器解压。
有没有这样的插件!
或者开发起来会不会很麻烦! --------------------编程问答-------------------- 已应用到多个视频网站,稳定,上传视频自动转换flv 加水印 截图,测试地址
http://www.511zf.com/flv/ 联系QQ157415195
补充:.NET技术 , ASP.NET