首先判断视频的格式,然后根据不同的格式分别采用2种转换工具.示例代码:
#region 确定
protected void btnOK_Click(object sender, EventArgs e)
{
string strTime = System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() + System.DateTime.Now.Hour.ToString() + System.DateTime.Now.Minute.ToString() + System.DateTime.Now.Second.ToString();
ff.PostedFile.SaveAs(Server.MapPath(WebDefine.UpVideoPath + ff.FileName));
int flag = 0;
if (ff.FileName.Split('.')[1] != "flv")
{
foreach (string str in WebDefine.arrFfmpeg)
{
if (str == ff.FileName.Split('.')[1])
{
string upfile = Server.MapPath(WebDefine.UpVideoPath + ff.FileName) + " -ab 56 -ar 44100 -qscale 8 -r 29.97 ";
string flvfile = Server.MapPath(WebDefine.FlvPath + strTime + ".flv");
string picfile = WebDefine.FlvPath + strTime + ".flv";
string strcmd = upfile + flvfile;
RunFFMpeg(strcmd);
flag = 1;
pic = CatchImg(picfile);
}
}
foreach (string str1 in WebDefine.arrMencoder)
{
if (str1 == ff.FileName.Split('.')[1])
{
string upfile = " " + Server.MapPath(WebDefine.UpVideoPath + ff.FileName) + " -o ";
string flvfile = Server.MapPath(WebDefine.FlvPath + strTime + ".flv") + " -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=300:mbd=2:mv0:trell:v4mv:cbp:last_pred=3: -sws -1 -vf scale=512:-3 -ofps 12 -srate 11025 ";
string strcmd = upfile + flvfile;
RunMencoder(strcmd);
flag = 1;
pic = CatchImg(WebDefine.FlvPath + strTime + ".flv");
}
}
}
else
{
ff.PostedFile.SaveAs(Server.MapPath(WebDefine.FlvPath + ff.FileName));
flag = 1;
}
if (flag == 0)
{
MessageBox.Show(this, "不支持该格式文件!");
return;
}
Save(strTime);
}
#endregion
#region 存入数据库
/// <summary>
/// 想数据库增加数据
/// </summary>
private void Save(string strTime)
{
T_Video_Mod model = new T_Video_Mod();
model.TVideoId = Guid.NewGuid().ToString();
model.VideoTitle = txtName.Text.Trim();
model.VideoContent = txtContent.Text.Trim();
model.VideoSize = "0";
model.PicturePath = pic;
model.VideoPath = strTime + ".flv";
model.DeleteFlag = WebDefine.DeleteN;
model.CreateTime = System.DateTime.Now.ToString();
model.CreateUser = UserID;
T_Video_Bll.InsertTVideoMod(WebDefine.DBConnectionName, model);
MessageBox.ResponseScript(this, "alert('上传成功,如上传文件较大,需要等一会才能正常播放');window.location.href=window.location.href;");
}
#endregion
#region RunFFMpeg
/// <summary>
/// 将asx, asf, mpg, wmv, 3gp, mp4, avi格式文件转换成Flv格式
/// </summary>
/// <param name="strCmd"></param>
public void RunFFMpeg(string strCmd)
{
System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(Server.MapPath(WebDefine.ToolsPath));
FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
FilestartInfo.Arguments = " -i " + strCmd;
try
{
System.Diagnostics.Process.Start(FilestartInfo);
}
catch (Exception ex)
{
MessageBox.Show(this, ex.Message);
}
System.Threading.Thread.Sleep(6000);
}
#endregion
#region RunMencoder
/// <summary>
/// 将wmv9, rm, rmvb, mov格式文件转换成Flv格式
/// </summary>
/// <param name="strCmd"></param>
public void RunMencoder(string strCmd)
{
System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(Server.MapPath(WebDefine.MToolsPath));
FilestartInfo.UseShellExecute = false;
FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
FilestartInfo.Arguments = strCmd;
try
{
System.Diagnostics.Process.Start(FilestartInfo);
}
catch (Exception ex)
{
MessageBox.Show(this, ex.Message);
}
System.Threading.Thread.Sleep(6000);
}
#endregion
#region 截图
/// <summary>
/// 找到视频文件进行截图
/// </summary>
/// <param name="vFileName"></param>
/// <returns></returns>
public string CatchImg(string vFileName)
{
//string ffmpeg = System.Configuration.ConfigurationSettings.AppSettings["ffmpeg"];
if ((!System.IO.File.Exists(Server.MapPath(WebDefine.ToolsPath))) || (!System.IO.File.Exists(Server.MapPath(vFileName))))
{
return "";
}
string flv_img = System.IO.Path.ChangeExtension(vFileName, ".jpg");
string flv_img_p = HttpContext.Current.Server.MapPath(flv_img);
string FlvImgSize = "160*110";
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(Server.MapPath(WebDefine.ToolsPath));
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
//此处组合成ffmpeg.exe文件需要的参数即可,此处命令在ffmpeg 0.4.9调试通过
startInfo.Arguments = " -i " + Server.MapPath(vFileName) + " -y -f image2 -t 0.001 -s " + FlvImgSize + " " + flv_img_p;
try
{
System.Diagnostics.Process.Start(startInfo);
}
catch
{
return "";
}
///注意:图片截取成功后,数据由内存缓存写到磁盘需要时间较长,大概在3,4秒甚至更长;
///这儿需要延时后再检测,我服务器延时8秒,即如果超过8秒图片仍不存在,认为截图失败;
System.Threading.Thread.Sleep(6000);
if (System.IO.File.Exists(flv_img_p))
{
return flv_img;
}
return "";
}
#endregion
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yaojian524/archive/2009/05/20/4203096.aspx
分享到:
相关推荐
FLV编辑器是一个对flv视频文件进行播放、截图、修复、剪辑、合并、切割、抓取、格式转换的工具。目前各大视频网站均采用flv视频格式,因此,本软件是您处理这类视频格式文件的好助手。 注意事项: 1、 该软件基于VB...
⑤针对以上的格式,「另存画面」让你可以捕捉即时的影片画面,「截图功能」则是让你设定间隔秒数,或指定张数,来提取影片视频。未来改版将加入 「缩图功能」,以制作影片的系列缩图展示。「修复功能」则是可以让...
视频上传后会截取一张图片以方便您上传图片 而且还可以转换成flv 格式
A5下载站向大家推荐一款专业的FLV视频加密软件——点量FLV视频加密系统。软件分为加密和播放两部分,主要是针对FLV、F4V这类Flash视频文件进行加密,软件界面美观简洁、使用方便,加密速度快...点量FLV视频加密系统截图
JAVA 视频转码FLV 1.视频转化为在线播放格式。 2.支持视频截图。
闪电-FLV视频转换器是一个功能强大的Flash视频转换软件,使用它您可以将各种视频格式转换为SWF和FLV视频格式(网络上常用的Flash视频格式)。本软件几乎可以转换各种视频格式,包括DivX、XviD...闪电-FLV视频转换器截图
网络视频作为一种绘声绘影的传播方式,比文字和图片具有更丰富的表现能力, 优酷、土豆、乐视、酷6的快速发展就是最好的证明,引用视频广告连篇,烦不胜烦,如何让自己的网站也具备视频上传和转码功能是众多站长一直...
新星FLV视频格式转换器是一款功能强大的FLV在线视频转换工具,通过本软件您可以轻松将从各种视频网站下载的FLV、SWF格式的视频文件转换为您需要的常见的视频和音频格式。... 新星FLV视频格式转换器截图
视频上传+转换成flv+截图保存,使用自定义控件,在网页直接调用。
FLV编辑器是一个对flv视频文件进行播放、截图、修复、剪辑、合并、切割、抓取、格式转换的工具。目前各大视频网站均采用flv视频格式,因此,本软件是您处理这类视频格式文件的好助手。
srs 的 flv hls rtmp流的抓包及图片截图, 截图比较各个的抓包流示例,用来分析直播流的一些情况
能够编辑处理FLV视频,可修复剪辑合并、切割截图,转换格式等等。能够把FLV转换为MPG/AVI/WMV等格式。当指定的FLV无法播放,或时间不正确及无法跳转时,可以用此工具进行修复,修复后即可正常播放。
本DEMO实现了采用asp.net截上传视频第一帧图,此另,视频格式转换等方法,都封装成了类,方便直接调用。快速移植……
我使用vue开发前端页面并需要进行网页截图,要求延迟低,所以我选择了低延迟的HTTP-FLV协议,支持这个协议的上面的只有flv.js了,所以最终选择了它。 展示效果 在一个做视频监控的项目中使用了flv.j
主要介绍了C#实现通过ffmpeg从flv视频文件中截图的方法,实例分析了C#使用ffmpeg操作flv文件的技巧,需要的朋友可以参考下
使用网上的已有的转换代码,将代码调试通,然后进行优化。基于ASP.NET在网页生成新的界面,实现将现有的多种视频格式转换成通用的flv格式。可以实现视频格式转换,截图,删除等功能。
视频上传--支持rmvb,flv,swf,avi,mp4,mov,mpg格式转换成flv,支持1G文件上传及格式转换,支持多图片截图
FLV编辑器是一个对flv视频文件进行播放、截图、修复、剪辑、合并、切割、抓取、格式转换的工具。目前各大视频网站均采用flv视频格式,因此,本软件是您处理这类视频格式文件的好助手。本软件是最新版,是繁体汉字Big...
FLVPlayer4FreeSH是一款简单好用的FLV 播放器软件。软件功能强大,支持包括调整播放画面大小、切换全屏显示/置顶显示、切换静音等诸多常规特性,还允许截取 FLV 中的帧为静态的图片,并自带...FLVPlayer4FreeSH截图
mencoder视频格式转换+ffmpeg视频截图DEMO 可将任意格式视频转换为flv格式再截取一张图片