У меня есть веб-приложение, ориентированное на воспроизведение видео. Он использует флягу api для обслуживания метаданных. Я хочу иметь возможность передать локальный путь к файлу клиенту и разрешить клиенту воспроизводить это видео. Поскольку вы не можете просто загружать локальный файл, как я могу служить файлу в браузере? Я знаю, что есть simplehttpserver, но у меня есть файлы повсюду.Слушать локальные видеофайлы для vlc-plugin с python
Как я могу настроить его, чтобы использовать плагин vlc, как в этом сообщении Open video stream on VLC Player through the browser?
UPDATE
Это не дубликат. Я спрашиваю, как я могу обслуживать файл из файла-файла, указанного клиентом. Это может быть любое местоположение, а не только один каталог статических файлов css/html/js, которые я хочу обслуживать. Поскольку клиент получает путь к файлу с сервера, я могу подтвердить, что этот файл разрешен для обслуживания.
UPDATE 2
До сих пор не верю, что это дубликат, как это для потребления конкретного плагина, vlc web plugin. Я пытался использовать send_from_directory
, но это не сработало. Надеюсь, это станет более ясным. Если send_from_directory` правильно использовать, то какая у меня ошибка?
На питоне моя конечная точка выглядит следующим образом (с использованием колбы-успокоительной):
from flask import Blueprint, send_from_directory
from flask_restful import Api, Resource
class VideoServer(Resource):
def get(self, filepath):
path, file = os.path.split(filepath)
return send_from_directory(path, file)
base_blueprint.add_resource(VideoServer, '/video_server/<string:filepath')
На стороне ЯШ:
let videourl = config.api_server + '/video_server/' + filepath
let $video = $("<object>", {type: "application/x-vlc-plugin", data: videourl});
let $param = $("<param>", {name: "movie", value: videourl});
let $embed = $("<embed>", {type: "application/x-vlc-plugin", autoplay: "yes", loop: "no", target: videourl});
$video.append($param);
$video.append($embed);
$("#mydiv").append($video);
$("#mydiv").load();
'send_from_directory' - это то, что вы хотите, точно так же, как дублированный вопрос. – dirn
Это * * * дубликат. Прочтите ответы по связанному вопросу. – davidism
Я обновил сообщение с кодом, в том числе пытаюсь использовать 'send_from_directory' – postelrich