使用我的发行版附带的ffmpeg 3.4.4,我在解码mp3文件时遇到问题。解码器对于flac和m4a正常工作。
我已经看到了两个相关的问题,都与确定文件中的样本数量有关。
打开文件时,我使用以下API调用序列:
avformat_open_input(...);
avformat_find_stream_info(...);
avformat_find_best_stream(...);
这时,我拥有AVStream
,与flac和m4a的情况不同,nb_frames
字段不等于样本数。相反,我必须使用time_base
和duration
来计算样本数。
解码文件时,我是avcodec_send_packet
和avcodec_receive_frame
。填充的AVFrame
的{{1}}值不正确,因此在读取整个文件后,我只解码了大约4%的样本。
用ffmpeg解码mp3文件的正确方法是什么?