3.1 将推流端与播放端合并为一对一音视频聊天功能

33 篇文章 4 订阅
31 篇文章 5 订阅

本课对应源文件下载链接:

https://download.csdn.net/download/XiBuQiuChong/88805307

多对多视频会议体验版下载链接:https://download.csdn.net/download/XiBuQiuChong/88805337

 

在《第8课 利用FFmpeg将摄像头画面与麦克风数据合成后推送到rtmp服务器》,我们实现了一个推流端,可以把音视频推送到rtmp服务器;在《第3课 使用FFmpeg读取rtmp流并显示视频及播放音频.docx》,我们实现了一个播放器,可以正常播放rtmp音视频流。聪明的你应该可以想到了:把推流端和播放端合并在一起,就是一个最简单的一对一的音视频聊天系统。

一、最终实现的效果

75b8faa48caee2d1ceea352cb305f66d.png

二、一对一的音视频聊天系统的原理

如前所述,其实就是一个推流端加一个播放端,只不过把它们两个放到了同一个程序中的同一个界面中。

三、一对一的音视频聊天系统的具体实现

1.备份推流端demo8并修改demo8为demo9。

2.调整主对话框尺寸,在主对话框中参考第3课源文件添加名为IDC_playPic的Picture Control控件。

3.复制demo3中的fmlp.h和fmlp.cpp到demo9工程目录下,与fmle.h和fmle.cpp保持在同一目录。

4.将fmlp.h和fmlp.cpp导入到demo9解决方案中。

b25cd274a9cf8fcf4ab3fca0822f3d68.png

 3.复制第3课工程主对话的drawMatOfPlay定义和方法到当前工程,并在当前工程主对话框中添加以下代码以使播放端工作:

fmle *myFmle = new fmle();

fmlp *myFmlp = new fmlp();

4.修改fmle.cpp中的推流地址和fmlp.cpp中的播放地址使二者保持一致,如均为"rtmp://192.168.0.100/live/01";

5.调试运行,推流端能正常捕获摄像头图像并预览,播放端可以正常播放摄像头画面并听到声音则大功告成。

四、功能拓展

在实际应用中,通常借助socket服务器维持一个在线列表一实现一对多的视频会议系统,甚至可以在此基础上加上文本聊天、桌面共享、共享白板等功能,这些就需要大家在后续的学习过程中逐步完善了。

e099691986af16c20fe358dd3217f083.png

 

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西部秋虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值