使用 FFmpeg 命令拼接mp3音频文件异常问题及解决方法

使用FFmpeg命令拼接多个mp3格式的音频文件时报错抛出异常,使用命令格式如下:

ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] out3.mp3

异常错误提示信息:

Automatic encoder selection failed for output stream #0:0. Default encoder for format mp3 (codec mp3) is probably disabled. Please choose an encoder manually.

使用Google搜索后发现问题原因在于只有mp3的解码库,没有mp3编码库导致的,需要添加libmp3lame第三方库。

libmp3lame第三方库安装方法:

  • 下载 libmp3lame源码压缩包并解压
  • 打开命令行窗口并cd进入libmp3lame根目录,执行以下命令:
./configure
make
sudo make install

PS:在执行make命令时Mac系统可能会抛出异常:"ld: symbol(s) not found for architecture x86_64"

论坛上提供的解决办法是:将libmp3lame目录下的libmp3lame.sym文件中的lame_init_old这项删去即可。

3.libmp3lame库编译安装成功后开始编译安装FFmpeg。
4.在安装FFmpeg之前需要先将本机上已安装的FFmpeg卸载干净,下载FFmpeg源码后进入根目录,首先需要配置第三方库:

./configure --enable-shared --enable-libmp3lame --disable-yasm --prefix=/usr/local/ffmpeg

5.配置完成后,执行编译安装命令与libmp3lame库命令一样:

make
sudo make install

6.安装完成后,将FFmpeg的bin目录添加到.bash_profile(FFmpeg安装后的目录是在配置configure时设置的"/usr/local/ffmpeg")
执行完以上命令后,基本上就可以解决上述问题了。

总结

到此这篇关于使用 FFmpeg 命令拼接mp3音频文件异常问题及解决方法的文章就介绍到这了,更多相关FFmpeg 拼接mp3音频文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用ffmpeg 合并aac格式音频文件的方法

    FFmpeg简介 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的. FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows.Mac OS X等.这个项目最早由Fabrice Bellard发起,2004

  • java使用FFmpeg合成视频和音频并获取视频中的音频等操作(实例代码详解)

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序. ffmpeg命令参数如下: 通用选项 -L license -h 帮助 -fromats 显示可用的格式,编解码的,协议的... -f fmt 强迫采用格式fmt -I filename 输入文件 -y 覆盖输出文件 -t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持 -ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持 -title

  • asp.net音频转换之.amr转.mp3(利用ffmpeg转换法)

    前言 上篇文章已经跟大家分享了asp.net利用七牛转换法将.amr转.mp3的方法,当时也说了还有另外一种方法是利用ffmpeg转换法,下面这篇文章就给大家详细介绍这种方法.这种方法相对第一种来说,要简单的多! FFmpeg的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward",FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.可以轻易地实现多种视频格式之间的相互转换. ffmpeg转换法 首先,你得下载

  • php利用ffmpeg提取视频中音频与视频画面的方法详解

    前言 FFmpeg的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward",FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.可以轻易地实现多种视频格式之间的相互转换. FFmpeg的用户有Google,Facebook,Youtube,优酷,爱奇艺,土豆等. 组成 1.libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能,包含demuxer

  • android采用FFmpeg实现音频混合与拼接剪切

    接触FFmpeg有一段时间了,它是音视频开发的开源库,几乎其他所有播放器.直播平台都基于FFmpeg进行二次开发.本篇文章来总结下采用FFmpeg进行音频处理:音频混合.音频剪切.音频拼接与音频转码. 采用android studio进行开发,配置build.gradle文件: defaultConfig { ...... externalNativeBuild { cmake { cppFlags "" } } ndk { abiFilters "armeabi-v7a&q

  • 使用 FFmpeg 命令拼接mp3音频文件异常问题及解决方法

    使用FFmpeg命令拼接多个mp3格式的音频文件时报错抛出异常,使用命令格式如下: ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] out3.mp3 异常错误提示信息: Automatic encoder selection failed for output stream #0:0. Default encoder for format mp3 (codec mp3)

  • Python3.7 读取 mp3 音频文件生成波形图效果

    测试环境为Windows 10 系统,Python3.7,转换需要提前安装pydub.ffmpeg,安装和加入环境变量配置方法自行解决,至于缺少的包直接 pip install xx 搞定. 主要是 mp3 转成 wav 格式的文件,因为 mp3 格式为了减小体积牺牲了音质,转成无损的 wav 格式之后,可以读取到更详细的信息.然后读取 wav 的信息,利用 matlotlib 绘图即可. mp3towavaform.py 代码: #coding=utf8 from pydub import A

  • php使用fgetcsv读取csv文件出现乱码的解决方法

    本文实例讲述了php使用fgetcsv读取csv文件出现乱码的解决方法.分享给大家供大家参考.具体分析如下: 一般来说在php中碰到乱码多半是编码问题,在这里我们实例分析了fgetcsv读取csv文件乱码原因所在与解决方法. 例子如下: 复制代码 代码如下: function get_csv_contents( $file_target ){  $handle  = fopen( $file_target, 'r');  while ($data = fgetcsv($handle, 1000,

  • mysql 导出select语句结果到excel文件遇到问题及解决方法

    一.导出数据外部 1)mysql连接+将查询结果输出到文件.在命令行中执行(windows的cmd命令行,mac的终端) mysql -hxx -uxx -pxx -e "query statement" db > file -h:后面跟的是链接的host(主机) -u:后面跟的是用户名 -p:后面跟的是密码 db:你要查询的数据库 file:你要写入的文件,绝对路径 例如: 下面将 sql语句 select * from edu_iclass_areas 的查询结果输出到了 /

  • 无法使用pip命令安装python第三方库的原因及解决方法

    再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的Scripts文件夹里面.我们可以把dos切换到对应的文件夹,再使用pip命令就可以了. 如果你在使用pip命令安装Python第三方库时也出现下面这样. 这是我在安装requests库时 我们发现pip命令无法使用,这时我们看一下python文件夹下的Scripts文件,如下 我发现我里面有pip和easy_install,也就是我可以使用pip命令所以我们要在这个文件夹下使用pip命令

  • 基于vue-cli npm run build之后vendor.js文件过大的解决方法

    问题 vue-cli npm run build命令默认把dependencies中的依赖统一打包,导致vendor.js文件过大,出现首屏加载过于缓慢的问题. 解决方案 像vue.axios.element-ui这些基本上不会改变的依赖我们可以把它们用cdn导入,没有必要打包到vendor.js中. 1.在项目根目录index.html使用cdn节点导入 <div id="app"></div> <!-- 先引入 Vue --> <!--开发

  • Java在指定路径上创建文件提示不存在解决方法

    如果 d:\upload\file\ 文件夹不存在,会报错 String strPath = "d:\\upload\\file\\2.mp3"; File file = new File(strPath); if(!file.exists())){ file.createNewFile(); } 以下会创建文件夹 d:\\upload\\file\\2.mp3\ String strPath = "d:\\upload\\file\\2.mp3"; File fi

  • linux普通用户su root切换提示没有文件或目录的解决方法

    1. 首先进入单用户模式: 1). ubuntu : 上述情况可以在grub界面选择第二项修复,但没有grub可以参考: 1.重启ubuntu,随即长按shirft进入grub菜单: 2.选择recovery mode,按"e"键进入编辑页面:如下: 非恢复模式为:   3.将ro recovery nomodeset替换为"rw single init=/bin/bash" (上述的界面中将改为rw single init=/bin/bash) 4.按ctrl+x

  • Android4.4下MediaProvider无法向外置SD卡中文件写数据的解决方法

    本文实例讲述了Android4.4下MediaProvider无法向外置SD卡中文件写数据的解决方法.分享给大家供大家参考,具体如下: Android4.4平台限制应用对外置SD卡的读写权限.MediaProvider通过 checkAccess方法 限制对外置SD卡的读写. private void checkAccess(Uri uri, File file, int modeBits) throws FileNotFoundException { final boolean isWrite

随机推荐