问题标签 [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 投票
1 回答
3145 浏览

python - 为什么 python gstreamer 在我的脚本顶部没有“gobject.threads_init()”时会崩溃?

我编写了一个 python 脚本来使用 gstreamer(pygst 和 gst 模块)来计算 replaygain 标签,并且它与各种 gobject 错误不一致地崩溃。我在某个地方找到了可以通过将以下样板放在脚本顶部来解决此问题的地方:

我试过了,它奏效了。谁能解释为什么这些行是必要的,以及为什么 pygst 自己不这样做?

0 投票
1 回答
8256 浏览

streaming - mp3 streaming playback over RTP using gtreamer

I am working with gstreamer, mainly playing around with music playback features.

I am currently trying to use RTP to send mp3 streams over our LAN, but unsuccessfully until now.

On sender side I use the following pipeline:

gst-launch -v filesrc location=./my_music_file.mp3 ! ffdemux_mp3 ! rtpmpapay ! udpsink port=6969 host=192.168.0.200

On receiver side I use the following pipeline:

gst-launch -v udpsrc port=6969 caps="application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA, payload=(int)96, ssrc=(guint)1951256090, clock-base=(guint)1711290778, seqnum-base=(guint)24773" ! rtpmpadepay ! flump3dec ! pulsesink

There is apparently no error as output from receiver side is:

Setting pipeline to PAUSED ...

Pipeline is live and does not need PREROLL ...

Setting pipeline to PLAYING ...

New clock: GstSystemClock

...But sound hears strange, is just as if it has been played too fast.

I have tested that audio works by playing mp3 files locally. I have also tested rtp by streaming wav/µLaw files. All this works well.

I have tried also to face problem in other ways, for instance, I have used the following pipeline, taht works well with audiotestsrc/amrnb codec:

gst-launch gstrtpbin name=rtpbin audiotestsrc ! amrnbenc ! rtpamrpay ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink host=192.168.0.200 port=5002 rtpbin.send_rtcp_src_0 ! udpsink port=5003 host=192.168.0.200 sync=false async=false udpsrc port=5005 ! rtpbin.recv_rtcp_sink_1

But when using same pipeline with lame, again on the receiver side there is no error but there is a "too fast" output:

Sender: gst-launch gstrtpbin name=rtpbin audiotestsrc ! lamemp3enc ! rtpmpapay ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink host=192.168.0.200 port=5002 rtpbin.send_rtcp_src_0 ! udpsink port=5003 host=192.168.0.200 sync=false async=false udpsrc port=5005 ! rtpbin.recv_rtcp_sink_1

Receiver: gst-launch -v udpsrc port=5002 caps="application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA, payload=(int)96" ! rtpmpadepay ! flump3dec ! pulsesink

Could anyone have an idea of what's wrong with my pipelines?

Thank you very much for your support,

Jorge

0 投票
3 回答
1736 浏览

html - HTML5 直播视频“破解”

在过去的两个月里,我一直试图“愚弄” safari,使其认为它正在查看服务器上的文件,这实际上是来自摄像机的实时视频流,使用 Gstreamer 应请求编码并混合成支持的格式通过浏览器。由于 HTML5 支持渐进式视频下载,这至少在理论上应该是可能的。

我的结论是,考虑到浏览器在下载 HTML5 视频文件时会发出部分内容请求,这会变得相当复杂,主要是为了寻找。如果服务器不支持此功能,则在文件完全下载之前不会播放视频。

有没有其他人尝试过这种方法并取得了更大的成功?或者我应该放弃并等待像 RTSP 这样的真正的实时视频支持被集成到浏览器中。

干杯。

0 投票
1 回答
7331 浏览

python - 随时随地在 GStreamer 管道中添加和删除音频源

我写了一个小 Python 脚本,它使用一个Adder插件将两个源流混合在一起。

audiotestsrc启动程序后,您会听到插件生成的 1kHz 音调。当您按下 Enter 时,另一个 500Hz 的测试音会连接到 ,Adder因此您可以一起听到它们。(顺便说一句,我真的不明白为什么要在这里再次将管道设置为播放状态以听到混音。有什么方法可以插入新的源而无需重新启动管道?)

当您再次按 Enter 时,应从混音中删除 1kHz 音调,并且应继续播放 500Hz 音调,但我不再听到任何声音。我pulse pulsesink.c:528:gst_pulsering_stream_underflow_cb:<pulseaudio_output> Got underflow在调试输出中得到一个作为最后一行。我真的不知道下一步该尝试什么。

这是完整的源代码:

0 投票
1 回答
1839 浏览

java - gstreamer 快速转码

编辑 Updated code with solution

我需要将amr转码为mp3,所以我在gstreamer-java中编写了一个gstreamer管道。它看起来像这样:

(当然,实际上是用 java API 构建的),我开始转码

它工作正常,除了它所花费的时间等于音频长度,这是不可接受的。等效的

以机器速度转码。

那么我需要如何设置管道,以获得机器速度转码?

这是完整的源代码,适合精通 clojure 的人

0 投票
1 回答
2219 浏览

video - gstreamer 命令组合(pip)两个视频

我应该在 gstreamer 中执行什么命令才能将两个 320x240 视频组合成一个 640x240 并排视频?

假设我有 video1.avi 和 video2.avi

0 投票
2 回答
5751 浏览

c - Images Slideshow in Gstreamer

I want to make a GStreamer application which takes a xml file process its content which provides information like image url, its weight and the duration for which it is going to be displayed on the screen.

The xml file can be clearly processed in C using libxml. But how can we create a slideshow of the images using the GStreamer libraries. I want to use GStreamer because the hardware and the SDK I am using provide native support for GStreamer.

Are there any GStreamer plugins to do the same. Or how else can be done. I know GStreamer basics and can write code in C for GStreamer application.

0 投票
2 回答
2155 浏览

queue - 现在正在工作的 gstreamer 管道需要一堆队列组件,为什么?

我有一个 C 程序,可以将 v4l2 源中的视频和音频记录为 flv 格式。我注意到该程序不适用于较新版本的 ubuntu。我决定尝试在 gst-launch 中运行有问题的管道,并尝试找到能够重现问题的最简单的管道。仅专注于视频方面,我已将其简化为您在下面看到的内容。

所以我有一个正在工作的 gstreamer 管道:

现在,只有当我在 xvimagesink 之前一个接一个地添加一堆队列时,它才会起作用。虽然这确实有效,但在管道开始工作之前我得到了 2 秒的延迟,并且我也收到了消息:

虽然上面的第二个管道有效,但在管道开始运行之前有一个暂停,我收到了消息(我不认为这个系统慢 2,它是一个带有大量内存的核心 i7):

谁能解释这里发生了什么?我究竟做错了什么?

0 投票
0 回答
1441 浏览

python - 请参阅 python 中的网络摄像头捕获示例

当我在我的机器上运行这个脚本时(ubuntu 10.04 32 位):

http://pygstdocs.berlios.de/pygst-tutorial/webcam-viewer.html

我单击“开始”按钮,然后出现此错误:

为什么 ?

0 投票
1 回答
20933 浏览

java - rtsp streaming on java

can anyone please help me with a tutorial on how to implement a RTSP streaming server in java using gstreamer.

link text