cuốn sách gpt4 ai đã làm

python - 如何在 Python 中访问 GStreamer 缓冲区的数据?

In lại Tác giả: Walker 123 更新时间:2023-11-28 21:53:40 25 4
mua khóa gpt4 Nike

在旧的(pre-GObject-introspection)GStreamer 绑定(bind)中,可以通过 .data 属性或通过转换为 访问 gst.Buffer 数据>海峡。这不再可能了:

>>> p buf.data
*** AttributeError: 'Buffer' object has no attribute 'data'
>>> str(buf)
''

câu trả lời hay nhất

在最新版本中要访问Gst.Buffer 的内容,您必须首先map() 缓冲区以获取Gst.MapInfo,它具有 bytes 类型的 dữ liệu 属性(Python 2 中的 str).

(result, mapinfo) = buf.map(Gst.MapFlags.READ)
assert result

thử:
# use mapinfo.data here
pass
finally:
buf.unmap(mapinfo)

您还可以使用 get_memory() 访问缓冲区的组成 Gst.Memory 元素,并单独映射它们。 (AFAICT,调用 Buffer.map() 等同于调用 .get_all_memory() 并映射生成的 Memory. )

不幸的是,写入这些缓冲区是不可能的,因为即使设置了 Gst.MapFlags.WRITE 标志,Python 也用不可变类型表示它们。相反,您必须执行一些操作,例如使用修改后的数据创建一个新的 Gst.Memory,并使用 Gst.Buffer.replace_all_memory().

关于python - 如何在 Python 中访问 GStreamer 缓冲区的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25773551/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress