多媒体通信实验

选作以下任何一个实验即可

    一、基于组播的音频通信程序
    二、点到点的视频通信
    三、基于JM的H.264压缩视频质量评估
    四、MPEG2 TS格式码流解析
    五、基于VLC SDK的流媒体视频播放器
    六、基于ffmpeg+NginxVLC实现流媒体直播系统
    七、HM参考软件使用与视频质量评价
    八、VTM参考软件使用与码流分析

一、基于组播的音频通信程序


实验要求:
(1)采用组播方式;
(2)音频需要选用一种编码方式
(3)可选要求:使用RTP/RTCP监测音频流状态
实验参考资料:
(1)MCI接口编程下载示例)
(2)WAVE文件格式分析下载示例)
(3)基于API的视频卡编程下载示例)
(4)TCP通信程序设计下载示例)
(5)UDP通信程序设计(示例)
(6)语音编码/解码代码库(C语言)
(7)基于RTPRTCP协议的同步控制资料代码下载
rfc1889  rtsp-1.0.1.tar.gz   rtptools-1.9.tar.gz   rtplib-1.0b2.tar.gz
(8)组播通信程序设计

二、点到点的视频通信


(1)发送端能够正确捕获视频、接收端正确显示视频;
(2)视频需要选用一种编码方式
(3)可选要求:使用RTP/RTCP监测视频流状态、同时传输音频
实验要求:视频需要选用一种编码方式
实验参考资料:
(1)MCI接口编程下载示例)
(2)WAVE文件格式分析下载示例)
(3)基于API的视频卡编程下载示例)
(4)TCP通信程序设计下载示例)
(5)UDP通信程序设计(示例)
(6)语音编码/解码代码库(C语言)
(7)基于RTPRTCP协议的同步控制资料代码下载
rfc1889  rtsp-1.0.1.tar.gz   rtptools-1.9.tar.gz   rtplib-1.0b2.tar.gz
(8)MEPG2压缩/解压缩源码示例   MPEG4压缩代码示例  MPEG4解压缩代码示例
(9)Windows环境下的实时视频捕获技术介绍

三、基于JM的H.264压缩视频质量评估


实验要求:
(1)学会参考软件的使用并采用参考软件对特定的YUV文件进行压缩
(2)对压缩后的文件模拟丢包
(3)对模拟丢包后的压缩比特流进行解码
(4)计算解压后YUV文件相对于原始未压缩的YUV文件的失真度


参考资料:
(1)H.264/14496-10 AVC Reference Software Manual
或采用 早期版本
或采用校内归档版本
(2)YUV序列下载
或参考本站整理的HM/VTM使用说明中附录部分
(3)查看YUV文件内容的工具软件(如YUView)请自行在互联网上查找
或从本站整理的相关资料下载(密码参见BB系统通知)中查找

四、MPEG2 TS格式码流解析


实验要求:
(1)调研可用的工具或源代码
(2)对特定的TS文件流进行分析,给出TS流中不同媒体类型数据的统计信息。如TS比特流中含有多少个媒体流,各个媒体流所占的比例等。
参考资料:
pjdaniel.org.uk ~ MPEG-2 Transport Stream packet analyser
本站整理的部分资料
TS文件下载

五、基于VLC SDK的流媒体视频播放器


实验要求:
(1)阅读示例代码,编写自己的流媒体播放程序
(2)利用Wireshark等抓包工具,分析播放流媒体RTSP协议
参考资料:
本站整理的简单示例的说明
本站整理的简单示例代码(Visual Studio 2017,Console程序)
本站整理的简单示例代码(Visual Studio 2017,MFC程序)
MP4文件下载

六、基于ffmpeg+NginxVLC实现流媒体直播系统


实验要求:
(1)利用ffmpeg采集视频并推流
(2)利用Nginx实现流媒体服务
(3)利用VLC Player访问流媒体
参考资料:
本站整理的ffmpeg使用说明

七、HM参考软件使用与视频质量评价


实验目的
了解H.265(HM)参考软件使用,学会简单的视频指令客观评价指标计算。

实验要求
(1) 阅读课程所提供的HM/VTM使用说明,了解完成本实验项目的背景知识。
(2) 收集YUV序列,并采用YUV查看器查看未压缩的YUV序列内容。
(3) 下载HM参考软件源代码并编译得到编码程序和解码程序。
(4) 阅读HM参考软件自带的“HM software manual”,了解压缩、解压缩程序参数。
(5) 用编译得到的编码程序和解码程序对YUV文件进行压缩、解压缩测试,记录YUV文件基本信息、压缩/解压缩时间、计算压缩比。
(6) 阅读H.265标准(Recommendation ITU-T H.265)中附录“A Annex A Profiles, tiers and levels”,分析HM参考软件源代码中cfg子目录下不同配置文件的差异。
(7) 分析“cfg\ per-sequence\BasketballPass.cfg”配置文件中各行信息的含义。
(8) 使用PSNR作为评价指标,分析压缩视频的质量。
(9) 使用SSIM作为评价指标,分析压缩视频的质量。
(10) 使用BDBR(Bj?ntegaard delta bit rate)作为评价指标,分析压缩视频的质量。
(11) 分析“HM-HM-16.22\cfg\encoder_intra_main.cfg”中参数“QP”的含义,改变QP后重复压缩过程,并对压缩后的视频做质量评价。
参考资料:
本站整理的HM/VTM使用说明
本站整理的相关资料下载(密码参见BB系统通知)

八、VTM参考软件使用与码流分析


实验目的
了解H.266(VTM)参考软件使用,简要分析H.266码流格式。

实验要求
(1) 阅读课程所提供的HM/VTM使用说明,了解完成本实验项目的背景知识。
(2) 收集YUV序列,并采用YUV查看器查看未压缩的YUV序列内容。
(3) 下载VTM参考软件源代码并编译得到编码程序和解码程序。
(4) 阅读VTM参考软件自带的“JVET Software Manual”,了解压缩、解压缩程序参数。
(5) 用编译得到的编码程序和解码程序对YUV文件进行压缩、解压缩测试,记录YUV文件基本信息、压缩/解压缩时间、计算压缩比。
(6) 分析“cfg\encoder_intra_vtm.cfg”配置文件中各行参数的含义。提示:提前阅读H.266草案(Versatile Video Coding (Draft 10), JVET-S2001)中附录“A Annex A Profiles, tiers and levels”了解H.266对不同配置的定义。
(7) 分析“cfg\ per-sequence\BasketballPass.cfg”配置文件中各行信息的含义。
(8) 改变“cfg\encoder_intra_vtm.cfg”中参数“QP”,之后重复压缩过程,对比QP改变前后压缩视频的PSNR。
(9) 阅读H.266草案(Versatile Video Coding (Draft 10), JVET-S2001)中“Table 5 – NAL unit type codes and NAL unit type classes”,解释NALU Type为“VPS_NUT、SPS_NUT、PPS_NUT”时各代表NALU中承载是什么信息?
(10) 分析实验中H.266(VVC)压缩后的码流,计算承载SPS (sequence parameter set)信息的NALU的数目,及SPS的字节数目。
(11) 分析实验中H.266(VVC)压缩后的码流,计算承载PPS (picture parameter set)信息的NALU的数目,及PPS的字节数目。
参考资料:
本站整理的HM/VTM使用说明
本站整理的相关资料下载(密码参见BB系统通知)