国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

C#從視頻截圖的方法

2024-07-21 02:25:54
字體:
來源:轉載
供稿:網友
國內最大的酷站演示中心!

前公司在制作播客系統(web程序)中,用到從視頻截圖功能.

下邊是截圖catchimg方法,可從大多數的視頻文件中截圖成功,大家可測試;
如果截圖不成功,大多是因為視頻本身的問題,如編碼標準或加了密.
但從在線錄制的視頻flv文件中截圖,還未發現截圖失敗;

/// <summary>
/// @從視頻文件截圖,生成在視頻文件所在文件夾
/// 在web.config 中需要兩個前置配置項:
/// 1.ffmpeg.exe文件的路徑
/// <add key="ffmpeg" value="e:/ffmpeg/ffmpeg.exe" />
/// 2.截圖的尺寸大小
/// <add key="catchflvimgsize" value="240x180" />
/// 3.視頻處理程序ffmpeg.exe
/// </summary>
/// <param name="vfilename">視頻文件地址,如:/web/flvfile/user1/00001.flv</param>
/// <returns>成功:返回圖片虛擬地址; 失敗:返回空字符串</returns>
public string catchimg(string vfilename)
{
//取得ffmpeg.exe的路徑,路徑配置在web.config中,如:<add key="ffmpeg" value="e:/ffmpeg/ffmpeg.exe" />
string ffmpeg=system.configuration.configurationsettings.appsettings["ffmpeg"];

if ( (!system.io.file.exists(ffmpeg)) || (!system.io.file.exists(vfilename)) )
{
return "";
}

//獲得圖片相對路徑/最后存儲到數據庫的路徑,如:/web/flvfile/user1/00001.jpg
string flv_img = system.io.path.changeextension(vfilename,".jpg") ;

//圖片絕對路徑,如:d:/video/web/flvfile/user1/0001.jpg
string flv_img_p = httpcontext.current.server.mappath(flv_img);

//截圖的尺寸大小,配置在web.config中,如:<add key="catchflvimgsize" value="240x180" />
string flvimgsize=system.configuration.configurationsettings.appsettings["catchflvimgsize"];

system.diagnostics.processstartinfo startinfo = new system.diagnostics.processstartinfo(ffmpeg);
startinfo.windowstyle = system.diagnostics.processwindowstyle.hidden;

//此處組合成ffmpeg.exe文件需要的參數即可,此處命令在ffmpeg 0.4.9調試通過
startinfo.arguments = " -i " + vfilename + " -y -f image2 -t 0.001 -s " + flvimgsize + " " + flv_img_p ;

try
{
system.diagnostics.process.start(startinfo);
}
catch
{
return "";
}

///注意:圖片截取成功后,數據由內存緩存寫到磁盤需要時間較長,大概在3,4秒甚至更長;
///這兒需要延時后再檢測,我服務器延時8秒,即如果超過8秒圖片仍不存在,認為截圖失敗;
///此處略去延時代碼.如有那位知道如何捕捉ffmpeg.exe截圖失敗消息,請告知,先謝過!
if ( system.io.file.exists(flv_img_p))
{
return flv_img;                                            
}

return "";
}

待解決問題:
就是我無法從ffmpeg.exe捕捉截圖失敗消息~
不知能看到這篇日志的行家可否有辦法取得,我目前只能通過檢測圖片是否生成來判斷成功與否,但時間較慢,因為這個檢測程序就讓用戶要多等大概4,5秒時間.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临猗县| 元谋县| 滦平县| 临洮县| 江津市| 昔阳县| 盈江县| 河北省| 义乌市| 西城区| 娱乐| 龙游县| 赞皇县| 兴山县| 绩溪县| 教育| 商水县| 闻喜县| 汝南县| 榕江县| 安多县| 南投县| 赤峰市| 宣城市| 上饶市| 交城县| 香河县| 军事| 巴东县| 高陵县| 清流县| 西青区| 邵东县| 扶余县| 天祝| 望江县| 枣庄市| 鸡泽县| 噶尔县| 嘉祥县| 凤台县|