问题标签 [gst-launch]

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 回答
4558 浏览

audio - gst-launch 不会播放到 alsasink device=hw:2

使用以下工作正常

一样

当我使用 hw:2 时,如果播放器正在使用它,我会收到设备繁忙错误,否则会收到内部数据流错误。

如果我启用调试

我得到以下

我确实从以下两个方面得到了声音

我是否错过了 gst-launch 的一些额外参数?

任何帮助将非常感激!

0 投票
2 回答
1731 浏览

c - 如何使用 GStreamer 的电平插件获取特定音频文件的峰值和 rms 值

我想检测特定音频文件的峰值和 rms 值(格式可以是 .opus、.wav 等,或者也可以从麦克风输入而不录制声音)。使用 GStreamer 的优秀“级别”插件我可以实现这一点。

我尝试了此处提供的示例 level_plugin_example

我还尝试了命令行示例,

$ gst-launch-1.0 -v -m audiotestsrc !音频转换!音频/x-raw,格式=S8,通道=2!等级 !fakesink静音=真

或者

$ gst-launch-1.0 -v -m audiotestsrc !体积体积=1.0 !等级 !fakesink静音=真

这些给出了空有效值和峰值。

通过这些例子,我知道了如何使用level。但问题是,在示例中,他们使用上限来设置原始媒体(内部是否有任何操作来获取关卡插件的输出?)但我想要用户定义的媒体输入,那么如何实现这一点?

摘要:我想要一个“级别”插件的示例代码片段,它将输入作为录制的音频或实时音频文件并检测其 rms 和峰值。

0 投票
2 回答
3097 浏览

gstreamer - 使用 GStreamer 从 jpeg 创建虚拟网络摄像头

我正在尝试使用 jpg 文件作为 Skype(或类似软件)的虚拟网络摄像头。图像文件每隔几秒钟就会重新加载一次,并且管道也应该始终传输最新的图像。我开始像这样创建管道

但它只流式传输第一个图像并忽略图像文件的较新版本。我读了一些关于 concat 和动态更改管道的内容,但我无法让它为我工作。

你能给我一些关于如何让它工作的提示吗?

0 投票
1 回答
8309 浏览

scale - 如何使用 gstreamer 更改纵横比?

我有这个命令:

它采用第二个显示(从像素 1920 到最后一个 -1)并在第一个显示的小窗口中显示它,应用水平翻转并使用邻居缩放方法,以 15fps。它用于在我的第一个显示器(计算机显示器)中“监控”我的第二个显示器(电视)。

现在,我的第二台显示器是 16:9 电视,我使用的是 1024x768。那里显示的图像已经按比例缩放(从 16:9 到 4:3)。现在,我需要在 gstreamer 窗口中将 4:3 比例缩放回 16:9。

但是,通过使用这个命令,我可以在这个完整的屏幕截图中看到你所看到的(带有实际窗口和“希望”窗口):

在此处输入图像描述

执行此操作的正确命令是什么?

0 投票
1 回答
617 浏览

gstreamer - 使用 Gstreamer 播放流媒体内容

我想使用 gstreamer 进行网络流式传输。意图是启动视频内容(来自发射器)并在接收器端播放。我为流式传输网络内容编写了一个示例测试代码。

在发送端:GST_DEBUG="*:2" gst-launch-1.0 videotestsrc !视频/x-raw!杰佩根!rtpjpegpay!udpsink 主机=127.0.0.1 端口=5001

在接收方:GST_DEBUG="*:2" gst-launch-1.0 udpsrc port=5001 !应用程序/x-rtp,编码名称=JPEG,有效负载=26!rtpjpegdepay !JPEG格式!自动视频接收器

在接收器我收到以下错误:

将管道设置为 PAUSED ... 管道处于活动状态,不需要 PREROLL ... 将管道设置为 PLAYING ... 新时钟:GstSystemClock 0:00:00.130187750 4589 0x1a690a0 WARN GST_PADS gstpad.c:3669:gst_pad_peer_query: could not send sticky事件 0:00:00.130796352 4589 0x1a690a0 WARN basesrc gstbasesrc.c:2865:gst_base_src_loop: 错误:内部数据流错误。0:00:00.130812589 4589 0x1a690a0 WARN basesrc gstbasesrc.c:2865:gst_base_src_loop: 错误:流任务暂停,原因未协商 (-4) 错误:来自元素 /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:内部数据流错误。附加调试信息:gstbasesrc.c(2865):gst_base_src_loop ():/GstPipeline:pipeline0/GstUDPSrc:udpsrc0: 流式传输任务暂停,原因未协商 (-4) 执行在 0:00:00 后结束。

请指导我。(注意我在 Ubuntu 14.04 PC 中使用 Gstreamer。同一台 PC 用于发送器和接收器。)

0 投票
0 回答
1096 浏览

linux - Gstreamer 文件流到 UDP

我试图从一台电脑流式传输 mp4 文件并使用 Gstreamer 在另一台电脑上打开它

接收者

发件人

现在的问题是什么都没有发生。我没有收到任何错误。当调试信息变为真时,我找不到任何严重错误。

GST_DEBUG=3 只给出一些警告

帽子

/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = "video/x-h264\,\ stream-format\=\(string\)avc\,\ alignment\=\(string\)au\,\ level\=\(string\)5.1\,\ profile\=\(string\)high\,\ codec_data\=\(buffer\)01640033ffe1001867640033acb400800090d0800000030080000018078c195001000468ce0bcb\,\ width\=\(int\)4096\,\ height\=\(int\)2304\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ parsed\=\(boolean\)true" /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = "application/x-rtp\,\ media\=\(string\)video\,\ clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)H264\,\ packetization-mode\=\(string\)1\,\ profile-level-id\=\(string\)640033\,\ sprop-parameter-sets\=\(string\)\"Z2QAM6y0AIAAkNCAAAADAIAAABgHjBlQ\\\,aM4Lyw\\\=\\\=\"\,\ payload\=\(int\)96\,\ ssrc\=\(uint\)1\,\ timestamp-offset\=\(uint\)3976213474\,\ seqnum-offset\=\(uint\)24166\,\ a-framerate\=\(string\)23.976023976023978" /GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = "application/x-rtp\,\ media\=\(string\)video\,\ clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)H264\,\ packetization-mode\=\(string\)1\,\ profile-level-id\=\(string\)640033\,\ sprop-parameter-sets\=\(string\)\"Z2QAM6y0AIAAkNCAAAADAIAAABgHjBlQ\\\,aM4Lyw\\\=\\\=\"\,\ payload\=\(int\)96\,\ ssrc\=\(uint\)1\,\ timestamp-offset\=\(uint\)3976213474\,\ seqnum-offset\=\(uint\)24166\,\ a-framerate\=\(string\)23.976023976023978" /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = "video/x-h264\,\ stream-format\=\(string\)avc\,\ alignment\=\(string\)au\,\ level\=\(string\)5.1\,\ profile\=\(string\)high\,\ codec_data\=\(buffer\)01640033ffe1001867640033acb400800090d0800000030080000018078c195001000468ce0bcb\,\ width\=\(int\)4096\,\ height\=\(int\)2304\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ parsed\=\(boolean\)true" /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = "video/x-h264\,\ stream-format\=\(string\)avc\,\ alignment\=\(string\)au\,\ level\=\(string\)5.1\,\ profile\=\(string\)high\,\ codec_data\=\(buffer\)01640033ffe1001867640033acb400800090d0800000030080000018078c195001000468ce0bcb\,\ width\=\(int\)4096\,\ height\=\(int\)2304\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1" /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 3976213474 /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 24166

0 投票
1 回答
3787 浏览

gstreamer - 如何使用 gst-launch-1.0 将 I420 帧转换为 BGRA 格式?

我有一个基于 I420 格式的名为 video.i420 的原始视频文件。我尝试使用 gst-launch-1.0 将其转换为 BGRA 格式:

但输出文件 video.bgra 的大小仅比源文件大 48 个字节。

然后我使用以下命令播放了 video.bgra:

和播放源文件一样。

我为格式转换创建的管道有什么问题?为什么它没有像我预期的那样转换?</p>

0 投票
1 回答
2972 浏览

qt - 使用命令行或 Qt API 使用 gst-launch 后清除 /dev/fb0 最后一个视频帧

我正在使用 gst-launch 在嵌入式 linux 系统的 /dev/fb0 帧缓冲区中开始流式传输相机。我无权访问ioctl.hfb.h手动执行 memset。

命令是这样的:

gst-launch-1.0 imxg2dcompositor name=camera background-color=0x000000 sink_0::xpos=200 sink_0::ypos=90 sink_0::width=450 sink_0::height=350!视频/x-raw,宽度=800,高度=480!imxg2dvideosink framebuffer=/dev/fb0 use-vsync=true imxv4l2videosrc device=/dev/video0 input=4 !camera.sink_0 -e

我使用 Qt Framework (5.6) 中的 QProcess 对象启动此命令,当我调用“kill”、“close”或“terminate”方法时,我总是会看到屏幕显示从相机拍摄的最后一张图像,我会喜欢让屏幕清晰。有没有办法清除/dev/fb0使用 gst-launch 命令?

0 投票
1 回答
2132 浏览

video - 如何使用 gst-launch 在特定位置显示视频?

我正在尝试在嵌入式板上播放带有 gst-launch 的视频文件。

首先,我可以使用下面的命令播放视频。- gst-launch-1.0 文件rc location=test.mp4 !qtdemux !h264解析!omxh264dec !韦兰辛克

其次,我尝试在特定的窗口位置播放此视频。- gst-launch-1.0 filesrc 位置=Ex_H.264_AAC_400x300.mp4 !视频框左=20 右=20 上=20 下=20!qtdemux !h264解析!omxh264dec !waylandsink(使用 gst-launch 将视频帧输出到帧缓冲区的某个位置

但是,此命令会出错。- 警告:错误的管道:没有元素“videobox”

如何使用 videobox 选项或使用其他方式在特定窗口位置显示视频?

0 投票
1 回答
2309 浏览

gstreamer - 我想使用 Gstreamer 创建 HLS(HTTP Live Streaming)流,但仅使用音频

我想做的是m3u8-filealsa soundcard输入中创建一个。

喜欢:

我试过这个进行测试:

但它不起作用。

感谢您的帮助。