天天看點

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

0、為什麼要在vs中編譯ffmpeg.c

用ffmpeg有很多的用途,比如可以用來轉碼,也可以用來解碼,光是通過上一章的博文,得到幾個對應的dll,其實作用并不大,你可以通過在vs中編譯ffmpeg.c來看看,是如何使用這些dll的,當然,也可以通過編譯ffplay.c來看看一個播放器是如何做成的

1、先把ffmpeg.c加入在vs中

建立一個空的工程,然後把ffmpeg.c加進來,嘗試一下編譯,看看都需要加入些什麼

2、修改ffmpeg.c

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

注釋掉40行,然後把對應的頭檔案拷過來

因為我是通過mingw來編譯的,是以在當時生成出來dll的時候,也順便把頭檔案給拷貝出來了,是以這裡可以直接放到vs的這個工程中:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

然後在工程設定中,給他包含進來

還缺少的頭檔案,可以去ffmpeg的源代碼裡面搜尋:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

3、解決一些别的問題

這裡的34行注釋掉,類似的後面遇到#include 的也都注釋掉

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

提示“error C2054: 在“inline”之後應輸入“(””這個錯誤的,全都去掉incline即可

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

在剛才加入的config.h檔案的最前面加入:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

這樣就解決了下面的問題

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

100行的HAVE_STRUCT_POLLFD修改成POLLIN

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

4、在繼續添加需要的檔案

然後看到下面的錯誤

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

其實是這個錯:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

把所有用到這個宏的地方都修改成:

AVRationalr= {1,AV_TIME_BASE };

用r這個變量來替代這個宏

使用_read,凡是提示這樣的錯誤,都是這麼解決

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

遇到這個錯誤:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

用以下語句替換:

char error_[1024];

av_make_error_string(error_,1024,ret);

error_

這個語句

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

用以下語句替換:

AVRationalr2= {1,1000 };

還需要改這裡:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

1874行還需要修改這裡:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

3226添加下面幾行

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

第一個if(debug_ts){}應該這麼樣修改:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

最後一個if(debug_ts){}應該這麼樣修改:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

4、其他的一些問題

比如snprintf修改成_snprintf、read修改成_read等,這些都容易解決

5、測試使用一下生成出來的ffmpeg.exe

在工程目錄中放一個測試視訊檔案video.mp4,設定調試的指令行為-i video.mp4 -vframes 300 -y -f gif a.gif

這個指令行的意思是,把video.mp4的前300幀做成一個a.gif(一些另外的使用指令,可以參考ffmpeg官網或者google、baidu)

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

這就是得到的a.gif:

vs2012調試ffmpeg.c 0、為什麼要在vs中編譯ffmpeg.c 1、先把ffmpeg.c加入在vs中 2、修改ffmpeg.c 3、解決一些别的問題 4、在繼續添加需要的檔案 4、其他的一些問題 5、測試使用一下生成出來的ffmpeg.exe 6、整個測試工程csdn下載下傳

6、整個測試工程csdn下載下傳

csdn的下載下傳位址:http://download.csdn.net/detail/zengraoli/7610219

或許還需要到x264、x265的dll:http://download.csdn.net/detail/zengraoli/9461306

改動比較多,花了大概一個晚上解決的問題,是以收取的下載下傳分比較高,請盡量自己動手修改!