Ich brauche etwas Hilfe mit decadein rtsp Video-Stream. Ich bekomme es von AXIS IP-Kamera. Ich benutze ffmpeg Bibliothek dafür. Es ist notwendig, AVCodecContext separat zu erstellen, nicht aus AVFormatContext-> Streams [...] -> Codec;Decode h264 rtsp mit ffmpeg und getrennt AVCodecContext
Also ich AVCodec, AVCOdecContext erstellen und versuchen, sie zu initiieren.
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);
Dann in Hauptschleife Anwendung, erhalten i-Datenrahmen und versuchen zu entschlüsseln:
_preallocatedFrame = avcodec_alloc_frame();
avcodec_decode_video2(_context, _preallocatedFrame, &got_picture, &_packet);
Und hier habe ich viele Nachrichten in der Konsole erhalten:
[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!
Können Sie Ratschläge mir etwas, wie AVCodecContext oder etwas anderes in Ordnung bringen, um es richtig zu machen?
Ok, aber wo die Unterschiede. Wenn ich meinen AVCodecContext von AVFormatContext-> Streams [...] -> Codec bekomme und absolut ähnliche Operationen mache, dekodiert er ohne Fehler. Bt es ist notwendig, dass ich separated Codeccontext verwende (es kann entschlüsselt werden, nachdem Daten aus dem Archiv, gespeichert auf einer Festplatte, wenn ich Formatkontext nicht haben kann) – mmmaaak
Haben Sie versucht, die 2 Kontextobjekte zu vergleichen? – Horonchik
Ja, es gibt mehr als 20 Unterschiede zwischen ihnen. Ich habe versucht, alle verschiedenen Felder auf meinen Kontext zu setzen, außer AVCOdecContext-> priv_data und andere Zeigerfelder - es funktioniert nicht. – mmmaaak