Re: Action-28: updated syntax document with time formats

This is a good discussion, let's hope we can come up with the best  
possible rendition of timecodes.

Here are the timecode formats I have encountered in the wild:

1. hh:mm:ss[:ff[.FF]]. Used by RTSP, SMIL (which picked it up from  
RTSP, I think). Colon-separated except for the field indicator, which  
is dot-separated. Frame and field are optional, hours, minutes and  
seconds are required. RTSP allows single-digit or two-digit numbers  
for each of the 5 fields. SMIL requires 2-digit numbers for  
everything, except the hours, which can be any number of digits. There  
is a good reason for using colon as the separator for frames: both  
specs also allow NPT to be specified in hh-mm-ss form, but with  
fractional seconds. So, npt=01:02:03.5 is the same as  
smpte-30=01:02:03:15. Because the "npt=" bit is optional in both  
languages there's room for confusion if you don't have the dot/colon  
distinction.

2. hh:mm:ss.xx. Used by many captioning formats, including quicktime  
text. Unfortunately these formats are usually not rigidly  
standardised. This is even true for Quicktime Text: Apple's  
documentation only consists of examples, where the timecodes used  
always are of the form 01:02:03.000. The three digits after the dot  
seem to indicate milliseconds, but there is other (non-apple)  
documentation floating around on the net that uses examples like  
01:02:03.15 saying that the 15 is a frame number. Whether the hh/mm/ss  
numbers must be two-digit or not doesn't seem to be specified  
anywhere. Sometimes, comma is also used as a separator, but with  
unexpected meaning: SRT is a fairly popular format that uses  
hh:mm:ss,fraction. Yes: comma-fraction. Wikipedia says this is because  
the format was initially invented in France. Sigh.

I have not been able to dig up a definitive reference from SMPTE on  
"how to write down time codes". They've standardised timecode in bit- 
formats and even in voltage levels and transitions, but not in ASCII.  
Various vendors have used various methods to express the  
(standardised) bit-format in ASCII, but all these seem to differ. I'm  
also really out of my water here, so I have no idea whether the Avid  
CMX format Conrad mentions is the de-facto standard, or whether it's  
just one of the many competing ways of specifying timecodes.

With this mess, it seemed that option (1) was the most rigidly  
specified format, hence I picked that. But: I happen to live in a SMIL- 
centric part of the universe, so if there's another format that is  
much more commonly used we should pick that other format, possibly  
making sure we rigidly specify it if no-one else has done so before.


--
Jack Jansen, <Jack.Jansen@cwi.nl>, http://www.cwi.nl/~jack
If I can't dance I don't want to be part of your revolution -- Emma  
Goldman

Received on Thursday, 5 February 2009 14:02:49 UTC