原文:http://www.linphone.org/eng/documentation/dev/mediastreamer2.html

Mediastreamer2 是一个功能强大且小巧的流引擎,专门为音视频电话应用而开发。这个库为linphone中所有的接收、发送多媒体流提供处理,包括音/视频捕获,编码和解码,渲染。

特色
Read/Write from to an alsa device, an oss device, a windows waveapi device
Send and receive RTP packets
Encode and decode the following formats: speex, G711, GSM, iLBC, AMR , H263, theora, MPEG4, and H264.
Read and write from/to a wav file
Read YUV pictures from a webcam (provided that it has video4linux v1 or v2 driver)
Display YUV pictures (using SDL library or native apis on windows)
Dual tones generation
Echo cancelation, using the extraordinary echo canceler algorithm from the speex library
Audio conferencing
Audio parametric equalizer using a FIR filter
Volume control, automatic gain control

Mediastreamer2可以使用动态插件进行扩展,当前可用的插件有h264,ILBCt和AMR

可移植性: linux/x86、linux/x86_64、Embedded linux:ARM and Blackfin 、windows XP、Vista and 7、 Mac Os X、Google Android

设计与原理:
   每一个处理实体都被封装在MSFilter对象中,MSFilter使用inputs和outputs与其它MSFilter进行连接。
  一个简单实例帮助理解:
      MSRtpRecv 是一个接收RTP包的MSFilter,解包后再把它们放到output上。
      MSSpeexDec是一个依赖input的MSFilter,如果input接收到speex编码包,对它们进行解码并放在output
      MSFileRec是一个依赖input的MSFilter,如果input是16位pcm数据则保存为wav格式
MSFilter可以可以连在一起组成一个MSFIlter chain,如果我们把这三个Filter连在一起,这样就形成了一个可以接收RTP包,对包进行解码,把解码的数据保存成wav格式的处理链。
        MSRtpRecv --> MSSpeexDec --> MSFileRec
   媒体处理任务通过“MSTicker”对象来调度,一个线程可以每隔10ms处理MSFilter chain的数据,几个MSTicker可以被同时使用,比如一个音频filter、一个视频 filter。

使用简单:
如果你想创建音视频流,要调用audiostream.h和videostream.h的定义来创建音视频流。
如果你想添加mediastreamer2的功能,实现一个mediastreamer2 filter是非常简单的,因为mediastreamer2是非常轻量级的封装。
由于mediastreamer2是一个轻框架,工程师可以集中精力在于:图像/信号算法的实现。

mediastreamer2适用于嵌入式系统
mediastreamer2是纯C开发的
mediastreamer2可以用gcc编译
mediastreamer2最小依赖只需oRTP和libc。其他(ffmpeg, speex, alsa...)根据需要添加。
由于是插件框架,mediastreamer2可以通过硬件codecs接口扩展,如video codecs dsp
ediastreamer2是轻量级的。例如,在linux/x86平台上,使用共享库的时全功能大约只有800k

下载
Mediastreamer2 是 linphone 的一部分
你也可能使用git获取最新的源码:
git clone git://git.linphone.org/mediastreamer2.git

采用GPL许可协议 
原文:http://www.linphone.org/eng/documentation/dev/mediastreamer2.html

mediastreamer2 的简介相关推荐

  1. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  2. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  3. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  4. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  5. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  6. 通俗易懂的Go协程的引入及GMP模型简介

    本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...

  7. Linux 交叉编译简介

    Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...

  8. TVM Operator Inventory (TOPI)简介

    TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍.TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度.TOPI 如何在 TVM 中,编 ...

  9. 计算机视觉系列最新论文(附简介)

    计算机视觉系列最新论文(附简介) 目标检测 1. 综述:深度域适应目标检测标题:Deep Domain Adaptive Object Detection: a Survey作者:Wanyi Li, ...

最新文章

  1. 大数据学习笔记一:大数据的发展历程--MapReduce,Hive,Yarn,Hadoop,Spark,Flink
  2. Java NIO学习系列二:Channel
  3. 论文学习6-(M2DNE)Temporal Network Embedding with Micro- and Macro-dynamics
  4. HTML5: 利用SVG动画动态绘制文字轮廓边框线条
  5. python源文件改写编写一个程序读取一个python源程序文件_学PYTHON第三节:编译和解释...
  6. Netty工作笔记0028---NIO 网络编程应用--群聊系统3--客户端编写1
  7. OpenCV-图像处理(11、形态学操作)
  8. php仿u8系统模板_用友U8:项目型制造企业的信息化模板
  9. 服务器系统 usb不识别u盘,无法识别的usb设备怎么办(实测成功解决U盘修复教程)...
  10. html5页面左右框架布局代码,网页布局框架(示例代码)
  11. mysql超市管理系统怎么写_java+mysql超市进销存管理系统设计+源代码
  12. MySQL查询为啥慢了?
  13. java se运行环境_Java运行环境Java SE Runtime Environment (JRE) 下载
  14. 12款多媒体能力SDK与开发平台盘点
  15. 【P4】 查看库文件两个历史版本的区别
  16. 【3D视觉创新应用竞赛作品系列​】轻量化、松耦合的手持RGB-D室内环境实时重建系统
  17. 2014上海全国邀请赛题解 HDOJ 5090-5099
  18. mul matlab,[转载]Matlab boxplot for Mul
  19. Python decode()方法
  20. Uncaught ReferenceError: UE is not defined at zh-cn.js:8

热门文章

  1. JVM架构和GC垃圾回收机制--面试
  2. 链表题目汇总(python3)
  3. Asp.Net Core 第05局:读取配置
  4. matplotlib 中文显示 的问题
  5. js总结:对于字符串的切割截取和合并
  6. c++将文本中的字符串一次读入到内存
  7. SqlServer按时间自动生成生成单据编号
  8. baidu patchrom项目开发详细教程(Being updated)
  9. VC程序在没装VC的机器中运行
  10. 315. Count of Smaller Numbers After Self