I was configuring Freeswitch to make a video conference. It was normal for everyone to enter the conference ,can watch each other and screen share. but It still existed these problems:
1: conference video record was splited several files that every leg in itself file, but I wanted a mix video that everyone was recorded in one file.how can I configure It? 2:I wanted the screen share is in a fixed position,so I customized conference_layouts.conf.xml and added a new rule.How can I make screen share can be in the floor position,and It screen share not open this postion was empty.
these is my configuration: dialplan/default.xml
<extension name="my-mcu_conferences">
<condition field="destination_number" expression="^my(\d{5})$">
<action application="export" data="record_concat_video=true"/>
<action application="record_session" data="/freeswitch/recordings/archive/${destination_number}_${strftime(%Y-%m-%d-%H-%M-%S)}.mp4"/>
<action application="answer"/>
<action application="conference" data="$1@my-mcu"/>
</condition>
</extension>
<!-- STEREO 48kHz conferences / Video MCU -->
<extension name="my-mcu-screen_conferences">
<condition field="destination_number" expression="^my(\d{5}).*?-screen$">
<action application="answer"/>
<action application="send_display" data="FreeSWITCH Conference|$1"/>
<!-- I want screen share on the floor -->
<action application="set" data="conference_member_flags=join-vid-floor"/>
<action application="conference" data="$1@my-mcu"/>
</condition>
</extension>
autoload_configs/conference.conf.xml
<profile name="my-mcu">
<param name="domain" value="$${domain}"/>
<param name="rate" value="48000"/>
<param name="channels" value="2"/>
<param name="interval" value="20"/>
<param name="energy-level" value="200"/>
<!-- <param name="tts-engine" value="flite"/> -->
<!-- <param name="tts-voice" value="kal16"/> -->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="$${hold_music}"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<param name="caller-id-name" value="$${outbound_caller_name}"/>
<param name="caller-id-number" value="$${outbound_caller_id}"/>
<param name="comfort-noise" value="false"/>
<param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
<param name="video-auto-floor-msec" value="1000"/>
<param name="video-mode" value="mux"/>
<param name="video-layout-name" value="1floor_top+4"/>
<!--<param name="video-layout-name" value="group:grid"/>-->
<param name="video-canvas-size" value="1920x1080"/>
<param name="video-canvas-bgcolor" value="#333333"/>
<param name="video-layout-bgcolor" value="#000000"/>
<param name="video-codec-bandwidth" value="3mb"/>
<param name="video-fps" value="30"/>
<!-- <param name="video-codec-config-profile-name" value="conference"/> -->
</profile>
autoload_configs/conference_layouts.conf.xml
<layout name="1floor_top+4">
<image x="45" y="90" scale="270" floor="true" floor-only="true" />
<image x="0" y="0" scale="90" />
<image x="90" y="0" scale="90" />
<image x="180" y="0" scale="90" />
<image x="270" y="0" scale="90" />
</layout>