Flash streaming with live cd

Support and queries relating to third party Live CDs and DVD, VM images and other packaged distributions
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

Thanks for looking at it...
MRD
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

Here's a patch to enable mpeg streaming in the cycle window:

Code: Select all

--- ZoneMinder-1.22.3-Orig/web/zm_html_view_cycle.php	2006-05-17 05:51:33.000000000 -0700
+++ zm-1.22.3/web/zm_html_view_cycle.php	2007-02-13 14:22:37.517186794 -0800
@@ -117,18 +117,29 @@
 <?php
 if ( $mode == "stream" )
 {
-	$stream_src = getStreamSrc( array( "mode=jpeg", "monitor=".$monitor['Id'], "scale=".$scale, "maxfps=".ZM_WEB_VIDEO_MAXFPS, "ttl=".ZM_WEB_REFRESH_CYCLE ) );
-	if ( canStreamNative() )
+	if ( ZM_STREAM_METHOD == 'mpeg' && ZM_MPEG_LIVE_FORMAT )
 	{
-?>
-<tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputImageStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'] ) ?></a></td></tr>
-<?php
+		$stream_src = getStreamSrc( array( "mode=mpeg", "monitor=".$monitor['Id'], "scale=".$scale, "bitrate=".ZM_WEB_VIDEO_BITRATE, "maxfps=".ZM_WEB_VIDEO_MAXFPS, "format=".ZM_MPEG_LIVE_FORMAT, "ttl=".ZM_WEB_REFRESH_CYCLE ) );
+
+	?>
+	<tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputVideoStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'], ZM_MPEG_LIVE_FORMAT ) ?></a></td></tr>
+	<?php
 	}
 	else
 	{
-?>
-<tr><td colspan="3" align="center"><?php outputHelperStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ) ) ?></td></tr>
-<?php
+		$stream_src = getStreamSrc( array( "mode=jpeg", "monitor=".$monitor['Id'], "scale=".$scale, "maxfps=".ZM_WEB_VIDEO_MAXFPS, "ttl=".ZM_WEB_REFRESH_CYCLE ) );
+		if ( canStreamNative() )
+		{
+	?>
+	<tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputImageStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'] ) ?></a></td></tr>
+	<?php
+		}
+		else
+		{
+	?>
+	<tr><td colspan="3" align="center"><?php outputHelperStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ) ) ?></td></tr>
+	<?php
+		}
 	}
 }
 else
Regards,
Corey
Image
Image
3939663646337

It's better to keep your mouth shut and appear stupid than open it and remove all doubt.
-Mark Twain
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

Thanks!
MRD
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

Ok.. I clearly know nothing about php, but I tried very hard to make this work and I can't win...

Here is the actual code I placed/replaced in zm_html_view_cycle.php


if ( $mode == "stream" )
{
if ( ZM_STREAM_METHOD == 'mpeg' && ZM_MPEG_LIVE_FORMAT )
{
$stream_src = getStreamSrc( array( "mode=mpeg", "monitor=".$monitor['Id'], "scale=".$scale, "bitrate=".ZM_WEB_VIDEO_BITRATE, "maxfps=".ZM_WEB_VIDEO_MAXFPS, "format=".ZM_MPEG_LIVE_FORMAT, "ttl=".ZM_WEB_REFRESH_CYCLE ) );

?>
<tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputVideoStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'], ZM_MPEG_LIVE_FORMAT ) ?></a></td></tr>
<?php
}
else
{
$stream_src = getStreamSrc( array( "mode=jpeg", "monitor=".$monitor['Id'], "scale=".$scale, "maxfps=".ZM_WEB_VIDEO_MAXFPS, "ttl=".ZM_WEB_REFRESH_CYCLE ) );
if ( canStreamNative() )
{
?>
<tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputImageStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'] ) ?></a></td></tr>
<?php
}
else
{
?>
<tr><td colspan="3" align="center"><?php outputHelperStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ) ) ?></td></tr>
<?php
}
}
}
else
{
$image_src = getStreamSrc( array( "mode=single", "monitor=".$monitor['Id'], "scale=".$scale ) );
?>
<tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputImageStill( $image_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'] ) ?></a></td></tr>
<?php
}
?>
</table>
</body>
</html>
MRD
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

Replace the file from your source folder and use patch from the code I posted above.
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

I actually tried to do exactly what you described...lol

I can't make sense of the patch because I'm not familar with php or the output that your code is in. Is it some type of source control "diff" of the files or when you say "patch" you mean to use some utility called "patch" to edit the file?

I'm confused so I tried to look at the "fix" you posted and copy the relevant parts into my zm_html_view_cycle.php, but I end up with a non-working version.

If there is any way you can post just the new code that needs to be added with a starting line or just the whole file, I might be able to paste it in. (without the +'s and other stuff..)

Sorry to be such a pain... I'm still learning...
MRD
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

Ok.. I think I got it working now....
MRD
User avatar
rdmelin
Posts: 863
Joined: Wed Oct 29, 2003 2:23 pm
Location: Ellensburg, WA USA

Post by rdmelin »

Thanks Corey for the patch.

Now included in latest RPM here:
http://www.fairpoint.net/~rdmelin/RPMS/mdk_2006/
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

I'm having one small issue still.

If I try to use the cycle view on my Nokia N800 it still won't work. The other views like montage and single camera views work fine. In fact, if I create a webpage with the source code from one of the cycle views (that I grabbed when using a laptop running FireFox) and access it with my N800 it loads fine until the next monitor page is loaded and it starts to use the .php file again. It seems to me that it's a browser detection problem, but I can't seem to access the source code of the page on my N800 to see for sure what it's loading.

This is what my browser is recognized as by my zoneminder apache2:
74.0.48.234 - - [14/Feb/2007:20:54:48 -0500] "GET /zm/index.php?view=cycle&group=0&mid=4&mode=stream HTTP/1.1" 200 937 "http://74.0.48.236/zm/index.php?view=cy ... ode=stream" "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux armv6l; U) Opera 8.5 [en_US] Maemo browser 0.7.6 RX-34_2007SE_2.2006.51-6"

It appears that both zm_html_view_cycle.php and zm_html_view_montagefeed.php use canStreamNative from zm_funcs.php, but I can't figure out why one works fine and the other doesn't.

Help...
MRD
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

This may fix it but I won't know for a few hours until I can get home and test it...

root@zmserver:/var/www/zm# diff zm_funcs.php zm_funcs.ORIG
679,685d678
< function isOpera()
< {
< getBrowser( $browser, $version );
<
< return( $browser == "opera" );
< }
<
712c705
< return( ZM_CAN_STREAM == "yes" || ( ZM_CAN_STREAM == "auto" && isNetscape() ) || ( ZM_CAN_STREAM == "auto" && isOpera() ) );
---
> return( ZM_CAN_STREAM == "yes" || ( ZM_CAN_STREAM == "auto" && isNetscape() ) );
MRD
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

Well, the fix you posted works on FireFox, but I can't get it to work on IE without pulling out the second copy of the full streaming link that makes the image a link to the watchstream.

I'm still debugging it and trying to understand what is going on but it might be a case of IE just not liking it. One possiblility would be to make the "Camera 1" text the link to the single watchfeed instead of the camera image.
MRD
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

Okay I'm trying to grasp what it is you are trying to post.
First are you talking about two seperate issues?

You are correct in that you loose the link ability from the image in both montage and cycle when you have to use an external application like media player, and Flash player. I know this and have been looking for a solution. As far as flash player it can be done if you create a filash file to provide the link, which would be just one more thing that has to be downloaded so thats not preferable. I'm watching and searching for an alternative.
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

Ok.. here we go...

The fix you sent apears to load a webpage whos source code looks like this:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ZM - Cycle Watch</title>
<link rel="stylesheet" href="zm_html_styles.css" type="text/css">
<script type="text/javascript">
function newWindow(Url,Name,Width,Height)
{
var Win = window.open(Url,Name,"resizable,scrollbars,width="+Width+",height="+Height);
}
function closeWindow()
{
top.window.close();
}
window.setTimeout( "window.location.replace( '/zm/index.php?view=cycle&group=0&mid=2&mode=stream' )", 20000 );
</script>
</head>
<body style="margin: 0px">
<table width="96%" align="center" border="0" cellspacing="0" cellpadding="4">
<tr>
<td width="33%" align="left" class="text"><b>Camera1</b></td>
<td width="34%" align="center" class="text"><a href="/zm/index.php?view=cycle&mode=still&group=0&mid=">Stills</a></td>
<td width="33%" align="right" class="text"><a href="javascript: closeWindow();">Close</a></td>

</tr>
<tr><td colspan="3" align="center"><a href="javascript: newWindow( '/zm/index.php?view=watch&mid=1', 'zmWatch1', 416, 624 );"><img src="http://74.0.48.236/cgi-bin/zms?mode=jpe ... 1171585863" alt="Camera1" border="0" width="320" height="240">
</a></td></tr>

<tr><td colspan="3" align="center"><a href="javascript: newWindow( '/zm/index.php?view=watch&mid=1', 'zmWatch1', 416, 624 );"><embed type="application/x-shockwave-flash"
src="http://74.0.48.236/cgi-bin/zms?mode=mpe ... 1171585863"
width="320"
height="240"
name="Camera1"
autostart="1"
autoplay="1"
showcontrols="0"
controller="0">
</embed>
</a></td></tr>
</table>
</body>
</html>

There are two table rows that are almost the same and as far as I can tell, this is what allows the FireFox Browser to use the streaming image as a link to the single camera (watchfeed.php) view.

This works fine in FireFox but causes the streaming not to work in IE at all until I remove the first table row, but it loses the ability to link to the sigle camera view from the streaming image area.

The other issue I am having is that the scale=100 is not set properly by the zm_html_view_cycle.php script. It is set to "0" by the script so I temporarily hardcoded 100 and it works, but I'd like to fix the variable assignment in the script.

Fix for link issue: My possible suggestion was to make the text on the upper left of the cycle view where it has the "monitor name" the link to single camera view. This would allow IE and FireFox to handle the cycle view correctly.

The last issue I had was with my Nokia N800 not working with the cycle view. This seems to be a little different. There wasn't any changes need to zm_funcs.php that I mistakenly posted earlier, but there does seem to be a similar issue with the nearly duplicate table rows. The opera browser shows two streaming images with one below the other so it's picking up what should just enable the streaming image as a link and showing another streaming image.
MRD
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Post by mrd »

I've got everything working as described in my previous post.

code diff:
root@zmserver:/var/www/zm# diff zm_html_view_cycle.ORIG zm_html_view_cycle.php
107c107
< <td width="33%" align="left" class="text"><b><?= $monitor['Name'] ?></b></td>
---
> <td width="33%" align="left" class="text"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><b><?= $monitor['Name'] ?></b></a></td>
120,121c120
< $stream_src = getStreamSrc( array( "mode=jpeg", "monitor=".$monitor['Id'], "scale=".$scale, "maxfps=".ZM_WEB_VIDEO_MAXFPS, "ttl=".ZM_WEB_REFRESH_CYCLE ) );
< if ( canStreamNative() )
---
> if ( ZM_STREAM_METHOD == 'mpeg' && ZM_MPEG_LIVE_FORMAT )
122a122
> $stream_src = getStreamSrc( array( "mode=mpeg", "monitor=".$monitor['Id'], "scale=100", "bitrate=".ZM_WEB_VIDEO_BITRATE, "maxfps=".ZM_WEB_VIDEO_MAXFPS, "format=".ZM_MPEG_LIVE_FORMAT, "ttl=".ZM_WEB_REFRESH_CYCLE ) );
124c124
< <tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputImageStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'] ) ?></a></td></tr>
---
> <tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputVideoStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'], ZM_MPEG_LIVE_FORMAT ) ?></a></td></tr>
128a129,137
> $stream_src = getStreamSrc( array( "mode=jpeg", "monitor=".$monitor['Id'], "scale=".$scale, "maxfps=".ZM_WEB_VIDEO_MAXFPS ) );
> if ( canStreamNative() )
> {
> ?>
> <tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputImageStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'] ) ?></a></td></tr>
> <?php
> }
> else
> {
131a141
> }

Actual code with line numbers:
107 <td width="33%" align="left" class="text"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><b><?= $monitor['Name'] ?></b></a></td>
108 <?php if ( $mode == "stream" ) { ?>
109 <td width="34%" align="center" class="text"><a href="<?= $PHP_SELF ?>?view=<?= $view ?>&mode=still&group=<?= $group ?>&mid=<?= $mid ?>"><?= $zmSlangStills ?></a></td>
110 <?php } elseif ( canStream() ) { ?>
111 <td width="34%" align="center" class="text"><a href="<?= $PHP_SELF ?>?view=<?= $view ?>&mode=stream&group=<?= $group ?>&mid=<?= $mid ?>"><?= $zmSlangStream ?></a></td>
112 <?php } else { ?>
113 <td width="34%" align="center" class="text">&nbsp;</td>
114 <?php } ?>
115 <td width="33%" align="right" class="text"><a href="javascript: closeWindow();"><?= $zmSlangClose ?></a></td>
116 </tr>
117 <?php
118 if ( $mode == "stream" )
119 {
120 if ( ZM_STREAM_METHOD == 'mpeg' && ZM_MPEG_LIVE_FORMAT )
121 {
122 $stream_src = getStreamSrc( array( "mode=mpeg", "monitor=".$monitor['Id'], "scale=100", "bitrate=".ZM_WEB_VIDEO_BITRATE, "maxfps=".ZM_WEB_VIDEO_MAXFPS, "format=".ZM_MPEG_LIVE_FORMAT, "ttl=".ZM_WEB_REFRESH_CYCLE ) );
123 ?>
124 <tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputVideoStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'], ZM_MPEG_LIVE_FORMAT ) ?></a></td></tr>
125 <?php
126 }
127 else
128 {
129 $stream_src = getStreamSrc( array( "mode=jpeg", "monitor=".$monitor['Id'], "scale=".$scale, "maxfps=".ZM_WEB_VIDEO_MAXFPS ) );
130 if ( canStreamNative() )
131 {
132 ?>
133 <tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputImageStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'] ) ?></a></td></tr>
134 <?php
135 }
136 else
137 {
138 ?>
139 <tr><td colspan="3" align="center"><?php outputHelperStream( $stream_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ) ) ?></td></tr>
140 <?php
141 }
142 }
143 }
144 else
145 {
146 $image_src = getStreamSrc( array( "mode=single", "monitor=".$monitor['Id'], "scale=".$scale ) );
147 ?>
148 <tr><td colspan="3" align="center"><a href="javascript: newWindow( '<?= $PHP_SELF ?>?view=watch&mid=<?= $monitor['Id'] ?>', 'zmWatch<?= $monitor['Id'] ?>', <?= $monitor['Width']+$jws['watch']['w'] ?>, <?= $monitor['Height']+$jws['watch']['h'] ?> );"><?php outputImageStill( $image_src, reScale( $monitor['Width'], $scale ), reScale( $monitor['Height'], $scale ), $monitor['Name'] ) ?></a></td></tr>
149 <?php
150 }
151 ?>
152 </table>
153 </body>
154 </html>
MRD
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

Yhen you must have done something wrong with you file as mine parses as

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ZM - Cycle Watch</title>
<link rel="stylesheet" href="zm_html_styles.css" type="text/css">
<script type="text/javascript">
function newWindow(Url,Name,Width,Height)
{
	var Win = window.open(Url,Name,"resizable,scrollbars,width="+Width+",height="+Height);
}
function closeWindow()
{
	top.window.close();
}
window.setTimeout( "window.location.replace( '/zm/index.php?view=cycle&group=0&mid=1&mode=stream' )", 10000 );
</script>
</head>
<body style="margin: 0px">
<table width="96%" align="center" border="0" cellspacing="0" cellpadding="4">
<tr>
<td width="33%" align="left" class="text"><b>New</b></td>
<td width="34%" align="center" class="text"><a href="/zm/index.php?view=cycle&mode=still&group=0&mid=3">Stills</a></td>
<td width="33%" align="right" class="text"><a href="javascript: closeWindow();">Close</a></td>

</tr>
	<tr><td colspan="3" align="center"><a href="javascript: newWindow( '/zm/index.php?view=watch&mid=3', 'zmWatch3', 736, 864 );"><embed type="application/x-shockwave-flash" 
src="http://localhost/cgi-bin/zm/nph-zms?mode=mpeg&monitor=3&scale=50&bitrate=150000&maxfps=15&format=swf&ttl=10&rand=1171589341"
width="320"
height="240"
name="New"
autostart="1"
autoplay="1"
showcontrols="0"
controller="0">
</embed>
</a></td></tr>
	</table>
</body>
</html>
I get about the same thing in both FF and IE, which by the way required loading XP which is not my favorite thing to do. Check your code.

here is IE

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ZM - Cycle Watch</title>
<link rel="stylesheet" href="zm_html_styles.css" type="text/css">

<script language="JavaScript">
<!--

function SymError()
{
  return true;
}

window.onerror = SymError;

var SymRealWinOpen = window.open;

function SymWinOpen(url, name, attributes)
{
  return (new Object());
}

window.open = SymWinOpen;

//-->
</script>

<script type="text/javascript">
function newWindow(Url,Name,Width,Height)
{
	var Win = window.open(Url,Name,"resizable,scrollbars,width="+Width+",height="+Height);
}
function closeWindow()
{
	top.window.close();
}
window.setTimeout( "window.location.replace( '/zm/index.php?view=cycle&group=0&mid=3&mode=stream' )", 30000 );
</script>
</head>
<body style="margin: 0px">
<table width="96%" align="center" border="0" cellspacing="0" cellpadding="4">
<tr>
<td width="33%" align="left" class="text"><b>PVR-150</b></td>

<td width="34%" align="center" class="text"><a href="/zm/index.php?view=cycle&mode=still&group=0&mid=">Stills</a></td>
<td width="33%" align="right" class="text"><a href="javascript: closeWindow();">Close</a></td>
</tr>
	<tr><td colspan="3" align="center"><a href="javascript: newWindow( '/zm/index.php?view=watch&mid=1', 'zmWatch1', 736, 864 );"><embed type="application/x-shockwave-flash" 
src="http://192.168.1.103/cgi-bin/zm/nph-zms?mode=mpeg&monitor=1&scale=50&bitrate=25000&maxfps=5&format=swf&ttl=30&rand=1171590328"
width="320"
height="240"
name="PVR-150"
autostart="1"
autoplay="1"
showcontrols="0"
controller="0">
</embed>
</a></td></tr>
	</table>
</body>
</html>

<script language="JavaScript">
<!--
var SymRealOnLoad;
var SymRealOnUnload;

function SymOnUnload()
{
  window.open = SymWinOpen;
  if(SymRealOnUnload != null)
     SymRealOnUnload();
}

function SymOnLoad()
{
  if(SymRealOnLoad != null)
     SymRealOnLoad();
  window.open = SymRealWinOpen;
  SymRealOnUnload = window.onunload;
  window.onunload = SymOnUnload;
}

SymRealOnLoad = window.onload;
window.onload = SymOnLoad;

//-->
</script>

Post Reply