ffmpeg Too many bits per frame requested
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 supportpcm_mulaw
, use different output container format such as Matroska (.mkv
).Use a different AAC encoder such as
libfdk_aac
if yourffmpeg
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
.
GRaecuS
Updated on July 25, 2022Comments
-
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 about 12 yearsThank 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 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 over 11 years
-c:a copy
worked for me with a different conversion, but same error. good catch. -
Kishore Jethava over 7 years@LordNeckbeard can
FFmpeg
do video compression using hardware in android? -
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 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 over 7 years@kishorejethava You should ask this as a new question. This has nothing to do with
Too many bits per frame requested
.