function outputlivestream($monitor, $inwidth = 0, $inheight = 0) { $scale = isset($_REQUEST['scale']) ? validInt($_REQUEST['scale']) : reScale(SCALE_BASE, $monitor['DefaultScale'], ZM_WEB_DEFAULT_SCALE); $connkey = $monitor['connKey']; // Minor hack //$connKey = generateConnKey(); if (ZM_WEB_STREAM_METHOD == 'mpeg' && ZM_MPEG_LIVE_FORMAT) { $streamMode = "mpeg"; $streamSrc = getStreamSrc(array("mode=" . $streamMode, "monitor=" . $monitor['Id'], "scale=" . $scale, "bitrate=" . ZM_WEB_VIDEO_BITRATE, "maxfps=" . ZM_WEB_VIDEO_MAXFPS, "format=" . ZM_MPEG_LIVE_FORMAT, "buffer=" . $monitor['StreamReplayBuffer'])); } elseif (canStream()) { $streamMode = "jpeg"; $streamSrc = getStreamSrc(array("mode=" . $streamMode, "monitor=" . $monitor['Id'], "scale=" . $scale, "maxfps=" . ZM_WEB_VIDEO_MAXFPS, "buffer=" . $monitor['StreamReplayBuffer'])); } else { $streamMode = "single"; $streamSrc = getStreamSrc(array("mode=" . $streamMode, "monitor=" . $monitor['Id'], "scale=" . $scale)); } $width = !empty($inwidth) ? $inwidth : 150; $height = empty($inheight) ? $width * $monitor['Height'] / $monitor['Width'] : $inheight; $width = (int) $width; $height = (int) $height; if ($streamMode === "mpeg") { outputVideoStream('liveStream' . $monitor['Id'], $streamSrc, reScale($width, $scale), reScale($height, $scale), ZM_MPEG_LIVE_FORMAT, $monitor['Name']); } elseif ($streamMode == "jpeg") { if (canStreamNative()) { outputImageStream('liveStream' . $monitor['Id'], $streamSrc, reScale($width, $scale), reScale($height, $scale), $monitor['Name']); } elseif (canStreamApplet()) { outputHelperStream('liveStream' . $monitor['Id'], $streamSrc, reScale($width, $scale), reScale($height, $scale), $monitor['Name']); } } else { outputImageStill('liveStream' . $monitor['Id'], $streamSrc, reScale($width, $scale), reScale($height, $scale), $monitor['Name']); } }
</a> </div> <h2><?php echo $SLANG['Cycle']; ?> - <?php echo validHtmlStr($monitor['Name']); ?> </h2> </div> <div id="content"> <div id="imageFeed"> <?php if ($streamMode == "mpeg") { outputVideoStream("liveStream", $streamSrc, reScale($monitor['Width'], $scale), reScale($monitor['Height'], $scale), ZM_MPEG_LIVE_FORMAT, validHtmlStr($monitor['Name'])); } elseif ($streamMode == "jpeg") { if (canStreamNative()) { outputImageStream("liveStream", $streamSrc, reScale($monitor['Width'], $scale), reScale($monitor['Height'], $scale), validHtmlStr($monitor['Name'])); } elseif (canStreamApplet()) { outputHelperStream("liveStream", $streamSrc, reScale($monitor['Width'], $scale), reScale($monitor['Height'], $scale), validHtmlStr($monitor['Name'])); } } else { outputImageStill("liveStream", $streamSrc, reScale($monitor['Width'], $scale), reScale($monitor['Height'], $scale), validHtmlStr($monitor['Name'])); } ?> </div> </div> </div> </body> </html>
function getStreamHTML($monitor, $scale = 100) { //FIXME, the width and height of the image need to be scaled. if (ZM_WEB_STREAM_METHOD == 'mpeg' && ZM_MPEG_LIVE_FORMAT) { $streamSrc = $monitor->getStreamSrc(array("mode=mpeg", "scale=" . $scale, "bitrate=" . ZM_WEB_VIDEO_BITRATE, "maxfps=" . ZM_WEB_VIDEO_MAXFPS, "format=" . ZM_MPEG_LIVE_FORMAT)); outputVideoStream("liveStream", $streamSrc, reScale($monitor->Width(), $scale), reScale($monitor->Height(), $scale), ZM_MPEG_LIVE_FORMAT, $monitor->Name()); } else { if (canStream()) { $streamSrc = $monitor->getStreamSrc(array('mode=jpeg', 'scale=' . $scale, 'maxfps=' . ZM_WEB_VIDEO_MAXFPS, 'buffer=' . $monitor->StreamReplayBuffer())); if (canStreamNative()) { outputImageStream("liveStream", $streamSrc, reScale($monitor->Width(), $scale), reScale($monitor->Height(), $scale), $monitor->Name()); } elseif (canStreamApplet()) { outputHelperStream("liveStream", $streamSrc, reScale($monitor->Width(), $scale), reScale($monitor->Height(), $scale), $monitor->Name()); } } else { $streamSrc = $monitor->getStreamSrc(array('mode=single', "scale=" . $scale)); outputImageStill("liveStream", $streamSrc, reScale($monitor->Width(), $scale), reScale($monitor->Height(), $scale), $monitor->Name()); Info("The system has fallen back to single jpeg mode for streaming. Consider enabling Cambozola or upgrading the client browser."); } } }
var canPlayPauseAudio = Browser.ie; <?php if ($monitor['CanMoveMap']) { ?> var imageControlMode = "moveMap"; <?php } elseif ($monitor['CanMoveRel']) { ?> var imageControlMode = "movePseudoMap"; <?php } elseif ($monitor['CanMoveCon']) { ?> var imageControlMode = "moveConMap"; <?php } else { ?> var imageControlMode = null; <?php } ?> var refreshApplet = <?php echo canStreamApplet() && $streamMode == "jpeg" ? 'true' : 'false'; ?> ; var appletRefreshTime = <?php echo ZM_RELOAD_CAMBOZOLA; ?> ;
function canStream() { return canStreamNative() | canStreamApplet(); }
function displayMonitor($monitor, $bandwidth) { if (!defined(ZM_WEB_DEFAULT_SCALE)) { $scale = 40; } else { $scale = ZM_WEB_DEFAULT_SCALE; } if (ZM_WEB_STREAM_METHOD == 'mpeg' && ZM_MPEG_LIVE_FORMAT) { $streamMode = "mpeg"; $streamSrc = getStreamSrc(array("mode=" . $streamMode, "monitor=" . $monitor['Id'], "scale=" . $scale, "bitrate=" . ZM_WEB_VIDEO_BITRATE, "maxfps=" . ZM_WEB_VIDEO_MAXFPS, "format=" . ZM_MPEG_LIVE_FORMAT, "buffer=" . $monitor['StreamReplayBuffer'])); } elseif (canStream()) { $streamMode = "jpeg"; $streamSrc = getStreamSrc(array("mode=" . $streamMode, "monitor=" . $monitor['Id'], "scale=" . $scale, "maxfps=" . ZM_WEB_VIDEO_MAXFPS, "buffer=" . $monitor['StreamReplayBuffer'])); } else { $streamMode = "single"; $streamSrc = getStreamSrc(array("mode=" . $streamMode, "monitor=" . $monitor['Id'], "scale=" . $scale)); } $width = $monitor['Width'] * ('.' . $scale) + 20; $display_name = strlen($monitor['Name']) > 10 ? substr($monitor['Name'], 0, 10) . '...' : $monitor['Name']; ?> <li id="monitor_<?php echo $monitor['Id']; ?> " style="width:<?php echo $width; ?> px;"> <div class="mon_header"> <div style="float:left;overflow:hidden;width:100px;"><h3 style="display:inline;"><?php echo $display_name; ?> </h3></div> <div class="right"> <div class="spinner"></div> <div class="minimize"><img src="skins/modern/graphics/minimize.png" style="width:15px;" alt="minimize" /></div> <div class="maximize" url="?view=watch&mid=<?php echo $monitor['Id']; ?> "><img src="skins/modern/graphics/maximize.png" style="width:15px;" alt="maximize" /></div> </div> <br style="clear:both;" /> </div> <div class="mon"> <a rel="monitor" href="?view=watch&mid=<?php echo $monitor['Id']; ?> " title="<?php echo $monitor['Name']; ?> "> <?php //$name = $monitor['Name'] . "_live"; //outputImageStill( "$name", $streamSrc, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'] ); // output image if ($streamMode === "mpeg") { outputVideoStream('liveStream' . $monitor['Id'], $streamSrc, reScale($monitor['Width'], $scale), reScale($monitor['Height'], $scale), ZM_MPEG_LIVE_FORMAT, $monitor['Name']); } elseif ($streamMode == "jpeg") { if (canStreamNative()) { outputImageStream('liveStream' . $monitor['Id'], $streamSrc, reScale($monitor['Width'], $scale), reScale($monitor['Height'], $scale), $monitor['Name']); } elseif (canStreamApplet()) { outputHelperStream('liveStream' . $monitor['Id'], $streamSrc, reScale($monitor['Width'], $scale), reScale($monitor['Height'], $scale), $monitor['Name']); } } else { outputImageStill('liveStream' . $monitor['Id'], $streamSrc, reScale($monitor['Width'], $scale), reScale($monitor['Height'], $scale), $monitor['Name']); } ?> </a> </div> <div class="monfooter"></div> </li> <?php }