1,打开音乐文件,调用av_open_input_file()
2,查找audio stream,调用av_find_stream_info()
3,查找对应的decoder,调用avcodec_find_decoder()
4,打开decoder,调用avcodec_open()
5,读取一桢数据包,调用av_read_frame()
6,解码数据包,调用avcodec_decode_audio3()
7,将解码后的数据返回
这样,得到解码后的PCM数据之后,我们可以播放、也可以encode成其他格式。
1,打开文件// return 0: OK
// return -1: arguments are wrong
int internal_open(const char* file)
int i = 0;
int res = 0;
LOGD("enter internal_open(), file name:%s", file);
if (file == 0 || strlen(file) == 0)
LOGE("%s, argument file is wrong!", __FUNCTION__);
return -1;
// try open file
if ((res = av_open_input_file(&m_format_ctx, file, NULL, 0, NULL)) != 0)
LOGE("%s, av_open_input_file() return failed!", __FUNCTION__);
return res;
// find streams information
if ((res = av_f
最近忙于使用ffmpeg播放音乐文件的项目,现将开发经验总结如下:一、解码音乐文件的大致流程如下:1,打开音乐文件,调用av_open_input_file()2,查找audio stream,调用av_find_stream_info()3,查找对应的decoder,调用avcodec_find_decoder()4,打开decoder,调用avcodec_open()5,读取一桢数据包,调用a...
请确保将`input.
pcm
`替换为您要
转
换的FLTP
格式
音频
文件
的实际
文件
名,并将`output.
pcm
`替换为您希望生成的S16
格式
音频
文件
的实际
文件
名。
此命令将输入
音频
文件
的采样
格式
从FLTP
转
换为S16,并将采样率设置为44100 Hz,声道数设置为2。
转
换后的
文件
将保存为输出
文件
。根据需要,您可以根据实际情况更改采样率和声道数。