Ticket #11457: stream.php

File stream.php, 2.0 KB (added by awaldram@…, 8 years ago)

fixed video stream.php

Line 
1<?php
2/**
3 * Stream a music file
4 *
5 * @license     GPL
6 *
7 * @package     MythWeb
8 * @subpackage  Music
9/**/
10
11// Yes, a db connection
12    global $db;
13
14// Pull video ID
15    $vid_id = $_GET['Id'];
16
17// Get filename
18    list($fname) = $db->query_row('SELECT filename
19                                     FROM videometadata
20                                    WHERE intid = ?', $vid_id);
21
22// Mime type
23    //switch (substr($fname, strrpos($fname, '.'))) {
24    switch (substr($fname, strrpos($fname, '.')+1)) {
25        case 'mpg':
26        case 'mpeg':
27            $mime = 'video/mpeg';
28            break;
29        case 'mp4':
30            $mime = 'video/mp4';
31            break;
32        case 'ogg':
33        case 'ogm':
34        case 'ogv':
35            $mime = 'video/ogg';
36            break;
37        case 'qt':
38            $mime = 'video/quicktime';
39            break;
40        case 'webm':
41            $mime = 'video/webm';
42            break;
43        case 'mkv':
44            $mime = 'video/x-matroska';
45            break;
46        case 'wmv':
47            $mime = 'video/x-ms-wmv';
48            break;
49        case 'flv':
50            $mime = 'video/x-flv';
51            break;
52        case 'avi':
53            $mime = 'video/x-msvideo';
54            break;
55        default:
56            $mime = 'application/octet-stream';
57    }
58
59//            $mime = 'video/x-msvideo';
60
61    header('Content-Type: '.$mime);
62
63// Send the filename
64    header('Content-Disposition: filename="'.$fname.'"');
65
66// Send data via the backend
67    $Master_Host = setting('MasterServerIP');
68    $port = _or(get_backend_setting('BackendStatusPort', $Master_Host),
69                get_backend_setting('BackendStatusPort'));
70    if (stripos($Master_Host,':') !== false) {
71        $Master_Host = '['.$Master_Host.']';
72    }
73
74// while (ob_get_level()) {
75 //     ob_end_flush();
76//     }
77 if (ob_get_level()) {
78         ob_end_clean();
79             }
80
81    readfile("http://$Master_Host:$port/Content/GetVideo?Id=".$vid_id);
82
83// Nothing else to do
84    exit;
85