换到Debian 9,终于,Debian又从libav回归到ffmpeg了,版本是3.2。
遇到一个奇怪的问题。mod_av都能正常编译,只是在加载的时候会崩溃。
(gdb) bt
#0 __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/../multiarch/memmove-vec-unaligned-erms.S:242
#1 0x00007f71dcad72f8 in ?? () from /usr/lib/x86_64-linux-gnu/libopenmpt.so.0
查不出问题,好像是加载libopenmpt这个库的时候失败了。不知道ffmpeg从什么时候起依赖这个库。
找了好多办法,没解决。只好放大招了。
到官网下载源码 libopenmpt-0.2.8461-beta26.tar.gz
https://lib.openmpt.org/libopenmpt/
解压后编译
tar xvzf libopenmpt-0.2.8461-beta26.tar.gz
cd libopenmpt-0.2.8461/
make
查看编译成果:
find . -name *.so
./bin/libopenmpt.so
./bin/libopenmpt_modplug.so
好了,替换:
rm /usr/lib/x86_64-linux-gnu/libopenmpt.so.0
cp ./bin/libopenmpt_modplug.so /usr/lib/x86_64-linux-gnu/libopenmpt.so.0
再次在FreeSWITCH中加载 mod_av,就不会崩溃了。