カメラからRTSP MPEG4ストリームを記録するためにffmpegを使用しています
- RTSP は、avformat_open_input 関数を呼び出して確立されています
av_read_packet
(contest, & packet ) でカメラからフレームを受信し、AVPacket 構造体に格納します。- ここで、このフレームを解析して、ファイルに保存する前にどのフレームが I フレームであるかを判断したいと考えています。この場合、func を使用
avcodec_decode_video
すると役立つかもしれませんが、遅延デコードがあるため、私にとっては良い選択ではありません。とにかく別の使い方がしたい
簡単に言うと、packet.data には RTP ヘッダー + RTP データを含む RTP 形式が含まれていると思います。
how to process draw data packetやrtp packet からの MPEG-4 の解析など、他のいくつかのスレッドを調べました。実際、それらは私が必要としているものと非常によく似ており、何か間違ったことをした可能性があります。そのため、パケット.data 内の RTP ヘッダーの 12 バイトがどこにあるかをまだ把握できず、本当に必要なのは I、P、または B ビデオ オブジェクト プレーン情報です。
RTP フォーマットを解析しようとしていますが、パケット.data に純粋な RTP フォーマット以上の追加情報が含まれているか、RTP ヘッダーが含まれていないようです。わからない。
ショットリー:
How can I parse the frame to get frame info (I, P or B) in AVPacket