Hi wupperi
Leider wirst Du nicht um ein Applet herumkommen wenn Du ein Livestream im Dashboard darstellen moechtest.
Ich habe in meinem Fall fuer jede Kamera eine eigene kleine Html Seite angelegt die das Applet fuer den Livestream aufruft. Diese Seite liegt bei mir auf jedem Client in einem lokalen Ordner. Ueber das WebPage Control kannst Du es dann ins Dashboard mit einbinden.
Nun aber das eigentliche Problem… Wie greift man auf das Applet zu ?
In einem anderem Post habe ich dazu etwas geschrieben -> http://www.ip-symcon.de/forum/f18/webfront-modul-external-page-8031/
Es gibt leider keinen einheitlichen Standard fuer die Applets. Die grossen Hersteller arbeiten daran, aber zur Zeit kocht jeder seine eigene Suppe.
Hier mal ein Beispiel wie es bei einer AXIS Kamera aussieht:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
// Set the BaseURL to the URL of your camera
var BaseURL = "http://192.168.0.90/";
// DisplayWidth & DisplayHeight specifies the displayed width & height of the image.
// You may change these numbers, the effect will be a stretched or a shrunk image
var DisplayWidth = "352";
var DisplayHeight = "288";
// This is the path to the image generating file inside the camera itself
var File = "axis-cgi/mjpg/video.cgi?resolution=CIF&camera=1";
// No changes required below this point
var output = "";
if ((navigator.appName == "Microsoft Internet Explorer") &&
(navigator.platform != "MacPPC") && (navigator.platform != "Mac68k"))
{
// If Internet Explorer under Windows then use ActiveX
output = '<OBJECT ID="Player" width='
output += DisplayWidth;
output += ' height=';
output += DisplayHeight;
output += ' CLASSID="CLSID:DE625294-70E6-45ED-B895-CFFA13AEB044" ';
output += 'CODEBASE="';
output += BaseURL;
output += 'activex/AMC.cab#version=5,2,13,12">';
output += '<PARAM NAME="MediaURL" VALUE="';
output += BaseURL;
output += File + '">';
output += '<param name="MediaType" value="mjpeg-unicast">';
output += '<param name="ShowStatusBar" value="0">';
output += '<param name="ShowToolbar" value="0">';
output += '<param name="AutoStart" value="1">';
output += '<param name="StretchToFit" value="1">';
// Remove the // for the ptz settings below to use the code for click-in-image.
// output += '<param name="PTZControlURL" value="';
// output += BaseURL;
// output += '/axis-cgi/com/ptz.cgi?camera=1">';
// output += '<param name="UIMode" value="ptz-relative">'; // or "ptz-absolute"
output += '<BR><B>Axis Media Control</B><BR>';
output += 'The AXIS Media Control, which enables you ';
output += 'to view live image streams in Microsoft Internet';
output += ' Explorer, could not be registered on your computer.';
output += '<BR></OBJECT>';
} else {
// If not IE for Windows use the browser itself to display
theDate = new Date();
output = '<IMG SRC="';
output += BaseURL;
output += File;
output += '&dummy=' + theDate.getTime().toString(10);
output += '" HEIGHT="';
output += DisplayHeight;
output += '" WIDTH="';
output += DisplayWidth;
output += '" ALT="Camera Image">';
}
document.write(output);
document.Player.ToolbarConfiguration = "play,+snapshot,+fullscreen"
// Remove the // below to use the code for Motion Detection.
// document.Player.UIMode = "MDConfig";
// document.Player.MotionConfigURL = "/axis-cgi/operator/param.cgi?ImageSource=0"
// document.Player.MotionDataURL = "/axis-cgi/motion/motiondata.cgi";
</SCRIPT>
</body>
</html>
und hier das Beispiel einer Zavio Kamera aus Taiwan:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>F312A</title>
</head>
<body scroll=no>
<div align="center">
<script type="text/JavaScript">
<!--
//ActiveX Object Defines
var AXOBJECT_ID = "AxVideoView";
var AXOBJECT_PATH = "AxViewer/";
var AXOBJECT_NAME = "AxVideoView.cab";
var AXOBJECT_VER = "1,2,4,53";
var CLASS_ID = "0C71BDAA-5B30-4E12-A317-D225FEB9A068";
var Host_IP = "192.168.0.90";
var Http_Port = "80";
var USER_NAME = "password";
var PASSWORD = "password";
//Video Stream Defines
var PROTOCOL_TYPE = "1"; //(client PC connection protocol) 1->TCP, 2->UDP, 3->HTTP 4->Multicast,
//default connect order Multicast->TCP->UDP->HTTP
var MPEG4_ACCESS_NAME = "video.mp4";
var MJPEG_ACCESS_NAME = "video.mjpg";
var MULTICAST_ACCESS_NAME = "multicast.mp4";
var RECORDER_SUPPORT = "0"; //1->on, 0->off
var VIDEO_FMT=0; // video format 1->MPEG4, 0->MJPEG
var PLUGIN_LANG="en-US" //"da-DK", "de-DE", "el-GR", "en-US", "es-ES", "ja-JP", "ko-KR", "zh-CN", or "zh-TW"
var INITMODE = "Normal"; //"Normal", "Player", "MotionDetect", or "PrivateMask"
var width=320;
var height=240;
function Viewer()
{
document.open();
document.write("<OBJECT NAME=\"" + AXOBJECT_ID + "\"");
document.write(" CLASSID=CLSID:" + CLASS_ID);
document.write(" CODEBASE=\"" + (AXOBJECT_PATH + AXOBJECT_NAME) + "#version=" + AXOBJECT_VER + "\" width=" + width + " height=" + height + ">");
document.write(" <PARAM name=\"HostIP\" VALUE=\"" + Host_IP + "\">");
document.write(" <PARAM name=\"HttpPort\" VALUE=\"" + Http_Port + "\">");
document.write(" <PARAM name=\"Protocol\" VALUE=\"" + PROTOCOL_TYPE + "\">");
document.write(" <PARAM name=\"Mpeg4Name\" VALUE=\"" + MPEG4_ACCESS_NAME + "\">");
document.write(" <PARAM name=\"MjpegName\" VALUE=\"" + MJPEG_ACCESS_NAME + "\">");
document.write(" <PARAM name=\"MulticastName\" VALUE=\"" + MULTICAST_ACCESS_NAME + "\">");
document.write(" <PARAM name='InitMode' VALUE=\"" + INITMODE + "\">");
//document.write(" <PARAM name='ViewSize' VALUE=\"" + VIEW_SIZE + "\">");
document.write(" <PARAM name=\"CompressType\" VALUE=\"" + VIDEO_FMT + "\">");
document.write(" <PARAM name=\"Language\" VALUE=\"" + PLUGIN_LANG + "\">");
document.write(" <PARAM name=\"RecorderEn\" VALUE=\"" + RECORDER_SUPPORT + "\">");
document.write(" <PARAM name=\"UserName\" VALUE=\"" + USER_NAME + "\">");
document.write(" <PARAM name=\"Password\" VALUE=\"" + PASSWORD + "\">");
document.write("</OBJECT>");
document.close();
videoPlay()
}
function Cam()
{
if(opener) {
Host_IP =opener.document.getElementById('url').value;
Http_Port = opener.document.getElementById('port').value;
USER_NAME = opener.document.getElementById('userName').value;
PASSWORD = opener.document.getElementById('password').value;
VIDEO_FMT = opener.document.getElementById('videoFmt').value;
INITMODE = opener.document.getElementById('initMode').value;
width=opener.document.getElementById('width').value;
height=opener.document.getElementById('height').value;
}
Viewer();
}
function videoPlay()
{
if(AxVideoView.InitMode)
{
AxVideoView.AVConnect(1);
AxVideoView.VideoStart(1);
AxVideoView.AudioStart(0);
AxVideoView.TalkEnable(0);
}
}
function videoStop()
{
if(AxVideoView.InitMode)
{
AxVideoView.AVConnect(0);
AxVideoView.VideoStart(0);
AxVideoView.AudioStart(0);
AxVideoView.TalkEnable(0);
}
}
function onunload()
{
videoStop();
}
function fullScreen()
{
AxVideoView.SetFullScreen(1);
}
//-->
</script>
<script>Cam()</script>
</div>
</body>
</html>
Wie Du siehst nicht besonders identisch. 
Es besteht eigentlich nur die Moeglichkeit den Hersteller anzuschreiben und zu fragen ob es eine SDK Beschreibung am Besten mit Beispielen gibt. Die Frage ist bloss ob sie die dann rausruecken.
Axis als Vorbild z.B. generiert Dir den Code direkt im Webbrowser der Kamera. Einfach copy & paste in eine Html Seite und es funzt. Tja aber leider sind nur wenige so vorbildlich.
Tja Livestream ist nicht gleich Livestream… aber vielleicht bald.