Linux
下基于C
构建的IPV4
流媒体项目
项目特点:
客户端
- 加入多播组,从多播组IP接收数据包,数据包含节目单信息以及各个频道的内容数据
- 根据接收的节目单信息,选择频道,接收频道数据,通过管道机制,子进程在管道读端,调用解码器,播放接收的频道MP3数据
服务端
- 创建多播组,定义服务端发送数据的远端IP信息
- 创建媒体库,并且使用令牌桶算法,对服务端发送的节目单数据以及频道数据进行流量控制
- 为每个频道创建频道线程,发送频道数据
- 为节目单创建节目单线程,发送节目单数据
- 服务器程序,可设置为守护进程,后台运行
在client
以及server
目录下的build
目录下终端输入命令,编译
$ cmake ..
$ make
在server/build
目录终端,运行
./server
在client/build
目录终端,运行
./client
$ ./server [-M Multicast_Group] [-P PORT] [-F Foreground_operation] [-D Media_Library_Path] [-I Internet_equipment] [-H help]
以上参数不是非必须,不用全部使用,根据个人情况搭配选用即可
M
,自定义多播组
- 默认244.2.2.2
P
,自定义端口
- 默认1989
F
,程序前台运行,不需要参数
- 不适用
-F
程序默认守护进程
D
,媒体库路径
I
,自定义网络设备
- 默认为网卡设备
ens33
H
,显示帮助
服务端,三个频道,发送数据至多播组IP
客户端,接收节目单信息,选择频道1接收