互动直播的视频录制与合成—支持多人离线重入 (2)

2、设置你的互动直播客户端为直播模式,因为NodeJS里面是写死的直播模式,而客户端的互动直播默认的是非直播模式,所以需要设置:setChannelProfile(1)和setClientRole(1),否则录制的视频是纯色的背景图,无内容;

恭喜你经过以上的配置,终于可以运行视频录制了,到在开始之前你需要先运行NodeJS的Express项目:

1、使用终端,切换到Agora-Restful-Recording-Nodejs/server目录,执行 npm install 安装;

2、使用终端 node app.js 运行项目;

这个时候使用Web API的方式就可以完成调用了。

开始录制 ,调用如下:

开始录制

结束录制 ,调用如下:

结束录制

【使用小技巧】

声网的appid参数配置在程序中,不要通过参数传递,降低账号被盗用的风险

有了以上的步骤就完成了程序的录制,不过还有更多的坑在后面等着你,笔者整理了使用中的坑,如下。

【使用中的坑】

1、录制的视频不能直接返回mp4地址,需要遍历文件夹路径找到mp4格式文件返回。

2、设置允许离线时长,此项目默认只有10秒,时间太短了,最好要设置5分钟,通过设置Agora-Restful-Recording-Nodejs/record/src/agora_node_ext/agora_node_recording.cpp文件中的config.idleLimitSec=300修改运行离线时长为5分钟。

3、mp4文件有时不会立马产生,会出现偶尔遍历文件夹,mp4文件还没产生的情况,这个时候直接返回给调用端会导致程序缺陷,所有要创建一个循环检测计数器,检测mp4文件产生之后再返回给调用端,保证程序的稳定性。

五、总结

上文分别介绍了两种视频录制合成的技术,下面我们对两种合成技术做一个对比,方便开发者选择更适合自己的技术方案。

对比一:功能对比

腾讯云的在线录制刚开始使用方便,但录制mp4格式视频会产生多个视频文件,所以后期的处理比较麻烦。而声网因为没有自己的在线录制功能,所以需要开发者自己配置录制服务器和保存视频,但录制视频完整(不会拆分为多个视频),支持多个视频的自动合成和离线重入。

对比二:服务器成本对比

1、腾讯云的收费分为三部分:第一部分,每路推流费用60元/路,按最高并发的路数计算,比如我们上个月的高峰期是一百个人同时在线,那推流的费用就按最高分并发的100*60=6000元;第二部分,云视频存储的费用,这部分空间的费用是很少的;第三部分,视频合成的服务器费用。

2、声网只需要录制服务器的费用,成本相对可控,,且费用不高,比如阿里云的云服务器,16核 + 32G内存 + 35兆固定宽带每月才3200元。

服务器成本而言,声网的服务器成本低于腾讯云的服务器成本。

看到这里相信开发者已经有了自己的选择,但不管怎么,希望本文能给大家一个解决视频录制和合成的思路,也希望大家在具体使用的时候能避开文章提到的一些坑。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpydzd.html