ffmpeg項目集成了大量的音視頻協議,非常優秀。
爲了將該項目和另外一個項目對接,需要對ffmpeg項目進行再開發,儘量不要動ffmpeg項目的源碼,本來打算使用 ffmpeg 庫 + ffmpeg_2 程序的方式再開發。
結果ffmpeg程序對ffmpeg項目依賴太大,不好分離,不能像 ffplay 那樣。
不能把事情弄得太複雜,所以我打算在源項目基礎上做,我複製了一個ffmpeg_2.c 文件,打算在工程上添加一個 ffmpeg_2 的可執行文件的編譯過程。
-
拷貝文件:
cp fftools/ffmpeg{,_2}.c cp doc/ffmpeg{,_2}.texi
-
修改./configure文件,感覺不太需要,不過工程管理在configure文件上,這裏修改也是應該的。
-
--disable-ffmpeg disable ffmpeg build # 在 disable-ffmpeg 下面 添加一個 --disable-ffmpeg_2 disable ffmpeg_2 build
-
PROGRAM_LIST=" ffplay ffprobe ffmpeg " # 改爲 PROGRAM_LIST=" ffplay ffprobe ffmpeg ffmpeg_2 "
- 修改 fftools/Makefile
-
AVPROGS-$(CONFIG_FFMPEG) += ffmpeg # 這句下面添加 AVPROGS-$(CONFIG_FFMPEG_2) += ffmpeg_2
-
AVBASENAMES = ffmpeg ffplay ffprobe # 改爲 AVBASENAMES = ffmpeg ffplay ffprobe ffmpeg_2
-
OBJS-ffmpeg += fftools/ffmpeg_opt.o fftools/ffmpeg_filter.o fftools/ffmpeg_hw.o # 這句下面添加 OBJS-ffmpeg_2 += fftools/ffmpeg_opt.o fftools/ffmpeg_filter.o fftools/ffmpeg_hw.o
- 然後運行
./configure make -j8
就會生成一個 ffmpeg_2 的程序,問題不大了。
可以在ffmpeg_2.c 中根據自己的項目進行修改了。