ffmpeg編譯在windows編譯調試一直使自己頭疼,用的比較多的方法一直是使用mingw什麼東西的,也沒弄太清楚,最近發現有一個叫 Oliver的傢伙搞了個shiftpoject ffmpeg,
參考網址:https://github.com/ShiftMediaProject
現在說說我的編譯經歷:我首先下載的他的工程ffmpeg,根據他的講解,找了個傻瓜編譯方式,按照他的方式,先安裝了git,在SMP文件夾了有個project_get_dependencies.bat
批處理文件,然後一直運行,運行了n多次把所有的依賴都從他的git上down下來了,然後就是yasm相關的問題,原來他的倉庫也有,網址:https://github.com/ShiftMediaProject/VSYASM/releases/tag/0.2 直接下載zip,有個bat腳本,雙擊就可以安裝了,傻瓜方式。下載完之後各個依賴庫及ffmpeg源碼的層次結構如圖:
然後找到:FFmpeg-master\FFmpeg-master\SMP 文件夾下,打開ffmpeg_deps.sln 即可編譯等待。這個應該是完全編譯,各個庫都加進來了,如果根據ffmpeg 的configure
進行編譯配置將如何?
這個問題需要下載他的FFVS-Project-Generator 用vs運行編譯出bin文件夾下相關的exe. 將其放到ffmpeg文件夾下:
如果 使用他的自帶的默認不附加任何模塊的話,可以直接編譯:
ffmpeg_generator.exe --enable-gpl --enable-version3 --disable-bzlib --disable-iconv --disable-zlib --disable-lzma --disable-sdl --toolchain=msvc
我自己要加入sdl 和 libx264 則需要先打開對應的sdl文件夾和x264文件,用vs編譯會將對應的lib 和 相關的 .h文件生成到../../msvc 文件夾下,以我自己的事例爲例:
如果運行成功的話會出現Complete Successfully 這樣就算configure完成了,然後就可以打開對應的sln,用vs2013 進行編譯,問題就不大了。
注:如果提示SDL.h 或x264.h未找打,說明你還沒有提前編譯對應sdl 和 x264 工程,他會自動將對應的lib文件和.h文件生成到對應的msvc文件夾下,然後configure纔會成功。