Gstreamer、rtspsrc 和负载类型

2024-04-30

我在从特定摄像头检索 rtsp 流时遇到困难,因为摄像头提供的 rtp 有效负载类型是 35(未分配)并且该摄像头接受的有效负载类型rtph264德佩插件的范围是[96-127]。结果是 gstreamer 显示如下错误:

<udpsrc0> error: Internal data flow error.
<udpsrc0> error: streaming task paused, reason not-linked (-1)

我测试过的其他相机也能正常工作,因为它们定义了良好的有效负载类型。

FFmpeg、MPlayer 和其他工具播放流,尽管它们可能会显示未知类型的警告,例如在 Mplayer 中:

rtsp_session: unsupported RTSP server. Server type is 'unknown'

gstreamer 中是否有任何方法可以伪造有效负载类型、忽略不匹配的属性、强制插件之间的链接或以其他方式创建解决我的问题的方法?

我正在使用的管道是:

gst-launcg-0.10 rtspsrc location="..." ! rtph264depay ! capsfilter caps="video/x-h264,width=1920,height=1080,framerate=(fraction)25/1" ! h264parse ! matroskamux ! filesink location="test.mkv"

我想通了并让它发挥作用。在这里发布答案,希望它可以使某人受益。那里有很多类似的问题,但它们缺乏正确的答案。

下面就可以解决这个问题了:

GstElement* depay = gst_element_factory_make("rtph264depay", "video_demux");
assert(depay);
GstPad* depay_sink = gst_element_get_static_pad(depay, "sink");
GstCaps* depay_sink_caps = gst_caps_new_simple("application/x-rtp",
        "media", G_TYPE_STRING, "video",
        "encoding-name", G_TYPE_STRING, "H264",
        NULL);
gst_pad_use_fixed_caps(depay_sink);
gst_pad_set_caps(depay_sink, depay_sink_caps);
gst_object_unref(depay_sink);

它覆盖了rtph264德佩插件的接收器垫帽限制较少,现在它接受任何有效负载类型(以及任何时钟速率),只要它是rtp并且有H.264编码。

我认为 gst-launch 不可能做到这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gstreamer、rtspsrc 和负载类型 的相关文章

  • 带 PyGTK 崩溃的多线程 Gstreamer (xcb_xlib_threads_sequence_lost)

    我知道不应该从其他线程更新 UIgtk 或面临后果 但我不确定在使用时如何避免这种情况gstreamer 我的应用程序在视频流初始化期间有时会崩溃 并出现以下投诉 xcb Unknown sequence number while proc
  • 如何计算音频流中每个数据包的 RTP 时间戳

    我阅读了 RTP 规范 但似乎无法理解 RTP 数据包时间戳 我尝试在我的服务器中以不同的方式实现它 但我无法让玩家正确播放它 我在这里的 错误 行为是 我使用 VLC 播放器播放 RTSP url 到我的服务器 我发现玩家的日志说 缓冲太
  • 如何在视频上添加 SRT 文件的字幕并在 C 程序中使用 Gstreamer 播放

    我想使用 Gstreamer 用 C 程序播放视频并从 SRT 文件添加字幕 我是 gstreamer 的新手 我以某种方式弄清楚了谁可以让它在命令行中工作 gst launch filesrc location video srt sub
  • 从 Android 上的 IP 摄像机接收视频流

    我有一个 IP 摄像机 它以 MJPEG 格式传输视频 现在我的目标是接收它并在我自己的自定义 Android 应用程序中显示它 为此 我在 Android 平台上提供了三种编程替代方案 使用内置的 Android MediaPlayer
  • 如果wireshark无法识别某些类型的协议(RTSP、RTP、RTCP),如何强制其破译它们?

    我正在尝试根据Java实现RTSP协议http www csee umbc edu pmundur courses CMSC691C lab5 kurose ross html http www csee umbc edu pmundur
  • find_library 或 link_directories 或 find_package?什么是更好的方法?错误 - 使用 cmake 链接库

    Given文件 usr lib gstreamer 0 10 libgstffmpeg so存在在 CMakeLists txt 中进行更改 方法一 find library find library GST FFMPEG 名称 gstff
  • 如何在 HTML5 中流式传输实时视频?

    我正在寻找一种方法来广播从植根于 PC 的网络摄像头或相机拍摄的实时视频 广播应该使用标签 我认为支持 rtp 和 rtsp 显示在 HTML5 页面中 查看流的用户不必安装任何插件或视频播放器 例如 QuickTime 我需要视频为 mp
  • Android RTP/RTCP 堆栈

    我正在寻找一个堆栈 库 它可以让我充分利用 Android 下 RTP 和 RTCP 协议的所有标头字段 我不知道这是否重要 但我想将它与我用于 SIP 和 SDP 的 JAIN SIP 堆栈结合起来 有没有人有任何经验或建议 The an
  • VLC录制rtsp流

    我在使用 VLC 播放器录制 rtsp 流时遇到问题 实际上我的方法在 MacOS X 中有效 但在 Windows 中无效 命令行 vlc vvv rtsp admin email protected cdn cgi l email pr
  • Gstreamer Appsink 未从管道获取数据

    我正在设计一个管道 将来自 opencv 应用程序 从网络摄像头获取 的视频帧编码为 video x h264 格式 通过网络发送并在另一台不同类型的设备 可能是树莓派 上将其解码到适合我的项目的 RGB 流 为此 我应该使用硬件加速编码器
  • 使用 gstreamer 进行低延迟音频捕获

    我需要在 Linux 上进行 几乎 实时音频捕获gstreamer 我的问题是我无法将延迟降低到约 210 毫秒以下 我尝试了从麦克风到耳机的简单环回 gst launch 1 0 pulsesrc alsasink gst launch
  • RTSP服务器java实现问题:(

    我正在编写 RTSP 服务器并遇到一些问题 我使用 VLC 作为客户端 服务器从客户端 VLC 播放器 接收 OPTIONS DESCRIBE SETUP 和 PLAY 命令并回答该命令 通过 SETUP 命令客户端发送端口号 我正在使用该
  • FFmpeg RTP 流媒体错误 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想通过 FFmpeg 播放视频文件 但出现此错误 RTP 复用器仅支持一种流 当我写这个时 我得到了这个错误 ffmpeg exe i SomeVi
  • Gstreamer 中的图像幻灯片

    我想制作一个 GStreamer 应用程序 它采用 xml 文件处理其内容 提供图像 url 其重量以及在屏幕上显示的持续时间等信息 可以使用libxml在C中清楚地处理xml文件 但是我们如何使用 GStreamer 库创建图像的幻灯片
  • 使用 Clapprjs 在网页上流式传输 .m3u8

    我使用 nginx rtmp 将 rtmp 转换为 hls 并使用 Clappr 在网页中进行流式传输 但 Clappr 采用旧的 ts 段 导致 404 错误 因为它在服务器上被删除 如何解决这个问题 抱歉 这是我第一次使用 nginx
  • 列出可用于 gstreamer 1.0 中 ksvideosrc 视频捕获的设备名称

    我正在尝试使用 c 中的 gstreamer 1 0 查询 Windows 上可用视频捕获设备 网络摄像头 的列表 我使用 ksvideosrc 作为源 我能够捕获视频输入 但我无法查询可用设备 及其上限 的列表 在 gstreamer 0
  • 如何在我的 gstreamer 中启用 httpsrc 插件?

    我尝试使用以下命令播放通过 http 检索的 mp3 文件或流 gst launch httpsrc location http domain com music mp3 mad osssink 但出现以下错误 ERREUR le pipe
  • Websocket 连接失败并显示星号 11

    我正在尝试将 websocket 配置为与 asterisk 11 一起使用 但是存在一些问题 我遵循的步骤是 在 http conf 中启用以下内容 enabled yes bindaddr 0 0 0 0 bindport 8088 我
  • GStreamer 推出用于 ReStreaming IP 摄像机 H264 的 RTSP 服务器

    我将在不同计算机上使用多个客户端 以便能够查看 IP 摄像机流 URL 的视频 由于网络摄像机对连接的客户端数量有限制 因此我想为此目的设置一个流媒体 我用谷歌搜索并尝试使用不同的命令行选项 GStreamer 但尚未成功 这是一个测试命令
  • 在PyGI中获取窗口句柄

    在我的程序中 我使用 PyGObject PyGI 和 GStreamer 在 GUI 中显示视频 该视频显示在Gtk DrawingArea因此我需要获取它的窗口句柄realize 信号处理程序 在 Linux 上 我使用以下方法获取该句

随机推荐