PHP把视频链接传给B页,php – 如何在网站上传输mjpeg视频

博主在尝试将本地IP相机的MJPEG视频流在公共网站上显示时遇到挑战。目前的PHP代码可以实现视频流,但jQuery请求在页面刷新或关闭前无法发送。同时,尝试使用Ajax控制相机时遇到困难,并且流的处理导致服务器和电脑性能下降。问题包括如何在不降低服务器性能的情况下实现视频流,以及如何通过Ajax有效地控制相机。
摘要由CSDN通过智能技术生成

我在网站上播放mjpeg视频时遇到了一些问题.相机有一个私人IP(必须保持私人/本地),但必须在公共网站上可见.

我试过以下代码:

video.php?ip=IPADDRESS&name=NAME

PHP(video.php)

// ... some code to get the camera object

header('Content-Type: multipart/x-mixed-replace; boundary=myboundary');

ob_end_flush();

readfile('http://'.$cam->user.':'.$cam->pwd.'@'.$cam->ip.'/mjpg/video.mjpg');

?>

这到目前为止工作.但现在的问题是,当我通过jQuery发送一些请求(camerateering)时,在我刷新网站或关闭它之前,它们无法发送.当我直接在图像src-tag中写入文件时,转向才有效.但是,当然,流只能在本地网络服务器上看到.我现在的问题是:在公共网站上传输视频的最佳方式是什么?

问候

BlackBonjour

编辑

这里是jQuery代码:

$('#container').on('click', '.steer', function()

{

$.post('handle_post.php',

{

action: 'move-cam',

ip: $('#camIP').val(),

name: $('#camNAME').val(),

move: $(this).attr('alt')

});

});

这不是完整的代码,但这完全适用于转向功能.

更新17.09

我在最后几天解决了我的问题,但仍然没有得到解决方案.我试图打开一个新窗口,它可以进行转向.问题是,如果我用javascript打开窗口,我仍然无法控制相机.当我打开另一个浏览器并直接访问“控制器”时,我可以控制相机.但这不是我想要的.如何用JS(Ajax)控制相机?

接下来,当我读到流抛出php时,服务器和我的电脑变得非常慢.我该如何解决这个问题?

我使用以下代码来读取流:

$fp = fsockopen($cam->ip, 80, $errno, $errstr, 30);

if(!$fp)

{

echo $errstr.' ('.$errno.')
'."\n";

}

else

{

$urlstring = "GET /mjpg/video.mjpg HTTP/1.0\r\nAuthorization: BASIC ".base64_encode($cam->user.':'.$cam->pwd)."\r\n\r\n";

fputs($fp, $urlstring);

while($str = trim(fgets($fp, 4096)))

{

header($str);

}

fpassthru($fp);

flush();

fclose($fp);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值