【问题标题】:Gstreamer video to pgm filesGstreamer 视频到 pgm 文件
【发布时间】:2016-03-27 14:52:12
【问题描述】:

我正在尝试使用 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 中获得实时和保存。但为了我的目标,我需要你的帮助。

谢谢

【问题讨论】:

    标签: video gstreamer pgm timelapse


    【解决方案1】:

    好的,

    通过使用这个:

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

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

    【讨论】:

    • ffenc_pgm 不考虑其接收器上的最大灰度值。为此,正如@thiagoss 所说,我将迁移到 gstreamer-1.x。事实上, avenc_pgm(在 1.x 版本的 gstreamer 中替换 ffenc_pgm)负责处理其接收器上的 bpp。所以它起作用了。
    【解决方案2】:

    这可能是因为您的源元素无法生成 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 年以上。

    【讨论】:

    • 嗨 thiagoss,抱歉我迟到了。我会尽快尝试您的解决方案。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    相关资源
    最近更新 更多