PJMEDIA
来源:互联网 发布:淘宝虚假交易不扣分 编辑:程序博客网 时间:2024/05/26 17:48
From: http://www.pjsip.org/pjmedia/docs/html/
Introduction to PJMEDIA
PJMEDIA is a fully featured media stack, distributed under Open Source/GPL terms, and featuring small footprint and good extensibility and excellent portability. Here are some brief overview of PJMEDIA benefits.
Benefits
Many Features
PJMEDIA has many features, and rather than to list them all here, please see the Modules page for more info.
Video is planned to arrive at version 2.
Excellent Portability
It's been ported to all desktop systems and many mobile platforms including Symbian, Windows Mobile, iPhone, and Android. Thanks to its zero thread design, users have been able to run PJMEDIA on deeply embedded platforms, even without operating systems (those typically found in DSP platforms). Except the echo suppressor, all other PJMEDIA components have fixed point implementation, which makes it ideal for embedded systems which lack FPU. PJMEDIA also has tiny footprint, as explained below
Tiny Footprint
Lets not talk about less meaningful and potentially misleading term such as core footprint, and instead here is the footprint of all components typically used to build a full streaming media:
Category Component text data bss dec filename-------------------------------------------------------------------------------Core Error subsystem 135 0 0 135 errno.oCore Endpoint 4210 4 4 4218 endpoint.oCore Port framework 652 0 0 652 port.oCore Codec framework 6257 0 0 6257 codec.oCodec Alaw/ulaw conv. 1060 16 0 1076 alaw_ulaw.oCodec G.711 3298 128 96 3522 g711.oCodec PLC 883 24 0 907 plc_common.oCodec PLC 7130 0 0 7130 wsola.oSession Stream 12222 0 1920 14142 stream.oTransport RTCP 3732 0 0 3732 rtcp.oTransport RTP 2568 0 0 2568 rtp.oTransport UDP 6612 96 0 6708 transport_udp.oTransport Jitter buffer 6473 0 0 6473 jbuf.o-------------------------------------------------------------------------------TOTAL 55,232 268 2,020 57,520
The 56KB are for media streaming components, complete with codec, RTP, and RTCP. The footprint above was done for PJSIP version 1.8.2 on a Linux x86 machine, using footprintopimization as explained in PJSIP FAQ. Numbers are in bytes.
Good Quality
PJMEDIA supports wideband, ultra-wideband, and beyond, as well as multiple audio channels. The jitter buffer has been proven to work on lower bandwidth links such as 3G, and to some extent, Edge and GPRS. We've grown our own algorithm to compensate for packet losses and clock drifts in audio transmission, as well as feature to use codec's built in PLC if available.
Hardware Support
PJMEDIA supports hardware, firmware, or other built-in feature that comes with the device. These are crucial for mobile devices to allow the best use of the very limited CPU and battery power of the device. Among other things, device's on-board codec and echo cancellation may be used if available.
Extensible
Despite its tiny footprint, PJMEDIA uses a flexible port concept, which is adapted from filter based concept found in other media framework. It is not as flexible as those found in Direct Show or gstreamer (and that would be unnecessary since it serves different purpose), but it's flexible enough to allow components to be assembled one after another to achieve certain task, and easy creation of such components by application and interconnect them to the rest of the framework.
(Fairly Okay) Documentation
We understand that any documentation can always be improved, but we put a lot of efforts in creating and maintaining our documentation, because we know it matters.
Organization
At the top-most level, PJMEDIA library suite contains the following libraries.
PJMEDIA
This contains all main media components. Please see the Modules page for complete list of components that PJMEDIA provides.
PJMEDIA Codec
PJMEDIA-CODEC is a static library containing various codec implementations, wrapped into PJMEDIA codec framework. The static library is designed as such so that only codecs that are explicitly initialized are linked with the application, therefore keeping the application size in control.
Please see Codec Framework for more info.
PJMEDIA Audio Device
PJMEDIA-Audiodev is audio device framework and abstraction library. Please see Audio Device API for more info.
PJMEDIA Key Concepts
Below are some key concepts in PJMEDIA:
- Media Ports Framework
- Clock/Timing
- Media Transport
- Media Sessions
- PJMEDIA
- PJMEDIA PORT 的概念
- PJMEDIA 延迟缓冲区实现
- pjmedia高级API实现录音
- PJSIP and PJMEDIA(sig编译错误解决方法)
- 入门:编译,使用PJSIP,PJMEDIA【译】
- pjmedia MIPS test - gcc vs icc
- pjmedia高级API实现放音
- mybatis 一对多和多对一关联查询
- Hibernate异常信息
- Modbus通讯协议学习
- 《计算机器与智能》阅读心得
- Ubuntu16.04 升级Intellij IDEA 无法修改快捷方式问题
- PJMEDIA
- 【Unity技巧】Unity中的优化技术
- SSM(十二) dubbo日志插件
- 一家人
- 剑指offer--包含min函数的栈
- 【BZOJ 2194】 快速傅立叶之二
- 中企故事汇:铁匠之乡借东风出海
- 基于MAVEN的SSM(SPRING,SPRINGMVC,MYBATIS)整合的WEB工程
- 微软编程题-把二元查找树变成排序的双向链表