解码原始缓冲区与ffmpeg av_codec_video_2



我试图在c中编写一个webrtc应用程序的解码器。我收到一个RTP流,我解析每个数据包,重新排序它们,并将有效载荷放在AVPacket中,如下所述(FFmpeg解码原始缓冲区与avcodec_decode_video2)。重新排序部分没有在这个链接中描述,但我很确定这部分是可以的。

问题是,我不知道如何给出解码器有关分辨率,pix_fmt等信息。我是否需要创建一个AVstream*并填充我从rtp头获取的所有信息?

是否有人有一个运行的代码,解码一个VP8数据包解包没有使用rtp_dec等?

在这个链接中,似乎没有更多的信息被发送到解码器,它能够在不知道分辨率和没有任何头的情况下解码吗?

您不需要向解码器提供"resolution, pix_fmt等"信息,因为这些信息由解码器从输入的AVPackets中派生。

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

在您的情况下,可能是您提供给解码器的数据包顺序造成的。

最新更新