Arbeiten Sie mit Cloud-Speicher-Anbietern in Python FFmpeg Video Streaming
Integration mit S3, Google Cloud, Azure und benutzerdefinierten Anbietern
Sie können eine Datei aus einer Cloud (oder anderen Ressourcen) öffnen und gepackte Dateien in einer Cloud (Clouds) speichern. Diese Optionen sind nur für VOD gültig (es unterstützt kein Live-Streaming).
Objektspeicher über eine Webdienst-Schnittstelle
RESTful Online-Dateispeicher-Webdienst
Microsofts Cloud-Speicherlösung für moderne Datenspeicherung
Erweitern Sie die Clouds-Klasse für Ihren benutzerdefinierten Anbieter
Amazon S3 oder Amazon Simple Storage Service ist ein Dienst von Amazon Web Services (AWS), der Objektspeicher über eine Webdienst-Schnittstelle bereitstellt. Amazon S3 verwendet dieselbe skalierbare Speicherinfrastruktur, die Amazon.com für den Betrieb seines globalen E-Commerce-Netzwerks nutzt. Amazon S3 kann zum Speichern von Objekten jeder Art verwendet werden, was Anwendungen wie Speicher für Internetanwendungen, Sicherung und Wiederherstellung, Notfallwiederherstellung, Datenarchive, Data Lakes für Analysen und Hybrid-Cloud-Speicher ermöglicht. AWS startete Amazon S3 am 14. März 2006 in den USA, dann im November 2007 in Europa. Mehr erfahren
Zuerst müssen Sie die Amazon S3-Abhängigkeit über pip installieren:
pip install boto3
Nach der Installation des Pakets können Sie den folgenden Code verwenden, um eine Datei aus der Cloud zu öffnen und gepackte Dateien darin zu speichern.
from ffmpeg_streaming import S3, CloudManager
logging.basicConfig(filename='streaming.log', level=logging.NOTSET, format='[%(asctime)s] %(levelname)s: %(message)s')
# siehe https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html, um Sicherheitsanmeldeinformationen zu erhalten
s3 = S3(aws_access_key_id='YOUR_KEY_ID', aws_secret_access_key='YOUR_KEY_SECRET', region_name='YOUR_REGION')
save_to_s3 = CloudManager().add(s3, bucket_name="bucket_name", folder="folder/subfolder")
# Ein Dateiname kann auch an die CloudManager-Klasse übergeben werden, um den Dateinamen zu ändern (z. B. CloudManager(filename="hls.m3u8"))
video = ffmpeg_streaming.input(s3, bucket_name="bucket_name", key="video.mp4")
# Sie können auch eine Datei von einem lokalen Pfad öffnen
# video = ffmpeg_streaming.input("/var/media/video.mp4")
hls = video.hls(Formats.h264())
hls.auto_generate_representations()
hls.output(clouds=save_to_s3)
# Sie können auch einen lokalen Pfad übergeben, um eine Kopie der Dateien auf Ihrem Server zu speichern
Google Cloud Storage ist ein RESTful Online-Dateispeicher-Webdienst zum Speichern und Zugreifen auf Daten in der Google Cloud Platform-Infrastruktur. Der Dienst kombiniert die Leistung und Skalierbarkeit von Googles Cloud mit erweiterten Sicherheits- und Freigabefunktionen. Es handelt sich um eine Infrastructure as a Service (IaaS), vergleichbar mit dem Amazon S3 Online-Speicherdienst. Im Gegensatz zu Google Drive und gemäß unterschiedlichen Dienstspezifikationen scheint Google Cloud Storage für Unternehmen besser geeignet zu sein. Mehr erfahren
Zuerst müssen Sie die Google Cloud Storage-Abhängigkeit über pip installieren:
pip install google-cloud-storage
Nach der Installation des Pakets können Sie den folgenden Code verwenden, um eine Datei aus der Cloud zu öffnen und gepackte Dateien darin zu speichern.
from ffmpeg_streaming import GCS, CloudManager, Formats
logging.basicConfig(filename='streaming.log', level=logging.NOTSET, format='[%(asctime)s] %(levelname)s: %(message)s')
# Erstellen Sie hier einen Dienstkontoschlüssel: https://console.cloud.google.com/apis/credentials/serviceaccountkey
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/var/keys/[YOUR-CREDENTIALS].json"
# wenn Sie unter Windows arbeiten, sollte der Pfad wie folgt aussehen: "C:\Benutzer\Benutzername\Desktop\[IHRE-ANMELDEINFORMATIONEN].json"
gcs = GCS()
save_to_gcs = CloudManager().add(gcs, bucket_name="bucket_name", folder="folder/subfolder")
# Ein Dateiname kann auch an die CloudManager-Klasse übergeben werden, um den Dateinamen zu ändern (z. B. CloudManager(filename="hls.m3u8"))
video = ffmpeg_streaming.input(gcs, bucket_name="bucket_name", object_name="video.mp4")
# Sie können auch eine Datei von einem lokalen Pfad öffnen
# video = ffmpeg_streaming.input("/var/media/video.mp4")
hls = video.hls(Formats.h264())
hls.auto_generate_representations()
hls.output(clouds=save_to_gcs)
# Sie können auch einen lokalen Pfad übergeben, um eine Kopie der Dateien auf Ihrem Server zu speichern
Azure Storage ist Microsofts Cloud-Speicherlösung für moderne Datenspeicherszenarien. Azure Storage bietet einen massiv skalierbaren Objektspeicher für Datenobjekte, einen Dateisystemdienst für die Cloud, einen Nachrichtenspeicher für zuverlässige Nachrichtenübermittlung und einen NoSQL-Speicher. Mehr erfahren
Zuerst müssen Sie die Microsoft Azure Storage-Abhängigkeit über pip installieren:
pip install azure-storage-blob
Nach der Installation des Pakets können Sie den folgenden Code verwenden, um eine Datei aus der Cloud zu öffnen und gepackte Dateien darin zu speichern.
from ffmpeg_streaming import MAS, CloudManager
logging.basicConfig(filename='streaming.log', level=logging.NOTSET, format='[%(asctime)s] %(levelname)s: %(message)s')
# siehe https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage, um Anmeldeinformationen zu erhalten
mas = MAS(account_name='account_name', account_key='account_key')
save_to_mas = CloudManager().add(mas, container="container-name")
# Ein Dateiname kann auch an die CloudManager-Klasse übergeben werden, um den Dateinamen zu ändern (z. B. CloudManager(filename="hls.m3u8"))
video = ffmpeg_streaming.input(mas, container="container-name", blob="video.mp4")
# Sie können auch eine Datei von einem lokalen Pfad öffnen
# video = ffmpeg_streaming.input("/var/media/video.mp4")
hls = video.hls(Formats.h264())
hls.auto_generate_representations()
hls.output(clouds=save_to_mas)
# Sie können auch einen lokalen Pfad übergeben, um eine Kopie der Dateien auf Ihrem Server zu speichern
Sie können Ihre Datei in eine benutzerdefinierte Cloud hochladen. Sie können eine benutzerdefinierte Cloud erstellen, die die "Clouds"-Klasse erweitert:
from ffmpeg_streaming import Clouds
class CustomCloud(Clouds):
def upload_directory(self, directory, **options):
# @TODO: ein Verzeichnis in eine Cloud hochladen
pass
def download(self, filename=None, **options):
# @TODO: eine Datei in einen lokalen Pfad herunterladen
pass
Nachdem Sie Ihre eigene Cloud-Klasse erstellt haben, können Sie den folgenden Code verwenden, um eine Datei aus Ihrer benutzerdefinierten Cloud zu öffnen und gepackte Dateien darin zu speichern.
custom = CustomCloud()
save_to_custom = CloudManager().add(custom, options="value")
video = ffmpeg_streaming.input(custom, option1="value1", option2="value2")
# Sie können auch eine Datei von einem lokalen Pfad öffnen
# video = ffmpeg_streaming.input("/var/media/video.mp4")
hls = video.hls(Formats.h264())
hls.auto_generate_representations()
hls.output(clouds=save_to_custom)
# Sie können auch einen lokalen Pfad übergeben, um eine Kopie der Dateien auf Ihrem Server zu speichern
Sie können Ihre Dateien in mehreren Clouds speichern:
save_to_multiple_clouds = (
CloudManager()
.add(s3, bucket_name="bucket-name")
.add(gcs, bucket_name="bucket-name")
.add(mas, container="container-name")
.add(custom, options="value")
)
hls.output(clouds=save_to_multiple_clouds)
Es kann auch ein Pfad übergeben werden, um eine Kopie der Dateien auf Ihrem lokalen Computer zu speichern.
hls.output('/var/media/hls.m3u8', clouds=save_to_multiple_clouds)