tags:

views:

809

answers:

3

I have an oldish build of FFMPEG that I can't easily change.

We use FFMPEG to find the duration of video and sound files. So far it has been working wonderfully.

Recently on an uploaded file, FFMPEG has reported a 30 second file as being 5 minutes 30 seconds in length.

Could it be something wrong with the file rather than FFMPEG?

If I use FFMPEG to convert to another file, the duration is restored.

In case it matters, ffmpeg -i 'path to the file' produces:

    FFmpeg version Sherpya-r15618, Copyright (c) 2000-2008 Fabrice Bellard, et al.
      libavutil     49.11. 0 / 49.11. 0
      libavcodec    52. 0. 0 / 52. 0. 0
      libavformat   52.22. 1 / 52.22. 1
      libavdevice   52. 1. 0 / 52. 1. 0
      libswscale     0. 6. 1 /  0. 6. 1
      libpostproc   51. 2. 0 / 51. 2. 0
      built on Oct 14 2008 23:43:47, gcc: 4.2.5 20080919 (prerelease) [Sherpya]
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'H:\path\to\file.mov':
      Duration: 00:05:35.00, start: 0.000000, bitrate: 1223 kb/s
        Stream #0.0(eng): Audio: aac, 44100 Hz, stereo, s16
        Stream #0.1(eng): Video: h264, yuv420p, 720x576, 25.00 tb(r)
    Must supply at least one output file

It's that very command I use to then extract the duration with RegEx.

Does anyone have a nice application that can do what I'm trying above but get it right 100% of the time?

A: 

You can try tcprobe, part of transcode pack.

Sunny
Thanks for the recommendation, I will have a look at this soon.
Adrian Lynch
A: 

Check it with a newer version of ffmpeg (you don't have to replace your build), and if it gives the same duration you can probably blame the file.

Malfist
Great idea, I will deffo give this a shot.
Adrian Lynch
A: 

I'd guess it's a problem with the file. The length is probably written in a header incorrectly. Unfortunately there is no such thing as a validator (like for web standards) so you can't know for sure if a file is correct.

SpliFF
Hmmmmmmm, maybe. VLC and Quicktime report the right length though.
Adrian Lynch