Проект CoreUtils для Windows, http://gnuwin32.sourceforge.net/packages/coreutils.htm содержит команду date
, которая предоставляет вам те же возможности, что и в Linux.
Загрузите программное обеспечение и переименуйте date.exe
в gnudate.exe
, чтобы избежать конфликта с командой Dos date
. Для запуска команды нужны файлы libintl-2.dll
и libiconv-2.dll
.
Для всех доступных вариантов типа:
gnudate --help
Например gnudate "+%a %e %b %Y %H:%M:%S"
даст:
Sun 10 apr 2016 21:52:35
Команда gnudate +%s
даст секунд с начала эпохи:
1460325461
Следующая Dos командный файл показывает использование gnudate. Вам нужно будет удвоить значение %
в параметре gnudate +%s
.
rem set the variable s to the epoch seconds.
for /f "tokens=1 delims=" %%A in ('gnudate +%%s') do set s=%%A
rem use `%s%` for the time offset parameter of the ffmpeg drawtext filter.
ffmpeg -y -f lavfi -i testsrc=duration=15.3:size=cif:r=10 -vf "drawtext=fontfile=arial.ttf:text=%%{pts\\\:localtime\\\:%s%\\\:%%a %%d %%b %%Y %%H\\\\\\:%%M\\\\\\:%%S}:fontsize=10:x=w-text_w:y=h-lh:box=1" a.mp4
ffplay a.mp4
Этот пакетный файл был протестирован в Windows 8 на виртуальной машине под Linux.
Чтобы запустить его, вам необходимо установить ffmpeg
.
Вы можете скачать Static build
от https://ffmpeg.zeranoe.com/builds/.
С * epoch time * - Вы имеете в виду текущее количество секунд с 1 января 1970 года? –
... или с 1904-01-01 или 100 нс интервалов с 1601-01-01 или в разные другие эпохи ;-) Эпоха UNIX на сегодняшний день является самым странным, imho ;-) – Joey
@moorecats: если мой ответ работал отлично вам, вы можете его перенести, а затем выбрать в качестве ответа на свой вопрос. Так работает StackOverflow. См. FAQ - http://stackoverflow.com/faq. Вы можете, конечно, выбрать другой ответ, если считаете, что он лучше подходит для вашего вопроса. –