最近一段时间在研究传屏低延迟传输相关的一些东西。本来想使用gstreamer来验证下rtp over udp传送h264 nal数据相关

的,结果发现竟然不能用playbin来播放rtp的数据!诚然,这也有其原因,因为rtp需要一些带外数据,这是不能简单通过流

来检查的,然而也没有手段简单传入sdp给playbin,让其正常工作。没有办法,在gstreamer-devel和https://bugzilla.gnome.org

bug管理平台上搜了一圈,有人碰到类似的问题,但是没有完整的解决方案,于是完善了rtpsrc的插件,可以支持类似下面的播放:

gst-launch-1.0 playbin uri="rtp://10.9.44.117:5000?media=video&clock-rate=90000&encoding-name=H264&payload=96&do-retransmission=true&latency-ms=50&rtp-profile=1&rtx-host=192.168.31.141&rtx-port=5006"

这样子感觉方便了不少,直接可以通过uri 查询参数把配置信息传递给udpsrc ,构造caps参数,对,没错,新插件rtpsrc的作用

就是起一个桥梁作用,本质还是利用udpsrc和rtpbin一起能协同工作,构造后大致的pipeline类似下面这样:

// RTP receiver (example)
// receives h264 encoded RTP video on port 5000, RTCP is received on port 5001.
// the receiver RTCP reports are sent to port 5005
//-----------------------RtpSrc-------------
//| .-------. .----------. | .---------. .-------. .-----------.
//| RTP |udpsrc | | rtpbin | | |h264depay| |h264dec| |xvimagesink|
//| port=5000 | src->recv_rtp recv_rtp->sink src->sink src->sink |
//| '-------' | | | '---------' '-------' '-----------'
//| | | |-------------------------
//| | | .-------. |
//| | | |udpsink| RTCP |
//| | send_rtcp->sink | port=5005 |
//| .-------. | | '-------' sync=false |
//| RTCP |udpsrc | | | async=false|
//| port=5001 | src->recv_rtcp | |
//| '-------' '----------' |
//------------------------------------------------------------------|

代码已经以补丁的形式,提交到了bugzilla,能不能被合并,或者什么时候被合并进主分支,我不太清楚,但是它至少是可以正常工作的,

有这方面需求的同仁,可以移步这里:https://bugzilla.gnome.org/show_bug.cgi?id=703111 ,去合并进入自己的gstreamer sdk中,

应该能使您的生活更轻松一些。

gstreamer让playbin能够播放rtp over udp流数据的更多相关文章

  1. 课堂/会议同屏教学解决方案之RTSP/RTP over UDP组播解决方案

    问题 在之前的博客<EasyIPCamera实现Windows PC桌面.安卓Android桌面同屏直播,助力无纸化会议系统>我们描述了一套基于EasyIPCamera的同屏功能,但是这个 ...

  2. (转)VLC播放RTP打包发送的.264文件

    VLC播放RTP打包发送的.264文件 1,要有一个发送RTP包的264文件的服务器; 具体代码如下: rtp.h #include <WinSock2.h> #pragma commen ...

  3. 多媒体开发之rtp 打包发流---同网段其他机子sdp 播放不了

    (1) (2) (3) -------------author:pkf ------------------time:2015-1-6 后面发现是connection 的server 地址是指定的 导 ...

  4. ffmpeg rtp rtmp udp 推流命令

    推组播 组播地址指的范围是224.0.0.0—239.255.255.255 ffmpeg -re -i chunwan.h264 -vcodec mpeg2video -f mpeg2video u ...

  5. 通过 UDP 发送数据的简单范例

    package j2se.core.net.udp; import java.io.IOException;import java.net.DatagramPacket;import java.net ...

  6. DirectSound播放PCM(可播放实时采集的音频数据)

    前言 该篇整理的原始来源为http://blog.csdn.net/leixiaohua1020/article/details/40540147.非常感谢该博主的无私奉献,写了不少关于不同多媒体库的 ...

  7. Kcptun 是一个非常简单和快速的,基于KCP 协议的UDP 隧道,它可以将TCP 流转换为KCP+UDP 流

    本博客曾经发布了通过 Finalspeed 加速 Shadowsocks 的教程,大家普遍反映能达到一个非常不错的速度.Finalspeed 虽好,就是内存占用稍高,不适合服务器内存本来就小的用户:而 ...

  8. 项目总结22:Java UDP Socket数据的发送和接收

    项目总结22:Java UDP Socket数据的发送和接收 1-先上demo 客户端(发送数据) package com.hs.pretest.udp; import java.io.IOExcep ...

  9. Java使用UDP发送数据到InfluxDB

    最近在做压测引擎相关的开发,需要将聚合数据发送到InfluxDB保存以便实时分析和控制QPS. 下面介绍对InfluxDB的使用. 什么是InfluxDB InfluxDB是一款用Go语言编写的开源分 ...

随机推荐

  1. Redis配置不当可导致服务器被控制,已有多个网站受到影响 #通用程序安全预警#

    文章出自:http://news.wooyun.org/6e6c384f2f613661377257644b346c6f75446f4c77413d3d 符合预警中“Redis服务配置不当”条件的服务 ...

  2. Asp.Net WebAPI Get提交、Post提交处理

    1.启用跨域提交 <system.webServer> <httpProtocol> <customHeaders> <add name="Acce ...

  3. MySql 1045错误

    配置时以管理员身份运行MySQL Instance Configuration Wizard 当你登录MySQL数据库出现:Error 1045错误时(如下图),就表明你输入的用户名或密码错误被拒绝访 ...

  4. TCP的长连接与短连接

    1.TCP连接 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图所示: (1)第一次握手:建立连接,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEN ...

  5. Java语言实现简单FTP软件------>FTP软件效果图预览之上传功能(三)

    下面展示一下上传功能的过程 1.上传前 上传前选择好要将文件或文件夹上传到远程FTP服务器的哪个目的目录下. 2.上传中 添加上传任务 上传任务完成进度显示 3.上传完成 ============== ...

  6. 关于exec命令函数

    exec执行某命令在命令行下没有问题,但是在php中就出错.这个问题99.99%与权限有关,但是exec执行的命令不会返回错误.一个技巧就是使用管道命令,假设你的exec调用如下: exec('con ...

  7. VC中如何获取当前时间(精度达到毫秒级)

    标 题: VC中如何获取当前时间(精度达到毫秒级)作 者: 0xFFFFCCCC时 间: 2013-06-24链 接: http://www.cnblogs.com/Y4ng/p/Millisecon ...

  8. DUIEngine使用Visual Studio 2010编译Debug_Dll版有关Error MSB3073错误解决方案

    在使用Visual Studio 2010编译DUIEngine的Debug_Dll版如果遇见如下错误: 错误 64 error MSB3073: 命令“copy D:\SomePath\DUIEng ...

  9. JavaWeb学习笔记--4.EL表达式

    四. 表达式语言(相当于对JSP中对象输出的简化,功能实质上类似) 转自ZHSJUN的博客 http://blog.csdn.net/zhsjun/article/details/2254546 表达 ...

  10. Codeforces 158E Phone Talks

    http://codeforces.com/contest/158/problem/E 题目大意: 麦克是个名人每天都要接n电话,每通电话给出打来的时间和持续时间,麦克可以选择接或不接,但是只能不接k ...