gpt4 book ai didi

gstreamer - 在带有 GStreamer 的 Python 中,如何使用文件对象作为输入源?

转载 作者:行者123 更新时间:2023-12-02 03:48:06 26 4
gpt4 key购买 nike

我目前正在做:

source_path = 'file:///home/raj/videos/sample.mpg'
descr = 'uridecodebin uri=%s ! videoconvert ! gdkpixbufsink name=sink' % (source_path)
pipeline = Gst.parse_launch(descr)

但是我如何使用原始文件源而不是使用 uri,例如来自 source_file = request.POST['file'].file。 (也许会从字符串加载视频文件?)

到目前为止,我的研究使我找到了 appsrc ( http://ingo.fargonauten.de/node/447 ),但我不确定如何将它与 GStreamer 1.0 一起使用,因为我想不通如何将文件加载到缓冲区:

raw_src = request.POST['files[]'].file
descr = 'appsrc name=vidsrc ! videoconvert ! gdkpixbufsink name=sink'
pipeline = Gst.parse_launch(descr)
appsrc = pipeline.get_by_name('vidsrc')
appsrc.emit('push-buffer', Gst.Buffer(raw_src.read()) ##I am not creating the buffer correctly for GStreamer 1.0

最佳答案

您可以使用几个选项:

  1. Pipe,创建一组管道,将文件内容写入写入管道,并使用fd属性将读取管道传入fdsrc。

  2. 使用 tempfile 模块创建一个临时文件,写入内容并使用 filename 属性将文件传递给 filesink。

  3. Appsrc,但您需要连接到推送缓冲区和流结束信号,从数据创建缓冲区。最好避免此选项,因为您必须在 python 中进行读取,使用 fdsrc/filesink 效率更高,因为部分处理是在 C 中完成的。

关于gstreamer - 在带有 GStreamer 的 Python 中,如何使用文件对象作为输入源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15583492/

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