最近在写自己的rtsp 服务器 程序 测试的时候用ffmpeg拉流 作为数据源测试
然后发现 程序退出 或者按ctrl+c的时候 ffmpeg拉流的这个线程总是挂掉的问题 如下图
gdb调试打印堆栈 发现是死在sleep哪里 莫名奇妙的问题
因为 ffmpeg都是之前的代码没有问题 搞了大概有一天 后来想想可能是ffmpeg版本的问题
就重新编译了 ffmpeg 发现解决了这个问题 编译的是静态库 需要注意 静态库的顺序问题
不然会包一堆 找不到函数的问题 如下图
按这个顺序就可以
-lavformat -lavcodec -lavutil -lswscale -lswresample -lavdevice -lpthread
然后又报 找不到uncompress 如下图 需要引入 -lz
找不饶lzma_stream_decoder 需要引入 -llzma
最终编译好了
然后重新运行 程序 发现不会挂了 如下图