翻译成中文就是:LAME是一个高质量的MPEG音频层III (MP3)编码器,在LGPL下授权。 好了,现在我们知道Lame就是个开源的编码器,而且是专门用来编码mp3文件的。...这里贴下MediaRecord目前支持的录音格式,可以看到目前是不支持mp3的。那这时我们想要编码mp3的文件,就得借助lame来实现了。...整体的思路就是,应用层通过调用JNI提供的native方法,然后调用到 libmp3lame.so 库里面的方法,实现编码mp3文件。...这里给出的一个例子是将pcm格式的文件编码mp3格式的文件。...应用代码调用的时候,就是传入对应的pcm源文件和需要生成的mp3文件路径,还有pcm源文件的格式信息(采用率、通道数、编码数据位数)。
前言 Android中内置的MediaCodeC提供了很多音视频编解码器,但由于MP3是有版权的,所以原生MediaCodeC只提供了MP3的解码能力,对于MP3的编码就需要借助外部库了。...LAME库由开源社区开发,当前是公认有损质量MP3中压缩效果最好的编码器。本文的主要工作为将LAME源码编译为so库,并在Android中使用。...将源码中lame-3.100/libmp3lame目录复制到app/src/main/cpp目录中,仅保留.h和.c文件,另外还需复制lame-3.100/includes/lame.h文件到项目cpp...修改部分文件 1) 删除fft.c文件的vector引用include "vector/lame_intrin.h" 2) 将set_get.h中的 #include 修改为 #include...编译项目,可在屏幕上看到lame的版本号 使用LAME生成MP3 在lame-lib.cpp中添加以下代码,lame初始化时采样率等参数的要求可在lame源码中看到。
FFmmpeg硬编解码 当使用FFmpeg进行软编码时,常见的基于CPU进行H.264或H.265编码其相对成本会比较高,CPU编码时的性能也很低,所以出于编码效率及成本考虑,很多时候都会考虑采用硬编码...- Intel QSV H.264参数说明 - 树莓派硬编码 FFmpeg输出MP3 FFmpeg使用第三方库libmp3lame即可编码MP3格式。...在FFmpeg中进行MP3编码采用的是第三方库libmp3lame,所以进行编码时,需要设置编码参数acodec为libmp3lame, 平均码率编码参数ABR.是VBR与CBR的混合产物,表示平均码率编码...FFmpeg输出AAC AAC是一种编码效率更高、编码音质更好的音频编码格式,常见的使用AAC编码后的文件存储格式为m4a。...FFmpeg可以支持AAC的三种编码器:1).aac:FFmpeg本身的AAC编码实现;2).libfaac:第三方的AAC编码器;3).libfdk_aac:第三方的AAC编码器 FFmpeg中的AAC
若想让录音文件放之四海而皆能播放,就得事先将其转为通用的MP3格式,虽然Android官方的开发包不支持MP3转换,不过借助第三方的LAME库,能够将原始音频转存为MP3文件。...LAME是一个高质量的MP3编码器,它采用C/C++代码开发,需要通过JNI技术引入到App工程。...把源码包里面的libmp3lame目录整个复制到App模块的jni目录下; 2、把include目录下的lame.h头文件复制到jni\libmp3lame目录下; 3、打开jni\libmp3lame...MP3的转换过程又有两种形式,一种是把PCM文件转成MP3文件,另一种是在录音时将原始数据直接转存为MP3文件,也就是边录边转。...由于PCM保存着原始音频数据,该格式的文件较大,一次性转成MP3较费时间,因此通常采取边录边转以便提高转换效率。
目录 问题 正文 MP3 是封装格式 MP3 是编码格式 结论 问题 MP3 是我们在日常生活中最常见的音频格式之一,但是作为音视频相关的开发人员有没有这样的疑问:MP3 到底是音频编码格式还是音频封装格式...正文 MP3 是封装格式 mp3 是一种音频封装格式,可以从两方面验证我们的说法。首先,日常生活中,我们经常可以看到 *.mp3 的音频文件,就像视频封装格式 mp4、flv 一样。...MP3 是编码格式 mp3 是一种音频编码格式,同样,我们可以利用 ffmpeg 验证。我们都知道可以使用如下命令查看 ffmpeg 支持的编码格式列表。...注意:我们直接使用 mp3 设置音频编码类型时,ffmpeg 是不识别的,我们需要使用 libmp3lame。 接下来,我们再从另外一个方面验证一下 mp3 是音频编码格式的结论。...我们都知道,任何编码器和解码器都是成对儿存在的,对于 mp3 音频格式也一样,如果存在 mp3 编码器,那么也一定存在 mp3 解码器。
那么问题来了,如果我们读取完数据后接着将数据传给Lame进行MP3编码,Lame的编码时间是不确定的,是不是有可能造成数据的丢失呢? 答案当然是有可能,所以我们不能巧合编程。...我们需要另外一个线程,即数据编码线程来专门进行MP3编码,而当前的录音读取线程只负责读取录音PCM数据。 有了两条线程,我们还需要确认一点,什么时候编码线程开始处理数据?...,我们来仔细看看帮助我们实现MP3编码的功臣:Lame Lame的获取与编译 Lame在线下载地址 步骤 解压libmp3lame 到jni目录....这个size同样需要传入到Lame编码器中用于编码。 mp3的buffer:官方规定了计算公式:7200 + (1.25 * buffer_l.length)。...(可以在lame.h文件中看到) flush 将MP3结尾信息写入buffer中。 传入参数:mp3buf至少7200字节。这里还是用以前定义的mp3buf来传入,避免创建过多的数组。
开源/免费解决方案 ffmpeg 全平台视频转换 开源 RED5 Red5是一个采用Java开发开源的Flash流媒体服务器。.../configure --enable-shared make make install # LAME mp3编码器 wget http://downloads.sourceforge.net/project.../lame/lame/3.99/lame-3.99.5.tar.gz tar xzvf lame-3.99.5.tar.gz cd lame-3.99.5 ..../configure --enable-nasm make make install # libogg 音频编码器 wget http://downloads.xiph.org/releases/ogg.../configure make make install # libvorbis 音频编码器 wget http://downloads.xiph.org/releases/vorbis/libvorbis
的算法 , 使用 不同的 编解码器 获得的 音频文件 的 音质 / 文件大小 / 兼容性 不同 ; -acodec 后面的 参数值 是 编解码器的名称 ; 常见的 音频编解码器 包括 libmp3lame...: 用于 MP3 格式的音频编码 ; aac : 用于 AAC 音频格式的编码 ; copy : 用于直接复制原始音频流而不进行重新编码 ; 在 【FFmpeg】ffmpeg 命令行参数 ② ( Windows...libmp3lame MP3 (MPEG audio layer 3) (codec mp3) A....D mp3_mf MP3 via MediaFoundation...编码器 执行 ffmpeg -i input.mp4 -acodec libmp3lame output.mp3 命令 , 将 input.mp4 视频中 的 音频 输出到 output.mp3 音频文件中..., 使用 libmp3lame 编码器将 aac 格式的音频转为 mp3 格式的音频 ; 转换前的 input.mp4 视频 中的 音频 通道数为 2 是 立体声 , 转换后的 output.mp3
---- 实战 ---- 分析音频 话不多说,先来看ffprobe的简单使用实例: ffprobe 少年.mp3 在《少年.mp3》文件的同级目录运行上述命令,会有如下输出信息: [mp3...#0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s Metadata: encoder : LAME3.99r...接下来,看下一行: Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s 表明音频文件只有一路音频流,音频编码格式是mp3,采样率是44.1kHz...再看下一行: Metadata: encoder : LAME3.99r 表明音频文件的音频编码器是LAME,版本号是3.99r,LAME 是最好的MP3编码器,一段时间内被业界认为是编码高品质...如果想具体了解LAME,可以点这里。 ?
MP3目标文件 -y : 表示允许覆盖 ; -f : 表示文件格式 , 一般是 s16le , 其中 s 表示样本是有符号整型 , 16 表示是 16 位样本 2 字节 , l 表示小端格式 , 如果是...无符号 16 位整型小端格式排列 -ac : 声道个数 , 单声道设置 1 , 立体声设置 2 ; -ar : 采样率 , 48000 表示 48000 Hz 采样率 ; -acodec : 指定编码器...; -i : 指定源文件 ; 最后跟着是转换完成的 MP3 文件路径 ; Android 中的完整命令 : ffmpeg -y -f s16be -ac 2 -ar 48000 -acodec pcm_s16le...ac 2 // 立体声 -ar 48000 // 48000 Hz 采样率 -acodec pcm_s16le // 指定编码器 -i /data/user/0/com.example.ffmpeg_pcm...: ffmpeg 是可执行文件 , audio.pcm 是 PCM 格式的源文件 , audio.mp3 是转换后的 mp3 文件 ; 四、博客源码 ---- 博客源码 : GitHub : https
视频编码器使用了 libx264,这意味着输出视频将使用 x264 编码器进行压缩,以提供高质量的视频编码。...然后使用 libmp3lame 编码器将截取的音频压缩为 MP3 格式。输出音频是立体声,采样率为 48000Hz。最后,将处理后的音频保存为 FLV 格式的文件。...这可以用来将 AAC 格式的音频转换为 MP3 格式,而无需对音频进行重新编码。请注意,如果输入文件的音频编码不支持 MP3 格式,或者输出文件的扩展名不适用于 MP3 格式,那么该命令可能会失败。...编码器进行重新编码为 MP3 格式。...通过使用 -c copy选项,输入文件的编码格式将直接复制到输出文件中,而不进行重新编码。使用 -f mp3 选项指定输出文件的格式为 MP3。
texi2html theora wget x264 x265 xvid nasm pkg-config yasm freetype openssl automake : 将 Makefile.am文件...转为 Makefile.in 文件的工具 ; git : 分布式版本控制工具 ; libtool : 用于 创建 / 修改 / 管理 动态链接库 , 可以自动化库的 编译 和 安装过程 , 并处理库的依赖关系...; fdk-aac : AAC音频编解码器 ; lame : MP3 编码器 , 将 PCM 音频数据 转码为 MP3 格式 ; libpng : 处理 PNG 图像文件的开源库,可 读取和写入 PNG..., 用于 VP8 / VP9 视频编码 ; opus : 开源的音频编码格式及其相关的编解码库 , 用于 交互式语音和音乐传输 , 有利于在网上传输 ; sdl : Simple DirectMedia...Layer , 跨平台 图形和音频处理库 , 常用于游戏和多媒体应用的开发 ; shtool : 处理 shell 脚本的工具 , 如 : 文件操作 , 文本处理 等操作 ; texi2html :
写在前面 2019.06.20 第四章 FFmpeg转码 ---- FFmpeg转码 FFmpeg软编码H.264与H.265 FFmpeg本身不支持H.264的编码器,是由FFmpeg的第三方模块对其进行支持...(预测编码图像帧),利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码 ● B帧即Bidirectionallypredicted picture(双向预测编码图像帧),提供最高的压缩比,它既需要之前的图...---- FFmpeg输出MP3 FFmpeg使用第三方库libmp3lame即可编码MP3格式 ffmpeg -i INPUT -acodec libmp3lame OUTPUT.mp3 控制质量需要通过...FFmpeg输出AAC 与MP3相比,AAC编码效率更高、编码音质更好,使用AAC编码后的文件存储格式为m4a FFmpeg支持AAC的三种编码器:aac、libfaac、libfdk_aac ffmpeg...知识点:AAC与MP3相比 将一个无损的因为文件(.ape)转为AAC和MP3,AAC文件与APE文件的频谱非常接近,在高频20K没有丢失,而MP3的在高频端上就严重丢失。
其中wav格式需要使用pcm编码。 采用率二选一 8000 或者 16000。.../ -acodec pcm_s16le pcm_s16le 16bits 编码器 // -f s16le 保存为16bits pcm格式 // -ac 1 单声道 // -ar 16000 16000...wav(pcm编码)格式,仅仅在同样参数的pcm文件加了个几百k的文件头。...输出wav和amr格式时,如果不指定输出编码器的haunt,ffmpeg会选取默认编码器。...16k.wav // 单声道 16000 采样率 16bits编码 pcm编码的wav文件 输出amr-nb 音频 :全称是:Adaptive Multi-Rate,自适应多速率,是一种音频编码文件格式
命令 压缩成MP3 ##使用lame命令:使用VBR动态码率压缩,0表示质量最高,9表示质量最低,默认为4 eric@ray:~/Music$ lame -v Gracie-Theme.wav ##...或者使用faac编码得到m4a(mp4)、mp3格式文件:100表示质量最高 100% eric@ray:~/Music$ faac -w -q 100 Gracie-Theme.wav -o Gracie-Theme.mp4.../bin/bash for FILE in *.ape; do ffmpeg -i "$FILE" temp.wav; lame -b 320 temp.wav "${FILE%.*}.mp3"; rm...temp.wav done 对于一个ape/flac文件包含多首歌曲 这种情况,通常会有一个cue文件,这个文件中包含这个ape/flac文件的专辑名称、演唱者名称、还有每首歌曲的名称、时间范围。...可以先用上面的方法将整个文件转化为Mp3格式之后,再用mp3splt工具进行分割。 将cue文件分割为mp3: eric@ray:~/Music$mp3splt -c song.cue -o @n.
Snip20161127_1.png 可以看的出 相同时长 wav格式的内存是最大的,mp3编码格式的文件占用的内存是最小的,10倍的差别 使用libmp3lame 进行MP3编码格式的转码 ?...Snip20161207_2.png #include "lame.h" //经过转化,音频文件的大小得到了很大的压缩 //这里的转化,隐藏了两个参数 :原始路径cafPathStr 输出路径...:1], "wb"); //output 输出生成的Mp3文件位置 const int PCM_SIZE = 8192; const int MP3_SIZE = 8192;...lame_init(); lame_set_in_samplerate(lame, 11025.0); lame_set_VBR(lame, vbr_default); lame_init_params...= 0); lame_close(lame); fclose(mp3); fclose(pcm); } @catch (NSException *exception
FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换等;FFmpeg框架提供了多种丰富的插件模块,包含封装与解封装的插件、编码与解码的插件等...* 文件封装格式:MP4、FLV、KV、TS等 * 网络协议封装格式:RTMP、RTSP、MMS、HLS等。 FFmpeg是否支持某种媒体封装格式,取决于编译时是否包含了该格式的封装库。...* 支持MPEG4、AAC、MJPEG等自带的媒体编解码格式等 * 支持第三方的编解码器:H.264(AVC)编码,需要使用x264编码器;H.265(HEVC)编码,需要使用x265编码器;MP3...(mp3lame)编码,需要使用libmp3lame编码器 如果希望增加自己的编码格式,或者硬件编解码,则需要在AVCodec中增加相应的编解码模块。...ffprobe是一个非常强大的多媒体分析工具,可以从媒体文件或者媒体流中获得你想要了解的媒体信息,比如音频的参数、视频的参数、媒体容器的参数信息等。
, # 通道数 audio_nbytes=4, # 音频编码器...音频通道数:从1通道,变成了2通道; 二、异常原因: 部分参数采用了默认值,包括音频比特率,通道类型。...ogv, .mp4, .mpeg, .avi, .mov等都可以 fps:帧率,每秒编码的帧数 codec:用于图像编码的编解码器,可以是ffmpeg支持的任何编解码器。...所以如果赶时间而文件大小不是很重要可以设置为ultrafast audio_nbytes:音频的采用的位数,对应基于字节为单位就是声道数; audio_codec:音频解码器,例如’.mp3’的’libmp3lame...默认值为“libmp3lame”,除非视频扩展名为“ogv”或“webm”,在这2种情况下,默认值为“libvorbis”。
目录 前言 实战 一、编码器 二、解码器 三、滤镜 四、封装格式 五、常用命令 5.1 抽取纯音频文件 5.2 抽取纯视频文件 5.3 合并音频和视频文件 结尾 ---- 前言 FFmpeg是一个完整的跨平台音视频解决方案...---- 实战 一、编码器 使用 ffmpeg -encoders 命令可以查看当前ffmpeg版本支持的编码器都有哪些。...如果你正在使用ffmpeg编码,报错了,你可以使用这个命令查看一下当前的编码器是否支持。这里你可能会问,ffmpeg没有统一的版本吗?为什么支持的编码器还不一样?...从中可以看出ffmpeg支持的视频编码器中,常见的有flv,h263,mpeg等;音频编码器有pcm,ac3,aac,g722等。...#0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s Metadata: encoder : LAME3.99r
领取专属 10元无门槛券
手把手带您无忧上云