我有一个专注于播放视频的网络应用程序。它使用flask api来提供元数据。我希望能够将视频的本地文件路径传递给客户端,并允许客户端播放该视频。由于您无法加载本地文件,如何将文件提供给浏览器?我知道有simplehttpserver,但我到处都有文件。
如何进行设置,以便我可以像Open video stream on VLC Player through the browser这篇文章一样使用vlc插件?
更新
这不重复。我问如何从客户端提供的文件路径提供文件。这可以是任何位置,而不仅仅是我希望提供的静态css / html / js文件的一个目录。由于客户端从服务器获取文件路径,我可以验证是否允许提供该文件。
更新2
仍然不相信这是重复的,因为它是由特定插件vlc web plugin消费的。我尝试使用send_from_directory
但它没有用。希望这更清楚。如果send_from_directory`是正确的用法,那么我的错误是什么?
在python上我的端点如下(使用flask-restful):
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')
在js方面:
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();
答案 0 :(得分:0)
对于这种任务,我推荐一个真正的服务器(与python simplehttpserver或flask嵌入式开发服务器相反)。
那么,也许是nginx?