Variable Frame Rate videos (request)
I tip my hat at YouTube for finally supporting 60fps! The next best move I believe would be supporting variable frame rate videos. Have fast frame rates for action scenes, and slower frame rates for slow moving scenes that don't need it (to conserve memory) James Cameron is rumored to be considering this for future Avatar movies.
I was thinking about those fast motion / slow motion fight scenes in the movie 300 (2006). Lets say the user wanted to see how fast the action is in real time, after enjoying the artistic slow down / speed up sequences. Perhaps have an optional actual time per frame, while retaining the displayed time for the frame.
Each group of frames declares
-how many REAL_TIME (8 1/3 ms periods) each frame for (this group of frames) represents
-how many (8 1/3 ms periods) to ACTUALLY_DISPLAY each frame for (this group of frames) <- optional, if omitted it's identical to REAL_TIME
8 1/3 ms is not arbitrary, it exactly multiplies to these 5 values: 120hz,60hz,40hz,30hz,24hz
These are very common values, and this should provide sufficient timing refinement.
However more refined values could also be chosen, to include support for hi-speed cameras:
4 1/6 ms exactly multiplies to these 10 values: 240hz,120hz,80hz,60hz,48hz,40hz,~34hz,30hz,~27hz,24hz
2 1/12 ms exactly multiplies to these 20 values: 480hz,240hz,160hz,120hz,96hz,80hz,~69hz,60hz,~53hz,48hz,~44hz,40hz,~37hz,~34hz,32hz,30hz,~28hz,~27hz,~25hz,24hz
If Gsync becomes mainstream, perhaps do multiples of 1 1/24 milli-seconds.
Gsync is basically variable framerate at the hardware interlink between the video card and display.
Audio frames should coincide with video frames.
The common audio sample rates evenly sub-divide into the common video rates
0400 (048khz samples) = 8 1/3 ms
0800 (096khz samples) = 8 1/3 ms
1600 (192khz samples) = 8 1/3 ms
0200 (048khz samples) = 4 1/6 ms
0400 (096khz samples) = 4 1/6 ms
0800 (192khz samples) = 4 1/6 ms
and so on...
(also posted on YouTube product forum)