[libav-tools] Fast Forward Skips Ahead

Hans Carlson forbyta at inbox.com
Sat Mar 28 06:30:33 CET 2015


When I play a libav encoded mpeg2 movie on my DVR, FFWD doesn't work as 
expected.  It tends to jump too far.  I've seen this with multiple movies 
and I'd really like to know how to fix it.

Playing the movie at normal speed, the timer says 00:20:00 (for ex) and 
the scene currently displayed (at normal speed) is correct for that time 
in the movie.  I then press FFWD and the movie plays forward at high speed 
(as it should).  When the timer reaches 00:50:00, what I SEE displayed is 
the scene corresponding to 00:40:00 mins.  If I press PLAY at that point 
it goes back to normal speed, but has jumped ahead to the scene 
corresponding to the 00:50:00 min point, not to the 00:40:00 point that 
was visible when I went from FFWD -> PLAY.

NOTE. There's nothing special about the 20, 40 or 50 minute points in the 
movie, those are just examples.  I can do this pretty much at any point in 
the movie and it behaves similar.  Sometimes it jumps ahead more, 
sometimes less and sometimes it works as expected.

If I play the source video on the DVR, it plays just fine and FFWD works 
as expected everywhere.

The source is also mpeg2, pulled from a DVD via mpv stream-dump.

Any idea why this happens and what I might need to do to fix it?

Here's the command I used to encode the movie:

   $ avconv -fflags +genpts -i movie.vob -codec:v mpeg2video -b:v 4500k -bufsize 2000k -maxrate 9800k -qscale:v 1 -qmin 1 -mbd 2 -codec:a copy -f vob movie-avconv.mpg
   avconv version 11.3, Copyright (c) 2000-2014 the Libav developers
     built on Mar 21 2015 09:44:38 with gcc 4.5.1 (GCC) 20100924 (Red Hat 4.5.1-4)
   [mpeg @ 0x993a1c0] max_analyze_duration 5000000 reached
   Input #0, mpeg, from 'movie.vob':
     Duration: 02:14:39.00, start: 0.280633, bitrate: 6226 kb/s
       Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 32:27 DAR 16:9], 9800 kb/s, 24 fps, 90k tbn, 59.94 tbc
       Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5.1, fltp, 448 kb/s
       Stream #0.2[0x81]: Audio: ac3, 48000 Hz, 5.1, fltp, 384 kb/s
       Stream #0.3[0x82]: Audio: ac3, 48000 Hz, 5.1, fltp, 384 kb/s
       Stream #0.4[0x83]: Audio: ac3, 48000 Hz, 5.1, fltp, 384 kb/s
   Output #0, vob, to 'movie-avconv.mpg':
     Metadata:
       encoder         : Lavf56.1.0
       Stream #0.0: Video: mpeg2video (hq), yuv420p, 720x480 [PAR 32:27 DAR 16:9], q=1-31, 4500 kb/s, 24 fps, 90k tbn, 24 tbc
       Metadata:
         encoder         : Lavc56.1.0 mpeg2video
       Stream #0.1: Audio: ac3, 48000 Hz, 5.1, 448 kb/s
   Stream mapping:
     Stream #0:0 -> #0:0 (mpeg2video (native) -> mpeg2video (native))
     Stream #0:1 -> #0:1 (copy)
   Press ctrl-c to stop encoding
   frame=193898 fps= 37 q=1.0 Lsize= 6473058kB time=8079.00 bitrate=6563.6kbits/s
   video:5950105kB audio:441822kB other streams:0kB global headers:0kB muxing overhead: 1.269262%

And the resulting file:

   $ avconv -i movie-avconv.mpg
   avconv version 11.3, Copyright (c) 2000-2014 the Libav developers
     built on Mar 21 2015 09:44:38 with gcc 4.5.1 (GCC) 20100924 (Red Hat 4.5.1-4)
   [mpeg @ 0x93155a0] max_analyze_duration 5000000 reached
   Input #0, mpeg, from 'movie-avconv.mpg':
     Duration: 02:14:39.00, start: 1.041667, bitrate: 6563 kb/s
       Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 32:27 DAR 16:9], 9800 kb/s, 24 fps, 90k tbn, 48 tbc
       Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5.1, fltp, 448 kb/s
   At least one output file must be specified


More information about the libav-tools mailing list