使用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裸码转换的介绍比较少,所以在此分享下,希望对网友有所帮助。

相关文章
|
2月前
|
网络协议 应用服务中间件 Linux
【音视频 ffmpeg 学习】 RTMP推流 mp4文件
【音视频 ffmpeg 学习】 RTMP推流 mp4文件
|
网络协议 API 开发者
FFmpeg打开输入文件
本文介绍如何使用 FFmpeg 的 API 函数 avformat_open_input,avformat_find_stream_info 来打开跟获取一个输入文件的信息 (AVFormatContext )。
157 0
|
容器
FFmpeg读取文件内容AVPacket
FFmpeg读取文件内容AVPacket
195 0
|
Windows
WINDOWS编译ffmpeg:LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
WINDOWS编译ffmpeg:LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
387 0
编译ffmpeg:libavdevice/xcbgrab.c:28:10: fatal error: xcb/xfixes.h: 没有那个文件或目录
编译ffmpeg:libavdevice/xcbgrab.c:28:10: fatal error: xcb/xfixes.h: 没有那个文件或目录
48 0
|
Ubuntu 编译器 开发工具
Ubuntu编译ffmpeg需要下载的文件
Ubuntu编译ffmpeg需要下载的文件
118 0
|
3天前
|
编解码
FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作
《FFmpeg开发实战》书中3.4.3节讲解如何将H.264流封装成MP4。H.264流通常以SPS→PPS→IDR帧开始,这一说法通过雷霄骅的H264分析器得到验证。分析器能解析H.264文件但不支持MP4。ZLMediaKit服务器在遇到I帧时会自动插入SPS和PPS配置帧,确保流符合标准格式。若缺少这些帧,客户端拉流时会报错。FFmpeg开发实战:从零基础到短视频上线》书中提供了更多FFmpeg开发细节。
17 0
FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作
|
10天前
|
编解码 Java Android开发
FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
RTMP Streamer是一款开源的安卓直播推流框架,支持RTMP、RTSP和SRT协议,适用于各种直播场景。它支持H264、H265、AV1视频编码和AAC、G711、OPUS音频编码。本文档介绍了如何使用Java版的RTMP Streamer,建议使用小海豚版本的Android Studio (Dolphin)。加载项目时,可添加国内仓库加速依赖下载。RTMP Streamer包含五个模块:app、encoder、rtmp、rtplibrary和rtsp。完成加载后,可以在手机上安装并运行APP,提供多种直播方式。开发者可以从《FFmpeg开发实战:从零基础到短视频上线》获取更多信息。
41 7
FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
|
11天前
|
存储 编解码
FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧
《FFmpeg开发实战》书中介绍了音视频编码历史,重点讲述H.264的成功在于其分为视频编码层和网络抽象层。H.264帧类型包括SPS(序列参数集,含视频规格参数),PPS(图像参数集,含编码参数)和IDR帧(立即解码刷新,关键帧)。SPS用于计算视频宽高和帧率,PPS存储编码设置,IDR帧则标志新的解码序列。书中还配以图片展示各帧结构详情,完整内容可参考相关书籍。
41 7
FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧
|
18天前
|
编解码 Linux
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
XviD是开源的MPEG-4视频编解码器,曾与DivX一起用于早期MP4视频编码,但现在已被H.264取代。要集成XviD到Linux上的FFmpeg,首先下载源码,解压后配置并编译安装libxvid。接着,在FFmpeg源码目录中,重新配置FFmpeg以启用libxvid,然后编译并安装。成功后,通过`ffmpeg -version`检查是否启用libxvid。详细步骤包括下载、解压libxvid,使用`configure`和`make`命令安装,以及更新FFmpeg配置并安装。
36 2
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid