ffmpeg音频解码数据为零

时间:2012-12-18 14:28:38

标签: audio ffmpeg

我尝试使用ffmpeg使用以下代码解码音频:

NSMutableData *finalData = [NSMutableData data];
......
while(av_read_frame(pFormatCtx, &packet) >= 0){
    if(packet.stream_index == videoStream)
    {
        int consumed = avcodec_decode_audio4(pCodecCtx, pFrame, &got_frame_ptr, &packet);

        if(got_frame_ptr)
        {
            [finalData appendBytes:(pFrame->data)[0] length:(pFrame->linesize)[0]];

        }
    }
    av_free_packet(&packet);
}
......
[finalData writeToFile:path atomically:YES];

即使我将文件扩展名更改为wav,也无法播放保存的文件。当我在HexEdit(十六进制编辑器)中查看它时,我发现有许多零字节。例如,偏移量0x970之前的文件内容全部为零。我的代码中有错误吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

实际上解码结果很好。文件中的零字节是正常的,因为解码结果是PCM数据。我试图将数据导入Adobe Audition,它可以播放。 FYI。