Log in

View Full Version : Shocking discovery: BR 3D Movies 24 vs 23.976 fps


Skinfaxi
28th May 2026, 10:10
Are there still lovers of the 3D format?
After more than a decade with an amazing 3D TV and an impressive collection of 3D movies, I made an absolutely shocking discovery that I want to share with others:

Here’s what happened:
Since I could only find Avatar 3 in 3D in English, I got a 2D web version for the dubbed sound to mux it with the 3D version.

During this process, I noticed audio asynchrony of a few seconds:
The reason: web versions run at an exact 24 fps, while the 3D version runs at 23.976… (24000/1001).

Now here’s the kicker:

1. In the cinema, everything runs at 24p. The Blu-ray format enforces a non-cinema-compliant playback speed of 23.976!

2. The playback speed of the video can be changed to exact 24p without re-encoding, just by modifying the header with MKVTOOLNIX from 24000/1001 to exact 24p!

3. Every audio track on Blu-ray has been time-stretched to remain in sync to the movie due to the incorrect frame rate to the original theatrical fps! The original soundtrack is in sync to 24p.

4. The BR “lossless,” “high-resolution” audio formats, Dolby TrueHD or DTS HD MA, are by no means truly lossless—the original audio has been time-stretched to sync, and then only the codec itself is lossless!



In all these years I stumbled not once over a single article in hifi mags or webpages ever mentioning that fact...
In fact they all suggested the most accurate audio quality was with HD audio formats...
In contrast to BR releases, streaming versions online can be based on the cinema-compliant runtime of the exact 24p format...
Gladly I never fell for that HD audio “fraud” on Blu-ray, but the real reason I’m starting this discussion is the following:


Back to 3D:
I tried Gravity 3D in exact 24 fps and found that the sense of depth and the realism of the 3D image improved even further!

To be on the safer side of enforcing TV synchronization to the exact 24p, I activated the option in Kodi on the playback device (here, a RasPi2 with LibreElec) to "sync screen at start/stop".


For anyone who wants to verify my visual observations with Gravity:
There are many scenes I think feel much better, but here is one, I think I can describe in a more objective manner:
At the beginning, when the camera pans to Sandra Bullock during the repair work outside, the depth perception of her relative to the Earth in the background is astonishingly realistic at 24p.
Just like in the cinema, it gives you the feeling of practically floating in the air (with a fully covered vision field). :eek:

At 23.976 fps it’s still very nice, but that eerie sensation of having no ground under your feet doesn’t occur for me.


I’m now wondering: was this actually common knowledge, and I’m just the only one who somehow missed it all these years?

Columbo
28th May 2026, 11:05
It's well known and hardly shocking that blurays typically are at 23.976.

I tried Gravity 3D in exact 24 fps and found that the sense of depth and the realism of the 3D image improved even further! Sounds dubious theoretically but I have no way to test it.

wonkey_monkey
28th May 2026, 11:36
Yes, if you can see a difference between 23.976fps and 24fps then it's due to something in your playback chain (or your imagination), not the framerate itself.

The difference in the audio for different framerates is going to be like the difference between taking a photo at 4000x3000 pixels versus 4004x3003 pixels, i.e. completely unnoticeable.

Skinfaxi
28th May 2026, 15:34
Do you mean that you’ve tried it and don’t see a difference with your setup, or that you haven’t tried it and assume it can’t make a difference?

Z2697
28th May 2026, 16:06
Do you mean that you’ve tried it and don’t see a difference with your setup, or that you haven’t tried it and assume it can’t make a difference?

Now this sounds like "hifi" :devil:

rgr
28th May 2026, 18:15
2. The playback speed of the video can be changed to exact 24p without re-encoding, just by modifying the header with MKVTOOLNIX from 24000/1001 to exact 24p!

No. This will cause programs to only show framerate=24fps. You can even enter fps=2000. Frame durations are stored in the data stream and will continue to be played at 23.96 fps.

Skinfaxi
28th May 2026, 19:38
No. This will cause programs to only show framerate=24fps. You can even enter fps=2000. Frame durations are stored in the data stream and will continue to be played at 23.96 fps.
I think this cannot be true, because the video indeed is drifting out of sync with audio, if the header is changed to 24 straight.
This can be verified in a DAW for the audio timing difference, which is equal to the same speedup as a sampling rate change from 48000 to 48048 Hz: the resampled audio muxed to the 24p video then is in sync again.

rgr
28th May 2026, 19:53
I don't know mkvtoolnix, but apparently it doesn't just change the header, but the PTS data in the whole video stream

wonkey_monkey
28th May 2026, 21:02
Do you mean that you’ve tried it and don’t see a difference with your setup, or that you haven’t tried it and assume it can’t make a difference?

I mean there's no way a change of framerate by 0.1% is going to make "depth perception [...] astonishingly realistic." There's nothing inherent to either 23.976fps or 24fps that would make that kind of difference happen. It'd be like upscaling HD to 4K and saying "Wow, the colours really pop!" even though it's still SDR.

If there is a real difference at all, then something else is causing it.

Z2697
28th May 2026, 21:08
No. This will cause programs to only show framerate=24fps. You can even enter fps=2000. Frame durations are stored in the data stream and will continue to be played at 23.96 fps.

Matroska has container level timestamp/timecode for each frame, that's actually how any framerate works in Matroska.
Every frame, always.

Which is why when the default timecode resolution is 1ms, sometimes some program will remux a MP4 from a CFR matroska as "VFR".

Skinfaxi
28th May 2026, 22:12
I mean there's no way a change of framerate by 0.1% is going to make "depth perception [...] astonishingly realistic." There's nothing inherent to either 23.976fps or 24fps that would make that kind of difference happen.

Me too had expected zero difference...

Skinfaxi
28th May 2026, 22:49
A few years ago, I was flabbergasted to notice a vast improvement in 3D picture quality (significantly reduced ghosting) when connecting the RasPi2 to the AVR and the AVR to the TV, instead of connecting the player directly to the TV — even though I had believed that, in theory, the shorter cable distance and fewer additional connections should have been superior.

But the theory was incomplete, and therefore my conclusions were wrong: AVRs can allegedly regenerate and improve the HDMI signal.

Hardware has become so complex that the simplistic notion of a binary system — either working or not working — falls far short of reality. There can be several layers of processing running simultaneously, and depending on the available time to fill the buffer, calculations may either be cut short or extended.

For example, if the TV receives a very clean HDMI signal, it might be able to omit certain internal error-correction calculations, thereby freeing up processing time for more sophisticated algorithms.

And with 23.976 vs. 24, technical explanations as to why a true 24 Hz signal can be processed more efficiently can easily be imagined.

Besides such purely technical explanations, there might also be a physiological effect. Just as the brain is extremely sensitive to acoustic timing differences between the left and right ear, there may likewise be certain nonlinear effects in the brain’s perception of depth once the frame rate reaches 24 Hz or drops below it.

And it might be combination of both - technical and physiological factors.

rgr
28th May 2026, 22:52
Matroska has container level timestamp/timecode for each frame, that's actually how any framerate works in Matroska.
Every frame, always.

Which is why when the default timecode resolution is 1ms, sometimes some program will remux a MP4 from a CFR matroska as "VFR".

From what I know, Matroska has _only_ frame-level timecode. The timecode in the container only acts as a multiplier for the frame-level timecode.

wonkey_monkey
28th May 2026, 23:27
(significantly reduced ghosting)

From a digital signal?

But the theory was incomplete, and therefore my conclusions were wrong: AVRs can allegedly regenerate and improve the HDMI signal.

Yeah, this all sounds like audiophile talk...

You don't "regenerate" a digital signal, at least not in any way that changes the digital content, and therefore eventual output, of it. An AVR might decode it and reprocess the video, doing who knows what to it, but simply "improving the signal" isn't going to change what's on your screen (unless you're at the point where the signal is actually breaking up).

If I were you, I'd record screen output at 120fps or 240fps with a capable phone, to compare how both 23.976fps and 24fps video are displaying on your screen. That, at least, should give you some objective data, not just your easily-placeboed feeling.

Skinfaxi
29th May 2026, 00:01
From a digital signal?
Ofcourse!


Yeah, this all sounds like audiophile talk...

You don't "regenerate" a digital signal.
You are talking about things you obviously have no clue about.

Skinfaxi
29th May 2026, 10:40
Back on topic:

There are two options to make the audio re-sync with the 24p video stream:
either get the audio from a 24p version (most web/streaming versions seem to be straight 24p; but be careful that it's exactly the same version of the movie and does not start earlier or later) and remux the audio, or adjust the existing audio.

Here are the steps I use if I adjust the audio (this avoids time-stretching and resamples only once):

- Extract the audio as WAV (I personally prefer xrecode3 because years ago I noticed totally incorrect loudness when decoding AC3 in Adobe Audition, while xrecode3 decoded correctly without resulting in a heavy limited C-channel; since then, I haven’t trusted Adobe's AC3-decoding in Audition anymore.) - save as split channels.
- Open the files in Audition.
- EDIT -> Interpret Sample Rate and set it to 48048 instead of 48000.
- EDIT -> Convert Sample Rate to 48000 and set quality to 100% (audio is now back in sync to 24 fps).
- Save as 48 kHz, 32-bit mono WAV.

Then choose a multichannel format of your choice. I prefer Dolby Media Encoder because of the dialogue intelligence feature:
15%–20%, activated and measured, Film Standard, DD+ for online media, highest bitrate.

(I also tried TrueHD, but the RasPi 2 cannot output TrueHD and falls back to PCM. I don't know if the RasPi correctly respects dialnorm when it decodes to PCM and I also do not want to lose the option of dynamic range control; I totally hate how excessively loud and horribly limited most releases are anyway, so DDE offers a potentially beneficial remedy for that problem with a correct recalculation of the loudness and DRC optionality; I also cannot hear any difference between TrueHD and re-encoded DD+)

- In MKVToolNix GUI, remux the new multichannel audio. (By the way, you can change the frame rate of the 3D movie and remux it with the new audio in one step: select the video stream -> options on the right side -> Timestamps -> Default duration/FPS -> set it to 24p.)

rgr
29th May 2026, 13:21
You are talking about things you obviously have no clue about.

How do you imagine "regeneration" of a digital signal?

rgr
29th May 2026, 13:22
Back on topic:

There are two options to make the audio re-sync with the 24p video stream:
either get the audio from a 24p version (most web/streaming versions seem to be straight 24p; but be careful that it's exactly the same version of the movie and does not start earlier or later) and remux the audio, or adjust the existing audio.

Here are the steps I use if I adjust the audio (this avoids time-stretching and resamples only once):

- Extract the audio as WAV (I personally prefer xrecode3 because years ago I noticed totally incorrect loudness when decoding AC3 in Adobe Audition, while xrecode3 decoded correctly without resulting in a heavy limited C-channel; since then, I haven’t trusted Adobe's AC3-decoding in Audition anymore.) - save as split channels.
- Open the files in Audition.
- EDIT -> Interpret Sample Rate and set it to 48048 instead of 48000.
- EDIT -> Convert Sample Rate to 48000 and set quality to 100% (audio is now back in sync to 24 fps).
- Save as 48 kHz, 32-bit mono WAV.

Then choose a multichannel format of your choice. I prefer Dolby Media Encoder because of the dialogue intelligence feature:
15%–20%, activated and measured, Film Standard, DD+ for online media, highest bitrate.

(I also tried TrueHD, but the RasPi 2 cannot output TrueHD and falls back to PCM. I don't know if the RasPi correctly respects dialnorm when it decodes to PCM and I also do not want to lose the option of dynamic range control; I totally hate how excessively loud and horribly limited most releases are anyway, so DDE offers a potentially beneficial remedy for that problem with a correct recalculation of the loudness and DRC optionality; I also cannot hear any difference between TrueHD and re-encoded DD+)

- In MKVToolNix GUI, remux the new multichannel audio. (By the way, you can change the frame rate of the 3D movie and remux it with the new audio in one step: select the video stream -> options on the right side -> Timestamps -> Default duration/FPS -> set it to 24p.)

You can do it directly in ffmpeg or AviSynth (atempo).

Skinfaxi
29th May 2026, 15:26
How do you imagine "regeneration" of a digital signal?

There exist several methods. Convolution with an inverse impulse response of the transmission channel is just one example. The method that might be used in AVRs for HDMI signals you must research yourself, if you want to know it.
But without digital signal regeneration there would be no internet or telecommunication at all. That's enough for me to understand, why routing the digital HDMI signal through an AVR might improve the signal quality and therefore can result in less jitter, more robust timings and therefore in maximized quality of service levels, that might be switched within the TV for picture calculations.

Z2697
29th May 2026, 18:43
From what I know, Matroska has _only_ frame-level timecode. The timecode in the container only acts as a multiplier for the frame-level timecode.

Container level as in contrast to bitstream level, it doesn't change bitstream.
(There's a option in mkvtoolnix to fix H.264 but I never tried it)

Z2697
29th May 2026, 18:53
There exist several methods. Convolution with an inverse impulse response of the transmission channel is just one example. The method that might be used in AVRs for HDMI signals you must research yourself, if you want to know it.
But without digital signal regeneration there would be no internet or telecommunication at all. That's enough for me to understand, why routing the digital HDMI signal through an AVR might improve the signal quality and therefore can result in less jitter, more robust timings and therefore in maximized quality of service levels, that might be switched within the TV for picture calculations.

You mean error correction.
That's part of the standard, not some AVR revolutional invention.
And it's done by sending extra bits (error correction code).

Skinfaxi
29th May 2026, 19:04
Nope, error correction is something completely different. It takes place after signal detection at the digital level. But I talk about the signal quality itself, which is carrying the digital data, and that signal is analog.

Z2697
29th May 2026, 21:53
I have no way to verify that but I wouldn't trust a guy who finds 24000/1001 BD shocking.
I mean, that's sad, we should have lived in a world where perfect 24p BD are common, or the 24000/1001 had been eliminated, if not some random guy at some random meeting decided that it should be kept.
But that's the sad fact for decades now.

The only digital data reading process that involves heavy analog signal processing that I know of is from magnetic storage like HDDs.
https://en.wikipedia.org/wiki/Partial-response_maximum-likelihood
https://en.wikipedia.org/wiki/Two-dimensional_magnetic_recording

huhn
30th May 2026, 14:09
while it is true that every digital signal is by nature analogue. image quality will not change by this...

if you have really heavily damage signal and the TV is still showing the image where the error correction is not working some block will flicker cause the levels are jumping by 1. there are recording of that. but that's it there are 3 states of a signal working flicker and a blacks screen there is no jitter cause of buffering...

rgr
31st May 2026, 15:17
There exist several methods. Convolution with an inverse impulse response of the transmission channel is just one example. The method that might be used in AVRs for HDMI signals you must research yourself, if you want to know it.
But without digital signal regeneration there would be no internet or telecommunication at all. That's enough for me to understand, why routing the digital HDMI signal through an AVR might improve the signal quality and therefore can result in less jitter, more robust timings and therefore in maximized quality of service levels, that might be switched within the TV for picture calculations.

You got something wrong a lot, a digital signal is not an analog.
The HDMI cable is 1m long, there is ABSOLUTELY NO need for any signal regeration.
1m is not 1km.

Z2697
31st May 2026, 16:42
You got something wrong a lot, a digital signal is not an analog.
The HDMI cable is 1m long, there is ABSOLUTELY NO need for any signal regeration.
1m is not 1km.

The carrier of that digital signal, the electricity, is analog.
The receiver essentially does a "sampling and quantizing" to get the digital signal again.

With more and more bandwidth required, either the "sample rate" (clock) or the "bitdepth" (encoding bits) need to increase.
The signal can *potentially* get very mangled over, let's say, not very long distance.

https://en.wikipedia.org/wiki/Transition-minimized_differential_signaling

There are several techniques that reduce the distortion of the carrier analog signal, but not as "heavy duty" as "regeneration" may imply.
Well at least in the standard way of doing things.

Skinfaxi
1st June 2026, 08:08
Theory is all well and good, but empirical evidence wins out. Has anyone actually tested it with their gear yet?

wonkey_monkey
1st June 2026, 10:11
Has anyone actually tested it with their gear yet?

Have you? I mean, objectively? Because "the sense of depth and the realism of the 3D image improved even further" is not an objective measurement, and is exactly the kind of thing you'll hear from audiophiles after they've attached an expensive (but useless) magnet to their SPDIF cables.

Also no-one's going to have the same setup as you, so there's little point. For all we know there could be a bug or deficiency in how images are processed by your particular display when it receives a particular framerate from your particularly configured source. Although I suspect the placebo effect is far more likely.

rgr
1st June 2026, 15:02
Theory is all well and good, but empirical evidence wins out. Has anyone actually tested it with their gear yet?

What evidence do you have that the bytes at the input of a 1m cable are different from those at the output of that cable (after decoding)?

rgr
1st June 2026, 15:05
The carrier of that digital signal, the electricity, is analog.

Technically, it's a digital signal - it only has two states (0,1).

Z2697
1st June 2026, 15:12
Technically, it's a digital signal - it only has two states (0,1).

No, technically and in reality it's an analog signal but we set the rules to digitize it.
That's why we need technical solutions for things like EMI.

A digital signal never leaves the realm of abstraction.
You can't just "snap" the electrons into two positions. That's physics.

If you put cargo on a ship, is it now a ship, a cargo, a ship with cargo, or even cargo on a ship?
I don't think many of us would call it just "cargo".

huhn
1st June 2026, 17:23
Technically, it's a digital signal - it only has two states (0,1).

a bit is interpreted as such but it is analogue and it is not even the close to digital analogue in HDMI they are waves.

there are HDMI tester you can just "buy" as a normal person where you can look at the waveform of your cable.

https://youtu.be/Z4omfJSgpP0?t=621

what so ever as long as the signal is interpretable it is transparent and has no image difference. capture card have been use to capture the original image bit perfect so all of this has been proofed...

rgr
1st June 2026, 18:23
Oh no. An analog signal can assume different values ​​over time. With a digital signal, you only have two states – low and high. What you're describing is the so-called diagram eye, and it has nothing to do with this.

huhn
1st June 2026, 18:32
a digital signal is only 1 and 0 in theory it isn't in practise it is analogue. digital is just for theory math and so on the real world is analogue.

a digital signal is the same it just interprets a quite unstable analogue signal with varying levels of amplitude.

you can actually see all of that in the diagram the 5th is a relative clear signal that kinda looks like digital and quite steady amplitude the rest is so high bandwidth is is just a wave with massive changes in amplitude that's why the bars are so thick they are all over the place but still good enough to be perfectly interpretable as 0 and 1.

Skinfaxi
1st June 2026, 20:26
Glover, Grant - Digital Communications, 3rd. ed., p. 204 - 212