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 | |
---|