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