我正在尝试从视频中提取帧并获取提取的每个帧的精确时间戳(在图片上)。
为了从没有时间戳的视频中提取帧,我使用以下语法:
ffmpeg -i video.wmv -r 0.08 -f image2 -s 512x384 video2%%4d.jpg
答案1
您可以使用drawtext
过滤器。您的构建需要使用 进行编译--enable-libfreetype
。Windows 和 Linux 的大多数静态构建ffmpeg
似乎都支持此过滤器。请参阅FFmpeg 下载页面链接。
时间戳
期间
ffmpeg -i input -vf "drawtext=fontfile=/usr/share/fonts/TTF/Vera.ttf: text='%{pts\:hms}': x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" image%03d.png
当前时间
ffmpeg -i input -vf "drawtext=fontfile=/usr/share/fonts/TTF/Vera.ttf: text='%{localtime}': x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" image%03d.png
时间码
PAL 25 fps 无丢帧:
ffmpeg -i input -vf "drawtext=fontfile=/usr/share/fonts/TTF/Vera.ttf: timecode='00\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" image%03d.png