全部
技术
PHP
MySQL
前端
Linux
JAVA
工具
纪念日计算器
邮记星
个人记账
笔记侠
历史上的今天
生日密码
生日书
生日密码
生日花语
博古通今
三十六计
鬼谷子
笑林广记
本草纲目
山海经
唐诗宋词
宋词300首
唐诗300首
退出
登录
注册
编辑文章
选择分类
PHP
MySQL
前端
Linux
Java
工具
选择专栏
设计模式
java基础
Angular学习
Java面试题
描述:
最近用ffmpeg将mp3转为pcm,遇到了一些坑
封面图上传 :
+
点击上传图片
大概是这样的,我使用ffmpeg将mp3转为pcm,使用的命令: `ffmpeg -y -i 1.mp3 -acodec pcm_s16be -f s16be -ac 2 -ar 16000 16k.pcm` 转换出来的pcm文件用Cool Edit Pro软件offset 0类型打开时,声音的波普是乱的,当时是和科大讯飞调试语音测评接口,结果人家拿我的语音用Cool Edit Pro 打开说是音频全是杂音,然后我就百思不得其解,毕竟这个软件的offset参数是干嘛也不知道,用Cool Edit Pro软件offset 1类型打开是OK的,后面百度才知道这个是来过滤噪音的。 但当时不知道什么情况,后面百度ffmpeg的参数s16be,发现还有一种是s16le,抱着试一试的心态,把**s16be**换成了**s16le**,结果还是没有用,后面搞了好久,发现没有把**pcm_s16be**也换成**pcm_s16le** 又试了一下,发现可以用Cool Edit Pro软件offset 0类型打开了。 原来这个音频分两个编码 **s16le为: PCM signed 16-bit little-endian** **s16be为: PCM signed 16-bit big-endian** **Little-endian:将低序字节存储在起始地址(低位编址)** **Big-endian:将高序字节存储在起始地址(高位编址)** linux可以用 `ffmpeg -formats -h` 查看支持的全部格格式 -f (-foramts)指定格式 ####正确的生成方式 `ffmpeg -y -i 1.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 16000 16k.pcm` | 参数 | 说明 | | ------------ | ------------ | |-y |允许覆盖 | |-i 1.mp3| mp3源文件 | |-acodec pcm_s16le |编码器| |-f s16le | 强制文件格式 | |-ac 2| 1-单声道 2-双声道 | |-ar 16000|采样率 | |16k.pcm| 最终输出的pcm文件|
保存文章