8

I'm having a film that's ffmpeg and other progs claims to be 07:03:52 long, but the real playtime is actually more like 2:35:00

ffprobe video.mp4
ffprobe version 3.0.2 Copyright (c) 2007-2016 the FFmpeg developers
  built with gcc 5.3.1 (Debian 5.3.1-17) 20160429
  configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libtesseract --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mipsdsp --disable-mips32r2 --disable-msa --disable-mipsfpu --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libbs2b --enable-libilbc --enable-libopenh264 --enable-libkvazaar --enable-libsnappy --enable-libsoxr --enable-libiec61883 --enable-vaapi --enable-opencl --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil      55. 17.103 / 55. 17.103
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    creation_time   : 2012-12-12 07:03:52
  Duration: 07:13:45.09, start: 0.000000, bitrate: 274 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x528 [SAR 1:1 DAR 80:33], 601 kb/s, 23.98 fps, 23.98 tbr, 96k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2012-12-12 07:03:52
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 92 kb/s (default)
    Metadata:
      creation_time   : 2012-12-12 07:04:15
      handler_name    : GPAC ISO Audio Handler

Is there any one who can help me fix the playtime / duration with a terminal command on debian/centos

I have HandBrake-cli + FFmpeg installed

UPDATE Thought: since the video plays perfectly in various players and the frame-rate is right, how comes, that encoders like HandBrake and ffmpeg can't calculate the right duration?

UPDATE 2 - Solution I duckduckgo.com it and found a usable solution on a well.. torrent site

ffmpeg -i video.mp4 -t 2:09:39 -c:v copy -c:a copy -c:s copy out.mp4

How ever, this is not an repairing or any acclimatisation of the job, but it worked.

So summon up what this does

Any optimization or acclimatisation of this workload is still welcome

6
  • 1
    07:03:52 is being reported as the creation time, although the estimated duration is 07:13:45.09. Try a remux: ffmpeg -i video.mp4 -c copy out.mp4
    – Gyan
    Nov 9, 2016 at 18:54
  • Hi @Mulvya thx for your replay and suggestion, tried this, but it gives the same playtime error. Did also try to convert it to other formats like webm, avi, mov etc... same thing :(
    – Joakim
    Nov 9, 2016 at 19:25
  • 1
    Except for the manual time option, your solution is the same as mine. Run ffprobe video.mp4 -show_entries stream=codec_type,start_time,duration -of compact and show the output.
    – Gyan
    Nov 10, 2016 at 2:34
  • Hi thought I had replied to this thread, but I did find the solution by using the -s -ss options to simply cut the length of the video and now it's playing lovely
    – Joakim
    Jan 7, 2017 at 16:26
  • 1
    The command from Update 2 worked like a charm... Stargate is a great movie isn't it?
    – Nick
    May 17, 2021 at 22:48

3 Answers 3

2

Joakin, what you have suggested in your Update 2 is remuxing. Alternatively to what you have suggested atom manual editing can be utilized.

Manual editing is

(a) much faster - just the metadata is modified

(b) can be applied both ways - to scale up and to scale down. I have persinally succeeded in decreasing length by remuxing, but i failed in increasing it.

1

I had the same problem. I solved that by removing the audio from video. This is why the video seems frozen but it continues to play it, due to audio duration.

For that reason, you may remove entire audio from video file using "-an" ffmpeg option. When it removed, no incorrect time in video exists. You may extract audio from the initial video file, match its duration time with the video duration, and then, you encode video and audio files together, resulting no frozen video frames play.

eg.

ffmpeg -i video_to_encode.MP4  -r 16 -crf 18  -vcodec libx264 -vb 10M -an  video_output.avi
1

I also faced with this issue and I had to add -vcodec libx264 in addition to -an. Cutting a video:

ffmpeg -ss {sec2time(start)} -to {sec2time(end)} -i {video_path} -c copy -vcodec libx264 -an {save_path}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.