Current code estimates bitrate by taking size of a single fragment and dividing 
by the total duration.
This patch changes calculation to be based on duration used for framerate 
estimation.

Example ffprobes BEFORE patch (note video stream 15 kb/s, audio stream 0 kb/s):

ffprobe version N-91996-g94aed2265a Copyright (c) 2007-2018 the FFmpeg 
developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.2)
  configuration: 
  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 30.100 / 58. 30.100
  libavformat    58. 18.102 / 58. 18.102
  libavdevice    58.  4.103 / 58.  4.103
  libavfilter     7. 32.100 /  7. 32.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 
'/Users/nick/media/v-a-hls/video/video.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: iso8mp41dashavc1cmfc
    creation_time   : 2018-08-30T11:28:56.000000Z
  Duration: 00:11:24.00, start: 0.000000, bitrate: 999 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), 
yuv420p, 1024x576 [SAR 1:1 DAR 16:9], 15 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 
tbc (default)
    Metadata:
      creation_time   : 2018-08-30T11:28:56.000000Z
      handler_name    : VideoHandler
      encoder         : AVC Coding



ffprobe version N-91996-g94aed2265a Copyright (c) 2007-2018 the FFmpeg 
developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.2)
  configuration: 
  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 30.100 / 58. 30.100
  libavformat    58. 18.102 / 58. 18.102
  libavdevice    58.  4.103 / 58.  4.103
  libavfilter     7. 32.100 /  7. 32.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 
'/Users/nick/media/v-a-hls/audio/audio.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: iso8mp41dashcmfc
    creation_time   : 2018-08-30T11:28:56.000000Z
  Duration: 00:11:24.00, start: -0.023220, bitrate: 59 kb/s
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, 
fltp, 0 kb/s (default)
    Metadata:
      creation_time   : 2018-08-30T11:28:56.000000Z
      handler_name    : SoundHandler


Example ffprobes AFTER patch (note video stream 1027 kb/s, audio stream 4 kb/s):


ffprobe version N-91996-g94aed2265a Copyright (c) 2007-2018 the FFmpeg 
developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.2)
  configuration: 
  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 30.100 / 58. 30.100
  libavformat    58. 18.102 / 58. 18.102
  libavdevice    58.  4.103 / 58.  4.103
  libavfilter     7. 32.100 /  7. 32.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 
'/Users/nick/media/v-a-hls/video/video.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: iso8mp41dashavc1cmfc
    creation_time   : 2018-08-30T11:28:56.000000Z
  Duration: 00:11:24.00, start: 0.000000, bitrate: 999 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), 
yuv420p, 1024x576 [SAR 1:1 DAR 16:9], 1027 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 
tbc (default)
    Metadata:
      creation_time   : 2018-08-30T11:28:56.000000Z
      handler_name    : VideoHandler
      encoder         : AVC Coding



ffprobe version N-91996-g94aed2265a Copyright (c) 2007-2018 the FFmpeg 
developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.2)
  configuration: 
  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 30.100 / 58. 30.100
  libavformat    58. 18.102 / 58. 18.102
  libavdevice    58.  4.103 / 58.  4.103
  libavfilter     7. 32.100 /  7. 32.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 
'/Users/nick/media/v-a-hls/audio/audio.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: iso8mp41dashcmfc
    creation_time   : 2018-08-30T11:28:56.000000Z
  Duration: 00:11:24.00, start: -0.023220, bitrate: 59 kb/s
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, 
fltp, 4 kb/s (default)
    Metadata:
      creation_time   : 2018-08-30T11:28:56.000000Z
      handler_name    : SoundHandler





Nick Ryan (1):
  possible fix to correct (improve) bitrate estimation for streams in
    fragmented MP4 when calculation is based on trex_data

 libavformat/mov.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.17.1 (Apple Git-112)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to