[ASP.NET]用MPlayer作影片截圖
作者: fase 日期: 2010-08-05 16:37
一般在ASP.NET上要作影片截圖都是用ffmpeg
應該說找到的範例都是用ffmpeg
但我為什麼要用MPlayer來作呢
因為我試著用ffmpeg來截取wmv3的影片
但是卻不成功
上網查了半天還是不知該如何解決
所以就改用MPlayer來作
以下為C#程式碼
using System.Diagnostics;
Process mplayer = new Process();
mplayer.StartInfo.FileName = Server.MapPath("~/mplayer/mplayer.exe");
mplayer.StartInfo.Arguments = SaveFileName + " -ss 0.1 -nosound -vo jpeg -frames 1";
mplayer.StartInfo.WorkingDirectory = Server.MapPath("~/mplayer/mplayer.exe");
mplayer.Start();
mplayer.WaitForExit();
mplayer.Close();
mplayer.Dispose();
另外MPlayer跟ffmpeg不同的地方
除了參數不同(廢話)
就是ffmpeg能夠指定輸出的檔名跟尺寸
因為MPlayer無法指定,自動輸出成8位數字的流水號
如果你只抓一張jpg的,則是輸出成00000001.jpg
所以要自行去改成所要的檔名,並且再去縮成所要的尺寸
至於MPlayer的參數,請到其官方網站去查詢
我這裏要補充說明的是輸出的目錄
當初我並沒有設定WorkingDirectory
在開發環境下是有產生截圖
但檔案位置竟然在專案檔所在的目錄
雖然MPlayer在參數jpeg後可以加:outdir=xxx去指定輸出目錄
但是我把檔案放到Server上去跑,就一直沒看到截圖在哪裏
也不知道到底沒執行MPlayer成功,還是沒截圖成功
最後看到可以設定WorkingDirectory,一設定好就沒問題了
雖然是Process小小的參數
卻影響到輸出的結果
應該說找到的範例都是用ffmpeg
但我為什麼要用MPlayer來作呢
因為我試著用ffmpeg來截取wmv3的影片
但是卻不成功
上網查了半天還是不知該如何解決
所以就改用MPlayer來作
以下為C#程式碼
using System.Diagnostics;
Process mplayer = new Process();
mplayer.StartInfo.FileName = Server.MapPath("~/mplayer/mplayer.exe");
mplayer.StartInfo.Arguments = SaveFileName + " -ss 0.1 -nosound -vo jpeg -frames 1";
mplayer.StartInfo.WorkingDirectory = Server.MapPath("~/mplayer/mplayer.exe");
mplayer.Start();
mplayer.WaitForExit();
mplayer.Close();
mplayer.Dispose();
另外MPlayer跟ffmpeg不同的地方
除了參數不同(廢話)
就是ffmpeg能夠指定輸出的檔名跟尺寸
因為MPlayer無法指定,自動輸出成8位數字的流水號
如果你只抓一張jpg的,則是輸出成00000001.jpg
所以要自行去改成所要的檔名,並且再去縮成所要的尺寸
至於MPlayer的參數,請到其官方網站去查詢
我這裏要補充說明的是輸出的目錄
當初我並沒有設定WorkingDirectory
在開發環境下是有產生截圖
但檔案位置竟然在專案檔所在的目錄
雖然MPlayer在參數jpeg後可以加:outdir=xxx去指定輸出目錄
但是我把檔案放到Server上去跑,就一直沒看到截圖在哪裏
也不知道到底沒執行MPlayer成功,還是沒截圖成功
最後看到可以設定WorkingDirectory,一設定好就沒問題了
雖然是Process小小的參數
卻影響到輸出的結果
標籤:
ASP.NET
評論: 0 |
引用: 0 |
閱讀: 4577 |
回到頁首
NeatUpload的MultiFile限制上傳數量 (2010-09-23 17:56)