使用ffmpeg av_codec_video_2解码原始缓冲区

时间:2015-10-16 10:39:53

标签: ffmpeg webrtc rtp libav vp8

我试图在C中为webrtc应用编写解码器。我收到一个RTP流,我解析每个数据包,重新排序它们,并将有效负载放在AVPacket中,如此处所述({{3} })。 重新排序部分没有在此链接中描述,但我非常确定这部分是正常的。

问题是,我不知道如何给解码器提供有关分辨率,pix_fmt等的信息。我是否需要创建一个AVstream*并用rtp header中的所有信息填充它?

有人有一段正在运行的代码,可以在不使用rtp_dec等的情况下对已拆包的VP8数据包进行解码吗?

在此链接中,似乎没有更多信息发送到解码器,它是否能够在不知道分辨率且没有任何标题的情况下进行解码?

1 个答案:

答案 0 :(得分:0)

您不需要提供"解决方案,pix_fmt等。"解码器的信息,由解码器从输入AVPackets得到的信息。

编码器需要像resolution,pix_fmt等信息来生成压缩字节/比特流。并且,编码器将此(分辨率,pix_fmt等)信息嵌入到生成的比特流中。一旦解码器以正确的顺序接收比特流,它就会在继续解压缩之前获得分辨率pix_fmt信息。

您提供给解码器的数据包顺序可能就是您的情况。