我有一個視頻解密庫,可以解碼過時的視頻格式,並通過回調函數返回WAV中的BMP和音頻視頻幀。現在我需要在Windows下以任何標準格式編碼一個新視頻。如何在Visual C中編碼視頻?
什麼可能是這樣做的標準方法?我正在使用Win32/C。我猜Windows有它自己的編碼庫和驅動程序,我不需要使用FFMPEG。任何指向示例代碼的指針,或者至少是指向庫的指針都會非常有幫助。
編輯:我接受。 FFMPEG是最簡單的方法。
我有一個視頻解密庫,可以解碼過時的視頻格式,並通過回調函數返回WAV中的BMP和音頻視頻幀。現在我需要在Windows下以任何標準格式編碼一個新視頻。如何在Visual C中編碼視頻?
什麼可能是這樣做的標準方法?我正在使用Win32/C。我猜Windows有它自己的編碼庫和驅動程序,我不需要使用FFMPEG。任何指向示例代碼的指針,或者至少是指向庫的指針都會非常有幫助。
編輯:我接受。 FFMPEG是最簡單的方法。
在Windows上,您有兩個本地選項。
這當然可以通過DirectShow實現,但是您最好享受COM編程以及過濾器,圖形和Monikers(哦我的)的概念。請參見本教程速成班:
我會建議看看VirtualDub的源代碼。這是使用VFW的衆所周知的編碼器。您可以從該軟件中獲得一些想法。
爲了節省自己的心痛,我回應弗蘭克的建議,只是使用FFMPEG。使用正確的參數執行單獨的FFMPEG進程將100%成爲實現編碼目標的最簡單方法。
你的其他選擇包括:
libavcodec - FFMPEG中使用的中央圖書館。我警告說,似乎沒有可用的libavcodec許多Windows二進制文件,因此您可能必須編譯自己的文件,至少需要設置Cygwin或MingW。
ffdshow-tryouts - 基於libavcodec實現爲DirectShow過濾器的視頻編解碼器庫。他們似乎有一個API來操縱它,但它是一個.NET庫。