当前位置:网站首页>使用cef离屏渲染技术实现在线教育课件和webrtc视频回放融合录制
使用cef离屏渲染技术实现在线教育课件和webrtc视频回放融合录制
2022-08-04 05:32:00 【睏哥RTC】
早先使用声网、即构等第三方实时视频通讯引擎时,引擎提供方会提供服务端视频录制方案,但是在线教育课件是自己的,通常业界采用的方案是,课件保存上课过程的信令,回放时课件回放使用信令回放,即课件不是真实的视频而是HTML执行保存的信令来回放,同时配上录制的老师学生的视频的时间戳同步回放,回放重现整个上课过程。
方案本身就比较绕,使用起来也有很多缺点:
1. 需要专用的回放工具来回放,这就导致回放很难分享,观看也不便;
2. 不能实时生成回放,通常要课程结束一两个小时后才能生成;
3.不能实时转推
后来使用了webrtc方案,实现了老师学生视频和HTML的融合,开始也是参考声网方案,视频有单独的视频录制服务器,鉴于实际使用中的各种问题,后来考虑能否老师端录制上课工具画面,但是也有很多问题,比如上课完后要上传等,怎么录制声音等问题。
后来我偶然记起cef有离屏渲染功能,可以把整个页面渲染到内存,是否可以考虑服务端起一个cef进程,以旁观者的身份加载HTML的课堂,使用离屏渲染保存每一帧即可,于是马上安排人去试验,很顺利就保存了课件画面,遇到的问题是声音怎么录制,当时的问题是发布版本的cef都不支持单独获取一个页面的声音,那就只能录制整个电脑的声音,这样会导致一个问题,一台录制服务器智能同时录一堂课,否则同时录多堂课就串音了。
怎么办呢?没事找google,翻了-墙搜啊搜,发现cef有个未发布版本,支持了单独获取单个网页的声音,参考CefAudioMirrorDestination:
https://bitbucket.org/chromiumembedded/cef/src/58e1149c7127314072903d3d45b9ba8b9fd2fc92/libcef/browser/audio_mirror_destination.h?at=master&fileviewer=file-view-default
于是问题解决,下面是一些坑和注意点:
1. 页面上的一下拉框,cef返回是单独返回的,需要我们自行合成到页面背景
2. 一个页面会包含很多路声音流,需要自行混音成一路
3. cef依赖chromium包非常大几十个G,而且要翻他妈的墙,非常容易下载失败,所以找个稳定点的代理
此技术为本人原创,转载请附带原文链接,谢谢!
边栏推荐
- MNIST handwritten digit recognition, sorted by from two to ten
- 基于语音识别的QT设计的csgo互动类视频游戏
- C语言无符号整型运算
- Pytest common plug-in
- The usefulness of bind() system call
- 基于asp.net的法律援助平台的设计与实现(附项目链接)
- Windows10重置MySQL用户密码
- LeetCode_22_Apr_2nd_Week
- 结构体内存对齐-C语言
- jdbc:mysql://localhost:3306/student?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8时报错
猜你喜欢
安装Apache服务时出现的几个问题, AH00369,AH00526,AH00072....
MNIST手写数字识别 —— 图像分析法实现二分类
Deep Learning Theory - Initialization, Parameter Adjustment
How to get started with MOOSE platform - an example of how to run the official tutorial
淘宝分布式文件系统存储(二)
IDEA中创建web项目实现步骤
Question 1000: Input two integers a and b, calculate the sum of a+b, this question is multiple sets of test data
亚马逊云科技 Build On 2022 - AIot 第二季物联网专场实验心得
基于asp.net的法律援助平台的设计与实现(附项目链接)
第二章 STA相关概念
随机推荐
LeetCode_Dec_3rd_Week
IEEE802.X protocol suite
C语言静态变量static的分析
彻底删除MySQL教程
Pytest common plug-in
sbl_init.asm-适合在编辑模式下看
IDEA创建Servlet步骤
Postgresql snapshot
AWS uses EC2 to reduce the training cost of DeepRacer: DeepRacer-for-cloud practical operation
淘宝分布式文件系统存储(二)
LeetCode_Nov_1st_Week
使用JS在浏览器中打印菱形
管道重定向
Tencent and NetEase have taken action one after another. What is the metaverse that is so popular that it is out of the circle?
FAREWARE ADDRESS
MOOSE平台使用入门攻略——如何运行官方教程的例子
Code to celebrate the Dragon Boat Festival - Zongzi, your heart
MNIST handwritten digit recognition - based on Mindspore to quickly build a perceptron to achieve ten categories
集合---ArrayList的底层
【五一专属】阿里云ECS大测评#五一专属|向所有热爱分享的“技术劳动者”致敬#