Files
glade_cameras/controllers/CameraController.php
T

50 lines
1.1 KiB
PHP

<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
class CameraController extends Controller
{
public function actionStream($id, $scale = 50)
{
$cms = Yii::$app->params['cameras'];
if (!isset($cms[$id]))
{
throw new NotFoundHttpException();
}
if (!is_numeric($scale)) $scale = 50;
$zm_id = $cms[$id];
$source_url = Yii::$app->params['zmUrl'].'/cgi-bin/nph-zms?scale='.$scale.'&mode=jpeg&maxfps=30&buffer=1000&monitor='.$zm_id.'&connkey='.rand(0, 65536);
$fp = fopen($source_url, 'r', false);
if ($fp)
{
Yii::$app->response->format = \yii\web\Response::FORMAT_RAW;
// send mjpeg header:
header("Cache-Control: no-cache");
header("Cache-Control: private");
header("Pragma: no-cache");
header("Content-type: multipart/x-mixed-replace; boundary=ZoneMinderFrame");
// pass data
fpassthru($fp);
fclose($fp);
}
else throw new NotFoundHttpException();
}
public function actionView($id)
{
$cms = Yii::$app->params['cameras'];
if (!isset($cms[$id]))
{
throw new NotFoundHttpException();
}
return $this->render('view',
[
'id' => $id
]);
}
}