分析 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

我有兩個小問題:

  1. 我能否知道文件中是否存在於特定日期(例如 2014 年 1 月 1 日)?我可以分析 h264 的元資料流嗎?
  2. 在串流影片中,循環播放著不同攝影機的影像。可以根據攝影機分割串流影片嗎?是否可以?如果可能的話,我還想將單獨的攝影機剪輯合併到一個攝影機視訊中。

謝謝

答案1

我能否知道文件中是否存在於特定日期(例如 2014 年 1 月 1 日)?我可以分析 h264 的元資料流嗎?

不,因為該流只是一個 H.264 位元流,(簡單地說)一幀又一幀。

它不包含任何元資料。當您需要元資料時,您需要一個容器,例如 MPEG-2 傳輸串流(通常用於串流媒體)或 MP4 檔案。

在串流影片中,循環播放著不同攝影機的影像。可以根據攝影機分割串流影片嗎?是否可以?

顯然該串流使用專有格式。 ffmpeg無法解碼那種多機位視訊。通常,H.264 附件 B 位元流僅包含屬於相同序列的訊框。

你必須寫一個 H.264 解析器(或從類似的東西開始h264bitstream)並將 NAL 單元從位元流拆分為單獨的位元流,每個攝影機一個。

然後,為了對其進行解碼,您的位元流需要包含SPS 和 PPS NAL 單位。在您的串流中,沒有任何內容,這是錯誤告訴您的,因為幀引用了從未聲明的 SPS/PPS。

相關內容