【Live555】liveMedia下载、配置、编译、安装、基本概念

一、下载、编译、安装

1、下载

官网地址:http://www.live555.com/
下载地址:http://www.live555.com/liveMedia/public/

2、配置、

源码目录下有已经写好的配置文件,如下

config.armlinux、	config.linux 、	config.linux-64bit 
config.linux-with-shared-libraries

脚本 genMakefiles 使用上面的配置文件生成 Makefile,例如生成linux环境下的Makefile

$./genMakefiles linux  

上面配置文件会生成静态库,如果想要生成动态库,可以使用config.linux-with-shared-libraries:

$./genMakefiles linux-with-shared-libraries
3、编译、安装

生成Makefile后,使用 make -j4来编译;
默认安装到/usr/local中:sudo make install

二、基本概念

1、四个基本库

live555的源代码包括四个基本的库、各种测试代码以及Media Server。
四个基本的库分别是:

libUsageEnvironment, 
libgroupsock, 
libliveMedia
libBasicUsageEnvironment
libUsageEnvironment:

源码目录 UsageEnvironment;
UsageEnvironment 和 TaskScheduler 类用于事件的调度,实现异步读取事件的句柄的设置以及错误信息的输出。
HashTable 类定义了一个通用的hash 表,其它代码要用到这个表。这些都是抽象类,在应用程序中基于这些类来实现自己的子类。

libgroupsock:

源码目录:groupsock
groupsock 类是对网络接口的封装,用于收发数据包。正如名字本身,groupsock 主要是面向多播数据的收发的,它也同时支持单播数据的收发。

libliveMedia:

源码目录:liveMedia
基类是Medium,还有针对不同的流媒体类型和编码的类。

libBasicUsageEnvironment:

源码目录:BasicUsageEnvironment:
BasicUsageEnvironment类 继承自 UsageEnvironment 类

其它目录:

hlsProxy
proxyServer
testProgram 目录下是测试代码
WindowsAudioInputDevice

生成的可执行文件:

live555HLSProxy
live555MediaServer
live555ProxyServer
mikeyParse
MPEG2TransportStreamIndexer
openRTSP
playSIP
registerRTSPStream
sapWatch
vobStreamer

测试程序:

testAMRAudioStreamer
testDVVideoStreamer
testH264VideoStreamer
testH264VideoToHLSSegments
testH264VideoToTransportStream
testH265VideoStreamer
testH265VideoToTransportStream
testMKVSplitter
testMKVStreamer
testMP3Receiver
testMP3Streamer
testMPEG1or2AudioVideoStreamer
testMPEG1or2ProgramToTransportStream
testMPEG1or2Splitter
testMPEG1or2VideoReceiver
testMPEG1or2VideoStreamer
testMPEG2TransportReceiver
testMPEG2TransportStreamer
testMPEG2TransportStreamSplitter
testMPEG2TransportStreamTrickPlay
testMPEG4VideoStreamer
testOggStreamer
testOnDemandRTSPServer
testRelay
testReplicator
testRTSPClient
testWAVAudioStreamer
2、Source、Sink、Filter。

Sink 就是消费数据的对象,比如把接收到的数据存储到文件, 这个文件就是一个Sink。
Source 就是生产数据的对象,比如通过RTP 读取数据。
数据流经过多个’source’和’sink’s,下面是一个示例:
‘source1’ -> ‘source2’ (a filter) -> ‘source3’ (a filter) -> ‘sink’

Filter 从其它Source 接收数据的source 也叫做"filters"。
Module 是一个sink 或者一个filter。数据接收的终点是Sink 类,
MediaSink 是所有Sink 类的基类。
Sink 类实现对数据的处理是通过实现纯虚函数continuePlaying(),通常情况下continuePlaying 调用fSource->getNextFrame 来为Source 设置数据缓冲区,处理数据的回调函数等,
fSource是MediaSink 的类型为FramedSource*的类成员。

你可能感兴趣的:(视频)