-
2021-07-08 23:09:53
简述
作为一个计算机方面的小白,对ffmpeg其实没多少了解,只是因为在合并音频和视频要使用到ffmpeg这个工具,所以才下载下来,所以就是一个简单的安装教程。话不多说开始安装吧。
下载
百度网盘
可能有兄弟访问github不是很给力,直接下载这个也是可以的
链接:https://pan.baidu.com/s/1Z7VkOv-_PAub6OfDkyly4Q
提取码:yj5e官网下载
来到官网下载点击跳转
来到下载主页
点击这个进入github,找到资源下载即可
下载这个也可以,我下载的时候出现了很多次github无法访问的情况,同样情况的可以选择百度网盘,链接在上面
下载完成之后解压,打开bin文件夹
这个就是合并音频和视频要用到的,其他高级操作,暂时还没学习,还有设置环境变量,如果只是在python代码调用该exe文件是不需要设置环境变量的。总结
没有深入学习,以后有机会再慢慢去学,现在就是够用就可以了。
更多相关内容 -
FFmpeg 安装教程
2018-01-24 10:14:30FFmpeg 安装教程,本文档详细接介绍了FFmpeg安装过程。希望可以给新手小伙伴一点参考。 -
ffmpeg安装
2022-03-31 15:48:06ffmpeg工具安装的三种方式ffmpeg安装
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
ffmpeg有四种安装方式,分别是apt安装,预编译版本安装,源码安装以及conda安装。
1. apt安装
sudo apt-get update sudo apt-get install ffmpeg 或者 sudo snap install ffmpeg # 卸载 apt-get remove ffmpeg 或者 apt-get purge ffmpeg # 查看ffmpeg在哪个位置 which ffmpeg
2. 预编译安装
对下载的文件继续解压:tar -xf ffmpeg-release-amd64-static.tar.xz
之后,配置环境变量
使用vim进入到etc/profile,按i进入编辑模式,文本末添加:
export PATH=$PATH: ~/ffmpeg # (定位到FFmpeg文件夹即可,如果不知道FFmpeg文件夹所在位置,可以使用pwd命令查看)
之后,再重载配置文件:
source etc/profile
3. 源码安装
采用其他三种方式安装,会有很多编解码器用不了,所以如果要使用其他编解码器得使用源码进行安装,根据自己的需要更改configure配置文件。
进行源码安装之前,首先要安装各种依赖包,否则直接进行源码安装会有很多功能无法使用sudo apt install aptitude # 安装gcc、g++,分别为c、c++编译器 sudo aptitude install build-essential # 安装yasm、nasm.这是两个汇编器,编译FFmpeg需要用到 sudo aptitude install yasm nasm # 安装依赖库,FFmpeg 的安装依赖许多库(如,⾳频编码库,⾳频解码库,视频编解码库等) sudo apt-get install libgmp3-dev sudo apt install pkg-config sudo apt install gnutls-bin sudo aptitude install libaom-dev sudo aptitude install libass-dev sudo aptitude install libbluray-dev sudo aptitude install libfdk-aac-dev sudo aptitude install libmp3lame-dev sudo aptitude install libopencore-amrnb-dev sudo aptitude install libopencore-amrwb-dev sudo aptitude install libopenmpt-dev sudo aptitude install libopus-dev sudo aptitude install libshine-dev sudo aptitude install libsnappy-dev sudo aptitude install libsoxr-dev sudo aptitude install libspeex-dev sudo aptitude install libtheora-dev sudo aptitude install libtwolame-dev sudo aptitude install libvo-amrwbenc-dev sudo aptitude install libvpx-dev sudo aptitude install libwavpack-dev sudo aptitude install libwebp-dev sudo aptitude install libx264-dev sudo aptitude install libx265-dev sudo aptitude install libxvidcore-dev sudo aptitude install liblzma-dev # 上述依赖库使用apt-get安装也是一样的
3.1下载ffmpeg源码
地址:https://ffmpeg.org/download.html#build-linux
对下载的压缩文件进行解压tar -xvf ffmpeg_4.4.orig.tar.xz
3.2 编译
3.2.1 配置编译参数
进入源码文件夹,执行下列命令
./configure --prefix=buildout --enable-gpl --enable-version3 --enable-libspeex --enable-libmp3lame --enable-libvorbis --enable-shared --enable-libfdk-aac --enable-libass --enable-libfontconfig --enable-libfreetype --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopus --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-nonfree
如果报错,则按照对应的错误进行依赖的安装;configure命令成功执行后,在源码目录下执行:
make make install
其中,make命令执行时间比较长,等待编译完成即可。
编译完成后,会在源码目录下多出一个buildout文件夹,该文件夹下生成bin、include、lib、share四个文件夹
3.3 配置环境变量
使用vim命令进入到etc/profile文件,配置下列命令,根据自己的安装路径进行对应的修改
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/cmm/ffmpeg-4.4/buildout/lib export PATH=/root/cmm/ffmpeg-4.4/buildout/bin:$PATH
之后,再重载配置文件:source /etc/profile
3.4 验证
输入命令ffmpeg,如果出现下面画面,说明配置成功
4.conda安装
To fuel with more audio-decoding power, you can install ffmpeg which ships with many audio decoders. Note that conda users on Linux and OSX will have this installed by default; Windows users must install ffmpeg separately.
audioread
如果安装了librosa库,Linux和OSX上的conda用户将会默认安装此软件,如果是Window用户,必须单独安装ffmpeg。也可以直接使用conda进行安装
conda install -c conda-forge ffmpeg
5.参考
- https://blog.csdn.net/liupenglove/article/details/100903564
- https://www.cnblogs.com/wanghuixi/p/7630737.html
- https://www.cnblogs.com/yjq520/p/10592958.html
- https://www.cnblogs.com/carle-09/p/11736390.html
-
ffmpeg安装步骤
2018-09-06 11:27:52linux 系统下安装ffmpeg 视频转码功能的步骤问题,java开发 -
ffmpeg安装插件_all
2019-03-20 11:14:15第一次少传了两个文件 这次是全的 ffmpeg安装插件_all -
ffmpeg 安装 依赖包
2014-08-18 18:05:51参考了博文Linux下ffmpeg的完整安装http://www.cnblogs.com/wanghetao/p/3386311.html 下载了相关的安装包,打包到一起 a52dec-0.7.4.tar.gz amrwb-7.0.0.1.tar.bz2 faad2-2.7.tar.gz last_x264.tar.bz2 libogg-... -
ffmpeg安装脚本及离线包.rar
2021-05-07 11:05:49ffmpeg安装脚本及离线包.rar -
ffmpeg安装配置以及测试
2017-07-25 11:21:11ffmpeg安装配置以及测试,中间有截图 -
三、FFmpeg安装
2022-01-24 15:33:411. FFmpeg介绍 FFmpeg是一个完整的、跨平台的解决方案,用于记录、转换和流化音/视频。 FFmpeg 采用 LGPL 或 GPL 许可证,提供了录制、转换及流化音/视频的完整解决方案。其包含了非常先进的音/视频编解码库 ...1. FFmpeg介绍
FFmpeg是一个完整的、跨平台的解决方案,用于记录、转换和流化音/视频。
FFmpeg 采用 LGPL 或 GPL 许可证,提供了录制、转换及流化音/视频的完整解决方案。其包含了非常先进的音/视频编解码库 libavcodec。
FFmpeg 是在 Linux 平台下开发的 但是它同样也可以在其他操作系统环境中编译运行,包扩Windows、Mac OS 等系统。这个项目最早是由Fabrice Bellard 发起的,在 2004 年至 2015年由Michael Niedermayer 主要负责维护。许多 FFmpeg 的开发人员都来自 MPlayer 项目组,而
且当前FFmpeg也是被放在 MPlayer 项目组的服务器上的。其名称来自MPEG视频编码标准,“FF” 代表 “Fast Forward”。2. FFmpeg组件
FFmpeg的组件包括libavcodec、libavutil、libavformat、libavfilter、libavdevice、libswscale和libswresample(这些都是可以应用与应用程序),以及ffmpeg、ffplay和ffprobe(可以被终端用户进行编码和播放)。如下图所示。
- libavutil是一个包含简化编程功能的库,包括随机数生成器、数学例程、核心多媒体使用程序等。
- libavcodec是一个包含解码和编码器的音/视频编解码器的库。
- libavformat是一个包含用于多媒体容器格式的demuxers和muxers的库。
- libavdevice是一个包含输入和输出设备的库,用于抓取和呈现许多常见的多媒体输入/输出软件框架,包括Video4Linux、Video4Linux2、VFW和ALSA。
- libavfilter是一个包含媒体过滤器的库。
- libswscale是一个执行高度优化的音频重采样、rematrixing个实例格式转换操作的库。
- libpostproc是一个用于后期效果处理的库。
3. 所支持的协议
FFmpeg锁支持的协议包括:HTTP、RTP、RTSP、RealMedia RTSP/RDT、TCP、UDP、Gopher、RTMP、RTMPE、RTMPTE、RTMPS、SDP、MMS over TCP。
4. 安装
1. 下载
先下载ffmpeg-x.x.x.tar.bz2(这里使用的版本为4.1.8版本)或通过wget命令在LInux系统中直接下载。
ffmpeg下载地址:https://ffmpeg.org/releases/ffmpeg-4.1.8.tar.bz22. 通过xftp将文件上传至服务器
3. 解压
[root@localhost download]# tar -jxvf ffmpeg-4.1.8.tar.bz2
4. 配置与安装
执行安装命令:
[root@localhost download]# cd ./ffmpeg-4.1.8/ [root@localhost ffmpeg-4.1.8]# ./configure --prefix=/usr/local/ffmpeg [root@localhost ffmpeg-4.1.8]# make && make install
如果出现以上问题请看这一步,如果没有问题则可以跳过这一步。4.1 问题原因
以上报错原因为没有NASM/YASM或其版本太旧导致的问题。
- YASM是一个完全重写的NASM汇编。目前,它支持x86和AMD64命令集。
- NASM是一款基于80x86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性。
4.2 安装YASM
下载yasm的解压文件包,然后上传至服务器并配置选项、编译与安装。
这里使用的是1.3.0版本
YASM下载地址:http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
将文件上传至服务器,和前面几步上传一样都是使用xftp,这里就不贴图了。
安装过程如下:[root@localhost download]# tar -zxvf yasm-1.3.0.tar.gz [root@localhost yasm-1.3.0]# cd ./yasm-1.3.0/ [root@localhost yasm-1.3.0]# ./configure --prefix=/usr/local/yasm [root@localhost yasm-1.3.0]# make && make install
将YASM添加到环境变量中:
[root@localhost yasm-1.3.0]# vim /etc/profile # 文件输入一下内容 export YASM=/usr/local/yasm/ export PATH=$PATH:$YASM/bin
刷新一下配置文件:
[root@localhost yasm-1.3.0]# source /etc/profile
YASM安装完毕,再次执行ffmpeg安装命令:
[root@localhost ffmpeg-4.1.8]# ./configure --prefix=/usr/local/ffmpeg [root@localhost ffmpeg-4.1.8]# make && make install
这时应该就安装成功了。
5. 添加FFmpeg到环境变量
执行命令:
[root@localhost ffmpeg-4.1.8]# vim /etc/profile
添加以下代码:
刷新配置文件:[root@localhost ffmpeg-4.1.8]# source /etc/profile
检查是否配置成功:
[root@localhost ffmpeg-4.1.8]# ffmpeg -version
安装成功。5. FFmpeg的配置
FFmpeg可以选择多种音/视频编码器对媒体进行渲染。下面介绍几种常用的视频编码器。
1. libx264
libx264 是当下十分热门的 H264 编码器,有着非常广泛的应用H264 编码器的优势是低码率、具有流畅连续的高清图像、高容错率、强网络适应性和高压缩比。
H.264 的压缩比是 MPEG-2 倍以上,是 MPEG-4的1.5 ~2 倍。举一个例子,如果原始文件的大小为 88GB ,那么用 MPEG-2 压缩标准压缩后变成 3.5GB ,压缩比为 25 : 1;用H.264压缩标准压缩后变为 879MB ,压缩比达到 102 : 1。
在下面的命令中增加了-vcodec和-acodec,这里使用视频编码器libx264,使用音频编码器aac.[root@localhost ffmpeg-4.1.8]# ffmpeg -i /tmp/ng.mp4 -vcodec libx264 -acodec aad -f flv rtmp://192.168.5.133:1935/mylive/66
2. libx264安装
重新配置及编译安装FFmpeg,将新的libx264配置到FFmpeg中。
[root@localhost ~]# cd /opt/download/ffmpeg-4.1.8/ [root@localhost ffmpeg-4.1.8]# ./configure --prefix=/usr/local/ffmpeg --enable-libx264 --enable-gpl
报错,因为x264会依赖NASM的汇编加速,因此,这里先安装NASM。如果不安装NASM,则会报错:Minimum version is nasm-2.13。2.1 安装NASM
NASM下载地址:https://www.nasm.us/pub/nasm/releasebuilds/
下载版本不能低于2.13版本,这里使用的是2.14版本,然后通过xftp上传至服务器。2.2 解压与安装
[root@localhost ffmpeg-4.1.8]# cd /opt/download/ [root@localhost download]# tar -zxvf nasm-2.14.tar.gz [root@localhost download]# cd ./nasm-2.14/ [root@localhost nasm-2.14]# ./configure --prefix=/usr/local/nasm [root@localhost nasm-2.14]# make && make install
安装成功。
2.3 配置环境变量
[root@localhost nasm-2.14]# vim /etc/profile
刷新配置文件:[root@localhost nasm-2.14]# source /etc/profile
2.4 安装x264
下载最新版x264:
地址:https://www.videolan.org/developers/x264.html
下载完成使用xftp上传至服务器,或直接使用wget下载都行。
解压并安装:[root@localhost download]# tar -jxvf x264-master.tar.bz2 [root@localhost download]# cd ./x264-master/ [root@localhost x264-master]# ./configure --prefix=/usr/local/x264 --enable-shared # 配置动态库 [root@localhost x264-master]# make && make install [root@localhost x264-master]# cd /opt/download/ffmpeg-4.1.8/ [root@localhost ffmpeg-4.1.8]# ./configure --prefix=/usr/local/ffmpeg --enable-libx264 --enable-gpl
此时依旧报错找不到x264。
通过命令查看ffmpeg日志信息:[root@localhost ffmpeg-4.1.8]# tailf -n 500 /opt/download/ffmpeg-4.1.8/ffbuild/config.log
报错找不到x264文件目录。因为我们在安装的时候手动选择了安装路径–prefix=/usr/local/x264,因此,x254目录下的lib和include目录中的文件无法被FFmpeg自动发现。
配置ffmpeg pkgconfig默认路径的环境变量:[root@localhost ffmpeg-4.1.8]# vim /etc/profile
刷新一下配置文件:[root@localhost ffmpeg-4.1.8]# source /etc/profile # 修改ld.so.config文件 [root@localhost ffmpeg-4.1.8]# vim /etc/ld.so.conf # 文件中加入x264 下的lib路径就行 /usr/local/x264/lib //执行刷新命令 [root@VM-24-16-centos ffmpeg-4.1.8]# sudo ldconfig
执行命令:[root@localhost ffmpeg-4.1.8]# ./configure --prefix=/usr/local/ffmpeg --enable-libx264 --enable-gpl [root@localhost ffmpeg-4.1.8]# make && make install
到这里就安装成功了。
6. 基础配置信息
无论是rtmp标签,还是server标签,甚至是application标签,都可以算是核心配置信息中的成员。因为他们的存在,影响着整个NRM,必须要配置。
1. rtmp
rtmp是根级标签,并且是配置中最关键的标签。
rtmp{ ... }
2. server
一个rtmp中可以包含多个server标签,每个server标签可以通过端口隔离。
rtmp{ server { listen 1935; } server { listen 1955; } }
3. listen
listen只能被放在server中,指定了所在server标签绑定的端口信息。
server { listen 1935; }
4. application
application可以被放在server标签中,可以包含多个application并通过applicationName来隔离。
rtmp{ server { listen 1935; application A{} application B{} } server { listen 1955; application A{} application B{} } }
5. ping和ping_timeout
ping和ping_timeout可以被放在rtmp和server中,用于主动检查心跳,将各种心跳包发送到客户端。ping_timeout中设置的值为超时回复时间,如果在超时回复时间内没有得到回复,则关闭客户端。ping默认为1分钟,timeout默认为30秒,当ping为0时,关闭此功能。
ping 15s; ping_timeout 5s;
6. ack_window
ack_window可以被放在rtmp和server中,用于设置rtmp确认窗口大小,默认为5000000字节。
ack_window 5000000;
7. chunk_size
chunk_size可以被放在rtmp和server中,用于设置流中的块大小,默认时4096字节。这个值越大,CPU开销越低,但是这个值不能小于128字节。
chunk_size 4096;
8. max_message
max_message可以被放在rtmp和server中,用于设置输入数据保温最大尺寸。所有输入数据都会被分割成报文(然后进一步被分割为块)。报文在处理结束之前会被存放在内存中。从理论上讲,如果接受到的报文很大,则可能会影响服务器的稳定性。报文默认值为1MB,此时可以满足大多数情况。
max_message 1M;
9. buflen
buflen可以被放在rtmp和server中,用于设置缓冲区长度。
buflen 5s;
10. rtmp_auto_push
rtmm_auto_push可以设置当多任务时,分发任务到多个进程。
rtmp_auto_push on;
11. rtmp_auto_push_reconnect
rtmp_auto_push_reconnect用于设置rtmp_auto_push开启并因超时被销毁时,进行重连。
rtmp_auto_push_reconnect 1s;
12. meta
meta可以被放在rtmp,server和application中,用于将元数据信息发送到客户端,默认为打开。
meta copy;
13. interleave
interleave可以被放在rtmp,server和application中,用于交叉模式,此模式下音/视频在同一个chunk stream上,默认为关闭。
interleave on;
14. wait_key
wait_key可以被放在rtmp,server和application中,用于使视频流从一个关键帧开始,默认为关闭。
wait_key on;
15. wait_video
wait_video可以被放在rtmp,server和application中,用于禁用音频,知道第一个视频帧发送,默认为关闭。可以与wait_key结合,使客户端接受视频关键帧。然而,着通常会增加链接延迟。可以在编码器中调整关键帧间隔以减少延迟。
wait_video on;
16. sync
sync可以被放在rtmp,server和application中,用于同步音频流和视频流。如果客户端带宽不足以接受到服务器的数据,那么一些帧会被服务器删除。这导致了音频流和视频流不同步。但时间戳差异超过指定为同步参数的值时,则将发送一个绝对帧,默认为300ms。
sync 10ms;
17. allow,deny
allow,deny可以被放在rtmp,server和application中,用于设置白名单和黑名单。
# 允许127.0.0.1推流 allow publish 127.0.0.1; #阻止所有推流,allow publish中的配置除外 deny publish all; # 允许192.168.0.0/24 拉流 allow play 192.168.0.0/24; # 阻止所有拉流,allow play的配置除外 deny play all;
18. play
play可以被放在rtmp,server和application中,用于播放本地或远程点播文件。
application vod { play /var/flvs; } application vod_http { play http://myserver.com/vod } application vod_mirror { # 当第一个地址无法播放的时候,会访问第二个地址 play /var/local_mirror http://myserver.com/vod; }
19. max_connections
max_connections可以被放在rtmp,server和application中,用于设置最大连接数。
max_connections 1000;
20. access_log
access_log可以被放在rtmp,server和application中,用于通常来说,rtmp日志是和nginx/logs/access.log文件存放在一起的,通过access_log可以单独存放rtmp_log。
access_log logs/rtmp_access.log;
21. log_format
log_format: 用于自定义日志格式。
- connection:连接数
- remote_addr:客户端地址
- app_application:名称
- name:最后一个串流码名称
- args:最后一个播放的流/推流参数
- flashver:flash版本
- swfurl:swf地址
- tcurl:tc地址
- pageurl:客户端页面地址
- command:推/拉流中命令:none,play,publish,play+publish
- bytes_sent:发送到客户端的字节数
- bytes_received:接受到客户端的字节数
- time_local:连接关闭时间
- session_time:连接持续时间
- session_readable_time:格式化日期
- msec:UNIX时间戳
ffmpeg的基础与安装就到这里了,欲知后续如何请看下章博客。
-
Ubuntu系统-FFmpeg安装及环境配置
2022-03-08 10:02:58使用该网络完成音频标注任务时,首先需要使用python的音频处理工具包Librosa提取音频的时频特征,针对mp3格式的音频文件,Librosa读取音频文件的工作依赖音频处理后端ffmpeg完成,因此要求使用该网络进行mp3音频自动...1 简介
FCN-4是一个应用于音频自动标注的全卷积神经网络。使用该网络完成音频标注任务时,首先需要使用python的音频处理工具包Librosa提取音频的时频特征,针对mp3格式的音频文件,Librosa读取音频文件的工作依赖音频处理后端ffmpeg完成,因此要求使用该网络进行mp3音频自动标注任务的环境具备Librosa依赖库和ffmpeg。
- Librosa是一个用于音频、音乐分析、处理的python工具包,具备时频处理、特征提取、绘制声音图形等常用功能。
- FFmpeg是处理多媒体内容(如音频、视频、字幕和相关元数据)的库和工具的集合,它包含包含了先进的音视频编解码库,提供了录制、转换以及流传输音视频的完整跨平台解决方案。可以使用它的API对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑音视频文件。
以下对Librosa库和FFmpeg工具在安装配置过程中的常见问题进行说明。
2 安装Librosa依赖库的常见问题
2.1 Librosa库的安装
-
当执行含有“import librosa”语句的python脚本时,报错如下图所示,说明需要安装Librosa依赖库。
-
命令行执行以下命令安装librosa库
pip install librosa
安装结果中出现红框中的提示内容,说明librosa依赖库安装成功。
2.2 调用librosa包的过程中可能出现的错误
安装好librosa依赖库后,仍可能存在环境中缺少其他相关依赖的问题,以下给出可能存在的问题及其解决方案
2.2.1 没有bz2模块
-
报错
报错“ No modual named ‘_bz2’ ”。如下所示 -
可能原因
出现这个错误的原因是由于运行程序所使用的python版本中没有安装_bz2库所致。通常是由于运行程序使用的是python3.7,但是bz2这个库是安装到了python3.6的路径下,所以找不到。
-
解决方案
将python3.6里面的bz2库拷贝到python3.7下面。
操作步骤:
-
找到python3.6路径下的_bz2库文件,即“_bz2.cpython-36m-x86_64-linux-gnu.so”
ll /usr/lib/python3.6/lib-dynload/
-
切换到python3.7对应路径,将该文件复制到该目录下
cd /usr/local/python3.7.5/lib/python3.7/lib-dynload/ cp /usr/lib/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so ./
-
修改文件名称,将"-36m"修改为"-37m"
mv _bz2.cpython-36m-x86_64-linux-gnu.so _bz2.cpython-37m-x86_64-linux-gnu.so chmod +x _bz2.cpython-37m-x86_64-linux-gnu.so # (可选)增加该文件的可执行权限
现在运行程序所使用的是python3.7的目录下已经有了bz库文件
说明:
该问题有多种解决方案,只要保证所使用的python版本相关路径下存在_bz2库即可。例如可以从网上下载“_bz2.cpython-37m-x86_64-linux-gnu.so”文件,或从任意其他存在该文件的环境中复制到目标环境的相关路径下即可。
-
2.2.2 没有_lzma模块
-
报错
报错“ No module named ‘_lzma’ ”。如下所示 -
解决方案
请参考上一步骤“2.2.1 没有bz2模块”解决,保证所使用的python版本相关路径下存在lzma库即可。
2.2.3 找不到sndfile库
-
报错“OSError: sndfile library not found”。如下所示。
-
解决方案
命令行执行以下命令安装sndfile库
apt-get install libsndfile1
3 安装FFmpeg工具的常见问题
Librosa依赖库安装配置完成后,在读取音频文件的时候可能会触发“audioread.exceptions.NoBackendError”,如下所示。
-
报错
audioread.exceptions.NoBackendError -
原因
这个问题主要是由于“librosa”音频处理库无法直接读取“mp3”格式的音频数据,需要调用“ffmpeg”后端读取音频文件所致。
具体原因可分为以下两点- 环境中没有安装“ffmpeg”。
- 安装了“ffmpeg”,但现有环境配置无法指导librosa库调用处找到“ffmpeg”后端所在。
接下来将给出ffmpeg工具的完整安装配置过程,可根据环境中已有的配置情况选择性的完成以下步骤。
3.1 安装ffmpeg
3.1.1 安装wget (可选)
ubuntu环境下需要使用wget工具下载ffmpeg的源码安装包,因而首先需要下载安装wget工具(注:也可以在其他环境中下载ffmpeg的源码安装包,并将其上传到目标环境中即可)。
- 命令行执行以下命令,安装wget
apt-get install -y wget
3.1.2 安装ffmpeg
-
下载并解压安装包
-
命令行执行以下命令,下载ffmpeg的源码安装包
cd /usr/local/ wget https://johnvansickle.com/ffmpeg/release-source/ffmpeg-4.1.tar.xz
-
可能存在无法通过认证检查的情况下载失败,此时根据提示,命令行中加入取消认证检查的选项即可,即执行以下命令
wget --no-check-certificate https://johnvansickle.com/ffmpeg/release-source/ffmpeg-4.1.tar.xz
下载完成后,当前目录(/usr/local/)下应该存在“ffmpeg-4.1.tar.xz”这个压缩包
-
执行以下命令解压安装包
tar -xvf ffmpeg-4.1.tar.xz
解压完成后,当前目录(/usr/local/)下将存在“ffmpeg-4.1”文件夹
-
-
执行安装配置文件。
-
在当前路径(/usr/local/)下创建“ffmpeg”文件夹,作为ffmpeg工具的安装路径。
mkdir ffmpeg
-
进入源码包,“config”程序,完成ffmpeg的安装配置。
cd ffmpeg-4.1 ./configure --enable-shared --prefix=/usr/local/ffmpeg # --prefix选项指出ffmpeg的安装路径
出现以下结果说明配置程序已经执行成功。
注:执行config程序时,可能会报“nasm/yasm not foun or too old. Use …”的错,此时需要先安装yams,然后再重新执行配置程序
安装yasm的命令:
apt-get install yasm
-
-
执行编译&安装指令
执行以下命令,完成ffmpeg程序的编译和安装
安装完成后,在配置中指出的安装路径(–prefix=/usr/local/ffmpeg)下存在以下内容,则说明ffmpeg安装成功。
3.2 配置环境变量
-
修改环境变量
将ffmpeg的绝对路径添加到PATH环境变量中,以让系统能找到ffmpeg的安装路径。vim ~/.bashrc # 打开系统环境变量配置文件
在文件中添以下内容。
export PATH="/usr/local/ffmpeg/bin:${PATH}" export LD_LIBRARY_PATH="/usr/local/ffmpeg/lib:{LD_LIBRARY_PATH}"
-
无法打开共享库文件
命令行使用“ffmpeg -h”或“/usr/local/ffmpeg/binffmpeg -h”命令检测ffmpeg安装情况时,出现以下内容。
“error while loading shared libraries: libavdevice.so.58: can not open shared object file or directory”
这是由于系统找不到ffmpeg的共享库所致。- 在“/etc/ld.so.conf.d/”路径下创建文件“ffmpeg.conf”文件,在该文件中写入“/usr/local/ffmpeg/lib”
vim /etc/ld.so.conf.d/ffmpeg.conf # 编辑文件,添加内容“/usr/local/ffmpeg/lib”后保存退出 cat /etc/ld.so.conf.d/ffmpeg.conf # 查看ffmpeg.conf中的内容 ldonfig # 执行ldconfig命令,使/etc/ld.so.conf.d/目录下新加入的配置信息生效
- 在“/etc/ld.so.conf.d/”路径下创建文件“ffmpeg.conf”文件,在该文件中写入“/usr/local/ffmpeg/lib”
-
测试是否配置成功
命令行输入“which ffmpeg” 或 “ffmpeg -h”,出现以下内容,说明ffmpeg已经完全安装配置成功。
3.3 修改库文件中的后端调用指令
若完成以上配置后,仍报错“audioread.exceptions.NoBackendError”,考虑以下解决方式。
-
修改库文件,指出ffmpeg的绝对安装路径。
找到“ffdec.py”所在的位置,打开并编辑该文件,对第33行的内容做如下修改。
将 COMMAND = (‘ffmpeg’, ‘avconv’) 改为 COMMAND = (’/usr/local/ffmpeg/bin/ffmpeg’, ‘avconv’)
附言
说明:
根据不同环境的已有配置不同,可能遇到的问题会有所不同。即,以上问题可能不会都遇到,也可能会遇到以上没有列出的问题,若遇到以上未提及的问题,可根据报错信息在搜索引擎中查找解决方案。
-
linux ffmpeg 安装
2022-04-15 11:35:11linux ffmpeg 安装 ffmpeg 安装 不会吧 这都22 年了还有人问ffmpeg 安装 第一步 我们先去下载资源包 这里是4.4 版本 wget http://www.ffmpeg.org/releases/ffmpeg-4.4.tar.gz 第二步 解压资源包 tar -zxvf ffmpeg-... -
FFMPEG安装
2021-12-07 17:26:03二:windows下安装ffmpeg 1:下载ffmpeg windows下ffmpeg下载地址:https://www.gyan.dev/ffmpeg/builds/ 选择合适的ffmpeg进行下载,这里我选择的是ffmpeg-2021-12-02-git-4a6aece703-full_build.7z 2:配置... -
ffmpeg安装.zip
2020-01-20 11:18:47redhat安装ffmpeg所有安装包 /usr/local/ffmpeg/ffmpeg-3.2.4/libavdevice /usr/local/ffmpeg/ffmpeg-3.2.4/libavfilter /usr/local/ffmpeg/ffmpeg-3.2.4/libavformat /usr/local/ffmpeg/ffmpeg-3.2.4/... -
ffmpeg安装及使用
2022-07-01 17:23:42ffmpeg安装与使用 -
windows ffmpeg安装部署
2021-11-11 14:18:03目录 安装包下载 解压安装包 配置环境变量 总结 安装包下载 作为音视频处理重要软件ffmpeg,是一定要装好的。 windows安装包下在链接:资源包地址 解压安装包 ...输入ffmpeg -i命令验证一下是.. -
Linux/Ubuntu下ffmpeg安装教程
2022-01-10 08:50:56一、简述ffmpeg FFmpeg是一套可以用来记录、...二、安装步骤 1、下载ffmpeg 官网下载: http://ffmpeg.org/download.html 下载到与Ubuntu系统关联的共享文件夹下 2、进入Ubuntu的共享目录,把压缩文件拷贝到opt目. -
FFMpeg安装步骤
2021-10-22 16:56:55FFMpeg安装步骤 背景 FFmpeg是什么 1· FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源软件。采用LGPL或GPL许可证,提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频... -
ffmpeg安装及使用教程
2022-03-10 16:55:10ffmpeg安装及使用教程 -
MAC系统下安装FFmpeg的图文教程
2020-08-26 06:47:38主要给大家介绍了关于如何在MAC系统下安装FFmpeg的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 -
linux下安装ffmpeg的详细教程
2021-01-09 02:02:07一、centos linux下安装ffmpeg 1、下载解压 wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz tar -zxvf ffmpeg-3.1.tar.gz 2、 进入解压后目录,输入如下命令/usr/local/ffmpeg为自己指定的安装目录 cd ... -
ffmpeg安装插件
2019-03-19 16:48:03ffmpeg安装插件 -
linux下 opencv 和 ffmpeg安装
2021-09-26 13:53:301、要先安装ffpmeg 下载地址 http://www.ffmpeg.org/download.html 这里选择版本3.4.8 直接下载包上传或者linux直接下载 ...安装ffmpeg过程中,执行./configure时,报yasm/nasm not found or too old. U -
ffmpeg安装及视频分片加密使用文档
2018-10-29 10:56:151、ffmpeg安装流程步骤及所需软件包下载链接,亲测可用。 2、使用ffmpeg进行视频切片方法,视频加密切片方法。 3、所需软件包下载链接,包含html播放器 -
FFmpeg安装及encode库的安装说明
2021-05-15 08:04:15FFmpeg安装及encode库的安装说明一、安装ffmpegA. 去ffmpeg官网(https://ffmpeg.org/)下载linux的官方源码包B. 解压 tar -jxvf ffmpeg-3.1.4.tar.bz2C. 进入解压目录 cd ffmpeg-3.1.4/D. 执行 ./configure –enable-... -
FFmpeg安装与配置(windows与mac)
2021-05-19 23:15:19FFmpeg命令行安装 使用如下命令进行FFmpeg: sudo apt-get install ffmpeg FFmpeg源码安装 FFmpeg源码获取 使用如下命令获取ffmpeg的源码: git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg ffmpeg编译 ... -
linux+ffmpeg安装文件.rar
2020-06-29 09:54:25linux下安装ffmepg所需软件(SDL、fdk-aac、nasm、libx264、ffmpeg) 附详细安装说明 -
ffmpeg安装教程及配置环境
2021-10-10 21:42:421.下载ffmpeg安装包 官网如下:https://ffmpeg.org/download.html -
❤️超详细的FFmpeg安装及简单使用教程❤️
2021-09-10 17:27:51超详细的FFmpeg安装及简单使用教程~~不看后悔