ffmpeg Too many bits per frame requested

13,993

Solution 1

The "Too many bits per frame requested" error is coming from the native FFmpeg AAC encoder (-c:a aac). You can use one or more of the following solutions:

Update your ffmpeg

Development is very active and the native FFmpeg AAC encoder has seen many improvements; it will now automatically clamp to the max number of bits per frame instead of failing with this error. See the FFmpeg Download page for links to already compiled binaries which are the easiest method to get a recent ffmpeg.

If you're stuck with an old, outdated, ancient ffmpeg:

  • Increase the audio sampling rate such as by adding -ar 44100.

  • Decrease your bitrate. Default is probably -b:a 128k. Try lower values until it works.

  • Use -c:a copy to stream copy (re-mux) the audio, and, because MP4 doesn't support pcm_mulaw, use different output container format such as Matroska (.mkv).

  • Use a different AAC encoder such as libfdk_aac if your ffmpeg supports it.

You don't need to do any of these options if you upgrade ffmpeg.

Solution 2

I'd hope ffmpeg is more clever than this, but you might try specifying the video stream for your -s and -aspect options: -s:v and -aspect:v.

Alternately, since you're not doing anything special with the audio, you could copy it explicitly with -c:a copy.

Share:
13,993
GRaecuS
Author by

GRaecuS

Updated on July 25, 2022

Comments

  • GRaecuS
    GRaecuS almost 2 years

    I am using ffmpeg to convert videos to mp4 format. Everything works fine except with MOV format.

    The command I use for everything is:

    ffmpeg -i input.mov -strict experimental -sameq -s vga -aspect 1.7777 -vcodec libx264 -preset fast -crf 22 -y output.mp4

    but the output I keep getting is:

    ffmpeg version 0.9, Copyright (c) 2000-2011 the FFmpeg developers
    built on Mar 12 2012 11:01:05 with gcc 4.4.5
    configuration: --enable-libx264 --enable-gpl --disable-yasm
      libavutil    51. 32. 0 / 51. 32. 0
      libavcodec   53. 42. 0 / 53. 42. 0
      libavformat  53. 24. 0 / 53. 24. 0
      libavdevice  53.  4. 0 / 53.  4. 0
      libavfilter   2. 53. 0 /  2. 53. 0
      libswscale    2.  1. 0 /  2.  1. 0
      libpostproc  51.  2. 0 / 51.  2. 0
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x21767a0] Referenced QT chapter track not found
    
    Seems stream 0 codec frame rate differs from container frame rate: 30.00 (30/1) -> 30.07 (2225/74)
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
      Metadata:
        creation_time   : 2009-04-04 07:12:29
        comment         : EASTMAN KODAK COMPANY  KODAK Z1275 ZOOM DIGITAL CAMERA
        comment-eng     : EASTMAN KODAK COMPANY  KODAK Z1275 ZOOM DIGITAL CAMERA
      Duration: 00:00:17.76, start: 0.000000, bitrate: 8100 kb/s
        Stream #0:0(eng): Video: mpeg4 (Advanced Simple Profile) (mp4v / 0x7634706D), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 7968 kb/s, 30.07 fps, 30.07 tbr, 8544k tbn, 30 tbc
        Metadata:
          creation_time   : 2009-04-04 07:12:29
          handler_name    : 
        Stream #0:1(eng): Audio: pcm_mulaw (ulaw / 0x77616C75), 16000 Hz, 1 channels, s16, 128 kb/s
        Metadata:
          creation_time   : 2009-04-04 07:12:29
          handler_name    : 
    [buffer @ 0x2187f00] w:1280 h:720 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
    [scale @ 0x219c120] w:1280 h:720 fmt:yuv420p -> w:640 h:480 fmt:yuv420p flags:0x4
    [libx264 @ 0x2190d20] using SAR=4/3
    [libx264 @ 0x2190d20] using cpu capabilities: none!
    [libx264 @ 0x2190d20] profile High, level 3.0
    [libx264 @ 0x2190d20] 264 - core 120 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=22.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [aac @ 0x21917e0] Too many bits per frame requested
    Output #0, mp4, to 'output.mp4':
      Metadata:
        creation_time   : 2009-04-04 07:12:29
        comment         : EASTMAN KODAK COMPANY  KODAK Z1275 ZOOM DIGITAL CAMERA
        comment-eng     : EASTMAN KODAK COMPANY  KODAK Z1275 ZOOM DIGITAL CAMERA
        Stream #0:0(eng): Video: h264, yuv420p, 640x480 [SAR 4:3 DAR 16:9], q=-1--1, 90k tbn, 30.07 tbc
        Metadata:
          creation_time   : 2009-04-04 07:12:29
          handler_name    : 
        Stream #0:1(eng): Audio: aac, 16000 Hz, 1 channels, s16, 128 kb/s
        Metadata:
          creation_time   : 2009-04-04 07:12:29
          handler_name    : 
    Stream mapping:
      Stream #0:0 -> #0:0 (mpeg4 -> libx264)
      Stream #0:1 -> #0:1 (pcm_mulaw -> aac)
    Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
    

    It seems the problem is with audio's bit per frame. Which might be the right solution?

  • GRaecuS
    GRaecuS about 12 years
    Thank you both for the answers but when using -c:a copy I get another error: [mp4 @ 0x273d220] track 1: could not find tag, codec not currently supported in container. I tried using -acodec libfaac -ar 48000 and it seems to work properly now.
  • llogan
    llogan about 12 years
    pcm_mulaw, 16000 Hz, 1 channels must not be supported in MP4 container, so you must re-encode (as you've mentioned), or use must use another container such as MKV.
  • Sebastian
    Sebastian over 11 years
    -c:a copy worked for me with a different conversion, but same error. good catch.
  • Kishore Jethava
    Kishore Jethava over 7 years
    @LordNeckbeard can FFmpeg do video compression using hardware in android?
  • llogan
    llogan over 7 years
    @kishorejethava I don't know what your question has to do with the answer above, but see FFmpeg Wiki: Hardware Acceleration Intro; specifically the MediaCodec stuff.
  • Kishore Jethava
    Kishore Jethava over 7 years
    @LordNeckbeard I'm cropping video in square but It takes 9 to 10 sec of 15 sec video in smallest resolution (320 * 240) and when I Increase this resolution (640 * 480) or more, cropping time also increase. my goal is how can i decrease time in high resolution video.
  • llogan
    llogan over 7 years
    @kishorejethava You should ask this as a new question. This has nothing to do with Too many bits per frame requested.