2013-03-12 103 views
11

我需要使用ffmpeg for windows将帧编号覆盖到视频文件的每个帧。帧数覆盖FFmpeg

我成功地覆盖时间码戳使用此代码drawtext过滤器:

ffmpeg -i video.mov -vcodec r210 -vf "drawtext=fontfile=Arial.ttf: timecode='01\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099" -y output.mov 

不过,我需要一个帧数覆盖,而不是一个时间码一个。任何帮助,将不胜感激。

回答

19

按照drawtext filter文档:

N,的frame_num
帧编号,从0

开始所以,你的过滤器可能看起来像:

-vf "drawtext=fontfile=Arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099" 

这将为每个帧打印适当的帧号。

+0

它的工作原理!有没有办法让它从1开始计数? – 2013-03-13 10:23:24

+0

可能有一个“eval”选项,您可以将它添加到一起... – rogerdpack 2014-01-21 17:55:21

+0

对赢:如果错误>>无法加载字体“Arial.ttf”<<出现您可以复制字体例如“Arial”从Windows \ fonts-folder到Image-File-Folder – Thomas 2014-03-27 14:59:34