2

我想将 WMA 流解码为 16 位 PCM。现在我有一个关于 FFMpeg 的问题-什么是..的输出格式

len = avcodec_decode_audio2(c, (int16_t *)outbuf, &outbuf_used, inbuf_ptr, size);

这是该任务的正确功能吗?

谢谢

4

1 回答 1

2

备注:尝试在 ffmpeg 用户列表上提出这个问题。你肯定会在那里找到 ffmpeg 大师。

我主要使用 ffmpeg 编码/解码视频。要解码,“avcodec_decode_*”是用于...解码的正确东西。你得到的是...... 16 位 PCM。

我的意思是解码多媒体流可能很棘手,而 ffmpeg 是一个相当低级的库。仅使用您提供的代码行很难更精确(至少您应该更精确地了解您的参数)。

您应该注意的是,在读取多媒体流时,您必须首先对流进行解复用(有时即使您的容器中只有一个流),然后使用正确的编解码器对其进行解码。如果您已正确解复用您的流,正确初始化您的编解码器/编解码器上下文,那么您可以调用 avcodec_decode 并且它将起作用:)

当您在标签中提到 c++ 时,您可以尝试为 ffmpeg 使用 c++ 包装:FOBS 使用要简单得多,但当然,您会失去精确的控制......

我希望它有所帮助。

于 2009-08-12T07:32:43.760 回答