可以透過 Accord.Video.FFMPEG 此一函式庫來協助處理影像(檔案)相關處理,但是首先需要透過 NuGet 套件管理員進行安裝,步驟如下:

 

工具 > NeGet 套件管理員 > 套件管理器主控台 

image

 

在 Console 中輸入以下指令,即可安裝完成。

1
Install-Package Accord.Video.FFMPEG
 

 

若已知道要取得的Frame是第幾個,則可以透過下述 getFrame函數取得該Frame( Bitmap )

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
private Bitmap getFrame(string src_path, int idx)
{
    int frameCount = 0;

    Accord.Video.FFMPEG.VideoFileReader videoFileReader = new Accord.Video.FFMPEG.VideoFileReader();
    videoFileReader.Open(src_path);
    frameCount = (int)videoFileReader.FrameCount;

    Debug.WriteLine("Frame Count : " + videoFileReader.FrameCount);
    Debug.WriteLine("Frame Rate : " + videoFileReader.FrameRate);
    Debug.WriteLine("Width " + videoFileReader.Width + " ,Height " + videoFileReader.Height);

    if (idx == -1)  idx = (int)(frameCount * 0.4);  // defalut use index

    Bitmap bitmap = videoFileReader.ReadVideoFrame(idx);
    return bitmap;
}

 

第 9 - 11 行 : 展示可以透過 FrameCount、FrameRate、Widthidth 和 Height 等屬性或方法取得影片的相關資訊

第 13  行 : 是單純不知道範圍時,可以直接取得某個比例的影像之處理方

第 15  行 : ReadVideoFrame(int) 才是正式將該所引的Frame讀取出來

 

專案程式碼( 連結 )

 

arrow
arrow
    文章標籤
    C#
    全站熱搜
    創作者介紹
    創作者 Lung-Yu,Tsai 的頭像
    Lung-Yu,Tsai

    Lung-Yu,Tsai 的部落格

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()