0

从 bigbluebutton http://docs.bigbluebutton.org/overview/architecture.html的高级架构概述中,我了解到 red5 服务器使用 rtmp 或通过 nginx 调整 rtmp 与客户端通信。然后 red5 服务器使用 redis(使用 fsesl-akka)与 FreeSwitch 通信。这意味着我们可以在单独的服务器上部署 red5。结果应该是 3 台服务器:

  1. 用于 nginx/tomcat7 运行客户端的服务器,bbb-web
  2. Red5 服务器 + redis 处理模块 videoconf/sharing/call/audio 的 rtmp
  3. Freeswitch 服务器

目前,我可以通过更改 client/conf/config.xml 来配置模块以从单独的 Red5 服务器使用 rtmp

<config>
    <localeversion suppressWarning="false">0.9.0</localeversion>
    <version>VERSION</version>
    <help url="http://10.0.121.16/help.html"/>
    <javaTest url="http://10.0.121.16/testjava.html"/>
    <porttest host="10.0.121.16" application="video/portTest" timeout="10000"/>    
    <bwMon server="10.0.121.16" application="video/bwTest"/>
    <application uri="rtmp://10.0.121.16/bigbluebutton" host="http://10.0.121.16/bigbluebutton/api/enter"/>
    <language userSelectionEnabled="true" />
    <skinning enabled="true" url="http://10.0.121.16/client/branding/css/BBBDefault.css.swf" />
    <shortcutKeys showButton="true" />
    <browserVersions chrome="CHROME_VERSION" firefox="FIREFOX_VERSION" flash="FLASH_VERSION" java="1.7.0_51" />
    <layout showLogButton="false" defaultLayout="bbb.layout.name.defaultlayout"
            showToolbar="true" showFooter="true" showMeetingName="true" showHelpButton="true" 
            showLogoutWindow="true" showLayoutTools="true" confirmLogout="true"
            showRecordingNotification="true"/>
    <meeting muteOnStart="false" />
    <logging enabled="true" target="trace" level="info" format="{dateUTC} {time} :: {name} :: [{logLevel}] {message}" uri="http://10.0.121.16"/>
    <lock disableCamForLockedUsers="false" disableMicForLockedUsers="false" disablePrivateChatForLockedUsers="false" 
          disablePublicChatForLockedUsers="false" lockLayoutForLockedUsers="false" lockOnJoin="true" lockOnJoinConfigurable="false"/>

        <modules>

        <module name="ChatModule" url="http://10.0.121.16/client/ChatModule.swf?v=VERSION" 
            uri="rtmp://10.0.121.16/bigbluebutton" 
            dependsOn="UsersModule" 
            privateEnabled="true"  
            fontSize="12"
            position="top-right"
            baseTabIndex="701"
            colorPickerIsVisible="false"
            maxMessageLength="1024"
        />

        <module name="UsersModule" url="http://10.0.121.16/client/UsersModule.swf?v=VERSION" 
            uri="rtmp://10.0.121.16/bigbluebutton" 
            allowKickUser="true"
            enableEmojiStatus="true"
            enableSettingsButton="true"
            baseTabIndex="301"
        />


        <module name="DeskShareModule" 
            url="http://10.0.121.16/client/DeskShareModule.swf?v=VERSION" 
            uri="rtmp://10.0.121.16/deskShare"
            publishURI="10.0.121.16"
            useTLS="false"
            showButton="true"
            autoStart="false"
            autoFullScreen="false"
            baseTabIndex="201"
        />

        <module name="PhoneModule" url="http://10.0.121.16/client/PhoneModule.swf?v=VERSION" 
            uri="rtmp://10.0.121.16/sip" 
            autoJoin="true"
            listenOnlyMode="true"
            presenterShareOnly="false"
            skipCheck="false"
            showButton="true"
            enabledEchoCancel="true"
            useWebRTCIfAvailable="true"
            showPhoneOption="false"
            echoTestApp="9196"
            dependsOn="UsersModule"
        />

        <module name="VideoconfModule" url="http://10.0.121.16/client/VideoconfModule.swf?v=VERSION" 
            uri="rtmp://10.0.121.16/video"
            dependson = "UsersModule"
            baseTabIndex="401"
            presenterShareOnly = "false"
            controlsForPresenter = "false"
            autoStart = "false"
            skipCamSettingsCheck="false"
            showButton = "true"
            showCloseButton = "true"
            publishWindowVisible = "true"
            viewerWindowMaxed = "false"
            viewerWindowLocation = "top"
            smoothVideo="false"
            applyConvolutionFilter="false"
            convolutionFilter="-1, 0, -1, 0, 6, 0, -1, 0, -1"
            filterBias="0"
            filterDivisor="4"
            displayAvatar = "false"
            focusTalking = "false"
            glowColor = "0x4A931D"
            glowBlurSize = "30.0"
            priorityRatio = "0.67"
        />

        <module name="WhiteboardModule" url="http://10.0.121.16/client/WhiteboardModule.swf?v=VERSION" 
            uri="rtmp://10.0.121.16/bigbluebutton" 
            dependsOn="PresentModule"
            baseTabIndex="601"
            whiteboardAccess="presenter"
            keepToolbarVisible="false"
        />

        <module name="PollingModule" url="http://10.0.121.16/client/PollingModule.swf?v=VERSION" 
            uri="rtmp://10.0.121.16/bigbluebutton" 
            dependsOn="PresentModule"
        />

        <module name="PresentModule" url="http://10.0.121.16/client/PresentModule.swf?v=VERSION" 
            uri="rtmp://10.0.121.16/bigbluebutton" 
            host="http://10.0.121.16" 
            showPresentWindow="true"
            showWindowControls="true"
            openExternalFileUploadDialog="false"
            dependsOn="UsersModule"
            baseTabIndex="501"
            maxFileSize="30"
        />

        <module name="LayoutModule" url="http://10.0.121.16/client/LayoutModule.swf?v=VERSION"
            uri="rtmp://10.0.121.16/bigbluebutton"
            layoutConfig="http://10.0.121.16/client/conf/layout.xml"
            enableEdit="false"
        />
    </modules>
</config>

其中 10.0.121.14 - 运行 Red5 + redis。10.0.121.16 运行 nginx + tomcat7。专家有任何文件/帮助/建议来解决这个问题吗?

4

1 回答 1

1

单独的Red5服务器可以分发视频和桌面共享模块,处理时只需要获取归档脚本从流目录中拉取.flv文件。我会将基本的 red5 留在 bbb 服务器上,以处理与本地 redis 存储的其余消息传递。

如果您不想在服务器上同时安装 red5,那么您需要启用 red5 服务器以访问连接到 redis。当心。downt think 并设置了密码,因此您不想在不使用正确的 iptable 规则的情况下在公共界面上公开它。

问候, 斯蒂芬 hostbbb.com

于 2016-08-03T14:13:01.487 回答