[FFmpeg-user] Float formatting in drawtext (Stop watch)

Wolfgang Hugemann auto at hugemann.de
Mon May 29 16:10:05 EEST 2017


With a little more research (and somewhat more knowledge about ffmpeg) I 
came to the following solution for a stopwatch with a defined decimal 
precision:

* get the framerate via ffprobe and store it in a variable (i.e. !W!)
* divide the frame number by this rate
* display the result in two parts via
text=%%{eif\\:n/!W!\\:d}"."%%{eif\\:n/!W!*100\\:d\\:2}

NOTE: I am working under Windows, therefore somewhat exotic escaping in 
batch files.

An offset could easily be accounted for by subtracting a user-provided 
integer from 'n'.

Allowing for printf-style formatting of decimals in drawtext would still 
be easier ...

The whole Windows batch code thus looks like:

SETLOCAL EnableDelayedExpansion
for /f "tokens=2 delims==/" %%i in ('C:\programme\ffmpeg\bin\ffprobe.exe 
-v error -of flat^=s^=_ -select_streams v:0 -show_entries 
stream^=r_frame_rate %1') do set W=%%~i
c:\Programme\ffmpeg\bin\ffmpeg -i %1 -y -filter:v 
"drawtext=fontfile=/Windows/Fonts/arial.ttf:fontcolor=yellow:fontsize=42:text=%%{eif\\:n/!W!\\:d}"."%%{eif\\:n/!W!*100\\:d\\:2}:x=15:y=50" 
-q 8 -vcodec libxvid %~dpn1_sw%~x1

Wolfgang Hugemann


More information about the ffmpeg-user mailing list