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

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

我正在尝试使用 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():无效参数帧=10 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.12 bitrate=N/A video:1047kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing cost: unknown 转换失败!

答案1

你已经接近了,但是错误信息直接指出了问题:你的模式./compare_multiple_$(gdate +%H\_%M\_%S_%3N).png不正确。

在里面文档,当他们在模式中使用“N”时,“N”代表‘您选择的整数’,在您的情况下,看起来您希望它是 3。因此使用而%3d不是%3N,您应该可以开始了。

相关内容