[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