[rtmpdump] Experimental patch to automatically disable BUFX

Howard Chu hyc at highlandsun.com
Tue Aug 14 10:37:25 CEST 2012


Ulrik Dickow wrote:
> Den 14-08-2012 09:27, Howard Chu skrev:
>> Yes, an RTMP server can only seek to the nearest keyframe boundary. It would
>> make most sense to not disable the BUFX hack. Instead, just filter out old
>> frames after doing the pause/resume.
> 
> No, that's only an improvement if we get lots of data between the seeks,
> and the backwards jump is much smaller than the previous batch
> downloaded.  Fine in theory, but in practice we can backtrack way too
> much & often with BUFX enabled.
> 
> The "filtering with BUFX enabled" method will take the same time as
> current rtmpdump without -R.  The improvement will then "only" be that
> you actually get a usable file afterwards.  But with -R or
> auto-disabling the download will be much faster.  At least for the
> server I originally tested:
> 
>    150s to download 118s with BUFX enabled (many backwards jumps)
> 
>     41s to download 99s with BUFX disabled (-R, no jumps at all)
> 
> I.e. the filtering method (without auto-disable) is slower than real-time!
> 
> I noticed all the jump points for the 2m 30s session (this was before I
> implemented -R):
> 
>    $ date; rtmpdump ... --start 704 --stop 822 ...; date
>    fre jul 20 10:48:52 CEST 2012
>    RTMPDump v2.4
>    [... only showing the %-lines left-over after jumps her...]
>    1405.347 kB / 711.94 sec (38.2%)
>    5555.633 kB / 727.94 sec (39.1%)
>    10986.543 kB / 743.78 sec (39.9%)
>    13461.868 kB / 734.06 sec (39.4%)
>    16343.396 kB / 742.46 sec (39.9%)
>    20197.223 kB / 757.10 sec (40.7%)
>    24174.977 kB / 764.38 sec (41.0%)
>    28213.186 kB / 772.05 sec (41.5%)
>    32211.726 kB / 779.10 sec (41.8%)
>    36330.492 kB / 787.58 sec (42.3%)
>    40266.707 kB / 794.62 sec (42.7%)
>    42913.987 kB / 794.46 sec (42.7%)
>    48312.022 kB / 817.86 sec (43.9%)
>    52374.223 kB / 818.06 sec (43.9%)
>    55852.532 kB / 822.87 sec (44.2%)
>    Download may be incomplete (downloaded about 44.20%), try resuming
>    fre jul 20 10:51:22 CEST 2012
> 
> The times are where you jump _from_.  It jumps to an earlier time.  As
> you see, this method is very wasteful of time and bandwidth.

It must still be highly server and encoding dependent. The hack was always
beneficial with Hulu and a variety of other servers on the Akamai network.



More information about the rtmpdump mailing list