h264 100GB ビデオ ストリームの分析

h264 100GB ビデオ ストリームの分析

大きなファイル、CCTV の h264 ストリーム ビデオがあります。このファイルを ffprobe で分析すると、次の結果が得られました。

[h264 @ 0000000002d24480] no frame!
[h264 @ 0000000002d24480] non-existing PPS 0 referenced Last message repeated 1 times
[h264 @ 0000000002d24480] decode_slice_header error 
[h264 @ 0000000002d24480] no frame!
[h264 @ 0000000002d24480] non-existing PPS 0 referenced Last message repeated 1 times
[h264 @ 0000000002d24480] decode_slice_header error
[h264 @ 0000000002d24480] no frame!
[h264 @ 0000000002d24480] non-existing PPS 0 referenced Last message repeated 1 times
[h264 @ 0000000002d24480] decode_slice_header error
[h264 @ 0000000002d24480] no frame!
[h264 @ 0000000002d24480] non-existing PPS 0 referenced Last message repeated 1 times 
[h264 @ 0000000002d24480] decode_slice_header error
[h264 @ 0000000002d24480] no frame!
[h264 @ 0000000002d24480] concealing 890 DC, 890 AC, 890 MV errors in I frame 
[h264 @ 0000000002d24480] sps_id 1 out of range 
Input #0, h264, from 'E:\example_1':
Duration: N/A, bitrate: N/A Stream #0:0: Video: h264 (Main), yuv420p, 704x576, 25 fps, 25 tbr, 1200k tbn, 50 tbc

小さな問題が 2 つあります。

  1. ファイルが特定の日付 (たとえば、2014 年 1 月 1 日) に存在するかどうかを知ることはできますか? h264 のメタデータ ストリームを分析できますか?
  2. ストリーム ビデオには、異なるカメラの画像が次々に周期的に表示されます。ストリーム ビデオをカメラごとに分割できますか? 可能ですか? 可能であれば、個別のカメラ クリップを 1 つのカメラ ビデオに結合することもできます。

ありがとう

答え1

ファイルが特定の日付 (たとえば、2014 年 1 月 1 日) に存在するかどうかを知ることはできますか? h264 のメタデータ ストリームを分析できますか?

いいえ、ストリームは単純に言えば 1 フレームずつ続く H.264 ビットストリームだからです。

メタデータは含まれません。メタデータが必要な場合は、ストリーミング メディアでよく選択される MPEG-2 トランスポート ストリームなどのコンテナー、または MP4 ファイルが必要です。

ストリームビデオには、異なるカメラの画像が次々に周期的に表示されます。ストリームビデオをカメラごとに分割できますか? 可能ですか?

どうやら、ストリームは独自の形式を使用しているようです。ffmpeg では、そのようなマルチカメラ ビデオをデコードできません。通常、H.264 Annex B ビットストリームには、同じシーケンスに属するフレームのみが含まれます。

H.264パーサーを書く必要があります(または次のようなものから始める必要があります)h264bitstream) ビットストリームからの NAL ユニットをカメラごとに 1 つずつ個別のビットストリームに分割します。

そして、それをデコードするためには、ビットストリームに以下が含まれている必要があります。SPS および PPS NAL ユニットストリームには何も存在しません。フレームは宣言されていない SPS/PPS を参照しているため、エラーがそれを通知します。

関連情報