0

我正在尝试使用 Gstreaamer 从视频源中以 RAW 格式 (PGM) 保存多个文件。通过阅读 gst-inspect 工具可用于我使用的不同插件的不同源和接收器,我找不到实现目标的正确方法。我使用 mfw_v4lsrc 作为源视频,使用 ffenc_pgm 进行编码,使用 filesink 来保存文件。

这是我的命令行:gst-launch mfw_v4lsrc device=/dev/video0 name=source!视频/x-raw-yuv,宽度=250,高度=250!ffenc_pgm !文件接收器位置=test.pgm

我一直坚持无法将源链接到 ffenc_pgm。

我能够在 jpeg 中获得实时和保存。但为了我的目标,我需要你的帮助。

谢谢

4

2 回答 2

0

好的,

通过使用这个:

gst-launch -v mfw_v4lsrc device=/dev/video0 num-buffers=9 !ffmpeg色彩空间!视频/x-raw-gray,宽度=248,高度=248,格式=(fourcc)I420!ffenc_pgm !多文件接收器位置="frame%d.pgm"

我有 9 个使用 xnview 验证的 pgm 文件。但是,这些文件以等于 255 的灰度进行编码,但我需要使用 P5 幻数在 1024(每像素 2 个字节)上进行编码。我在 ffmpegcolorspace 或 ffenc_pgm 中找不到如何做到这一点......

于 2016-01-19T15:13:01.283 回答
0

这可能是因为您的源元素无法生成 ffenc_pgm 期望的格式(它似乎只需要灰度格式),也可能是因为您施加的 250x250 分辨率限制,同样,您的源元素可能无法生成。

您可以尝试添加转换器以提供帮助:

gst-launch mfw_v4lsrc device=/dev/video0 name=source ! videoscale ! video/x-raw-yuv, width=250, height=250 ! ffmpegcolorspace ! ffenc_pgm ! filesink location=test.pgm

此外,如果您想要每个缓冲区一个文件,您可能希望用 multifilesink 替换 filesink,filesink 将创建一个文件。我不知道 pgm 文件是如何工作的,所以我不能就此提出建议。

最后一个提示:请移至 gstreamer 1.x 系列,0.10 已过时且无人维护 3 年以上。

于 2015-12-21T22:19:27.667 回答