blender and ffmpeg -- Error: VBV buffer too small for bitrate

Please forgive me if my formatting is incorrect in any way. This is the first time I am posting in this forum like this.

So, I have generated a bunch of png files for some scientific visualization I am doing. Long story short, I need to combine all these files together into a single .mp4 video. I can render the movie just fine into a .avi file (the commented out lines in the following code snippet), but that is not playable on my avisor’s mac and doesn’t allow proper skipping when the video is playing If you would like to look at the full code, check out the following github directory: https://github.com/caleblevy/Render_Modules . The offending section is at the very end of denssetup.py:


 def Render_Movie(pngdirectory, fps, iteration, title):    print("rendering movie")
    scene = bpy.context.scene
    scene.sequence_editor_create()
    Add_Image_Strip_Dens(pngdirectory)
    bpy.data.scenes["Scene"].render.ffmpeg.format = 'MPEG4'
    bpy.data.scenes["Scene"].render.ffmpeg.audio_codec = 'NONE'
    bpy.data.scenes["Scene"].render.ffmpeg.video_bitrate = 24300
    bpy.data.scenes["Scene"].render.ffmpeg.audio_bitrate = 0 
    bpy.data.scenes["Scene"].render.ffmpeg.minrate = 0
    bpy.data.scenes["Scene"].render.ffmpeg.maxrate = 30000
    bpy.data.scenes["Scene"].render.ffmpeg.buffersize = 2000000
    bpy.data.scenes["Scene"].render.ffmpeg.codec = 'MPEG4'
    bpy.data.scenes["Scene"].render.image_settings.file_format = 'FFMPEG'
    bpy.data.scenes["Scene"].render.filepath = "test.mp4"
    bpy.data.scenes['Scene'].render.fps = fps
    #bpy.data.scenes["Scene"].render.image_settings.file_format = 'AVI_JPEG'
    #bpy.data.scenes["Scene"].render.filepath = "test.avi"
    bpy.ops.render.render( animation=True ) 

This is called in CreateDens.py like so:


Render_Movie("DENS_DATA/images/", .1, iteration, "TFMD Density")

I run blender like so:


blender -b -P CreateDens.py

and receive the following error:

 
 Traceback (most recent call last):  File "/home/james/programming/visualization/git/Render_Modules/RM.py", line 19, in <module>
    Render_Movie("DENS_DATA/images/", 1, iteration, "TFMD Density")
  File "/home/james/programming/visualization/git/Render_Modules/denssetup.py", line 671, in Render_Movie
    bpy.ops.render.render( animation=True ) 
  File "/usr/share/blender/2.71/scripts/modules/bpy/ops.py", line 188, in __call__
    ret = op_call(self.idname_py(), None, kw)
RuntimeError: Error: VBV buffer too small for bitrate




Blender quit

I played with a bunch of settings and couldn’t get everything to work out. I would very much appreciate any feedback you can offer!

Also, please let me know if you need any more information.

Thanks,
Leios

UPDATE: After changing the FPS from .1 to 10, the video rendered, but for some reason, it rendered as “test.mp40001-0012.dvd.” I have to copy it to “test.mp4” to play it.

A little late to answer this, but since I was not able find anything helpfull related to this Error Message by now, here comes my solution:

Recently I tried to rerender an Original Video MP4 File 30 FPS into a new Video File at 3 FPS.

Blender Video Render Settings was:
Output: H.264
Encoding: MPEG-4

At first try I got the error message: “Error: VBV buffer too small for bitrate”

I did some trial and error until it worked as I set the
Encoding - Rate - Buffer, from default “1792 kb” to it’s max value “2000 kb”

Greetings Martin

-EDIT-
Just a guess: Since Leios seems to set this value to 2,000,000 (I don’t know what unit is in use here)
possible the max value was exceeded and the value was automatically set back to it’s default value.

-EDIT2-
Still thinking about it: more likely, also the max buffer value of 2000 kb was just not able to cover the fairly low frame rate of 0.1 per second. In this case, I just was lucky to come away with my 3 fps and 2000 kb buffer size.
What leads me to the question if this buffer limit could be exceeded somehow…sometimes, to make rendering at lower frame rates even possible ?