如果客户端在服务器之后启动,则 GStreamer v1.0 UDP 多播流无法正确解码

2024-03-26

我正在尝试使用 GStreamer 进行 UDP 多播屏幕流传输。我的投屏服务器应该在 Windows 上运行 and my 客户端应在 Linux 上运行.

如果我在服务器之前启动客户端,一切都很好。

问题是当我启动客户端并且服务器已经启动时。视频已收到,但失真严重。

这就是结果。 https://i.stack.imgur.com/mShWD.jpg

Server:

gst-launch-1.0 -e gdiscreencapsrc ! queue ! video/x-raw, framerate=25/1 ! videoconvert ! \
       x264enc noise-reduction=10000 tune=zerolatency bitrate=2500  speed-preset="fast" byte-stream=true threads=4 key-int-max=15 intra-refresh=true ! \
             h264parse ! rtph264pay config-interval=1 \
       ! udpsink host=224.1.1.1 port=5000 auto-multicast=true

Client:

gst-launch-1.0 -v udpsrc multicast-group=224.1.1.1 auto-multicast=true port=5000 ! application/x-rtp  ! rtph264depay ! h264parse ! queue ! decodebin ! videoconvert ! autovideosink caps='video/x-raw, format=RGB'

我已经尝试过使用dx9screencapsrc,但行为是相同的。 只有更换后问题才能解决gdiscreencapsrc with videotestsrc.

如果我在 Linux 上启动服务器,使用ximagesrc,我仍然有一些问题,但视频随着时间的推移正在改进。

任何帮助,将不胜感激!


Adding cabac=false我的 x264enc 元素解决了这个问题。

gst-launch-1.0 -v gdiscreencapsrc ! queue ! video/x-raw,framerate=60/1 ! decodebin ! videoscale ! videoconvert ! \
       x264enc cabac=false tune=zerolatency bitrate=4000  speed-preset="fast" ! \
             h264parse ! rtph264pay config-interval=-1 \
       ! udpsink host=224.1.1.1 port=5000 auto-multicast=true sync=false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果客户端在服务器之后启动,则 GStreamer v1.0 UDP 多播流无法正确解码 的相关文章

  • java中的多播

    我正在尝试编写一个简单的多播试验 我使用了标准代码 发送者和接收者 我尝试了一些不同的标准代码 看来接收代码停留在接收状态 就好像没有接收到任何东西一样 接收端 byte b new byte 3 DatagramPacket dgram
  • 在线视频流

    我想制作一个视频网站 我们可以在其中上传任何格式的视频并像 youtube 一样显示 我怎样才能做到这一点 我的整个网站都是用 PHP 编写的 我是视频流 SP 的新手 请描述一下您的答案 Thanks 首先你需要一个用Flash Acti
  • 非 IDR 图片 NAL 单元 - 0x21 和 0x61 含义

    有谁知道是什么0x21 and 0x61是指在 h 264 编码的视频流中吗 我知道0x01意味着它是一个b frame and 0x41意味着它是一个p frame 我的编码视频给了我两个0x21帧后跟一帧b frame I 21 21
  • 将 Docker 容器连接到网络接口/设备而不是 IP 地址

    经过仔细的研究 测试和摆弄 我只能找到通过从 IP 端口转发来将 Docker 容器连接到给定接口的方法 这可以通过添加来完成 p Host IP Host Port Container Port to a docker run命令 我有一
  • 使用 Python 进行视频流传输

    Python 中是否有任何库 或 应用程序可支持视频流 它必须读取文件并需要通过网络进行流式传输 查看波动 http flumotion net 它是一个用Python实现的流媒体服务器
  • 如何更改 Gstreamer 插件的等级?

    我已经下载并编译了 vaapi 插件集 对于某些特定情况它工作得很好 但它也破坏了我现有的许多管道 我想先修改 Gstreamer 以使用其他解码器 有没有办法在不修改原始源的情况下改变 Gstreamer 插件的等级 我在 Gstream
  • Go:如何接收整个 UDP 数据报

    我的问题 使用 net Read 方法仅复制给定字节数组或切片大小的字节数 当然 我不想每次都分配最大 64 kB 的 UDP 数据报 有没有go如何确定数据报的大小 位于数据报头中 或再次读取直到数据报完全读取 Try 从UDP读取 ht
  • 如何在QT中发送和接收UDP数据包

    我正在 QT 中编写一个小型应用程序 它通过本地网络发送广播 UDP 数据包 并等待来自网络上的一个或多个设备的 UDP 响应数据包 创建套接字并发送广播数据包 udpSocketSend new QUdpSocket this udpSo
  • VS2015:应用程序无法正确启动(0xc000007b)

    我在 Visual Studio 2015 上为 Windows 10 PC 编写了代码 该应用程序主要关注 UDP 通信 我使用 boost 库 它工作正常 但当我将代码文件夹移至 Windows 7 时 我收到错误 应用程序无法正确启动
  • 为使用 Hls.js 管理的 HLS 视频构建音量计

    我正在使用 Hls js 将视频管理到我的 HTML 页面中 我需要构建一个音量计来告知用户视频的音频级别 因为我需要保留video muted true 我想知道是否有任何方法可以使用 Hls js 从流中提取音频信息并用这些信息构建音量
  • 我刚刚在哪个适配器上收到此 UDP 数据包?

    我正在尝试用 C 编写一个 BOOTP 服务器 我正在接收并解析来自客户端的 BOOTP 数据包 我需要回复我的服务器 IP 地址 问题是 计算机可以有多个网络适配器 客户端还没有 IP 地址 有什么方法可以查出 UDP 数据包是在哪个适配
  • C++ UDP Socket端口复用

    如何在 C 中创建客户端 UDP 套接字 以便它可以侦听另一个应用程序正在侦听的端口 换句话说 如何在 C 中应用端口复用 我只想监听一个端口 您可以使用嗅探器来做到这一点 只需忽略来自不同端口的数据包即可 我可能需要阻止它发送一些特定的数
  • UIWebView中检测并拦截视频播放

    我想拦截 UIWebView 中的点击 然后使用视频的 URL 这怎么可能 我发现了一个有点类似的帖子 它指出了 webView shouldStartLoadWithRequest navigationType 代表 我似乎无法通过该委托
  • 为什么我们可以将 sockaddr 转换为 sockaddr_in

    我明白为什么强制转换很有用sockaddr to sockaddr in 但我不明白这怎么可能 据我所知 它们的大小相同sockaddr in添加了sin zero使其大小相同 我想知道编译器如何知道从哪里获取信息sockaddr in如果
  • 数据包丢失和数据包重复

    我试图找出数据包丢失和数据包重复问题之间的区别 有谁知道 数据包重复 是什么意思 和TCP检测到丢失时重传数据包一样吗 No In TCP 数据包 的传递是可靠的 我认为在这种情况下术语数据应该更好 因为它是面向流的协议 数据包丢失和重复是
  • 在 macOS 10.12 上绑定到套接字时出现 NSPOSIXErrorDomain

    我正在玩CocoaAsyncSocket https github com robbiehanson CocoaAsyncSocket在 Swift 中绑定到 UDP 套接字并通过本地网络接收消息 我正在初始化一个套接字 并尝试绑定到一个端
  • Android 上的 GStreamer

    谁能给我一些关于让 GStreamer 在 Android 上工作的提示 我以前从未使用过它 我想将它与 FFmpeg 一起使用 我已经编译了 FFmpeg 并且在 Android 上运行良好 我只是想使用 GStreamer 来帮助完成一
  • GStreamer 推出用于 ReStreaming IP 摄像机 H264 的 RTSP 服务器

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

    我正在基于 Raspberry Pi 构建四轴飞行器 我想通过蜂窝连接将网络摄像头的视频流式传输到我的计算机 我尝试了 ffmpeg 和 mjpg 但它必须有很大的延迟才能仅通过观看视频来控制 Quad 我的问题是是否可以以非常小的延迟 如
  • UDP 广播发送失败:在 Linux 2.6.30 上“网络无法访问”

    我用udp广播写了一个程序 代码段如下 struct sockaddr in broadcast addr socklen t sock len sizeof broadcast addr bzero broadcast addr sock

随机推荐

  • 如何在不使用 for 循环或 try 语句的情况下有效地拆分一个字符串中的货币符号和数字

    我有一个像这样的字符串 200 000 000 or Yan300 000 000 我想拆分货币和数字 并输出一个元组 200000000 没有 在数字字符串中 目前我正在使用以下脚本 该脚本正在运行 def splitCurrency c
  • 语义词法分析器谓词性能

    我有一个词法分析器为传递给词法分析器的宏字符串的动态列表创建 MACRO 标记 我在最顶层的词法分析器规则中使用了语义谓词来实现此功能 MACRO macros null tryMacro Where tryMacro 只是检查是否有任何宏
  • Getopt 移位 optarg

    我需要这样调用我的程序 program hello r foo bar 我从 argv 1 中打招呼 但我在值栏上遇到问题 我还应该将 r 更改为其他内容吗 while c getopt argc argv r 1 switch i cas
  • 使用 mplot3d 绘制二维数组

    我有一个 2D numpy 数组 我想以 3D 形式绘制它 我听说过 mplot3d 但我无法正常工作 这是我想做的一个例子 我有一个尺寸为 256 1024 的数组 它应该绘制一个 3D 图表 其中 x 轴从 0 到 256 y 轴从 0
  • 将 jquery datepicker 创建的日期转换为标准 mysql 日期格式

    我在日记页面上使用以下 jquery 日期和时间选择器 http trentrichardson com examples timepicker rest examples http trentrichardson com examples
  • 如何以编程方式访问数据网格行详细信息控件

    我有一个数据网格 其中包含一些定义的列 然后是行详细信息模板 如何在隐藏代码中访问行详细信息模板中的控件 我有一个按钮 我想以编程方式启用 禁用 但我不知道如何在后面的代码中访问它 我在MSDN上看到过这个 http msdn micros
  • Roo - 添加自定义查找器

    我使用 Roo 创建了一个使用现有数据库的项目 我能够创建动态查找器 但我想实现自定义查找器 它将接收 4 个参数并使用其中一些参数创建 Like 条件 其他参数创建 equals 条件 对 Roo 来说 最好的方法是什么 推荐的模式是编辑
  • 仅当验证成功时如何提交表单

    我尝试在提交请求之前验证表单 我正在使用 jquery 验证 我期望当页面完成加载时 表单将自动提交 并且我将在 div 中看到 正在加载 但什么也没发生 这是我的代码 但似乎不起作用
  • Android应用程序数据存储不断增加

    我正在开发一个 Android 应用程序 它基本上加载新闻文章列表 并在用户单击时在网络视图中打开它们 我想知道的是 当我在 设置 gt 应用程序 gt 管理应用程序 中查看应用程序详细信息时 总存储大小不断增加 特别是 数据存储规模不断增
  • jquery dataTable 过滤器/搜索不起作用

    我是 jquery 新手 我使用了 jqueryData 表 我在搜索过程中遇到问题 搜索适用于前两列 例如 如果我使用 QE5855 或 3453457 进行搜索 则工作正常 但它不搜索第三列 例如 如果我输入 美国 或 美国 表未排序
  • Flutter Firebase 错误(任务“:app:mergeExtDexDebug”执行失败)

    我是编程新手 对 flutter 和 firebase 也很陌生 我正在尝试这段代码 https github com tattwei46 flutter login demo https github com tattwei46 flut
  • Google Places API 为什么每次都会在不同的变量下返回纬度和经度?

    这让我抓狂 出于某种原因 API 用于返回纬度和经度 如下所示 我认为是这样的 place geometry location y作为纬度 place geometry location z作为经度 然后它开始像这样返回 place geo
  • 抛硬币问题的Python代码

    我一直在用 python 编写一个程序 模拟 100 次抛硬币并给出抛硬币的总数 问题是我还想打印正面和反面的总数 这是我的代码 import random tries 0 while tries lt 100 tries 1 coin r
  • 如何在 gradle 脚本中获取正在运行的 Android 风格名称

    这次我遇到了这个问题 我试图在 gradle 脚本中获取当前的风格 我已经尝试过这里给出的答案如何在 gradle 中获取当前的风味 https stackoverflow com questions 30621183 how to get
  • CSS a href 样式

    我有一个 hrefclass button 我正在尝试这样设计 button a link text decoration none button a visited text decoration none button a active
  • UITableViewAutomaticDimension 在 Xcode 6.3 中不起作用

    我将 Xcode 与 Swift 1 2 一起更新到 6 3 并完成了转换 除了表视图的动态行高之外 一切正常 我在 3 个完全不同的表视图上有这些 所以它可能不是影响该错误的其他因素 我将所有表视图设置为 tableView rowHei
  • asp.net mvc 中具有相同输入 id 的两个表单

    我在一个页面上有多个表单 它们通过隐藏输入将 id 传递给控制器 由于我对这些视图使用强类型视图 因此我认为我需要保持每个视图的 Id 相同 它目前有效 但我认为这是不好的做法 我应该如何处理这个问题 在 Django 中有表单前缀值 是否
  • React Native 对 fetch 的缓存行为是什么

    目前 React Native 的默认缓存行为是什么fetch打电话 官方 FB 指南只是说 看看 Mozilla 但我们使用的不是网络浏览器 我假设缓存行为是由于中间件而自定义的 假设我这样做 fetch https exampleser
  • 使用 postmessage 发回消息

    我目前正在制作一个应用程序 需要在两个域之间发送信息 将在页面加载时 网站1 创建 iFrame gt 向网站 2 发送 Postmessage window onload function iframe document createEl
  • 如果客户端在服务器之后启动,则 GStreamer v1.0 UDP 多播流无法正确解码

    我正在尝试使用 GStreamer 进行 UDP 多播屏幕流传输 我的投屏服务器应该在 Windows 上运行 and my 客户端应在 Linux 上运行 如果我在服务器之前启动客户端 一切都很好 问题是当我启动客户端并且服务器已经启动时