mediastreamer2 的简介

原文: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 监控字段_监控交换机选择:千兆/百兆/核心/PoE/光纤交换机选型指南

我们就交换机选型时的四个主要方面讲一下。01选择千兆还是百兆?视频监控系统的网络中,需要传输大量、持续的视频数据,这就要求交换机具有稳定转发数据的能力。交换机接入的摄像头数量越多,流经该交换机的数据量就会越大。我们可以…

python 头条 上传_Python+selenium自动化之文件上传

邮箱的主要功能就是邮件消息的收发阅读,之前的文章写了邮件的查收和编写,本篇介绍邮件的附件上传。还是以腾讯企业邮箱为例,进行实际案例操作。文件上传的实现大体分为两种,一种是input标签,一种非input标签。腾讯企业…

JAVA学习笔记——JAVA基础语法之精华

一、标识符 概念:JAVA里面我们可以给他取名字的(变量、类、方法等等)就是标识符: 注意:1、标识符只能包含字母、数字、下划线还有美元符号$ 2、只能以字母、下划线和美元符号开头 二、变量 概念:JAVA中储存…

编译mediastreamer2/ffmpeg/linphone(x86平台)

--------------------------在x86环境下编译mediastreamer2的步骤--------------------------------------1)编译OGG库 音频编解码 http://www.xiph.org/downloads/ ./configure --prefix/usr --disable-static 2)编译SPEEX 音频编解码./configure -…

c语言 行程长度编码,C语言编程题,求大佬帮助,关于数组的。

满意答案6kidf3xhs2017.11.07采纳率:41% 等级:8已帮助:62人2 个关键:2位数字的随机数: a[i] 10 rand() % 90;10位或个位 含5 的 并高于平均值的 数:if (a[i]>ave && ( a[i]%50 || (a[i]/10)…

python多级字典嵌套_使用pythonscsv DictReader创建多级嵌套字典

完全是Python noob,可能遗漏了一些明显的东西。我到处找遍了,还没有找到解决办法,所以我想我应该寻求一些帮助。在我正在尝试编写一个函数,它将从一个大的csv文件构建一个嵌套字典。输入文件的格式如下:Product,Price,…

wpf学习笔记二 深入学习 xaml

1、XAML 主要用于绘制UI界面,最大的优点是能使UI与运行逻辑分离开来,使得整个程序回到逻辑处理上来。 每一个标签对应.NET Framework类库的一个控件类。通过设置标签的Attribute,不仅可以对标签所对应的控件 对象Property进行赋值&#xf…

cortex a7 a53_小号“A7”终于亮相,配4米9车长 大溜背!堪称15万内最强颜值!

原标题:小号“A7”终于亮相,配4米9车长 大溜背!堪称15万内最强颜值!今天来推荐一款b级轿车,大家都知道现在国内热度最高的就上suv车型了,但是销量最高的车型依旧还是轿车车型,因为轿车车型的粉丝…

speex

Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外,相对于其它编解码器,Speex也很适合网络应用,在网络应用上有着自己独特的优势…

C语言数据结构迷宫实验报告,数据结构c语言课程设计报告之迷宫

数据结构c语言课程设计报告之迷宫 C语言与数据结构课程设计报告学 号 ** 姓 名 ** 课程设计题目 迷 宫 求 解 2012 年 5 月目 录1 需求分析 1.1 功能与数据需求 1.1.1 题目要求的功能 1.1.2 扩展功能 1.2 界面需求 1.3 开发环境与运行需求 2 概要设计 2.1主要数据结构2.2程序总…

unicode字符大全可复制_说说Excel不可见字符的那些事

今天小伙伴问了个问题看上去啥也没有,为什么黏贴到记事本上前面那么多空白呢?典型的不可见字符惹出来的麻烦,这个往往是公司软件导出数据造成的我们今天就来细说说不可见字符的那些事拿上面的例子说明大部分不可见字符,这一步就能…

删除后别人的微信号变成wxid_微信偷偷更新:终于能改微信号,每年改一次

跟微信打交道多年,机哥可以说是六号线最熟知微信套路的人。比如,微信最喜欢在临近周末的时候,来一波悄悄更新。。难不倒我!微信新动态,几乎每次都被机哥妙手抓住。掐指一算,今天周五。安卓版微信 7.0.15 更…

窗体自适应分辨率

窗口、控件以及字体大小均随分辨率而变化&#xff0c;让界面适应各种不同的分辨率。 var FWidth: Integer;begin inherited; if (Screen.width <> 1024) then begin FWidth : Self.width; Scaled : True; Font.Size : (Self.width DIV FWidth) * Font.Size; // 字体大小调…

android设置多个按钮,android代码中设置两个按钮之间位置

package com.example.helloworld01;//包名import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.graphics.Color;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget…

linux 下查看程序依赖的库

查看arm程序的依赖库 # arm-linux-readelf hello -d Dynamic section at offset 0xf10 contains 25 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libc.so.6] 0x0000000c (INIT) …

cad管线交叉怎么画_高效设计!多种方式进行管线连接、伸缩

节点连接就是需要把一些节点连接起来&#xff0c;需要通过拖拽把他连接起来&#xff0c;类似CAD的延伸。管立得中的节点连接是可以创建他们的连接关系的&#xff0c;会进行管道的联动。下面是使用管线连接功能进行连接节点&#xff0c;以及管道伸缩的的操作方式。一、管线连接1…

淡入淡出轮播图效果

第一版本有很多限制&#xff0c;特以此做记录以待日后优化。模仿支付宝首页轮播图https://www.alipay.com/ <script> $(function(){var i1;var time;$("#J-slide").hover(function(){timewindow.clearInterval(time);//清除自动播放},function(){timesetInterv…

linux打开Firefox报错,Linux下安装Firefox-3.6.12.tar.bz2及libxul.so报错解决方案

在Linux下安装firefox-3.6.12.tar.bz2&#xff0c;解压后运行./firefox时报错&#xff1a;./firefox-bin: error while loading shared libraries: ./libxul.so: cannot restore segment prot after reloc: Permission denied解决方法如下&#xff1a;以如下命令运行你解压目录…

Ubuntu 12.04 静态ip的设置方法

1. 配置静态ip地址 $sudo vi /etc/network/interfaces 原有内容只有如下两行&#xff1a; auto lo iface lo inet loopback 向末尾追加以下内容&#xff1a; auto eth0 iface eth0 inet static address 192.168.0.33 gateway 192.168.0.1 netmask 255.255.255.0 net…

pp助手苹果版_生日助手时间管理软件免费版下载-生日助手倒计时app苹果版下载ios...

生日助手app是一款全新的时间管理软件&#xff0c;帮助你更好的进行时间管理快乐生活&#xff0c;能够帮助你准确提醒你想要设定的重要日子&#xff0c;app的功能服务支持除了日历以外&#xff0c;还有计算器、天气预报、倒计时还有星座等&#xff0c;非常实用哟。app能够帮助用…