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 Annex B 비트스트림에는 동일한 시퀀스에 속하는 프레임만 포함됩니다.

H.264 파서를 작성해야 합니다(또는 다음과 같은 것으로 시작해야 합니다).h264bitstream) 비트스트림의 NAL 단위를 카메라당 하나씩 별도의 비트스트림으로 분할합니다.

그런 다음 이를 디코딩하려면 비트스트림에 다음이 포함되어야 합니다.SPS 및 PPS NAL 장치. 스트림에는 프레임이 선언되지 않은 SPS/PPS를 참조하므로 오류가 알려주는 것이 없습니다.

관련 정보