I want to burn timestamp from the video meta data on to the video.

I'm having great difficulty in finding a good tool that does that.

Is there a video editing tool out there that allows timestamp to be inserted and change the font of it?

I am editing HD videos.

Also is there a tool out there that allows changing the timestamp on the meta data for correction?

  • dunno if stackexchange will notify you about my comment on my answer, that I mostly re-wrote it. Well anyway, it sucked so I did. Commenting here because I know that will pop up a notification for you. – Peter Cordes Feb 23 '15 at 14:35
  • possible duplicate of Adding a time stamp to a video – jsj Jul 21 '15 at 6:15

FFmpeg's drawtext filter can burn timecodes into frames.

edit: I misread the docs before. I saw the timecode option to the filter, and missed seeing that there was a pts available for text expansion. See the edit history for the longer-and-less-useful answer.

I eventually got around to trying it, and here's the command line I cobbled together from pasting and tweaking some examples:

ffmpeg -i /f/p/moto-g\ camera/VID_20141225_140557099.mp4 -filter_complex "drawtext=fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='frame %{n}\\: %{pict_type}\\: pts=%{pts \\: hms}': x=100: y=50: fontsize=24: fontcolor=yellow@0.8: box=1: boxcolor=blue@0.9" -c:a copy -c:v libx264 -preset veryfast -crf 16 -x264-params keyint=60 -map 0 foo.mkv

Note the actual text to be printed needs a lot of escaping, to protect it from the shell, then from ffmpeg's arg-to-drawtext. To modify it, change the text='frame %{n}\\: %{pict_type}\\: pts=%{pts \\: hms}' part of that ffmpeg command.

example output: "frame 0: I: pts=00:00:00.0000" (I/B/P are frame types, from %{pict_type}.)

Modify x and y to put it somewhere else in the frame. (you can use x=iw/2 to put it horizontally in the middle. iw = input width. (anchor = top left corner of the text, I think?)) Modify other params to change colors or whatnot.

This works even with VFR video. I checked with video from the camera in a Moto G phone, which makes variable frame-rate video. The first second has 30 frames. A later 1-sec interval in the video has 17 frames. (Indoors, not very well lit, so I think it's lower FPS to get more light, not because it can't write to flash storage fast enough.) The timestamps it puts in the MP4 container are correct, so it plays fine.

The encode parameters -c:a copy -c:v libx264 -preset faster -crf 16 -x264-params keyint=60 are my suggestion for what you might want for scratch files with timestamps burned in: you just want it to encode fast, and don't care much about filesize since you're just going to use it locally, since it has timestamps scribbled all over it. (There's even a superfast. Don't use ultrafast except for lossless mode, though.)

keyint=60 will make sure there's an I frame at least as often as every 60 frames, for efficient scrubbing. Leave it out if you don't need to be able to efficiently framestep backwards; lower it if you want high-rez seeking to be faster.

Use -map 0 if you want multiple audio and metadata streams copied into the output, instead of just the first audio and first video tracks (and no e.g. chapter metadata).

| improve this answer | |
  • basically re-did my answer, because I mis-read the docs the first time. >.< turns out ffmpeg can burn in timestamps without needing to be told the FPS or anything stupid like that. – Peter Cordes Feb 23 '15 at 14:34
  • Thanks @peter-cordes . FFmpeg looks amazing - just checked out their website. But it does look quite complex and requires lots of pure coding :S – Kash Feb 24 '15 at 22:02
  • Heh, it took lots of coding to write, but using it is at the simplest just a matter of finding a recipe and then using it on different input files. On Mac, Windows, or GNU/Linux, you could set something up to let you drag a file onto a script, so the script runs ffmpeg on your file, making a new output file named in_name-timestamped.mp4 or something. Probably easier to do it from within the editing tool you already use, though, if it formats the timestamps in a way you like. – Peter Cordes Feb 24 '15 at 23:36
  • Screenshot please? – hendry Feb 25 '15 at 1:05
  • On Windows, if you put a Shortcut to a .bat on your desktop, dragging a file onto it will run the .bat with the dragged file as a command line arg. So you write a bat file that uses %1 as input and timestamped-%1 as output. On GNU/Linux, you either put your command in a shell script and use it from the command line yourself, or you make a .desktop file that lets you send files to it from a graphical file browser. I assume something similar is possible on OS X. – Peter Cordes Feb 25 '15 at 4:03

Video editing software usually DOES come with this ability. After Effects, Premiere, Vegas, etc, all support doing this very simply. Some of them add their own time code rather than time code from meta, so you may have to adjust the start point to match your actual time code, but the end result should still be the same.

For example, in Premiere, the following screen shot shows the effect under Video Effects/Video/Timecode as well as the options associated with it. enter image description here

It is worth mentioning that in Premiere, it does appear that the font is fixed on arial, though size and position can be adjusted. After Effects, however, will allow for font of your choosing.

| improve this answer | |
  • Hi, thanks for your reply. Can you give me bit more info on how to apply the timestamp on to it on premier? – Kash Feb 22 '15 at 20:10
  • @Kash - updated my answer to include a screen shot with where the effect is, what the settings are and how it looks. – AJ Henderson Feb 22 '15 at 21:14

Another option is Sony Vegas Pro + Vegasaur extension. Using this extension, you can extract recorded date/time information from video files and burn it onto video. Font, color, size etc. - fully customizable.

enter image description here

| improve this answer | |

Try Davinci Resolve. Very easy and capable burn in capability. See my video tutorial on how to use this helpful feature.

Thank you. Dan Benson

| improve this answer | |
  • Hi Daniel, welcome to Video.SE. Could you include at least a basic level of detail in your answer here. Video tutorials are great, but if off-site links go dead, then this will no longer provide an answer. Due to this, answers that don't provide at least a basic explanation of the external resource may be down voted or deleted. – AJ Henderson Aug 17 '17 at 22:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.