Hướng dẫn video streaming php github - phát trực tuyến video php github

Hệ thống giám sát Raspberry Pi, IoT, Internet of Things, máy chủ phát trực tuyến UV4L, bộ truyền phát video, máy ghi video từ Picamera, cảm biến cửa/cửa sổ, nhiệt độ, độ ẩm, cảm biến áp suất, Zabbix, Python, Redis, OLED, LCD, BME280, DS18B20, DHT22 , DHT11, trạm thời tiết, đồng hồ đo tốc độ gió, đồng hồ đo hướng gió, đồng hồ đo lượng mưa, API REST cho dữ liệu cảm biến

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

}khác{
/**
* Mô tả về Video
*
* @author Rana
* @link http://codesamplez.com/programming/php-html5-video-streaming-tutorial
*/
Lớp học VideoStream
{
Private $ path = ""; $path = "";
Private $ stream = ""; $stream = "";
Buffer $ private = 102400; $buffer = 102400;
riêng tư $ start = -1; $start = -1;
riêng tư $ end = -1; $end = -1;
riêng tư $ size = 0; $size = 0;
Function__Construct ($ FilePath) __construct($filePath)
{
$ this-> path = $ filePath;this->path = $filePath;
}
/**
* Mô tả về Video
*/
Lớp học function open()
{
{ (!($this->stream = fopen($this->path, 'rb'))) {
Private $ path = "";'Could not open stream for reading');
}
}
/**
* Mô tả về Video
*/
Lớp học function setHeader()
{
{
Private $ path = "";Content-Type: video/mp4");
Private $ stream = "";Cache-Control: max-age=2592000, public");
Buffer $ private = 102400;Expires: ".gmdate('D, d M Y H:i:s', time()+2592000) . ' GMT');
riêng tư $ start = -1;Last-Modified: ".gmdate('D, d M Y H:i:s', @filemtime($this->path)) . ' GMT' );
riêng tư $ end = -1;this->start = 0;
riêng tư $ size = 0;this->size = filesize($this->path);
Function__Construct ($ FilePath)this->end = $this->size - 1;
$ this-> path = $ filePath;Accept-Ranges: 0-".$this->end);
* Mở luồng (isset($_SERVER['HTTP_RANGE'])) {
PrivateFunctionOpen ()c_start = $this->start;
if (! ($ this-> stream = fopen ($ this-> path, 'rb'))) {c_end = $this->end;
chết ('không thể mở luồng để đọc');(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
* Đặt tiêu đề thích hợp để phục vụ nội dung video (strpos($range, ',') !== false) {
PrivateFunctionSetheader ()'HTTP/1.1 416 Requested Range Not Satisfiable');
ob_get_clean ();Content-Range: bytes $this->start-$this->end/$this->size");
Tiêu đề ("Loại nội dung: Video/MP4");
}
} ($range == '-') {
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiềuc_start = $this->size - substr($range, 1);
}khác{else{
/**range = explode('-', $range);
* Mô tả về Videoc_start = $range[0];
*c_end = (isset($range[1]) && is_numeric($range[1])) ? $range[1] : $c_end;
}
}c_end = ($c_end > $this->end) ? $this->end : $c_end;
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều ($c_start > $c_end || $c_start > $this->size - 1 || $c_end >= $this->size) {
PrivateFunctionSetheader ()'HTTP/1.1 416 Requested Range Not Satisfiable');
ob_get_clean ();Content-Range: bytes $this->start-$this->end/$this->size");
Tiêu đề ("Loại nội dung: Video/MP4");
}
}this->start = $c_start;
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiềuthis->end = $c_end;
}khác{length = $this->end - $this->start + 1;
/**$this->stream, $this->start);
* Mô tả về Video'HTTP/1.1 206 Partial Content');
*Content-Length: ".$length);
* @author RanaContent-Range: bytes $this->start-$this->end/".$this->size);
}
else
}
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiềuContent-Length: ".$this->size);
}
}
/**
* Mô tả về Video
*/
Lớp học function end()
{
{$this->stream);
Tiêu đề ("Loại nội dung: Video/MP4");
}
/**
* Mô tả về Video
*/
Lớp học function stream()
{
{i = $this->start;
Private $ path = "";0);
Private $ stream = "";(!feof($this->stream) && $i <= $this->end) {
Buffer $ private = 102400;bytesToRead = $this->buffer;
riêng tư $ start = -1;(($i+$bytesToRead) > $this->end) {
riêng tư $ end = -1;bytesToRead = $this->end - $i + 1;
}
riêng tư $ size = 0;data = fread($this->stream, $bytesToRead);
Function__Construct ($ FilePath) $data;
$ this-> path = $ filePath;
* Mở luồngi += $bytesToRead;
}
}
/**
* Mô tả về Video
*/
Lớp học start()
{
$ this-> open ();this->open();
$ this-> setheader ();this->setHeader();
$ this-> stream ();this->stream();
$ this-> end ();this->end();
}
}