gpt4 book ai didi

video - 使用ffmpeg从视频中提取多张图片并获取提取图片的时间戳

转载 作者:行者123 更新时间:2023-11-28 21:40:21 25 4
gpt4 key购买 nike

我使用 ffmpeg 每五分钟从视频中提取一帧(作为 jpeg),并将输出从控制台传输到文本文件,以便获得提取帧的准确时间戳。

我使用的命令是:

ffmpeg -i input.avi -ss 00:10:00 -vframes 10 -vf showinfo,fps=fps=1/300 %03d.jpg &> output.txt

-ss 00:10:00 让我在开始前跳过视频中的 10 分钟,而 -vframes 10 让我只捕捉前 10 帧(每 5 分钟 1 帧)。

除了命令输出所有帧的信息外,这几乎可以正常工作,包括那些没有写成 jpeg 的帧。这是一个三行示例输出:

[Parsed_showinfo_0 @ 0x2219020] n:11427 pts:11429 pts_time:599.979 pos:48892180 fmt:yuv420p sar:1/1 s:640x480 i:P iskey:0 type:P checksum:6309A75D plane_checksum:[15A29007 1617E1FE D93A3549] mean:[146 125 153 ] stdev:[17.6 1.0 2.1 ]
[Parsed_showinfo_0 @ 0x2219020] n:11428 pts:11430 pts_time:600.031 pos:48898094 fmt:yuv420p sar:1/1 s:640x480 i:P iskey:0 type:B checksum:815D031A plane_checksum:[E004E973 E28CE2D5 F56636B4] mean:[146 125 153 ] stdev:[17.6 1.0 2.1 ]
[Parsed_showinfo_0 @ 0x2219020] n:11429 pts:11431 pts_time:600.084 pos:48892448 fmt:yuv420p sar:1/1 s:640x480 i:P iskey:0 type:P checksum:6CE2D3C5 plane_checksum:[E983BD86 38B9E198 93B13498] mean:[146 125 153 ] stdev:[17.6 1.0 2.1 ]

我希望带有 pts_time:600.031 的中间线是提取为图像的第一帧,但无法将它与两侧的其他帧区分开来,图像不是提取。

有谁知道解决这个问题的方法吗?

谢谢!

最佳答案

您可以使用 -vf showinfo 来使用 ffmpeg 获取帧信息。例如,在场景变化时提取帧并获取该特定帧的时间戳。

ffmpeg -i image.mp4 -filter:v "select='gt(scene,0.1)',showinfo" -vsync 0 frames%05d.jpg >& output.txt

您将输出类似于:[Parsed_showinfo_1 @ 0x25bf900] n: 0 pts: 119357 pts_time:9.95637 ....我们感兴趣的部分是 pts_time,获取时间使用以下命令:

grep showinfo ffout | grep pts_time:[0-9.]* -o | grep '[0-9]*\.[0-9]*' -o > timestamps

你会得到类似的输出:

9.95637
9.98974
15.0281
21.8016
28.208
28.4082
28.5083

关于video - 使用ffmpeg从视频中提取多张图片并获取提取图片的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com