同学们在学习视频课小白系统入门这门课的过程中,经常遇到一些问题,这里总结一些最常见的问题,供大家参考:
Q: 在 Mac 10.15.3 系统下编译 ffmpeg 成功后,在运行 ffmpeg 命令时出现crash.
A: 重新编译ffmpeg,在执行 ./configure 时增加 --extra-cflags=“fno-static-check” 选项,注意该选项一定要放在前面,否则编译有问题。
Q:添加 --extra-cflags=“fno-static-check” 选项 仍然 crash
A: 编译时保持尽量少的参数,应该是与其它一些参数有突冲
Q:Xcode 编译成功,但执行失败
A:在执行课程的例子时,要将沙盒关闭掉,在info.list中增加访问mic phone 权限。
Q:关闭沙盒后,程序仍然无法执行
A:要有开发者证书才可以。
Q:引入ffmpeg库后,报code signature…not valid
A:
1. 打开 Mac 中的 keychain Access.app, 选择“我的证书”
2. 执行 codesign -f -s "证书名" xxx.dylib
3. 为了避免逐个签名,可以进行批量操作 codesign -f -s "证书名" /usr/local/ffmpeg/lib/*.dylib
Q: ffmpeg 执行时提示没有权限
A: 切目录切换到你自己的用户目录下再执行ffmpeg。
虚似机中每次获取的数据很小,只有64个字节,如果进行重采样?
A: ffmpeg中最低采样个数为32个,所以只有 64 字节数据时,是无进行重采样的。解决办法是将数据放到一个缓冲区中,积攒到一定大小后,再进行重采样。
Q: 在从设备采体数据时,返回错误 -35
A: 说明你的设备现在暂时还没准备好,此时你应该等待它几秒,之后就可以正常读数据了。
Q:在编码时,编码器返回 -35 错误
A:此时说明编码器没有准备好,需要等待几秒钟。
Q: 编译ffmpeg时没有ffplay
A:
1.首先安装 SDL2 库
2. 在 ffmpeg源码中执行 ./configure 时并增加 --enable-sdl2
3. make && make install
Q: 采集到的音频数据编码 AAC 时,报无法找到libfdk-aac库
A:
1. 安装好 fdk-aac库
2. 重新在ffmpeg源码目录下执行./configure 并增加--enable-fdk-aac 参数
3. make && make install
Q: 在Linux中何采集音频数据
A: ffmpeg -f alsa -i hw:0,0 xxx.wav
Q: 在 Linux 中找不到 alsa 设备
A:可以通过 arecord -l 查看你linux系统下有哪些音频设备。如果没有alsa, 可以使用 oss.
Q:编译ffmpeg 时 filter 编译不过
A:选择使用 libstdc++ 库试试
Q: Windows下编译ffmpeg
Q: AAC 编码为 AAC_HE_V2 时,声音不对
A:这是因为我用的 AAC 版本比较老,老版本的 AAC 与新版本的 AAC 可能有一些差异,这个我会后面查找一下原因。大家测试时可以将profile修改为 AAC HE 或 AAC LC,这样就可以正常编码出 AAC 数据了。
A:首先确认是否已经将 pkg-config
工具安装好了。可以执行下面的命令:
pkg-config
如果提示没有安装,则先将该工具安装好,安装命令如下:
- ubuntu
apt intall pkg-config
- mac
brew install pkg-config
- cygwin
apt-cyg install pkg-config
- centos
yum install pkg-config
安装完该工具后仍然报错?那再按照具体的错误看下面的解决方案吧。
Q:libx264库找不到([ERROR: libx264 not found])
A:
该问题可能由下面三个方面的问题引起。
- libx264库没有安装。对于这种情况有两种解决办法:
- 其一,是通过平台的安装工作进行安装,如 apt/brew/yum install x264。(注:在Linux下应该安装 libx264-dev)。
- 其二,是通过源码安装,步骤如下:
1. wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2 2. bunzip2 last_x264.tar.bz2 3. tar -vxf last_x264.tar 4. ./configure --enable-static --enable-shared --disable-asm --disable-avs 5. make && sudo make install
- 通过 pkg-config 命令无法找到。对于这类问题,我们可以使用下面的命
pkg-config --cflags --lib libx264
看是否可以找到 libx264,如果找不到,就说明确实是这个问题。解决的办法是设置环境变量。
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/xxx/xxx/lib/pkgconfig
其中 xxx
由你的实际路径代替。
注,有可能你的系统中并没有装 pkg-config工具,可以使用 brew/apt/yum install pkg-config进行安装。
- 无法链接上libx264, 这是由于通过环境变量 LD_LIBRARY_PATH 无法定位到 libx264库。解决的办法也很简单,与上面类似,可以通过设置环境变量来解决该问题。
export LD_LIBRARY_PATH=$LIB_LIBRARY_PATH:/xxx/xxx/lib
其中,xxx
由你的实际路径代替。
当然,你也可以将环境变量设置在脚本里,这样就不用每次都写export命令了。只需要将上面的两条语句加入到 ~/.bashrc / 或~/.bash_profil 文件里,然后在控制台执行 source ~/.bashrc
或 source ~/.bash_profile
即可。
Q:fdk-aac库找不到([ERROR: libfdk_aac not found])
A:该问题与上面的 libx264 问题类似,所以只需要将上面的 libx264替换为libfdk-aac即可。这里不在赘述。
Q:编译不出ffplay
A:引起该问题有以下几方面的原因:
- 所使用的操作系统没有安装图形库。如有的同学在阿里的云服务器上想安装ffplay是肯定不行的。
- 没有安装 SDL2 库。解决办法是通过 brew/apt/yum install sdl2 即可 或 通过 SDL2 源码安装。安装完成后,要重新进行到 ffmpeg目录下,执行 ./configure…这指命令。
- 有的同学编译ffmpeg时,在ffmpeg目录执行./configure …时没有添加 --enable-sdl2 选项也会导致无法编译出 ffplay
- SDL2与最新的Mac系统 mojave不兼容。解决办法:
Q:非Mac同学如何学习本课程
A:本课程中的例子的界面是由 Swift 编写的,如果你没有 Mac 系统的话,你可以用 Qt 甚至不用界面开发,代码中与ffmpeg相着的代码都是跨平台的。
热门评论
pcm 16k 在安卓播放 出现声音卡顿怎么办
<p>
</p>
本文原创发布于慕课网 ,转载请注明出处,谢谢合作
作者:李超
链接:https://www.imooc.com/article/303080
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作