问题标签 [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.

0 投票
6 回答
26933 浏览

c - 学习 GObject 和 Glib 的材料

我对 C. 很满意,但需要学习GObjectGlibgstreamer. 我在网上找到的只是 Gobject 参考手册。它很好,但正在寻找 Gobject/Glib 的教程,因为主要关注的是 gstreamer。

所以请分享任何其他资源来学习 glib 和 gobject。

0 投票
2 回答
3084 浏览

python - 如何使用 gstreamer 录制实时视频而不丢帧?

我正在尝试使用 Python 中的 gstreamer 0.10 同时显示 v4l2 视频源并将其记录到 xvid-in-avi。在很长一段时间内,计算机的速度足以做到这一点,但如果另一个程序使用磁盘,它就会丢帧。这已经够糟糕的了,但是在播放时视频中会出现突然的运动,其中帧被丢弃,而不是显示我们能够以较低帧速率编码的帧。

管道是v4l2src ! capsfilter ! tee ! queue ! xvidenc ! avimux ! filesink,三通也下沉到queue ! xvimagesink sync=false. 我试过videorate在前面添加,xvidenc但这似乎让事情变得更糟。

我考虑在这个管道中将未压缩的视频假脱机到磁盘并在后台线程中对其进行编码。我还能做些什么来解决这个问题?丢帧是错的还是xvidenc做错了?avimux我可以显着增加编码器之前的队列大小吗?

0 投票
4 回答
13708 浏览

video - 我可以使用 Gstreamer API 合并 2 个视频吗?

我想编写一个简单的 linux CLI 应用程序,它可以获取 2 个视频源(1 个演讲者正在讲话,1 个有幻灯片,没有音频)并将它们合并。

我希望整个输出视频是两个原始视频,并排。如果做不到这一点,我的第二个最佳选择是“画中画”风格的视频,演示者在角落的一个小框架中。

从几个小时的研究来看,GStreamer 似乎可以做到这一点。在我花更多时间尝试之前,有人可以确认吗?

如果不能,是否还有其他我可以使用的 API?

0 投票
1 回答
631 浏览

gstreamer - 使用 GStreamer 从 rtp 视频流中解析 MPEG 标头的所有关键帧的 userdata 字段

如何使用 GStreamer 解析 MPEG 流..?我只需要处理 MPEG 流的关键帧(不是 P 帧)的所有用户数据字段。

MPEG 流来自 rtp 协议。我可以使用 GStreamer 管道显示视频,但是,我的最终要求是解析所有关键帧的 userdata 字段并将该信息覆盖到显示视频中。

0 投票
3 回答
1567 浏览

python - 如何使用 gstreamer 从 USB 视频捕获 + dvb 设备中获取视频?

我拥有一个 avermedia volar HX USB 记忆棒,我想从复合输入中捕获,但我不能,因为我无法选择输入。我将 gstreamer 与 + python 一起使用,我想我需要使用 gsttuner 选择输入,但我没有使用 gstreamer 接口的经验。有人可以发布一个简单的例子吗?

谢谢!

0 投票
5 回答
15715 浏览

linux - 如何通过丢帧加快视频播放速度?

我有一个30分钟长的视频。我想制作一个(比如说)15 分钟长的加速版本。我可以通过删除每第二帧来做到这一点。我怎么能在Linux上做到这一点?

我正在玩 gstreamer,它看起来很酷。有没有办法用 gstreamer 做到这一点?执行此操作的gst-launch命令行是什么?

我的源视频是 Motion JPEG 格式,所以我确实需要丢帧。即使它使用关键帧,仍然应该有一种方法可以将电影“加倍速度”?

我想要一种命令行方式来做到这一点,因为我想自动化它。

0 投票
2 回答
33661 浏览

video - 如何使用 gstreamer 显示 avi 视频?

我想编写一个需要播放跟踪结果的对象跟踪程序。由于 gstreamer 是一个很好的多媒体框架,我想在我的演示程序中使用它。但我不知道如何详细实现视频显示。任何人都可以帮忙吗?

Avidemux 插件可以将音频和视频部分从 avi 文件中分离出来,但是接下来要做什么呢?

如果我打开一个未压缩的 avi 文件,如果我直接将 avidemux 插件的输出板链接到视频接收器,它是否有效?

顺便问一下,哪个视频接收器在效率方面更好?我查阅了插件参考,发现了很多视频接收器:glimagesink、osxvideosink、sdlvideosink、ximagesink、xvimagesink、dfbvideosink、fbdevsink、gconfvideosink autovideosink 是否总是可以正常工作?我的平台是 ubuntu 9.04。

蒂亚~

0 投票
4 回答
6495 浏览

c++ - 将多个视频合二为一

我有三个视频:

  • 用摄像机拍摄的讲座
  • 讲座中使用的计算机的桌面捕获视频
  • 和白板的视频

我想创建一个最终视频,这三个组件占据屏幕的某个区域。

是允许我这样做的开源软件(mencoder、ffmpeg、virtualdub ..)吗?你推荐哪个?

或者是否有一个 C/C++ API 可以让我以编程方式创建类似的东西?

编辑
未来会有多场录音讲座。这意味着我需要一个通用/自动化的解决方案。

我目前正在检查是否可以使用 GStreamer 编写应用程序来完成这项工作。对此有何评论?

解决了!
我使用 GStreamer 的 videomixer 元素成功地做到了这一点。我使用 gst-launch 语法创建管道,然后使用 gst_parse_launch 加载它。这是实现复杂管道的一种非常有效的方式。

这是一个管道,它接收两个传入的视频流和一个徽标图像,将它们混合成一个流并复制它,以便同时显示并保存到磁盘。

0 投票
2 回答
8058 浏览

c++ - GStreamer gst_element_factory_make 失败

我正在尝试 GStreamer 测试应用程序,但在运行时以下行失败:

我正在使用 MacOSX 并通过 MacPorts 安装了 GStreamer、libogg 和 vorbis-tools。所以我不明白为什么它会失败。

有关如何使其工作的任何建议?

编辑:解决了!

问题是我需要从 gst-plugins-good 包中安装自动检测插件。

以下是使其起作用的操作列表:

删除 MacPorts 安装:

sudo port uninstall gstreamer

将以下行添加到 ~/.profile

下载 gstreamer、gstreamer-plugins-base 和 gstreamer-plugins-good 源。

构建和安装 gstreamer (./configure, make, make install)

构建和安装 gstreamer-plugins-base (./configure, make, make install)

对于 gstreamer-plugins-good,我只构建了 autodetect 包,因为构建所有这些都会导致一些我现在不需要或不关心的插件出现错误。我是这样做的:

现在程序构建并运行。但是,我似乎没有得到任何音频输出:(但这是另一个问题。

0 投票
1 回答
1804 浏览

video - 将多个传入的音频和视频流捆绑到一个容器文件中的 Linux 应用程序?

我被指派为当地一所大学实施视频点播服务。将记录讲座的不同方面(视频、音频、屏幕投射、白板)。在一次讲座中,所有这些数据流都到达一个 Linux 服务器。该服务器应将所有这些流转码并捆绑到一个容器 (Matroska) 文件中。

我的选择似乎是:

  • 编写 GStreamer 应用程序
  • 用 FFMPEG 做点什么
  • 用 VLC 做点什么
  • ...?

过去有没有人做过类似的事情?你能推荐一些东西吗?

编辑
对于那些感兴趣的人,这里是我的一些发现:

  • Matroska 不是一个好的流媒体格式(有可能,但这不是它的主要意图)
  • 对于 Flash 流,您可以使用 MPEG4
  • 如果您想将不同的视频组合成一个视频,其中每个子视频占据整个屏幕的一个矩形部分,那么这个GStreamer 脚本很有用(我在这篇文中找到了它)。
  • 桌面捕获适用于 VLC