使用ffmpeg将裸码文件转成wav文件

简介: 使用ffmpeg将裸码文件转成wav文件

昨天江苏现场交付的同事老徐联系我,局方需要将交换上播放的语音改由我们的媒体服务器播放。但交换播放的语音文件没有携带wav头,需要我帮助将交换上的语音转出我们媒体服务器上的wav格式的语音。


      a0d3d1e55f0a4092bbcdde4e13dcf366.png


拿到陌生的语音后格式后,我先用盲猜的方式用cool edit试着用8k 8bit pcma试一下。因为这种格式比较常见。居然成功打开了。

    1c3efab475cb4721aafd8bd252d23dba.png

63862b2ddad34263a15764108227a4ba.png

7dbde119751c4c4bbdc27966a434a63f.png


盲猜成功后,我显示用cool edit工具转了几条。但cool edit转换稍显麻烦,于是又想到了老朋友ffmpeg。


采用命令


ffmpeg -f alaw -ar 8000 -ac 1 -i 86800205.001 -map_metadata -1 -fflags +bitexact -acodec pcm_alaw -ac 1 -ar 8000 86800205.wav -y


成功将裸码语音转为了wav格式语音。


下面将这个参数的意义列一下:


-f alaw :pcm a law
-ac 1:  1 channel
-ar 8000: sample rate 8000
-i 86800205.001:input file
86800205.wav -y:output file


-map_metadata -1 -fflags +bitexact 是将ffmpeg转码默认携带的LIST的数据(artist,genre等)去掉,变成标准的44字节的wav文件头。


-acodec pcm_alaw:转码为pcm_alaw


我发现网上对于ffmpeg裸码转换的介绍比较少,所以在此分享下,希望对网友有所帮助。

相关文章
|
7月前
|
网络协议 应用服务中间件 Linux
【音视频 ffmpeg 学习】 RTMP推流 mp4文件
【音视频 ffmpeg 学习】 RTMP推流 mp4文件
|
网络协议 API 开发者
FFmpeg打开输入文件
本文介绍如何使用 FFmpeg 的 API 函数 avformat_open_input,avformat_find_stream_info 来打开跟获取一个输入文件的信息 (AVFormatContext )。
198 0
|
容器
FFmpeg读取文件内容AVPacket
FFmpeg读取文件内容AVPacket
229 0
|
Windows
WINDOWS编译ffmpeg:LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
WINDOWS编译ffmpeg:LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
468 0
编译ffmpeg:libavdevice/xcbgrab.c:28:10: fatal error: xcb/xfixes.h: 没有那个文件或目录
编译ffmpeg:libavdevice/xcbgrab.c:28:10: fatal error: xcb/xfixes.h: 没有那个文件或目录
84 0
|
Ubuntu 编译器 开发工具
Ubuntu编译ffmpeg需要下载的文件
Ubuntu编译ffmpeg需要下载的文件
134 0
|
2月前
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
126 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
2月前
|
编解码 语音技术 内存技术
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
《FFmpeg开发实战:从零基础到短视频上线》一书中的“5.1.2 把音频流保存为PCM文件”章节介绍了将媒体文件中的音频流转换为原始PCM音频的方法。示例代码直接保存解码后的PCM数据,保留了原始音频的采样频率、声道数量和采样位数。但在实际应用中,有时需要特定规格的PCM音频。例如,某些语音识别引擎仅接受16位PCM数据,而标准MP3音频通常采用32位采样,因此需将32位MP3音频转换为16位PCM音频。
68 0
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
|
2月前
|
XML 开发工具 Android开发
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
ExoPlayer最初是为了解决Android早期MediaPlayer控件对网络视频兼容性差的问题而推出的。现在,Android官方已将其升级并纳入Jetpack的Media3库,使其成为音视频操作的统一引擎。新版ExoPlayer支持多种协议,解决了设备和系统碎片化问题,可在整个Android生态中一致运行。通过修改`build.gradle`文件、布局文件及Activity代码,并添加必要的权限,即可集成并使用ExoPlayer进行网络视频播放。具体步骤包括引入依赖库、配置播放界面、编写播放逻辑以及添加互联网访问权限。
154 1
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
|
2月前
|
Web App开发 安全 程序员
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
多年的互联网寒冬在今年尤为凛冽,坚守安卓开发愈发不易。面对是否转行或学习新技术的迷茫,安卓程序员可从三个方向进阶:1)钻研谷歌新技术,如Kotlin、Flutter、Jetpack等;2)拓展新功能应用,掌握Socket、OpenGL、WebRTC等专业领域技能;3)结合其他行业,如汽车、游戏、安全等,拓宽职业道路。这三个方向各有学习难度和保饭碗指数,助你在安卓开发领域持续成长。
79 1
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势