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 中根据自己的项目进行修改了。