2015年8月30日 星期日

C#筆記:圖片序列轉換成影片


最近在工作上遇到了一個需求,由於我們開發的是WinForm。
客戶希望能夠將WinForm上的某些畫面錄下來存成影片檔。

呃…小弟才疏學淺,一開始還真不知道要怎麼下手。

首先有幾個方向:
找看看有沒有現成的軟體可供使用
找看看有沒有現成的Library可供使用
找看看有沒有現成的新公司可供跳槽

最初的想法是說有沒有Library可以做到,可以省去很多的麻煩。
不過說要問Google大神,關鍵字也不知從何下起。

後來同事提出一個想法,將WinForm的畫面拍下來,然後藉由大量的圖片來達成動畫的效果。
這個想法有兩點需要達成。
1.如何拍下winform的圖片?
2.如何將圖片合成影片?

第一點其實不難,因為很多人都有這種需求,所以順利解決。
難的地方在於第二點。

以下記錄嚐試的結果。

Splicer
這個函式庫算是簡單好用,但是作出來的影片畫質令人驚豔……的差。
官網上直接就有貼範例了,實際測試使用上也是OK。

不過製作影片的時間有點長,還有產出影片的長寬似乎必須在Compile出dll前決定。
這點有點不方便。
總不能指定大小之後才去編譯出dll來使用吧……

Splicer的畫質其實是有改善的方法,在官網的討論區有提到
不過這個方法,只限wmv,修改avi畫質的方法我還沒有找到。

1.到google下載prx檔
在下提供兩個
1280x768
1920x1080

2.換掉HighQualityVideo.prx
到Splicer專案中的WindowMedia,將剛剛的prx檔改名成HighQualityVideo.prx,換掉原本的HighQualityVideo。
可以在下面圖片的地方改掉影片長寬


3.重新Compile
之後使用重新編譯過的dll檔,你會發現畫質好很多。


參考資料:
裡面第二個回答使用Splicer
Stackoverflow

2 則留言:

  1. 回覆
    1. 需要喔。
      Splicer編譯過後會產生一個dll檔,將dll引用之後才能使用。

      刪除