<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解壓縮文件  回復  更多評論
      
    主站蜘蛛池模板: 亚洲VA中文字幕无码毛片| 久久乐国产精品亚洲综合| 亚洲国产精品成人精品小说| 国产在线精品免费aaa片| 日本红怡院亚洲红怡院最新 | 亚洲成a人片在线观看日本| sihu国产精品永久免费| 亚洲国产中文v高清在线观看| 日韩在线视频播放免费视频完整版 | 亚洲啪啪免费视频| 国内免费高清在线观看| 亚洲乱色伦图片区小说| 国产免费av一区二区三区| 特级毛片在线大全免费播放| 毛茸茸bbw亚洲人| 香港a毛片免费观看 | 7777久久亚洲中文字幕| 四虎成人免费大片在线| 免费国产高清毛不卡片基地| 亚洲精品午夜无码电影网| 日韩免费人妻AV无码专区蜜桃 | 污污的视频在线免费观看| 亚洲无线码在线一区观看| 日韩精品免费视频| 国产婷婷综合丁香亚洲欧洲| 免费人成网站在线高清| 国产做国产爱免费视频| 亚洲区精品久久一区二区三区| 免费无码成人AV片在线在线播放| 一级毛片成人免费看a| 亚洲激情视频在线观看| 黄网址在线永久免费观看 | 亚洲欧洲日产国码高潮αv| 黄页免费在线观看 | 亚洲欧洲日产国码无码网站| 人与禽交免费网站视频| 国产精品亚洲精品日韩电影| 亚洲高清国产AV拍精品青青草原 | 亚洲人成网站在线在线观看| 国产专区一va亚洲v天堂| 真人做A免费观看|