用混音合图模式录制时,如何控制录制画面的分布?


#1

您好,混音合图模式录制时,请问如何控制录制画面的分布?

例如,用户A和用户B视频,用户A用小视窗显示自己,用大视窗显示用户B,同样,用户B用小视窗显示自己,用大视窗显示用户A,这时录制出来的画面如何控制录制画面的分布,比如画面一半显示用户A,一半显示用户B?


#2

通过setVideoMixingLayout接口来设置视频合图布局。
API参考文档:https://docs.agora.io/cn/Recording/API%20Reference/recording_java/classio_1_1agora_1_1recording_1_1_recording_s_d_k.html#abe7ab46322cbb7edfc72f235b499a4e2


#3

非常感谢:grinning:


#4

不客气哈


#5

请问使用录制命令./Recorder_local --mixResolution STRING 时,这个字符串应该是什么形式?

我执行下面的命令时(其他省略)出现错误

./Recorder_local  --mixResolution 640,560,15,960

错误内容

Error: 2,with stat_code:4

recording_sys.log内容

/ServerSDK-Video/src/video_recorder/main.cpp:358: video mix mode resolution is illegal:ret=0x40, setting:(640,560,15,960), mode:com

#6

要将 isMixingEnabled 设为 1,才可以通过mixResolution参数设置合图视频的分辨率,格式为:width,high,fps,Kbps,从左至右分别对应合图的宽、高、帧率和码率。关于合图推荐设置的分辨率,详见:https://docs.agora.io/cn/Recording/API%20Reference/recording_cpp/structagora_1_1recording_1_1_recording_config.html#a522a74ca1a09cecf04c5e127cd70eddf

最好设置一个对照表上有的参数。


#7

确实是这个问题,设置对照表上有的参数以后就不出错了。
谢谢高手:gift:


#8

继续问一个问题。
使用录制命令./Recorder_local 进行混音合图模式录制时,如果对同一个channel连续执行2次录制命令./Recorder_local ,将会产生2个mp4文件,有没有办法在执行第2次录制命令时不录制呢?


#9

执行录制命令,就是开始录制了,一定会生成录制文件的。就相当于,再起了一个录制进程,进行录制。你那边为什么要执行两次录制命令啊?


#10

channel里有2个人的时候开始录制,当一个人退出以后再入室时,又满足了channel里有2个人。
此时如果能够知道这个channel是否正在录制的话,就不需要执行两次录制命令。

请问有没有简单的判断这个channel是否正在录制的方法呢?


#11

你的意思是指,channel里有一位client端用户和一位录制端用户时开始录制;但是client端用户退出了,只剩下录制端用户了,就不再录制了。吗?

如果频道里只有录制端,那么一段时间内,会自动停止录制的,日志会打印Error: 3, with stat_code:16。


#12

当channel满足有2位用户时,执行录制命令。途中即使1位用户退出也不中止录制。

问题是当退出的用户再进入channel时,我需要知道这个channel是否在录制,
如果没有录制的话,就开始录制,执行录制命令。
如果正在录制中,我再一次执行录制命令的话,就会产生我所问的问题,生成2个mp4文件。


#13

你首先要明确频道里的用户是什么用户。如果是两个客户端用户,那么其中一个退出了,是不影响录制的。
如果因为频道内没有客户端用户了,而自动结束录制的话,那么是会打印Error: 3, with stat_code:16关键字的,可以通过该方法来判断是否有结束录制。


#14

谢谢你的回答。

我下面的理解对不对?
1。AgoraRecordingEngine没有判断channel是否正在录制的机能
2。当两次执行录制命令时,无法阻止生成2个mp4文件