当前位置: 首页 > 知识库问答 >
问题:

为什么视频传输需要编码?(gstreamer)

东门晟
2023-03-14

我传输的视频已经编码。传输时为什么要再次编码?

示例:gst-launch-1.0-v filesrc location=123。mp4!decodebin!x264enc!RTPH264支付!udpsink主机=192.168.10.186端口=9001

发送视频不编码就行了。我可以在另一边查看吗?

例如:

服务器:gst-launch-1.0-v filesrc location=123。mp4!udpsink主机=192.168.10.186端口=9001

123.mp4编码h265

客户端:gst-Launit-1.0 udpsrc端口=9001 caps="应用程序/x-rtp,媒体=(字符串)视频,时钟速率=(int)90000,编码名称=(字符串)H265,有效负载=(int)96"!rtph265Depay!h265parse!nvh265dec!autoVideosink

顺致敬意,

共有1个答案

东门修文
2023-03-14

好的,澄清一下,假设您的输入是一个包含H.265的MPEG4文件:是的,那么这是可能的(如果这一假设不成立,那么这将不起作用)。

下面应该可以做到这一点:

gst-launch-1.0 filesrc location=123.mp4 ! qtdemux ! h265parse config-interval=-1 ! rtph265pay  ! udpsink host=192.168.10.186 port=9001

说明:

  • qtdemux将把MPEG4容器解复用到包含的视频/音频/子主题流中(如果容器中有多个流,您需要多次链接到它,否则GStreamer将出错)

P、 S.:您可能还对rtpsink感兴趣(它过去住在树外,但现在已包含在最新的GStreamer主机中)

P、 注意:您应该使用偶数端口来发送RTP流

 类似资料:
  • 问题内容: 我有一个HTML5视频播放器: 这似乎在开发人员中100%有效,但是在生产视频中,加载视频可能需要90秒的时间。我想弄清楚html5播放器是否真的是流式播放器,或者它首先需要完整下载吗?一位同事通知我,设置标签的方法如下: 如果preload选项为none或元数据,则应强制浏览器流式传输视频,而不是缓冲整个内容。我在这里有什么选择?我应该放弃html5播放器吗?我的印象是html5播放

  • 问题内容: 为什么要编译Python脚本?您可以直接从.py文件运行它们,并且效果很好,那么在性能上有什么优势吗? 我还注意到,我的应用程序中的某些文件被编译为.pyc,而另一些则没有,为什么? 问题答案: 它被编译为字节码,可以更快,更快速地使用。 无法编译某些文件的原因是,每次运行脚本时都会重新编译与之一起调用的主脚本。所有导入的脚本将被编译并存储在磁盘上。 Ben Blank的 重要补充:

  • 互联网是超文本标记语言(HTML)页面的集合,它们彼此链接以形成概念性信息网络。随着时间的推移,静态资源数量增加,图像等更丰富的项目开始成为Web结构的一部分。 高级服务器技术允许动态服务器页面 - 其内容基于查询生成的页面。 很快,需要拥有更多动态网页才能获得动态超文本标记语言(DHTML)。一切都归功于JavaScript。在接下来的几年中,我们看到了跨帧通信,试图避免页面重新加载,然后在帧内

  • 当前信息时代,哪里都是应用程序。这些应用程序们不仅仅是运行人们工作场所的工具 - 它们现在正在经营人们的生活。 对即时响应的需求,完美的行为和更多的功能是前所未有的。 而且,当然,人们期望应用程序在不同类型的设备上运行平稳,特别是在移动设备上。 应用程序执行的速度与它所做的一样重要。 NGINX的核心功能,例如其具有高性能HTTP和反向代理服务器的大规模可扩展事件驱动架构,访问和带宽控制以及与各种

  • 开发人员和运营工程师是两个不同的组织团队,如果发现这两个团队在错误的轨道上协作,则表明需要DevOps。以下是两个团队经常出现的一些问题: 在DevOps之前,开发和运营团队完全孤立。 测试和部署是在设计构建之后完成的独立活动。因此,他们比实际构建周期消耗更多时间。 在不使用DevOps的情况下,团队成员将大量时间花在测试,部署和设计上,而不是构建项目。 手动代码部署会导致生产中出现人为错误 编码

  • 问题内容: 在方法或类范围内,下面的行进行编译(带有警告): 在类范围中, 变量获取其默认值 ,以下给出“未定义引用”错误: 它不是第一个应该以相同的“未定义参考”错误结束吗?还是第二行应该编译?还是我缺少什么? 问题答案: tl; dr 对于 字段 ,是非法的,因为它是对的非法前向引用。您实际上可以通过编写来解决此问题,该文件可以毫无抱怨地进行编译。 对于 局部变量 ,是非法的,因为未在使用前进