如何在ffmpeg中将时间戳作为生成的图像文件名的一部分添加?

3
我正在尝试使用ffmpeg从视频中提取png图像,并将时间戳作为生成的图像文件名的一部分添加。
请参见我用于此目的的以下命令:
ffmpeg -vcodec mpeg2video -f mpegts -i test_movie.ts -f image2 -vf "drawtext=fontfile=/Library/Fonts/Tahoma.ttf: timecode='$(date +%H\\:%M\\:%S).00': r=30: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" -vsync vfr -pattern_type glob ./compare_multiple_$(gdate +%H\_%M\_%S_%3N).png

但是这样并没有正确地附加文件名。它会显示以下错误:
[image2 @ 0x7ff01301f600] 无法从模式“./compare_multiple_10_09_58_490.png”中获取第2帧的文件名编号(请设置updatefirst或在文件名模式中使用%03d之类的模式) av_interleaved_write_frame():无效参数frame = 10 fps = 0.0 q = -0.0 Lsize = N / A time = 00:00:00.12 bitrate = N / A video:1047kB音频:0kB字幕:0kB其他流:0kB全局标头:0kB混合开销:未知转换失败!

我同意。可以投票关闭或删除。 - undefined
1个回答

3

对于输出文件名模式,您可以使用以下内容:

ffmpeg -i ... -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.png"

1
谢谢。但是我想在每一帧上生成一个文件,每秒有30帧,文件名中的值为毫秒。 - undefined
它没有必要的分辨率。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接