avi컨테이너로 녹화영상을 저장하고있는데
팟플레이어에서 제공하는 전체 Frame 값이 헤더의 어떤 필드를 참조하는지 궁금합니다.
단순 각 video 트랙별 strh의 Length값이 아니라 연산값으로 보이는데, 답변주시면 감사하겠습니다..
저장 사양은 아래와 같습니다.
=======================================================================
[사용 중인 필터 목록]
(1) Built-in AVI Source
(2) Built-in Video Codec/Transform(Low Merit)
(3) Enhanced Video Renderer(Custom Present)
(4) Built-in Audio Codec/Transform
(5) DirectSound Audio Renderer
[비디오 정보]
비디오 코덱: hev1 - Native D3D9 DXVA VLD Decoder - Intel(R) Iris(R) Xe Graphics
입력 형식: hev1(24 bits)
입력 크기: 3840 × 2160(1.78:1)
출력 형식: dxva
출력 크기: 3840 × 2160(1.78:1)
프레임 레이트: 25.4
BitRate: 19760 kbps
[오디오 정보]
오디오 코덱: PCM(0x1) - PCM
샘플링 레이트: 16000 -> 16000 샘플/초
샘플당 비트수: 16 -> 16 비트/샘플
채널 수: 1 -> 2 채널
Bitrate: 128 kbps
General
Complete name : C:\Users\user\Downloads\0126\REC3_20260126_103659.avi
Format : AVI
Format/Info : Audio Video Interleave
Format settings : BitmapInfoHeader / WaveFormatEx
File size : 258 MiB
Duration : 1 min 2 s
Overall bit rate : 34.5 Mb/s
Frame rate : 25.400 FPS
IsTruncated : Yes
Video #1
ID : 0
Format : hev1
Codec ID : hev1
Duration : 1 min 2 s
Bit rate : 19.8 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate : 25.400 FPS
Bits/(Pixel*Frame) : 0.094
Stream size : 148 MiB (57%)
Video #2
ID : 1
Format : hev1
Codec ID : hev1
Duration : 1 min 1 s
Bit rate : 7 294 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 25.000 FPS
Bits/(Pixel*Frame) : 0.141
Stream size : 53.2 MiB (21%)
Video #3
ID : 2
Format : hev1
Codec ID : hev1
Duration : 1 min 1 s
Bit rate : 7 216 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 25.000 FPS
Bits/(Pixel*Frame) : 0.139
Stream size : 52.6 MiB (20%)
Audio
ID : 3
Format : PCM
Format settings : Little / Signed
Codec ID : 1
Duration : 1 min 2 s
Bit rate mode : Constant
Bit rate : 128 kb/s
Channel(s) : 1 channel
Sampling rate : 16.0 kHz
Bit depth : 16 bits
Stream size : 1.91 MiB (1%)
Alignment : Aligned on interleaves
Interleave, duration : 64 ms (1.63 video frames)
Text
ID : 4
Stream size : 622 KiB (0%)
댓글
댓글 리스트-
작성자팟플.개발자 작성시간 26.01.26 각 트랙의 최대값을 재생 전체 시간으로 사용하고..
전체 프레임은 비디오 프레임 간격으로 나누어서 전체 프레임을 산출 합니다. -
답댓글 작성자원두 작성자 본인 여부 작성자 작성시간 26.01.26 아하, 빠른답변감사드립니다.
1. 각 트랙의 rate와 length로 시간을 구하고.
2. 그 중 최대값을 전체시간으로 사용.
3. 다시 각 트랙의 프레임수는 전체시간에 rate값을 곱하여 표출
그러면 aviheader의 TotalFrame와 MicroSecPerFrame 필드는 참조를 안 하고 있는게 맞을까요?
직접 필드 수정하고 테스트해보면 영향이 없어보여서요. -
답댓글 작성자팟플.개발자 작성시간 26.01.26 원두 무조건 참조 안하는것은 아니고..
트랙에 있는값이 잘못 되었다고 판단 되면 사용은 합니다. -
답댓글 작성자원두 작성자 본인 여부 작성자 작성시간 26.01.26 팟플.개발자 정말 궁금하던 거였는데 이 카페를 찾아서 여쭤보기를 잘했네요.
감사드립니다.