Ich habe eine Web-Anwendung konzentriert sich auf das Abspielen von Videos. Es verwendet einen Kolben API, um die Metadaten zu bedienen. Ich möchte in der Lage sein, einen lokalen Dateipfad für ein Video an den Client zu übergeben und dem Client das Abspielen dieses Videos zu ermöglichen. Da Sie nicht nur eine lokale Datei laden können, wie kann ich die Datei dem Browser bereitstellen? Ich weiß, es gibt einfachhttpserver, aber ich habe Dateien überall.Serve lokale Videodateien für VLC-Plugin mit Python
Wie kann ich es einrichten, so dass ich das vlc-Plugin wie in diesem Beitrag Open video stream on VLC Player through the browser verwenden kann?
UPDATE
Dies ist kein Duplikat. Ich frage, wie kann ich eine Datei von einem Client bereitgestellten Dateipfad bereitstellen. Dies kann ein beliebiger Ort sein, nicht nur ein Verzeichnis von statischen css/html/js-Dateien, die ich bedienen möchte. Da der Client den Dateipfad vom Server bezieht, kann ich überprüfen, ob die Datei zugestellt werden darf.
UPDATE 2
immer noch nicht glauben, dass dies ein Duplikat ist, wie es für den Verzehr durch ein bestimmtes Plug-in ist, vlc web plugin. Ich habe versucht, send_from_directory
zu verwenden, aber es hat nicht funktioniert. Hoffentlich macht es das klarer. Wenn send_from_directory das Richtige ist, was ist mein Fehler hier?
Auf Python ist mein Endpunkt wie folgt (unter Verwendung von Kolben-geruhsame):
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')
Auf der Seite 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();
'send_from_directory' ist was Sie wollen, genau wie die doppelte Frage. – dirn
Dieses * ist * ein Duplikat. Lesen Sie die Antworten zu der verknüpften Frage. – davidism
Ich aktualisierte meinen Beitrag mit dem Code einschließlich versuchen, 'send_from_directory' zu verwenden – postelrich