Seeking advice on what is potentially an anomaly with fps

Support forum for DGDecNV
Post Reply
User avatar
hydra3333
Posts: 394
Joined: Wed Oct 06, 2010 3:34 am
Contact:

Seeking advice on what is potentially an anomaly with fps

Post by hydra3333 »

Hello.

I recently encountered what at first glance appears to be an anomaly with DGIndexNV reporting and delivering circa 50fps from a file which is supposed to be PAL 25i (25 frames per sec, 50 fields per sec).

My workflow in this specific case is

1. OTA capture into a .ts (for timeshifted viewing)
2. automated VideoReDo QuickStreamFix (QSF) into a .mp4
3. run DGIndexNV over the QSF file to create a .dgi
4. create a vapoursynth script to core.dgdecodenv.DGSource and filter the video
5. use ffmpeg to convert/re-mux the audio with the filtered/deinterlaced video into

I am getting stuck at item 3 since DGIndexNV say's the QSF .mp4 file is 50fps, hence later encodes/muxes go at 50fps and as a result the audio sync is amusing but unhelpful :)

I went back to v225 however that was still doing the same thing.

I did update VideoReDo recently, perhaps that's related, however
- mediainfo says 25fps on the QSF file
- media players recognise 25fps in the QSF file and play it correctly

The source and QSF files and the DG .log/.dgi and mediainfo logs are here:
https://drive.google.com/drive/folders/ ... sp=sharing


Pointing me in the right direction would be much appreciated, as my workflow is now at a standstill :)

mediainfo reports the QSF file as

Code: Select all

Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 1 min 4 s
Bit rate                                 : 1 525 kb/s
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 25.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Interlaced
Scan type, store method                  : Separated fields
Scan order                               : Top Field First
Bits/(Pixel*Frame)                       : 0.029
Stream size                              : 23.7 MiB (87%)
Color range                              : Limited
Codec configuration box                  : avcC
DGIndexNV log says

Code: Select all

Stream Type: MP4
Video Type: AVC
Profile: High
Level: 4
Coded Size: 1920x1088
SAR: 1:1
Display Size: 1920x1080
Frame Rate: 50.146000 fps
Colorimetry: Unknown [2]
Frame Structure: 
Frame Type: 
Coded Number: 1625
Playback Number: 1625
Frame Repeats: 0
Field Repeats: 0
Bitrate: 
Bitrate (Avg): 
Bitrate (Max): 
Audio Stream:  2: AC3 448kbps 48000 5ch
Elapsed: 0:00:00
Remain: 0:00:00
FPS: 
Info: Finished!
User avatar
hydra3333
Posts: 394
Joined: Wed Oct 06, 2010 3:34 am
Contact:

seeking advice on what is potentially an anomaly with fps

Post by hydra3333 »

Hmm, it appears to be some difference between VideoReDo v5 and VideoReDo v6 when using notionally the same "output profile".

fps in the v5 QSF file is recognised OK.
fps in the v6 QSF file is not recognised OK.

Still, it'd be handy to understand how DGIndexNV doesn't like the v6 QSF .mp4 file when media players like MPC-HC and VLC play it OK.

edit: here's the post over at VideoReDo flagging it is possible they have an issue (it is still possible it's me, but as yet I am unsure what it could be):
https://videoredo.net/msgBoard/index.ph ... qsf.37602/
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

seeking advice on what is potentially an anomaly with fps

Post by Rocky »

Please give me the corresponding MP4 file made with videoredo v5.
User avatar
hydra3333
Posts: 394
Joined: Wed Oct 06, 2010 3:34 am
Contact:

seeking advice on what is potentially an anomaly with fps

Post by hydra3333 »

Rocky wrote:
Fri Feb 19, 2021 7:26 am
Please give me the corresponding MP4 file made with videoredo v5.
OK I popped it in the same google drive share mentioned above.
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

seeking advice on what is potentially an anomaly with fps

Post by Rocky »

Thank you. VRD has changed the way they report the number of samples for interlaced streams. In vr5, they had the sample count as the frame count, but in vr6 they have the sample count as the field count. Unfortunately, there is no interlacing flag that I can find in MP4 metadata ('fiel' box exists only in MOV), so I am unable to adjust the sample count appropriately, and therefore I cannot get the frame rate from only MP4 metadata. If anyone knows how, please let me know. So we have to revert to ES-level data.

I have slipped a fix to use ES-level data for MP4 into build 228, so please re-download and test that. Works fine for me so marking this thread resolved.
User avatar
hydra3333
Posts: 394
Joined: Wed Oct 06, 2010 3:34 am
Contact:

Seeking advice on what is potentially an anomaly with fps

Post by hydra3333 »

Yes,

Code: Select all

Frame Rate: 25.000000 fps
Now it works for me too. Both vrd5 and vrd6 qsf'd files :bravo:

Thank you !
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

Seeking advice on what is potentially an anomaly with fps

Post by Rocky »

You are most welcome, and thank you for the report.

Turns out that the legal way for field coded streams is to have a field per MP4 sample, so what VRD did is correct. It's a deficiency of MP4 that they don't have an equivalent of the MOV 'fiel' atom. I suppose the thinking was that nobody would want to put interlaced content in MP4; however, as we all know, interlacing refuses to die.
Post Reply