How to stream a mjpeg video on a website(如何在网站上播放MJPEG视频)
本文介绍了如何在网站上播放MJPEG视频的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在网站上播放MJPEG视频时遇到了一些问题。摄像头有内网IP(必须为私有/本地),但必须在公共网站上可见。
我尝试了以下代码:
HTML
<img src="video.php?ip=IPADDRESS&name=NAME" width="640" height="480" />
PHP(avio.php)
<?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发送一些请求(CameraSteering)时,直到我刷新或关闭网站,它们才能被发送。只有当我直接在图像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')
});
});
这不是完整的代码,但这就是steering函数的全部代码。
更新17.09
我前几天一直在解决我的问题,但仍然没有得到解决方案。我试着打开一扇新窗户,它起到了转向作用。问题是,如果我用脚本打开窗口,我仍然无法控制相机。当我打开不同的浏览器,直接访问控制器时,我就可以控制相机。但这不是我想要的。如何使用JS(AJAX)控制摄像头?
下一步是,当我读取抛出php的流时,服务器和我的PC变得非常慢。我如何修复它?
我使用以下代码来读取流:
$fp = fsockopen($cam->ip, 80, $errno, $errstr, 30);
if(!$fp)
{
echo $errstr.' ('.$errno.')<br />'."
";
}
else
{
$urlstring = "GET /mjpg/video.mjpg HTTP/1.0
Authorization: BASIC ".base64_encode($cam->user.':'.$cam->pwd)."
";
fputs($fp, $urlstring);
while($str = trim(fgets($fp, 4096)))
{
header($str);
}
fpassthru($fp);
flush();
fclose($fp);
}
推荐答案
我找到了解决方案。问题是,我在视频.php中使用了SESSION_START(),这会阻止对也使用相同会话的用户的所有请求。仅此而已。
致以最好的问候
BlackBonjour
这篇关于如何在网站上播放MJPEG视频的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在网站上播放MJPEG视频
基础教程推荐
猜你喜欢
- 在多维数组中查找最大值 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01