ffmpeg -f g726le -code_size 5 -ar 8000 -ac 1 -i ./audio_raw.dat ./audio.mp3
可以得到音频。 注意 dat 文件中每帧已经去掉了海思的4个字节头。
海思G726音频帧说明如下,前面2个short表示海思私有头。short表示2个字节。
参数(单位short) | 位 | 说明 |
short 0 | 15:8 | Frame Flag 01B : normal voice frame other : invalid |
7:0 | reseverd | |
short 1 | 15:8 | Frame Counter |
7:0 | Raw Frame Data Length | |
short 2 | 15:0 | Raw data 0 |
short 3 | 15:0 | Raw data 1 |
short | 15:0 | … |
short 2+n | 15:0 | Raw data n |
如果获取码流类型?
int type = 0;//码率类型
switch((lSourceDataLength-4)/20)// lSourceDataLength为音频数据长度(包含了4个字节海思头),比如104
{
case 2:
type = G726_16KBPS;
break;
case 3:
type = G726_24KBPS;
break;
case 4:
type = G726_32KBPS;
break;
case 5:
type = G726_40KBPS;
break;
default:
type = G726_40KBPS;
}
//g726的码率选择有两套,遵循for ASF时,使用MEDIA_G726_XXX。
ffmpeg 命令是自己写的。 其他的不关我事, 只是抄袭的。
https://blog.csdn.net/byxdaz/article/details/69218739