2013-07-04 27 views
0

我想要做的是使用msvC++製作一個示例應用程序,它將輸入視頻文件並對其進行解碼。我想要使​​用我的應用程序中使用的ffmpeg函數來完成所有的解碼。我閱讀了dranger的教程,但無法實現它,任何幫助將非常感激。如何使用ffmpeg和MSVC++來解碼視頻?

回答

0

你有兩個選擇:

  1. 你可以建立自己的源代碼。
  2. 你可以用dll下載一個「已經建好的版本」。

如果我是你,我會選擇第二個選項。這正是我開始體驗ffmpeg時所做的。如果您從未構建源代碼,構建可能會很痛苦。

你可以從here找到最新的ffmpeg版本(你應該下載「dev」版本)。

將這個文件裏面VisualStudio20xx /項目/爲yourprojectname /爲yourprojectname/

下載,你應該表現出MSVC頭& .lib文件的目的地後。 轉到 項目 - >屬性 - >配置屬性 - > C/C++ - >常規 然後設置 「附加包含目錄」 來的ffmpeg /包括

這應該設置包含文件的ffmpeg。

對於.lib文件:

項目 - >屬性 - >配置屬性 - >鏈接器 - >常規 集 「附加庫目錄」 到FFmpeg的/ lib目錄

這應該設置.lib文件。

現在應該能夠包含的ffmpeg庫由

extern "C" 
{ 
    #include <libavcodec/avcodec.h> 
} 

*(!)如果這些步驟後獲得數千LNK2001鏈接錯誤,你應該添加一些附註註釋爲您的包括。我不是%100肯定這些評論做什麼,你可以搜索它。但這是MSVC理解東西的東西。

例如,

#pragma comment (lib,"avcodec.lib") 

本附註註釋也應該是在外部的 「C」 的範圍。

*(!)如果您收到此編譯錯誤:「UINT64_C」:標識符找不到

您可以使用此宏作爲一種變通方法:

#ifndef __STDC_CONSTANT_MACROS 
#define __STDC_CONSTANT_MACROS 
#endif 

現在談談編碼/解碼的東西,你可以檢查this問題礦包含一個代碼,

  1. 解複用器的文件爲分組
  2. 分組解碼成幀
  3. 將幀編碼爲包
  4. 將包複製到文件中。

我從艱難的方式中學到了東西,但是代碼有很好的評論,所以我認爲你可以理解它究竟是怎樣克服這個過程的。