/IPV4_StreamingMedia

Linux下基于C的IPV4流媒体项目

Primary LanguageC

IPV4流媒体


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

image-20240718200411063

客户端,接收节目单信息,选择频道1接收

image-20240718200529524