PHP/MySQL | M3U8 не работа
Тема закрыта by
Mr.Max
Причина: ()))

Причина: ()))
Прошу помощи так как не знаю как можно правильно реализовать.
Нужно проксировать от сервера файл m3u8 в котором .ts
Как это можно сделать ?
Я получаю курлом данные по ссылке скажем http://sait.ru/stream.m3u8
там такие значения
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:81
#EXTINF:10.000,
http://sait.ru/stream15848802216815.ts
#EXTINF:10.000,
http://sait.ru/stream15848802233812.ts
#EXTINF:10.000,
http://sait.ru/stream15848802216814.ts
Подаю в GET так
http://my.sait.ru/?id=http://sait.ru/stream15848802216815.ts
#EXTINF:10.000,
http://my.sait.ru/?id=http://sait.ru/stream15848802216815.ts
#EXTINF:10.000,
http://my.sait.ru/?id=http://sait.ru/stream15848802216815.ts
И обрабатываю на сервере
function file_force_download($file) {
if (file_exists($file)) {
// сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт
// если этого не сделать файл будет читаться в память полностью!
if (ob_get_level()) {
ob_end_clean();
}
// заставляем браузер показать окно сохранения файла
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
// читаем файл и отправляем его пользователю
readfile($file);
exit;
}
}
Но это не работает . Почему-то лист загружается раньше чем я подменяю ссылки в GET. И то же самое происходит если запрос из базы данных получаю. Из m3u и m3u8 все действия которые происходят внутри выполняются но в долю секунды позже и все не работает.
Спасибо!
Нужно проксировать от сервера файл m3u8 в котором .ts
Как это можно сделать ?
Я получаю курлом данные по ссылке скажем http://sait.ru/stream.m3u8
там такие значения
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:81
#EXTINF:10.000,
http://sait.ru/stream15848802216815.ts
#EXTINF:10.000,
http://sait.ru/stream15848802233812.ts
#EXTINF:10.000,
http://sait.ru/stream15848802216814.ts
Подаю в GET так
http://my.sait.ru/?id=http://sait.ru/stream15848802216815.ts
#EXTINF:10.000,
http://my.sait.ru/?id=http://sait.ru/stream15848802216815.ts
#EXTINF:10.000,
http://my.sait.ru/?id=http://sait.ru/stream15848802216815.ts
И обрабатываю на сервере
function file_force_download($file) {
if (file_exists($file)) {
// сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт
// если этого не сделать файл будет читаться в память полностью!
if (ob_get_level()) {
ob_end_clean();
}
// заставляем браузер показать окно сохранения файла
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
// читаем файл и отправляем его пользователю
readfile($file);
exit;
}
}
Но это не работает . Почему-то лист загружается раньше чем я подменяю ссылки в GET. И то же самое происходит если запрос из базы данных получаю. Из m3u и m3u8 все действия которые происходят внутри выполняются но в долю секунды позже и все не работает.
Спасибо!
Есть кодеры ? Как сделать такое
________
посл. ред. 22.03.2020 в 16:23; всего 1 раз(а); by Mr.Max
________
посл. ред. 22.03.2020 в 16:23; всего 1 раз(а); by Mr.Max
m3u на твоём сервере лежит?
Jack Sparrow, нет. Ссылка другого сайта
Mr.Max (22.03.2020 в 17:02)
Jack Sparrow, нет. Ссылка другого сайта
Jack Sparrow, нет. Ссылка другого сайта
Тебе проще проксировать через Nginx. PHP с этим не справится. Скорее всего m3u8 вяжется к кукам и через некоторое время поток перестанет работать.
разовый вывод и удаляется с сервера