问题标签 [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.
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
这些都没有引发任何错误,但我无法查看保存的文件。
gstreamer - 如何在 GStreamer 应用程序中发送任意数据作为 Ogg 或 Matroska 流的一部分?
我有实时音频和视频数据,可以作为 Ogg 或 Matroska (WebM) 流发送。我还有将从服务器发送到客户端的动态元数据,并且应该与 A/V 流相关联。例如,记录音频数据包的确切服务器时间。
我试图用 Kate 编码来破解它,但这似乎在一开始就立即发送所有字幕数据,而不是在发生时动态发送。如果您能告诉我如何发送关联良好的动态字幕数据,那么这也是一个可行的解决方案。
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!解码器!视频转换!自动视频接收器
不幸的是我找不到错误......如果有人帮助找到它会很棒。谢谢你。
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
gstreamer - gstreamer 中动作信号与查询的目的是什么?
有关 gstreamer 元素的一些信息,我必须发出类似的查询
gst_element_query_position (data.playbin, GST_FORMAT_TIME, ¤t)
(来自基础教程 4)
而对于其他人,我必须发出一个动作信号,比如
g_signal_emit_by_name (data->playbin, "get-video-tags", i, &tags)
(来自播放教程 1)。
这是什么原因?不是都在做同样的事情,向元素询问一些信息并等待答案(阻塞/同步)吗?对我来说,查询似乎正是针对这一点的,正如“基础”一章和下图所解释的那样。
但是动作信号如何适应那幅画呢?它们是事件(请求)和消息(响应)的组合还是只是查询?最重要的是:当已经有查询时,为什么它们会存在?
感谢您的时间和知识。
video-streaming - [Gstreamer:从元素“pipeline0”获得EOS]
我是 gstreamer 处理的新手。我正在按照 Gstreamer 教程在 Orangepi Zero 开发套件上设置 Gstreamer。我正在尝试通过 Gstreamer 运行视频流,但它会引发如下错误:
媒体:野生动物.mp4
命令:
当我尝试播放媒体时:“Wildlife.ogv”
运行两种不同的视频格式时出现两个不同的错误。
请提出解决方案。谢谢
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 -
不会改变输出视频帧率)。所以我决定使用videorate
gstreamer 元素来改变它:
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
c++ - 在 C++ 中使用 GStreamer 1.0 从 RTSP 流中获取帧
我正在尝试使用 GStreamer 1.0 和 Qt 库获取 rtsp 视频帧。我在从appsink获取帧时遇到问题,因为不知何故我的回调函数不起作用。
我正在尝试将newSample()
函数注册为回调,但是当我调试该函数时,它甚至没有被调用一次,但是内存正在泄漏(我想它可以工作,因为当我发表评论时gst_element_set_state(pipeline_, GST_STATE_PLAYING);
,它不再泄漏了)。
我在哪里做错了?
谢谢您的帮助!
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 anyNameYouWant
wherecamID
是一个整数(通常为 0 或 1)启动,用于标识您要使用的凸轮。
**编译**
要编译脚本,我使用以下Makefile
. 库的路径是相对的(gstreamer 库除外),因为我将它们构建在本地文件夹中。
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
直接在终端中使用播放视频时,也会出现同样的问题:
有人知道这里发生了什么吗?
提前致谢。