国产探花免费观看_亚洲丰满少妇自慰呻吟_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秒時間.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 同心县| 子长县| 图片| 雅安市| 临西县| 洛阳市| 乌兰浩特市| 东阳市| 柯坪县| 阿拉尔市| 文化| 涿州市| 溧水县| 新竹县| 桃园市| 恩施市| 黄浦区| 开化县| 清远市| 高阳县| 和静县| 克什克腾旗| 静安区| 和平县| 措勤县| 古交市| 新昌县| 湖州市| 崇礼县| 裕民县| 贵港市| 湘阴县| 兴化市| 寿阳县| 凭祥市| 漳浦县| 旌德县| 泗阳县| 东港市| 旺苍县| 丰县|