The FFMPEG drawing filter works for me, you specify the initial timecode and its format:
-vf drawtext="fontsize=15:fontfile=/Library/Fonts/DroidSansMono.ttf:\ timecode='00\:00\:00\:00':rate=25:text='TCR\:':fontsize=72:fontcolor='white':\ boxcolor=0x000000AA:box=1:x=860-text_w/2:y=960"
you need to specify the time code format in the form hh: mm: ss [:;,] ff. Note that you need to avoid colons in the time code format string, and you need to specify the time code speed (here 25 frames per second). You can also specify additional text - here it is "TCR:"
You can get the frame rate with ffprobe and a little fu shell:
frame_rate=$(ffprobe -i "movie.mov" -show_streams 2>&1|grep fps|sed "s/.*, \([0-9.]*\) fps,.*/\1/")
So, you can easily connect everything together in a batch processing script, for example
for i in *.mov frame_rate=$(ffprobe -i "$i" -show_streams 2>&1|grep fps|sed "s/.*, \([0-9.]*\) fps,.*/\1/") clipname=${(basename "$i")/\.*/} ffmpeg -i "$i" -vcodec whatever -acodec whatever \ -vf drawtext="fontsize=15:fontfile=/Library/Fonts/DroidSansMono.ttf:\ timecode='00\:00\:00\:00':rate=$frame_rate:text='$clipname' TCR:':\ fontsize=72:fontcolor='white':boxcolor=0x000000AA:\ box=1:x=860-text_w/2:y=960" "${i/.mov/_tc.mov}" done
This will add the name of the clip and roll the timecode in a translucent box in the lower center of the frame 1920x1080
Edit Since I came to the dark side, now I am doing this in a Windows Powershell environment, and this is what I use:
ls -R -File -filter *.M*|%{ ffmpeg -n -i $_.fullname -vf drawtext="fontsize=72:x=12:y=12:` timecode='00\:00\:00\:00':rate=25:fontcolor='white':` boxcolor=0x000000AA:box=1" ` ("c:\path\to\destination\{0}" -F ($_.name -replace 'M[OPT][V4S]', 'mp4'))}
This creates mp4s for the folder containing the .MOV, .MP4 and .MTS files (using the -filter command -filter it looks for files with * .M * in the name that you will need to change if you do. AVI), and it’s a bit more minimal, it just uses libx264 with default settings as the output codec and does not specify a font, etc. The time code in this case is burned in the upper left corner of the frame.