热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

手机录制的视频怎么编辑(把两个录屏视频合成一个视频)

实现的效果图:上图合成了2个人视频,中途有1个人先离开之后又重新加入了房间。一、业务场景业务场景是这样的:多个用户(2-4人)直播的视频,合成为一个视频,这期间要满足2个条件:首先


实现的效果图:




上面的照片是两个人的录像合成的,中间有一个人先离开后重新进屋。


一、业务场景


业务场景是这样的。 将多个用户(2-4人)直播的视频合成为一个视频。 在此期间,必须满足两个条件。 首先,在录像途中可能有一个或多个用户发生不定次数的脱机、重新放入) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )二,为了保证合成的视频和录像的效果相同,第二个是多个视频的时间不会不一致。


基于以上两个条件来说,程序实现还存在一定的难度,但幸运的是,笔者已经找到了一些解决方案,下面与大家分享。


二、解决方案概述


jzdhj )使用腾讯云进行交互式直播和在线录制,但腾讯云录制的视频mp4格式每30分钟分为一个文件。 也就是说,录像过程中有可能出现多幅动画,而且录像后的转码时间不确定,所以录像后,利用数据库的记录信息和ffmpeg进行多幅动画的合成。


方案2 )使用声音网络进行交互式现场直播和服务器录制。 缺点是声音网络不提供在线录制功能,用户需要自己部署录制服务器。 好处是声音网络录制的视频很完整,录制完毕后可以马上观看视频。


两个方案都在一定时间内(5分钟也可以自己设定),有一个以上的人离开房间后重新进入房间,并且不影响视频的录制。 另外,由于视频也是同步的,所以多个视频的时间不能不一致。


三、腾讯云录像方案


由于本文主要谈的是录像的录制和合成,所以关于交互式直播的内容不属于本文讨论的范围。 对互动直播感兴趣的学生可以点击链接查看,腾讯实时音视频参考地址: http://t.cn/EquSeRo


新闻云的在线录制比较简单,可以使用Web API实现。 参考文献:使用https://cloud.Tencent.com/document/product/267/9567调用接口的参数即可,在打开自动录像功能的情况下,甚至可以节约调用Web API


本节聚焦于ffmpeg合成视频的功能,以下对ffmpeg进行介绍


官方网站: http://ffmpeg.org/


下载地址: https://ffmpeg.zera noe.com/builds /


中文翻译: https://www.book stack.cn /读/其他- Doc-cn-FFMPeg /读. MD


fmpeg的使用还很简单,从上面连接下载ffmpeg即可,可以通过调用命令合成视频。 因为我们是mp4格式的视频(为什么是mp4,因为业务需求和其他功能也有联系,所以必须是mp4格式),所以不能全部直接使用ffmpeg的命令,一次合成多个mp4文件,但是mp4


具体步骤如下:


1、打开命令行,切换到ffmpeg的安装目录;


2、使用命令,将多个mp4文件分别转换为ts格式的文件。 FMPEG-i1.MP4 -编解码复制- VBS FH 264 _ MP4 Toann EXB1. ts;


3、使用命令,对转换后的多个ts文件进行拼写检查,将视频格式设为MP4: ffmpeg-I ' concat :1.ts|2.ts|3.ts '-acodec-vcodee


这样就完成了视频的合成。 当然,在合成视频之前必须下载数字服务器的视频。 合成视频后,还可以将视频上传到数字服务器的云中。


四、声音网录音方案


和讯云一样,声音网络的交互式实时集成文档: http://t.cn/Eq3RpOS本节侧重于视频录像合成功能。


要自行设置声音网络的录制服务器,必须先购买Linux服务器。 现在只支持Linux哦。 接下来,设置服务器。


服务器配置


1、Ubuntu 12.04 x64或中心6.5 x64


2、GCC 4.4 )一般的linux系统是预装的,指令:通过gcc -v查看版本号) ) ) ) ) ) ) ) ) )。


3、公众网IP


4、域名“qos.agoralab.co”加入白名单


五、NodeJS 8.9


的记录程序可以使用NodeJS实现。 这对开发者也有好处。 最终,程序的引进门槛会降低。 其实现的原理是利用NodeJS的Express框架实现rest风格的API调用,如下图所示,NodeJS通过调用c的插件再次调用c的记录播放器,从而实现专业

c">

接下来就正式进入服务器部署了,步骤如下:

1、下载NodeJs部署程序,访问:https://github.com/AgoraIO/Basic-Recording下载zip,部署到你的服务器;

2、下载录制SDK,访问:http://t.cn/Eq17cLU;

3、解压录制SDK并拷贝到NodeJS部署目录的 record/src/sdk 目录;

4、安装node-gyp,使用命令: npm install -g node-gyp ;

5、打开终端,进入 Agora-Restful-Recording-Nodejs/record 目录,运行sh文件 sh build.sh ,编译C++的调用,运行成功之后可以看到“agorasdk.node”文件;

以上操作,也可查看官网文档(英文的):http://t.cn/Eq1ZncK

完成以上操作之后,真正的坑才在等着你,下面来说重点了。

【程序部署的坑】

执行完以上操作之后,需要下面的两项设置,才能正常的录制视频:

1、设置Linux文件夹权限: chmod -R 777 /{你的目录}/Agora-Restful-Recording-Nodejs ;

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元。

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

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


推荐阅读
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 本文介绍了一个从入门到高手的VB.NET源代码,通过学习这些源代码,可以在21天内成为VB.NET高手。文章提供了下载地址,并提醒读者加入作者的QQ群和收藏作者的博客。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  • vb6集成ad登录共享文件_SCSP实验2单点登录
    01—实验目的掌握单点登陆相关原理和深信服配置02—实验环境1.AC版本v12.0.42AC1地址:https:172.172.1.1AC2地址:htt ... [详细]
  • zuul 路由不生效_Zuul网关到底有何牛逼之处?竟然这么多人在用~
    作者:kosamino来源:cnblogs.comjing99p11696192.html哈喽,各位新来的小伙伴们,大家好& ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有