rtcp多媒体控制协议应用
rtcp package send/recv demo
main.c
#include <stdio.h>
#include <rtp.h>
#include <rtcp.h>
#include <netinet/in.h>
#include <netdb.h>
#include <math.h>
#include <event.h>
#include <syn.h>
#include <payload.h>
#include <sample.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <util.h>
#include <frame.h>
#include <sys/ioctl.h>
#include <sys/stropts.h>
#include "main.h"
#ifdef LINUX
#include <linux/soundcard.h>
#endif /* LINUX */
#define MAX_SOURCES 32
int main(int argc, char **argv) {
];
unsigned short *samp16 = (unsigned short *) buf;
bool found;
int audio, port, rv, payloadtype;
, one = ;
ssrc_t ssrc = , sources[MAX_SOURCES];
struct in_addr addr;
struct session *psn;
struct synsession *pssn;
struct timespec time;
struct sampparam parameters;
struct encoding enc;
mediatime_t ts;
struct sampreadparam sreadparam;
int leeway;
/*
* Check for correct number of arguments.
*/
) {
fprintf(stderr, ]);
exit();
}
addr.s_addr = inet_addr(argv[]);
port = atoi(argv[]);
printf("Session: %s/%d\n", inet_ntoa(addr), port);
/*
* Open a synchronization layer session.
* Use 2k buffers for RTP packets, 64 buffers in pool.
*/
pssn = synopen(addr, port, , );
if (pssn == NULL) {
fprintf(stderr, "synopen() returned NULL.\n");
exit();
}
/*
* Get a handle to the RTP layer session.
*/
synctl(pssn, SYN_CTL_GETRTPSESSION, ();
/*
* Look up the encoding represented by payloadtype.
* Determine if it's a supported encoding.
*/
enc = getencoding(payloadtype);
printf("enc.en_name: %s\n", enc.en_name);
ssrc = ;
printf("Found sender: SSRC = 0x%x Encoding = %s\n", ssrc, enc.en_name);
/*
* rtcp package send/recv thread.
*/
rtpctl(psn, RTP_CTL_RTCPCYCLETHREAD, (, ssrc);
rtpctl(psn, RTP_CTL_RTCPRECVTHREAD, (, ssrc);
}
运行

code::blocks工程
https://files.cnblogs.com/files/dong1/rtprtcp_linux_demo.tar.gz
rtcp多媒体控制协议应用的更多相关文章
- RTSP/RTP 媒体传输和控制协议
1 前言 本文档主要描述了 NewStream Vision 系统中前端视频服务器(DVR, 网络摄像机), 中心转发服务器以及客户端之间的多媒体通信以及控制协议. 本协议主要基于标准的 IETE 的 ...
- LACP链路聚合控制协议
LACP链路聚合控制协议 来源: https://www.cnblogs.com/taosim/articles/4378691.html http://storage.chinabyte.com/6 ...
- 运输层3——传输控制协议TCP概述
目录 1. TCP最主要的特点 2. TCP的连接 3. socket在不同场景中的含义 写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户 ...
- TCP/IP详解学习笔记(12)-- TCP:传输控制协议
1.概述 TCP提供了一种可靠的面向连接的字节流运输层服务. TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认,对失序的数据重新排序,丢弃重复数据,T ...
- 网际报文控制协议ICMP
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP.ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告.ICMP是因特网的标准协议.但ICMP不是高层协议 ...
- rtp rtcp rtsp sip协议了解方法
vlc有个串流功能 可以流各种推流 方便拉取. 能够方便抓包查看协议. 1.菜单媒体->流 打开对话框 分别可以选择本地文件 关盘文件 网络流 捕获设备做流化处理. 2. 选择 串流->新 ...
- 吉特日化MES&WMS系统--三色灯控制协议转http
关于硬件控制大部分都是使用CS客户端程序,一般连接口都是用网口,串口,USB口等,应用通讯是不支持HTTp协议操作的,而目前一般做技术的人员都在于BS开发,使用HTTP 协议,所以在硬件交互上可能觉得 ...
- [源码解析] 机器学习参数服务器 Paracel (2)--------SSP控制协议实现
[源码解析] 机器学习参数服务器 Paracel (2)-----SSP实现 目录 [源码解析] 机器学习参数服务器 Paracel (2)-----SSP实现 0x00 摘要 0x01 背景知识 1 ...
- IMCP网际控制协议
IP协议是TCP/IP协议使用的在网络层传输机制,它是一种不可靠的无连接的数据报协议,但是IP协议假定了底层是不可靠的,因此,要尽最大的努力传输到目的地,但正因为如此,IP协议则没有了保证,也就是说, ...
随机推荐
- idea-java项目配置
导入项目后,工程结构配置: 如果不加入tomcat 运行库,项目会报servlet jar 找不到的异常 tomcat服务器配置
- Supervisor安装与配置(非守护进程管理工具)
http://blog.csdn.net/xyang81/article/details/51555473
- Linux select 机制深入分析
Linux select 机制深入分析 作为IO复用的实现方式.select是提高了抽象和batch处理的级别,不是传统方式那样堵塞在真正IO读写的系统调用上.而是堵塞在sele ...
- django model 数据类型
转自:http://www.cnblogs.com/lhj588/archive/2012/05/24/2516040.html Django 通过 models 实现数据库的创建.修改.删除等操作, ...
- 说说M451的例程库的说明
Directory Information Document Driver reference manual and reversion history. Library Driv ...
- 关于C#我今天的六个小时
嘿嘿,今天周六啦,我们是自由学习啦,于是还记得前几天纠结的事情,还有好多不太熟悉的题目那,于是今天就找出来练习下拉,而且这些题目在老师给我们复习时间也给我们讲解过啦,这样一来应该做起来还是容易点的啦, ...
- django 文档
django 学习文档 https://yiyibooks.cn/xx/django_182/index.html
- BNU4207:台风
东方非想天则(TH12.3)是一款优秀的格斗游戏,其以华丽的弹幕,连贯的技能衔接及优美的音乐吸引了众多玩家(宅男更多-_-),而且各平台上也为其提供了联机的机会. 好了,言归正传,天气系统是本游戏的一 ...
- MQTT的学习研究(十五) MQTT 和android整合文章
详细参考: How to Implement Push Notifications for Android http://tokudu.com/2010/how-to-implement-push- ...
- MQTT的学习研究(四)moquette-mqtt 的使用之mqtt Blocking API客户端订阅并接收主题信息
在上面两篇关于mqtt的broker的启动和mqtt的服务端发布主题信息之后,我们客户端需要订阅相关的信息并接收相关的主题信息. package com.etrip.mqtt; import java ...