问题标签 [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.
gstreamer - 使用 gstreamer 选择嵌入在 MKV 上的字幕轨道
我是 GStreamer 的新手。目前,我想使用管道来显示字幕。这是我的管道:
gst-launch-1.0 文件rc location=/home/root/video/F01_8subs_eur.mkv !matroskademux 名称=d d. !队列 !h264解析!omxh264dec !字幕覆盖名称=a!韦兰辛克 D. !队列 !广告 !队列 !不一样!omxaacdec!阿尔萨西克
管道将显示默认英文字幕。然而,在 MKV 剪辑中有 8 个嵌入的字幕。我想问如何选择我要显示的字幕?
video - 为 H264-ES 视频流 gstreamer 添加时间戳
我有一个文件(可能就是这样mplayer -identify
说的)H264-ES流。
它可以使用以下gstreamer
管道播放:
(我autovideosink
在示例中使用,但管道要复杂得多 - 这是“最小的工作示例”)它播放得非常快,可能与我的 CPU 允许的一样快。如果我使用任何需要时间戳的元素,它会失败,因为流具有 framerate 0/1
。
我认为流根本不包含任何帧速率信息。
看:
我知道正确的帧率应该是多少(假设它是 25fps),并且我希望能够将正确的时间戳放入视频帧或设置正确的流帧率。
我尝试了什么:
我想我可以用videorate
这个:
但我错了 -videorate
尝试将传入的流转换为固定的帧速率,有时它看起来像我想要的那样工作,但是当下游的任何元素有最轻微的延迟时,它会产生“冻结帧”视频 - 许多重复的帧 -所以我想我可以使用drop-only=true
选项,但它根本不起作用:
问题在于avdec_h264
-videorate
它不接受framerate=0/1
大写字母。
我认为我需要的是(想象中的管道):
恐怕我必须force_timestamps
自己写元素,但因为我之前确实写过一些元素,这是我做过的最困难和最不愉快的事情之一,如果可能的话,我宁愿使用现有的元素。
所以我的问题是:
是否有某种方法(最好使用现有元素)以某些固定帧速率强制视频帧(或 gstreamer 缓冲区)上的时间戳?
opencv - 在 Opencv 3.1 中打开 Gstreamer 管道失败,但在 3.2 中可以正常工作。为什么?
这是管道:
opencv代码基本上是:
此代码在 Opencv 3.2 中运行良好,但在 Opencv 3.1 中失败并在 Gstreamer 日志中显示此消息:
任何想法这里有什么问题?
感谢任何建议/帮助队友!
android-ndk - 如何在 android 中使用 gst-omx 插件创建解码器元素?
我正在尝试如何使用gst-omx 插件来访问 Android 中的硬件解码器/编码器。因此,我构建了一个简单的 NDK C 应用程序,使用 h264 omx 解码器元素创建了一个播放管道。但是当我尝试执行时,我得到以下指令失败。
解码器 = gst_element_factory_make("omxh264dec", "h264");
if (!decoder) { g_printerr(" decoder elements not created.... Exiting \n"); 返回-1;}
请注意,在此之前,
- 我为 Android 构建了 gst-omx 插件,然后将此插件放入 gstreamer 1.0 文件夹。在使用 NDK 构建 gstreamer_android.so 和我的示例应用程序之后。
- 然后我使用 NDK 和 gstreamer 1.0 构建了一个测试应用程序,以使用 omx 插件和其他插件。
在我的 Android.mk 中,我提到了
GSTREAMER_PLUGINS := coreelements videoconvert audioconvert audioresample 播放omx
构建良好,没有任何抱怨。所以我相信 OMX 插件的创建和打包到 android_gstreamer.so 是没有问题的
我究竟做错了什么?有没有我遗漏的步骤?
如何确保是否加载了所述元素?
我检查了 gstomx.c :plugin_init,发现了以下行
ret |= gst_element_register (plugin, elements[i], rank, subtype);
但无法弄清楚实际的 h264decoder 组件名称是什么以及它为什么会失败。
任何建议都会对我有很大帮助。
提前致谢!
linux - 错误:无法构建管道:没有元素“audiotestsrc”
我正在尝试在 ubuntu 16.04 上使用 Gstreamer 库(gstreamer1.0-libav)用 C 编写一个简单的音频流应用程序。我正在使用简单的“gst-launch audiotestsrc!alsasink”命令测试gstreamer1.0-tools,但每次运行时都会出现以下错误:无法构建管道:没有元素“audiotestsrc”。我已经尝试在不同的路径位置(例如 usr/bin/、usr/local/lib/ 等)上运行该命令,但我似乎无法弄清楚 Ubuntu 在哪里安装了让我运行这些命令的 Gstreamer 二进制文件。另外,由于我缺乏 linux 经验,我假设问题是我没有在正确的目录上运行此命令。我正在关注本指南:https ://gstreamer.freedesktop.org/documentation/tutorials/basic/gstreamer-tools.html#. 有人可以对此事有所了解吗?任何帮助表示赞赏。谢谢。
video-streaming - 丢帧以使输出匹配输入
我有一个看起来像这样的 gstreamer 管道:
我正在使用 janus 将 rtp 数据包流式传输到输入端口。
这条管道对我来说真的很慢:输出视频比输入视频晚 4-5 秒。gstreamer 中是否存在将输出与输入相匹配的元素,即使这意味着我们必须丢弃一些帧?或以其他方式补偿
c++ - GStreamer Win x64 -- 缺少 dshowvideosrc 吗?
我安装了 GStreamer 1.12.1 Win64 msi(完全安装),但我找不到dshowvideosrc
元素。
我想从 DirectShow 视频设备捕获视频,但我无法指定使用的确切设备autovideosrc
(它使用某些东西连接到引擎盖下的 DirectShow)。
gstreamer-1.0 - 将多个 gstreamer 视频窗口绑定到单个 GTK 小部件(RTSP 流)
我正在创建一个可以流式传输多个 rtsp 客户端(摄像头)的 gstreamer 相机应用程序,并且我正在尝试将这些视频绑定到单个 GTK 小部件。但是,当我在 gtk 小部件上使用单个流运行应用程序时,它可以通过调用gst_bus_set_sync_handler()
覆盖 gtk 小部件上的视频的 api 运行良好,如下所示:
现在我在绑定多个 rtsp 流视频时遇到问题,并且不确定如何gst_bus_set_sync_handler()
用于传递多条消息。
我尝试创建多个绘图区域和 XID,但它仍然只覆盖单个视频。
请评论。提前致谢。
c++ - 如何在 OpenCV 中使用 gstream
我正在使用İ.MXQ6sabresd
开发板。我想gstreamer
与Opencv
. 我想用OpenCV
. 但是我的代码不起作用。
我该怎么做 ?
我的代码如下:
android - GStreamer 通过 HTTPS 视频流传输 RTSP
我有一个基于 HTTPS 的 RTSP 流。
握手是安全的(通过 https),但握手完成后的数据未加密(在 RTSP 中)。
默认情况下,GStreamer 不会流式传输,因为它期望数据也被加密(在 RTSPS 中),这不是我的情况。
我尝试了多种方法,但似乎没有任何效果。例如,在我开始获取流后,我尝试将其写入本地端口并将该 URL 传递给 GStreamer,但它无法播放。
我是这个 GStreamer 的新手,所以我对播放器的了解有限。我正在寻找一种通过 GStreamer 完成握手的方法,它是 HTTPS(安全),然后我得到的流没有加密。如果有人做过类似的工作,请告诉我任何流式传输 RTSP 的方法。我尝试过类似的东西
默认情况下,上述管道的工作原理是 GStreamer 通过 HTTP 播放 RTSP,但是当我尝试通过 HTTPS 的 RTSP 时,类似
这不起作用,因为 GStreamer 期望流也受到保护。关于如何通过 HTTPS 流式传输 RTSP 的任何想法/代码片段或示例?我使用的当前版本是 1.10.4。