gpt4 book ai didi

gstreamer - 将视频转换为帧图像序列

转载 作者:行者123 更新时间:2023-12-04 17:51:19 24 4
gpt4 key购买 nike

我需要使用网络摄像头捕获视频并为捕获的每个视频帧输出单个图像。

我曾尝试将 gstreamer 与 multifilesink 一起使用,例如:

gst-launch v4l2src device=/dev/video1 ! video/x-raw-yuv,framerate=30/1 ! ffmpegcolorspace ! pngenc ! multifilesink location="frame%d.png"

但是,这实际上并没有输出每一帧,这意味着如果我以 30 fps 的速度录制 2 秒,我不会得到 60 张图像。我假设这是因为编码不能那么快,所以我需要另一种方法。

我认为如果我有一个管道捕获视频,并且一个单独的管道将该视频转换为帧,它可能会起作用,但我对编解码器知之甚少。我是否需要将视频编码为 h264 或 mp4 之类的文件才能再次解码?

有没有人有任何想法或建议?请记住,我需要能够在代码中执行此操作,而不是使用 Adob​​e Premiere 等应用程序。

谢谢!

最佳答案

您可以简单地在其中添加一个队列,如下所示:

gst-launch v4l2src device=/dev/video1 ! video/x-raw-yuv,framerate=30/1 ! queue ! ffmpegcolorspace ! pngenc ! multifilesink location="frame%d.png"

这应该确保允许视频捕获以 30 fps 运行,然后将其写入
磁盘可以按照自己的节奏发生。请注意,队列将增长到相当大的规模
如果你离开这个设置太久。

关于gstreamer - 将视频转换为帧图像序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15625046/

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