I need to create a text overlay on my video file showing a timer started and stopped at certain times during the clips length.

All tutorials I found on creating text or titles to be used in the VSE or node compositor only mention pre-made still images or videos with text and alpha to be merged with the original video.

I know of the 'stamp' render option which can either display custom static text or even display time, but it will only show the overall playback time and can not be started or stopped.

Is there an easy way to create a timer with blenders modeling and animation capabilities to be used in the scene? (Easy enough for someone who only wants to edit live-action video and usually does not create 3D content)?


5 Answers 5


You could make a counter with the wonderful Randomiser addon http://bensimonds.com/2014/04/02/randomiser-add-on/ it has a count function.


When I need an animated text value I use python code like this:

def frameForX(idx, nPoints, f0, f9):
    return f0 + (f9-f0) *idx/(nPoints-1)

def setVisibility(obj, f1, f2):

    if not f2 is None:
        obj.keyframe_insert(data_path='hide', frame= bpy.context.scene.frame_end+10)
    obj.keyframe_insert(data_path='hide_render', frame=f1)
    obj.keyframe_insert(data_path='hide', frame=f1)
    obj.hide = True
    obj.hide_render = True
    obj.keyframe_insert(data_path='hide', frame=0)
    obj.keyframe_insert(data_path='hide_render', frame=0)
    if not f2 is None:
        obj.keyframe_insert(data_path='hide', frame=f2)
        obj.keyframe_insert(data_path='hide_render', frame=f2)

def makeText(text, loc, f1, f2):
    curve = bpy.data.curves.new("label", 'FONT')
    curve.body = text
    o1 = bpy.data.objects.new("label", curve)
    o1.location = loc
    setVisibility(o1, f1, f2)
    o1.parent = bpy.data.objects["font folder"]


    return o1

def make2Text(text1, text2, loc, f1, f2):
    o1 = makeText(text1, loc, f1, f2)
    o2 = makeText(text2, loc, f1, f2)
    o1.data.align = 'RIGHT'

f1 = -1
for i,xy  in enumerate(data):
    f2 = frameForX(i, len(data), f0, f9)
    f3 = frameForX(i+1, len(data), f0, f9)
    if (i+1 >= len(data)):
        f3 = None
    if (f2>f1):
        make2Text("x=%d,"%xy[0], "y=%.1f"%xy[1], [4,6,1], f2, f3)
    f1 = f2

That code sample is part of example graph with animated curve bevel

Best practice is to put this overlay in its own scene separate from the VSE and add an action strip pointing at the separate scene.


In same situation I do simpler.

Shoot separate video with running stopwatch digits and put it with image offset as overlay.


You could go into the 3D View, set the background to transparent and use animated text to create a counter. You may also want to set the material of the text object to shadeless.

Then in the VSE, add your scene. And in the N-menu, you can change the offset of the scene strip to position the counter.


Very easy : You can create a black color strip on a track : duration of the project (start and end). You use 'Meta Data - Stamp' (dont change color options) render option and export just video without audio. You import this video and change to "Add" Blend menu in Edit stip ...


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .