<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 8  文章 - 55  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    朋友的Blog

    最新評論

    閱讀排行榜

    評論排行榜

    前公司在制作播客系統(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秒時間.


    asp中,通過wsh也可以完成截圖功能

    '關于什么是WSH可參考微軟網站:
    'http://www.microsoft.com/china/technet/columns/scripts/sg1002.asp
    'http://www.microsoft.com/china/technet/windows2000/whitebook/scrphost.asp


    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
    <%
    '=============================程序準備===============================

    'cmd.exe是win2000的內置命令文件,在\winnt\system32目錄中
    'winrar.exe是WinRAR的核心程序

    '=============================程序開始===============================

    Dim? Cmd_path,Target_path,Source_path,Shell,Str_cmd,Output

    Cmd_path=Server.MapPath("cmd_file")
    'rar.exe,cmd.exe的存放路徑

    Source_path=Server.MapPath("test.rar")
    '要解壓的文件及其路徑

    Target_path=Server.MapPath(".")
    '解壓后的目錄

    Set Shell=Server.Createobject("Wscript.Shell")
    '關于什么是WSH可參考微軟網站:
    'http://www.microsoft.com/china/technet/columns/scripts/sg1002.asp
    'http://www.microsoft.com/china/technet/windows2000/whitebook/scrphost.asp

    Str_cmd=Cmd_path & "\cmd.exe /c " & Cmd_path & "\winrar.exe x -o+ -p- "
    'cmd.exe帶/c參數是指執行字符串指定的命令后終止。
    'winrar.exe所帶的參數"x -o+ -p-"分別指"以完整路徑名稱從壓縮文件解壓、覆蓋已存在的文件、不詢問密碼"。
    '更多Winrar參數/開關在Winrar的幫助中有非常詳細的說明。

    Str_cmd=Str_cmd & Source_path & " " & Target_path
    'Response.Write(Str_cmd)

    Output=Shell.run(Str_cmd,1,true)

    If Output = 0 Then
    ? Response.write("解壓成功!")
    Else
    ? Response.write("解壓失敗!")
    End If

    %>

    posted on 2006-06-28 11:21 blog搬家了--[www.ialway.com/blog] 閱讀(1343) 評論(3)  編輯  收藏 所屬分類: ffmpeg

    FeedBack:
    # re: asp中,通過wsh也可以完成截圖功能 2006-10-14 21:13 夢兒``
    這是你的么?
    真不知道你這么厲害`
    這段時間都在做什么,都N久沒有看到過你了?
    聯系不到你人```  回復  更多評論
      
    # re: asp中,通過wsh也可以完成截圖功能 2006-10-16 09:10 乞怪豬在學習!
    這BLOG是我的,這個東東不是我寫的是我轉別人學習用的,

    你是誰??sorrry!我不記得你了??:(  回復  更多評論
      
    # re: asp中,通過wsh也可以完成截圖功能 2006-10-26 12:42 wb
    注意,你這個好像不是通過asp/wsh解圖,而是通過asp/wsh解壓縮文件  回復  更多評論
      
    主站蜘蛛池模板: 亚洲色欲色欲www在线丝| 最近的中文字幕大全免费8| 日韩a级毛片免费观看| 亚洲一区免费视频| 三年片在线观看免费大全| 亚洲国产精品白丝在线观看| 最近中文字幕大全中文字幕免费 | 亚洲国产成人爱av在线播放| 亚洲AV无码一区二区三区鸳鸯影院| 女人让男人免费桶爽30分钟| 国产精品无码亚洲精品2021| 波多野结衣一区二区免费视频| 老司机精品视频免费| 国产亚洲精品自在线观看| 精品免费视在线观看| 亚洲视频手机在线| 国产成人A在线观看视频免费| 亚洲成在人线在线播放无码| 免费va人成视频网站全| 91免费在线视频| 亚洲伊人tv综合网色| 手机在线毛片免费播放| 污视频网站免费观看| 亚洲AV无码精品无码麻豆| 中国人xxxxx69免费视频| 亚洲日本一线产区和二线产区对比| 免费又黄又爽又猛的毛片| 中文字幕a∨在线乱码免费看| 91亚洲va在线天线va天堂va国产 | 免费无码成人AV在线播放不卡| 亚洲卡一卡2卡三卡4麻豆| 日本免费观看网站| 一区二区三区免费在线观看| 91精品国产亚洲爽啪在线观看| 成年女人喷潮毛片免费播放| 一区二区三区免费视频网站| 亚洲一区免费在线观看| 亚洲人成网站色在线入口| 最近免费2019中文字幕大全| 国产成人亚洲精品电影| 伊人久久综在合线亚洲2019|