我正在尝试使用 ffmpeg 在存储的视频文件的视频帧上覆盖时间戳(捕获帧的日期和时间)。
这成功地显示了自视频开始以来的时间(以秒为单位):
ffmpeg -i in.webm -filter_complex "drawtext=fontfile=/usr/share/fonts/truetype/arial.ttf: text='%{pts \:flt}': x=100 : y=50 : box=1" -c:a copy out.webm
该文件表明,pts也可以采取gmtime参数打印出来的日期和时间,
分
当前帧的时间戳。它最多可以接受三个参数。
第一个参数是时间戳的格式;它默认为 flt 秒作为具有微秒精度的十进制数;hms 代表格式化的 [-]HH:MM:SS.mmm 时间戳,精度为毫秒。gmtime 代表格式为 UTC 时间的帧的时间戳;localtime 代表格式化为本地时区时间的帧的时间戳。
第二个参数是添加到时间戳的偏移量。
如果格式设置为 localtime 或 gmtime,则可以提供第三个参数:strftime() 格式字符串。默认情况下,将使用 YYYY-MM-DD HH:MM:SS 格式。
但是当我尝试使用时
ffmpeg -i in.webm -filter_complex "drawtext=fontfile=/usr/share/fonts/truetype/arial.ttf: text='%{pts \:gmtime}': x=100 : y=50 : box=1" -c:a copy out.webm
出现错误Invalid format 'gmtime'。
ffmpeg version 2.8.3 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc …Run Code Online (Sandbox Code Playgroud)