--- a/src/quicktimevideo.cpp (revision 3536) +++ a/src/quicktimevideo.cpp (revision 3537) @@ -1459,9 +1459,9 @@ break; case MediaDuration: if(currentStream_ == Video) - xmpData_["Xmp.video.MediaDuration"] = returnBufValue(buf)/time_scale; + xmpData_["Xmp.video.MediaDuration"] = time_scale ? returnBufValue(buf)/time_scale : 0 ; else if (currentStream_ == Audio) - xmpData_["Xmp.audio.MediaDuration"] = returnBufValue(buf)/time_scale; + xmpData_["Xmp.audio.MediaDuration"] = time_scale ? returnBufValue(buf)/time_scale : 0; break; case MediaLanguageCode: if(currentStream_ == Video) @@ -1515,9 +1515,9 @@ break; case TrackDuration: if(currentStream_ == Video) - xmpData_["Xmp.video.TrackDuration"] = returnBufValue(buf)/timeScale_; + xmpData_["Xmp.video.TrackDuration"] = timeScale_ ? returnBufValue(buf)/timeScale_ : 0; else if(currentStream_ == Audio) - xmpData_["Xmp.audio.TrackDuration"] = returnBufValue(buf)/timeScale_; + xmpData_["Xmp.audio.TrackDuration"] = timeScale_ ? returnBufValue(buf)/timeScale_ : 0; break; case TrackLayer: if(currentStream_ == Video)