繁体   English   中英

如何通过ffmpeg将mp3解码为pcm

[英]How to decode mp3 to pcm by ffmpeg

我需要将mp3音频数据解码为pcm。 我有以mp3标头开头的数据。 api-example.c不起作用,输出很奇怪:

在此处输入图片说明

命令ffmpeg -i input.mp3 output.wav很棒,这就是我需要的。 但是我找不到方法如何在代码中做到这一点。 有人知道ffmpeg库的某些教程在哪里吗? 谢谢

编辑2.7.13:

再次嗨,我从ffmpeg重建了音频解码示例方法,而我的问题可能在这里:

len = avcodec_decode_audio4(avCodecContext,avFrame, &got_frame,&avPacket);    
int data_size = av_samples_get_buffer_size(NULL,avFrame->channels,avFrame->nb_samples,AV_SAMPLE_FMT_S16P,1);

data_size是来自解码器的数据帧的大小,它取决于通道数,数据样本数和数据类型(我的数据是16位PCM立体声编码为mp3到mp3帧的1152样本)

如果我以大胆的态度打开输出文件,则可以提供正确输出的正确参数是立体声(正确),8位pcm(错误)和一半采样率(也错误),这是怎么回事?

编码前的数据:16位PCM 44100Hz,立体声

解码后数据:8bit PCM 22050Hz,立体声---> ??? !!!

我对此感到厌倦。

一种方法是在代码中调用可执行文件:

system("ffmpeg -i input.mp3 output.wav"); //assuming the executable name is ffmpeg and its location is in PATH environment variable

另一种方法是使用API​​。 此处的示例,请参阅该文件中的audio_decode_example()函数。

一些教程:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM