问题标签 [python-gstreamer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - 如何导入 GstPbutils?
我正在尝试使用 GstPbutils python3 模块,但只是导入它会破坏一切,这里是代码:
和输出:
我的发行版被破坏了吗?我做错了吗?
gstreamer - 如何使用待处理的输入启动管道
我正在使用以下配置的管道工作几天: - 2 个实时输入流 (RTMP) - 进入一个合成器 - 输出到另一个 RTMP 流
中间有一些转换器、队列等,它工作得很好。
但我的问题是其中一个 RTMP 输入可能在启动时不可用,因此管道无法启动,崩溃并出现以下错误: - 错误:无法从流中读取任何数据 - 错误:内部数据流错误
什么是使这项工作的正确方法,即使用第一个输入启动流,即使第二个输入还没有准备好?
我尝试了几种方法:动态更改管道,使用垫探针播放,收听错误消息,..但到目前为止我无法让它工作。
谢谢, PL
gstreamer - 在 Raspbian 上定义 gstreamer 视频窗口的问题
在 python 中使用 Gstreamer 'playbin' 'set_window_handle' 代码告诉 Gstreamer 渲染视频的窗口 ID:
这适用于标准 Linux Mate,也适用于运行 Ubuntu-Mate 的 Raspberry Pi 3。然而,在同一个 Raspberry 上运行但运行的是最新的 Raspbian 操作系统,Gstreamer 完全忽略了在特定窗口中运行的指令,而是创建了自己的窗口,在屏幕中间。
如果新窗口能够被操纵、移动和/或调整大小但它不能,这不会是一个问题。它不能移动,不能关闭,鼠标指针消失在它后面。
有谁知道这是否是 Raspbian、X windows 或 Gstreamer 中的错误,或者我没有发现必须实施一些更改才能在 Raspbian OS 上运行?
这是一个最小的工作示例,它说明了上述行为。
ubuntu-14.04 - sys:1: 警告:g_hash_table_foreach: 断言 'version == hash_table->version' 失败
当我尝试 Tobii Pro Glasses SDK 演示video_with_gaze.py
时,我遇到了这个警告,它没有显示任何结果(理想情况下,它应该显示视频和注视点)。我想也许 glib 版本不对,但我不知道如何纠正它。这是演示代码:https ://gist.github.com/anonymous/b73399fdbce1d1e3c7c4d32eea82b31a
我使用 Ubuntu 14.04 和 Python 2.7。
谢谢!
python - 无法从 appsrc 写入多个同时文件接收器
当我有多个 gstreamer 进程同时运行时,我无法从 appsrc 保存到 filesink。只有一个 gstreamer 进程会正确写入,而其他进程都将写入几乎是空的文件。在文件接收器操作期间似乎存在写入争用。
注意:我在 MAC OS 10.11.6 上使用 gstreamer1.0 (v1.8.2) 和 python3 (v3.5.2)。
这是我的代码实际上在做什么:
在后台,我从单个视频流中读取帧,将每个帧转换为大小为 1920x800x3 的 BGR numpy 数组,并将每个帧存储在循环缓冲区中。我已经构建了一个“gstreamer_writer 函数”,它从这个循环缓冲区中读取帧,将这些帧转换为字节流,并将这个流提供给 appsrc。
这通过实例化一个新的多进程(multiprocessing.Process)并将其指向“gstreamer_writer 函数”来工作。这对于单个多进程/函数调用完全正常。Appsrc 已正确输入字节流,我使用以下 gstreamer 管道将这些 BGR 帧保存到具有 h264 编码的 mp4 中:
但是,如果我实例化两个或多个多进程并将它们指向函数,则只有一个文件接收器可以正常工作。例如,如果一个正在写入“test1.mp4”而另一个正在写入“test2.mp4”,那么其中一个视频将被正确写入,而另一个将失败并写入一个几乎为空的 mp4 (~500kb)。它并不总是相同的 mp4,50% 的时间 test1.mp4 正确编写,50% 的时间 test2.mp4 正确编写。看起来有某种竞争条件或写入争用阻止了两个 mp4 正确写入文件。
需要注意的一点是,每个多进程都从同一个环形缓冲区访问相同的帧。我认为这可能会导致 gstreamer 出现问题。但是,如果我使用 autovideosink 显示流而不是将它们写入文件,我可以显示任意数量的流/多进程。这意味着数据正在正确地通过管道传递,并且仅在写入阶段失败。我使用 gstreamer 命令对此进行了测试:
如果有人对我如何解决这个问题有任何建议,我将不胜感激。我希望这是一个简单的改变,但你永远不会知道 gstreamer!
谢谢!
python - 如何在虚拟环境中安装 python“gi”模块?
我看过这个,并尝试了以下代码:
,但import glib
或import gi
仍会产生错误:
与那篇文章类似,系统范围的 python 工作正常:
如何解决这个问题?另外,我真正需要的是import gi.repository
而不是import gi
. 非常感谢!
video-streaming - gstreamer:自定义管道没有输出(替换 playbin)
我正在尝试playbin
用我自己的管道替换应用程序,因为我需要向视频添加过滤器。这是我尝试过的:
后来我连接到源的source-setup
信号,然后连接到need-data
信号给它提供数据。这适用于playbin
,即打开一个输出窗口并显示视频。使用我的自定义管道没有任何反应 - 没有打开任何窗口,当然我什么也看不到。
为什么会这样,我该如何解决?
我还尝试删除所有音频内容并仅使用视频元素,结果相同。我什至不需要这个应用程序的音频。
raspberry-pi - Raspberry Pi 上的 gstreamer-1.0:无法解码 H.264 流
我正在尝试在 Raspberry Pi 上运行 gstreamer-1.0 python 脚本(见下文,在 ubuntu 笔记本电脑上运行良好)。但是,它似乎无法解码流:
我搜索了有关错误的信息(结果并没有启发我)和警告,但除了gstreamer1.0-libav
已经安装的安装之外,找不到太多建议。因此解码器应该可用。
这里可能有什么问题,我该如何解决?
这是脚本:
python - “gtk.gdk.Win32Window”对象没有属性“get_xid”
环境 - windows7 上的 python2.7、gstreamer 1.0
我试图在我的环境中运行来自http://bazaar.launchpad.net/~jderose/+junk/gst-examples/view/head:/video-player-1.0的代码,但它失败了AttributeError: 'gtk.gdk.Win32Window' object has no attribute 'get_xid'
我找到了测试 get_xid 并将其粘贴到此处的最少代码:-
理想情况下,如果我已经导入GdkX11
,那么窗口对象应该有 get_xid,但它不适用于 windows7 环境,看起来GdkX11
不适合 windows 用户。请建议我应该如何解决这个问题。
python - gstreamer 1.0 + python:从 PLAYING 管道中动态链接和取消链接队列
在将管道设置为 之前将两个队列链接在一起时,该脚本运行良好PLAYING
,但我很难理解 Gstreamer 动态管道及其实现。此外,gstreamer 1.0 python 缺乏文档/示例也无济于事。
这是使用 tee 记录到文件并流式传输到 RTMP 服务器的工作脚本
我正在尝试做的事情:
- 最初只从一个队列开始(queueFile),该队列记录到文件(始终运行)
- 按需动态添加和删除队列到 tee ( queueCloud ) 流到服务器
gstreamer 1.0 和 gi python 的文档不多,非常感谢任何帮助。