我需要一些帮助来解码rtsp视频流。我是从AXIS IP-camera得到的。为此,我使用了ffmpeg库。有必要单独创建AVCodecContext,而不是从AVFormatContext->Streames...->codec;
所以我创建了AVCodec,AVCOdecContext并尝试初始化它们。
AVCodec *codec=avcodec_find_decoder(codec_id);
if(!codec)
{
qDebug()<<"FFMPEG failed to create codec"<<codec_id;
return false; //-->
}
AVCodecContext *context=avcodec_alloc_context3(codec);
if(!context)
{
qDebug()<<"FFMPEG failed to allocate codec context";
return false; //-->
}
avcodec_open2(context, codec, NULL);然后在应用程序的主循环中,我获取帧数据并尝试解码:
_preallocatedFrame = avcodec_alloc_frame();
avcodec_decode_video2(_context, _preallocatedFrame, &got_picture, &_packet);在这里,我在控制台中得到了很多消息:
[h264 @ 1f177720] decode_slice_header error
[h264 @ 1f177720] no frame!
[h264 @ 1f177720] non-existing PPS 0 referenced
[h264 @ 1f177720] decode_slice_header error
[h264 @ 1f177720] no frame!
[h264 @ 1f177720] non-existing PPS 0 referenced
[h264 @ 1f177720] decode_slice_header error
[h264 @ 1f177720] no frame!
[h264 @ 1f177720] non-existing PPS 0 referenced
[h264 @ 1f177720] decode_slice_header error
[h264 @ 1f177720] no frame!
[h264 @ 1f177720] non-existing PPS 0 referenced
[h264 @ 1f177720] decode_slice_header error
[h264 @ 1f177720] no frame!
[h264 @ 1f177720] non-existing PPS 0 referenced
[h264 @ 1f177720] decode_slice_header error
[h264 @ 1f177720] no frame!你能给我一些建议吗,如何初始化AVCodecContext或其他正确的方法?
发布于 2012-07-02 02:50:29
您需要执行更多的工作。如果你想解码h.264流,你需要把"sps pps“数据传给解码器。这些数据可以在RTP流本身的see上找到
或者在SDP中的rtsp协商中。在您成功地将此数据提供给解码器之后,解码应该可以工作了。
https://stackoverflow.com/questions/11261551
复制相似问题