Specified sample format -1 is invalid or not supported

ffmpeg本身自带的aac并不支持AV_SAMPLE_FMT_S16的,需要重采样为AV_SAMPLE_FMT_FLTP。如果没有重采样可能报错:

Specified sample format s16 is invalid or not supported

但如果不想重采样也可以换编码器,比如fdk-aac,这是个比ffmpeg本身更优的编码器,也是主流选择之一。之前专门写过一篇关于编译安装fdk-aac的博客。
附链接:

https://blog.csdn.net/weixin_43466192/article/details/120843342

但我使用了fdk-aac,AV_SAMPLE_FMT_S16格式后。之前在ubuntu16下并无问题。把环境移植到centos7后,出现了错误:

Specified sample format -1 is invalid or not supported

查看宏发现AV_SAMPLE_FMT_S16是1而不是-1,就开始怀疑是版本问题。
使用命令查看我编译的可执行文件Capture

ldd Capture

发现它连接的fdk-aac库并不是我编译后放在/usr/local/lib中的库,
而是/usr/local/lib64中的一个fdk-aac库,说明使用了centos7自带的库了,立马卸载系统自带的库:

yum remove fdk-aac

重新编译可执行文件Capture后执行:

ldd Capture

发现它去/usr/local/lib中去连接fdk-aac了。
也不会报错了。

ffmpeg是音视频必备,但即使从业数年,它似乎依然有无穷的秘密,感兴趣添加笔者微信:YQW1163720468,加入ffmpeg微信群讨论。但记得备注:ffmpeg爱好者

猜你喜欢

转载自blog.csdn.net/weixin_43466192/article/details/121010281#comments_28202319