问题标签 [gstreamer-1.0]

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 投票
0 回答
512 浏览

raspberry-pi - 如何使用 gstreamer 从 Raspberry pi 流式传输和保存视频

我正在尝试流式传输和保存。我能够看到流,但我保存的文件即使在一定大小之后也没有在 VLC 中打开。

发送命令:

raspivid -t 0 -w 1080 -h 720 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=192.168.43.7 port=6002

接收命令:

gst-launch-1.0 -e -v tcpclientsrc host=192.168.43.7 port=6002 ! gdpdepay ! queue ! rtph264depay ! tee name =t ! avdec_h264 ! videoconvert ! autovideosink sync=false t. ! queue ! h264parse ! mp4mux ! filesink location=file.mp4

这些都没有引发任何错误,但我无法查看保存的文件。

0 投票
0 回答
71 浏览

gstreamer - 如何在 GStreamer 应用程序中发送任意数据作为 Ogg 或 Matroska 流的一部分?

我有实时音频和视频数据,可以作为 Ogg 或 Matroska (WebM) 流发送。我还有将从服务器发送到客户端的动态元数据,并且应该与 A/V 流相关联。例如,记录音频数据包的确切服务器时间。

我试图用 Kate 编码来破解它,但这似乎在一开始就立即发送所有字幕数据,而不是在发生时动态发送。如果您能告诉我如何发送关联良好的动态字幕数据,那么这也是一个可行的解决方案。

0 投票
1 回答
2130 浏览

video - 通过 Gstreamer 流式传输视频

我尝试使用服务器上的命令检查 Windows 操作系统计算机上的视频 rtp 流:

gst-launch-1.0 filesrc 位置 = d:/TestVideos/lama.mp4 !qtdemux !视频/x-h264 !rtph264pay!udpsink 主机=192.168.1.162 端口=6001

然后我尝试捕捉流:

gst-launch-1.0 -v udpsrc port=6001 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int) 96 英寸!rtph264depay!解码器!视频转换!自动视频接收器

我在控制台看到这样一张图:

在此处输入图像描述

就这样。当视频结束服务器窗口自动关闭。

但如果尝试使用 testvideosrc,一切正常。

服务器端:

gst-launch-1.0 -v videotestsrc !视频/x-raw,帧率=20/1!视频缩放!视频转换!x264enc 调=零延迟比特率=500 速度预设=超快!rtph264pay!udpsink 主机=192.168.1.162 端口=6001

客户端:

gst-launch-1.0 -v udpsrc port=6001 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int) 96 英寸!rtph264depay!解码器!视频转换!自动视频接收器

在此处输入图像描述

不幸的是我找不到错误......如果有人帮助找到它会很棒。谢谢你。

0 投票
1 回答
1147 浏览

linux - GStreamer:具有不会构建的依赖项的插件

我正在尝试从 gst-plugins-bad 安装 gstreamer 的 WebRTC 插件。https://gstreamer.freedesktop.org/src/gst-plugins-bad/

运行 configure 脚本时,会出现以下消息: configure: Plug-ins with dependencies that will not be built: 后跟插件列表。当我使用 make 安装时,这些插件没有安装。我需要安装一些依赖项吗?

可以在以下位置找到来自配置脚本的日志:https ://justpaste.it/4w2kl

0 投票
1 回答
693 浏览

gstreamer - gstreamer 中动作信号与查询的目的是什么?

有关 gstreamer 元素的一些信息,我必须发出类似的查询

gst_element_query_position (data.playbin, GST_FORMAT_TIME, &current)

(来自基础教程 4

而对于其他人,我必须发出一个动作信号,比如

g_signal_emit_by_name (data->playbin, "get-video-tags", i, &tags)

(来自播放教程 1)。

这是什么原因?不是都在做同样的事情,向元素询问一些信息并等待答案(阻塞/同步)吗?对我来说,查询似乎正是针对这一点的,正如“基础”一章和下图所解释的那样。

但是动作信号如何适应那幅画呢?它们是事件(请求)和消息(响应)的组合还是只是查询?最重要的是:当已经有查询时,为什么它们会存在?

感谢您的时间和知识。


Gstreamer 通信

0 投票
0 回答
2455 浏览

video-streaming - [Gstreamer:从元素“pipeline0”获得EOS]

我是 gstreamer 处理的新手。我正在按照 Gstreamer 教程在 Orangepi Zero 开发套件上设置 Gstreamer。我正在尝试通过 Gstreamer 运行视频流,但它会引发如下错误:

媒体:野生动物.mp4

命令:

当我尝试播放媒体时:“Wildlife.ogv”

运行两种不同的视频格式时出现两个不同的错误。

请提出解决方案。谢谢

0 投票
1 回答
1131 浏览

raspberry-pi - gstreamer + raspivid 帧率控制

我正在使用以下命令从 rapsberry pi 流式传输视频:

raspivid -t 0 -o - | gst-launch-1.0 fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=<host> port=<port>

并捕获:

gst-launch-1.0 udpsrc port=<port> ! application/x-rtp, encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink sync=false

现在我想降低流视频帧率。我发现 command 的-fps参数raspivid不像我预期的那样工作(运行raspivid -t 0 -fps 15 -o -不会改变输出视频帧率)。所以我决定使用videorategstreamer 元素来改变它:

raspivid -t 0 -o - | gst-launch-1.0 fdsrc ! h264parse ! omxh264dec ! videorate ! video/x-raw,framerate=15/1 ! omxh264enc ! rtph264pay config-interval=1 pt=96 ! udpsink host=<host> port=<port>

但是捕获的视频具有超高的延迟和帧率。当我尝试在没有流式传输的情况下在覆盆子上播放视频时效果相同:

raspivid -t 0 -o - | gst-launch-1.0 fdsrc ! h264parse ! omxh264dec ! videorate ! video/x-raw,framerate=15/1 ! videoconvert ! autovideosink

或不改变帧率的事件:

raspivid -t 0 -o - | gst-launch-1.0 fdsrc ! h264parse ! omxh264dec ! autovideosink

如何在 raspbian 上使用 gstreamer 更改 h264 编码视频的视频帧速率?

Debian 8

gstreamer 1.4

0 投票
0 回答
1299 浏览

c++ - 在 C++ 中使用 GStreamer 1.0 从 RTSP 流中获取帧

我正在尝试使用 GStreamer 1.0 和 Qt 库获取 rtsp 视频帧。我在从appsink获取帧时遇到问题,因为不知何故我的回调函数不起作用。

我正在尝试将newSample()函数注册为回调,但是当我调试该函数时,它甚至没有被调用一次,但是内存正在泄漏(我想它可以工作,因为当我发表评论时gst_element_set_state(pipeline_, GST_STATE_PLAYING);,它不再泄漏了)。

我在哪里做错了?

谢谢您的帮助!

0 投票
0 回答
526 浏览

c++ - gst_element_get_state 运行 opencv 程序中的 gstreamer 异常

我正在运行一个 OpenCV 应用程序,该应用程序还使用其他外部库,例如 Poco 库、jsoncpp 和 SDL。

所有库都在本地编译,我通过 Makefile 链接它们。

该程序从网络摄像头流式传输视频,并应从键盘(a例如字符)捕获输入以执行某些操作。

一切都在 Ubuntu 18.04 下;C++ 源代码是正确的,因为在 OSX 下它可以毫无问题地运行并且正在执行预期的操作(如果需要,我将附加源代码的示例)。

程序运行并且不会停止,但它没有捕获键盘输入,并且一旦启动我就会收到错误

我已经安装了 gstreamer 库,因为它们是 opencv 所需要的,并且我将它们包含并链接到 Makefile 中,如下所示(稍后请参阅完整的 Makefile):

有没有人有同样的问题?是什么产生了异常?

我认为该错误与 Opencv deendencies 有关,但我不确定是否与 SDL2.0 有关。

C++ 程序的源代码

这是一个最小的工作示例:单击鼠标的左右按钮(直接使用 Opencv 回调捕获)同时按下和释放键盘按钮不会调用正确的 SDL 回调。该脚本可以使用./executable camID anyNameYouWantwherecamID是一个整数(通常为 0 或 1)启动,用于标识您要使用的凸轮。

**编译**

要编译脚本,我使用以下Makefile. 库的路径是相对的(gstreamer 库除外),因为我将它们构建在本地文件夹中。

0 投票
1 回答
462 浏览

c - Gstreamer 教程提供了扭曲/扭曲的视频

我在虚拟机(VMware Fusion 11.0.0)上运行 Ubuntu (18.04.01 LTS),我想完成第一个基本 GStreamer教程。此示例应使用 playbin 元素播放来自 Internet 的短视频。但是,当我编译并运行代码时,生成的视频是distorted/warped。当我下载文件并直接从桌面播放时,一切看起来都很好。其他视频文件也有同样的问题。

我已成功按照说明如何在 Ubuntu 上安装 GStreamer (gstreamer-1.0,版本 1.14.1)和所有必需的附加插件:

当我gst-launch-1.0直接在终端中使用播放视频时,也会出现同样的问题:

有人知道这里发生了什么吗?

提前致谢。