在向imx6移植ffmpeg后,一般的编解码操作没有问题,但是当从摄像头录视频时,
ffmpeg -f video4linux2 -s 640*480 -r 10 -i /dev/video0 test.asf
报以下运行错误:
fmpeg: relocation
error: /usr/local/ffmpeg/lib/libavfilter.so.3:
symbol sws_isSupportedEndiannessConversion,
version LIBSWSCALE_2 not defined in file libswscale.so.2
查了一下,这是运行时,ffmpeg链接的库出现问题,
发现几个该链接到移植的库,最后连接到系统库,造成版本不一致问题,因而产生错误,试图修改/etc/lld.so.conf文件,停止加载默认的系统库,最后也不好使,最后无奈,只能用编译的库替换系统库,注意,在覆盖之前备份一下,其他应用出错时可以还原,利用mv而不是cp,否者链接文件会失效
替换这两个即可
之后运行正常,使用ffplay播放正常
最后多说一句,
链接文件的复制不要跨系统(win,linux),否者会失效,ldconfig时报这种错,多是链接文件失效