gpt4 book ai didi

video - 通过 id 随机访问视频帧

转载 作者:行者123 更新时间:2023-12-04 23:08:07 27 4
gpt4 key购买 nike

我有一个 24 小时的视频,想为任意帧组织一些元信息(特别是对象的边界框)的存储。这意味着我必须通过其 id 对帧进行可靠的随机访问,实际上甚至以某种方式访问​​帧范围 (id_start, id_end) .

再一次,当我填充元存储以及稍后我将获得元时(通常在另一个环境中 - ffmpeg 版本、编解码器等),获得相同的帧至关重要。否则我会将边界框放在错误的框架上。

所以我找到了一些方法

  • ffmpeg -i in.mp4 -vf select='between(n,x,y)' -vsync 0 frames%d.png问题是它工作得太慢了。我也不知道它在复制意义上是否可靠。
  • ffmpeg -ss pkt_pts_time -i in.mp4 -vframes n output_%03d.png在哪里 pkt_pts_time来自 ffprobe -show_frames in.mp4 -select_streams v问题是 pkt_pts_time 根本不清楚。 pkt_pts_time 是否引用 -ss 参数?

  • 实际上问题是 - 帧的内部元信息(比如 h.264)是否包含帧 ID?我没有找到办法得到它。

    现在我想为每个 T 的框架( anchor )存储 png md5sum。稍后我将能够使用它们检查一致性。

    任何人都可以提出更好的建议吗?

    最佳答案

    帧的内部元信息(比如 h.264)是否包含帧 ID?我没有找到办法得到它。

    不可以。在 MP4 中,您可以使用时间戳进行搜索。

    ffmpeg -ss pkt_pts_time -i in.mp4 -vsync 0 -vframes n output_%03d.png

    其中第一个输出帧是 pts_time 等于或在 -ss 之后的第一个输入帧值,例如如果有一个 pts_time 为 4.36 的帧,那么 -ss 4.36将从该帧开始。但是如果在 4.36 没有帧,但在 4.38 有一个,那么你的命令使用 -ss 4.36将输出 4.38先画框。

    关于video - 通过 id 随机访问视频帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51960880/

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