SDL

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、视频、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。

PJSIP

PJSIP是一个开源的SIP协议库,它实现了SIP、SDP、RTP、STUN、TURN和ICE。PJSIP作为基于SIP的一个多媒体通信框架提供了非常清晰的API,以及NAT穿越的功能。PJSIP具有非常好的移植性,几乎支持现今所有系统:从桌面系统、嵌入式系统到智能手机。

PJSIP同时支持语音、视频、状态呈现和即时通讯。PJSIP具有非常完善的文档,对开发者非常友好

SIP

会话发起协议(Session Initiation Protocol,SIP)是一种信令协议,它对于通信业有着重要的意义。本文从技术上对SIP进行了简单的介绍,并说明了SIP如何为通信解决方案提供重要支持。

SIP有哪些优点呢?通常情况下,两个端点使用它来协商一次“呼叫”。这里的协商包括介质(文本、语音等)、传输(通常是RTP、Real Time Protocol)和编码(codec)。一旦协商成功,两个端点就会使用选中的方法相互交谈——这就与SIP无关了。“呼叫”完成之后,SIP用于指示断开连接。因此,SIP最好用作一种信令机制。SIP及其扩展还提供一些相关功能,比如即时消息传递、注册和到场。

SIP术语中的端点叫做用户代理。它可以是“软件电话”、即时消息收发器、IP电话,甚至是手机。服务器用户代理提供集中式的服务,比如登记员、代理或应用服务器。

RTP

实时传输协议RTP(Real-timeTransport Protocol)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的,后在RFC3550中进行更新。

国际电信联盟ITU-T也发布了自己的RTP文档,作为H.225.0,但是后来当IETF发布了关于它的稳定的标准RFC后就被取消了。它作为因特网标准在RFC 3550(该文档的旧版本是RFC 1889)有详细说明。RFC 3551(STD65,旧版本是RFC 1890)详细描述了使用最小控制的音频和视频会议。

RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是建立在用户数据报协议上的。RTP广泛应用于流媒体相关的通讯和娱乐,包括电话、视频会议、电视和基于网络的一键通业务(类似对讲机的通话)。

RTP标准定义了两个子协议,RTP和RTCP。

数据传输协议RTP,用于实时传输数据。该协议提供的信息包括:时间戳(用于同步)、序列号(用于丢包和重排序检测)、以及负载格式(用于说明数据的编码格式)。

控制协议RTCP,用于QoS反馈和同步媒体流。相对于RTP来说,RTCP所占的带宽非常小,通常只有5%。

使用

RTP 使用偶数端口号接收发送数据,相应的RTCP则使用相邻的下一位奇数端口号。

RTP提供抖动补偿和数据无序到达检测的机制。由于IP网络的传输特性,数据的无序到达是很常见的。 RTP允许数据通过IP组播的方式传送到多个目的地。RTP被认为是在IP网络中传输音频和视频的基本标准。RTP通常配合模板和负载格式使用。

对于实时多媒体流应用,及时传送信息是首要目标,为达到目标可以忍受部分丢包。例如,在音频应用中的一个丢包,可能导致损失音频数据中的一秒内容,这个很容易通过合适的隐藏算法掩盖过去,从而不被人注意。由于TCP更注重可靠性而不是及时性,在RTP应用中很少使用。取而代之,大部分RTP实施是基于UDP的。

每一个多媒体流会建立一个RTP会话。一个会话包含带有RTP和RTCP端口号的IP地址。例如,音频和视频流使用分开的RTP会话,这样用户可以选择其中一个媒体流。形成会话的端口由其他协议(例如RTSP和SIP)来协商。RTP和RTCP使用UDP端口1024- 65535。

基础概念:SIP,PJSIP,RTP,SDL相关推荐

  1. 音视频基础概念(6)——视频基础

    网上冲浪时,我们会接触到网络流媒体和本地视频文件.常见的视频文件格式有MP4.MKV.AVI等.在流媒体网站上看见视频常用的协议有HTTP.RTSP.RTMP.HLS等.视频技术较为复杂,包括视频封装 ...

  2. 基于SIP和RTP协议的开源VOIP之QuteCom简单介绍

    **************************************************************************************************** ...

  3. 实时音视频面视必备:快速掌握11个视频技术相关的基础概念

    本文作者Ahab,原题"视频相关的理论知识与基础概念",收录时有修订和改动. 1.引言 随着移动互联网的普及,实时音视频技术已经在越来越多的场景下发挥重要作用,已经不再局限于IM中 ...

  4. 音视频面试必备:一文搞懂视频相关的基础概念

    1.引言 随着移动互联网的普及,实时音视频技术已经在越来越多的场景下发挥重要作用,已经不再局限于IM中的实时视频聊天.实时视频会议这种功能,在远程医疗.远程教育.智能家居等等场景也司空见惯. 虽然实时 ...

  5. TCP/IP基础概念及通信过程举例

    TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...

  6. Python+Dash快速web应用开发——基础概念篇

    作者:费弗里 来源:Python大数据分析 ❝本文示例代码与数据已上传至https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 这是我的新系 ...

  7. 理解 angular2 基础概念和结构 ----angular2系列(二)

    前言: angular2官方将框架按以下结构划分: Module Component Template Metadata Data Binding Directive Service Dependen ...

  8. 数据库基础笔记(MySQL)1 —— 基础概念

    (写算法题目把自己心态搞崩了,休息两天顺便把之前学的数据库手写笔记记录在网上方便查阅,因为只是自己学的时候做的笔记,如果有错误欢迎大家指正,过两天再重回算法的怀抱哈哈) 如何下载配置 这个感觉视频讲的 ...

  9. python 舍去小数_零基础小白Python入门必看——编程基础概念

    1. 程序的构成 程序由模块组成,一个模块对应python的源文件 ,一般后缀为:.py 模块由语句构成 语句是python程序的构造单元,用于创建对象.变量赋值.调用函数.控制语句等. 2. 对象 ...

最新文章

  1. 如何一夜暴富?这里有一份比特币价格预测指南
  2. JVM 发生内存溢出的 8 种原因、及解决办法
  3. 简单示例,VS2019调试C语言程序
  4. 深度学习目标检测中计算目标的AP(average precision)平均精度、有什么用?
  5. 视频压缩标准简史:从1929到2020
  6. python生成列表_python列表生成器与生成器
  7. 机器学习、深度学习教程和代码资源帖
  8. 数据结构与算法--图的概念
  9. maven常用插件: 打包源码 / 跳过测试 / 单独打包依赖项
  10. breakall lisp文件_breakall.lsp下载
  11. 图书管理系统数据库设计
  12. PADS9.5 导入立创元器件库卡顿
  13. 蚂蚁金服褚霸:敲最牛的代码,骑最野的车
  14. 美团前期运营模式(怎么吸引商家入驻?怎么吸引用户?)
  15. python实现投票问题。
  16. python计算方位角_python实现两个经纬度点之间的距离和方位角的方法
  17. 完美解决Pyqt5 调用软键盘适用于触摸屏
  18. phalapi-入门篇1(简单介绍以及环境搭建)
  19. 信息收集(二)IP信息收集
  20. Java中HashMap常见问题 -- 扩容、树化、死链问题

热门文章

  1. CISA真的是国内IT审计行业的“上岗证”吗
  2. python vtk read show 读取 显示
  3. checkra1n越狱工具windows版
  4. 相见恨晚的强大截图软件:Snipaste
  5. Android Studio 使用 Logcat 写入和查看日志
  6. 战歌竞技场服务器维护中,战歌竞技场入坑攻略,新手向(申精)
  7. BI 和 AI 都有 I,是一回事吗?
  8. 《金蝶ERP-K/3模拟实战——财务/供应链/生产制造(第2版)》——导读
  9. ubuntu18.04设置swap交换分区
  10. 妙味canvas动画揭、秘交互式动画设计视频 教程