我需要使用网络摄像头捕获视频并为每个捕获的视频帧输出一张单独的图像。
我尝试使用gstreamer和multifilesink,例如:
然而,这并没有实际输出每一帧,这意味着如果我以30fps录制2秒钟,我不会得到60张图片。我猜这是因为编码速度跟不上,所以我需要另一种方法。
我想,如果我有一个管道捕获视频,另一个管道将该视频转换为帧,那么它可能会起作用,但我对编解码器了解不够。我是否需要将视频编码为像h264或mp4这样的文件,然后再解码它?
有人有什么想法或建议吗?请记住,我需要能够在代码中完成这个操作,而不是使用诸如Adobe Premiere之类的应用程序。
谢谢!
我尝试使用gstreamer和multifilesink,例如:
gst-launch v4l2src device=/dev/video1 ! video/x-raw-yuv,framerate=30/1 ! ffmpegcolorspace ! pngenc ! multifilesink location="frame%d.png"
然而,这并没有实际输出每一帧,这意味着如果我以30fps录制2秒钟,我不会得到60张图片。我猜这是因为编码速度跟不上,所以我需要另一种方法。
我想,如果我有一个管道捕获视频,另一个管道将该视频转换为帧,那么它可能会起作用,但我对编解码器了解不够。我是否需要将视频编码为像h264或mp4这样的文件,然后再解码它?
有人有什么想法或建议吗?请记住,我需要能够在代码中完成这个操作,而不是使用诸如Adobe Premiere之类的应用程序。
谢谢!