Medien-Schreib-API: PHP-Beispiel – Video-Upload

ProduktEdition
Video CloudProfessional, Enterprise

In dieser Codeübersicht einer Beispielanwendung erfahren Sie, wie Sie eine PHP-Seite verwenden, um ein Video mittels PHP und der Medien-Schreib-API in Ihre Medienbibliothek hochzuladen. Das Video wird über ein HTML-Formular übermittelt. Danach ist ein PHP-Skript dafür zuständig, das Formular zu verarbeiten und das Video an den Video Cloud-Service hochzuladen.

Der Code in diesem Beispiel soll Ihnen helfen, eigene Anwendungen zum Hochladen von Videos zu erstellen oder die Beispielanwendung nach Bedarf zu ändern.

Bevor Sie beginnen

Das Beispiel besteht aus zwei Dateien. Laden Sie diese beiden Dateien herunter, bevor Sie beginnen:

  • Laden Sie uploadvideo.php herunter, ein PHP-Skript zum Verarbeiten des Formulars und Hochladen des Videos.
  • Laden Sie uploadVideoForm.html herunter, das ein Formular anzeigt, in das der Benutzer den Namen, die Beschreibung, die Tags und den Pfad eines Videos eingeben kann. Über die Absenden-Schaltfläche des Formulars werden die eingegebenen Daten an das PHP-Skript übergeben.

Hinweis: Dieses Codebeispiel basiert auf einer Vorversion des PHP MAPI Wrapper-Projekts. Informationen zu diesem PHP-SDK finden Sie unter http://opensource.brightcove.com/project/PHP-MAPI-Wrapper/. Unter „Create - Video“ finden Sie ein Upload-Beispiel.

Stellen Sie auch sicher, dass folgende Voraussetzungen gegeben sind:

  • Sie sollten mit PHP, JSON und cURL vertraut sein.
  • Stellen Sie sicher, dass die hochzuladende Videodatei die maximale Dateigröße von 2 GB für den Upload nicht überschreitet.

In diesem Abschnitt werden folgende Lerninhalte behandelt:

Bereitstellen Ihrer Tokens

Bevor Sie das Skript verwenden können, müssen Sie zunächst gültige Tokens für Ihr Konto bereitstellen. Dieser Codeblock erstellt eine neue Instanz der Brightcove-Klasse, die im Folgenden definiert wird. Einzelheiten zum Zugriff auf Ihre Tokens finden Sie unter Verwalten von Tokens der Medien-API.

// Brightcove-Klasse instanziieren
$bc = new Brightcove(
    '[[READ_TOKEN]]',
    '[[WRITE_TOKEN]]'
);

Übermitteln des Formulars

Mit PHP ist es sehr einfach, auf die mit einem Formular übermittelten Variablen und Dateien zuzugreifen. Der erste Teil des Skripts parst die Formularübermittlung und verarbeitet die vom Benutzer angegebene Datei:

// Daten für das neue Video-DTO unter Verwendung der Formularwerte festlegen
$metaData = array(
	'name' => $_POST['bcName'],
	'shortDescription' => $_POST['bcShortDescription']
);

// Datei in den ursprünglichen Dateinamen umbenennen (anstelle von temporären Namen wie „a445ertd3“)
$file = $_FILES['bcVideo'];
rename($file['tmp_name'], '/tmp/' . $file['name']);
$file = '/tmp/' . $file['name'];

Durchführen der Anforderung

Sie haben nun die Metadaten über das Video und die Datei selbst erfasst. Jetzt können Sie die createVideo-Methode aufrufen, indem Sie ihr einen Verweis auf die Datei und diese Metadaten übergeben.

// Datei an Brightcove senden
echo $bc->createVideo($file, $metaData);

Grundlagen der Brightcove-Klasse

Die Brightcove-Klasse erledigt den Großteil des Arbeitsaufwands in dieser Anwendung. Die Brightcove-Klasse ist verantwortlich für die folgenden Schritte:

  • Erfassen der erforderlichen Variablen zum Durchführen der Anforderung
  • Verarbeiten der HTTP-Anforderung
  • Bereitstellen eines Mechanismus für eine erneute Durchführung der Anforderung, falls erforderlich

Diese Aufgaben sind folgendermaßen im Code für die Brightcove-Klasse implementiert:

class Brightcove {
        public $token_read = '';
        public $token_write = '';
        public $read_url = 'http://api.brightcove.com/services/library?';
        public $write_url = 'http://api.brightcove.com/services/post';

	public function __construct($token_read, $token_write = NULL ) {
		$this->token_read = $token_read;
		$this->token_write = $token_write;
	}

	public function createVideo($file = NULL, $meta) {
		$request = array();
		$post = array();
		$params = array();
		$video = array();

		foreach($meta as $key => $value) {
			$video[$key] = $value;
		}
		$params['token'] = $this->token_write;
		$params['video'] = $video;

		$post['method'] = 'create_video';
		$post['params'] = $params;

		$request['json'] = json_encode($post);

		if($file) {
			$request['file'] = '@' . $file;
		}

		// Nutzen Sie die CURL-Bibliothek für HTTP-Anforderungen
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $this->write_url);
		curl_setopt($curl, CURLOPT_POST, 1);
		curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($curl, CURLOPT_VERBOSE, TRUE );
		curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 300);
		curl_setopt($curl, CURLOPT_TIMEOUT, 300);
		$response = curl_exec($curl);

		curl_close($curl);

		// Antworten werden in JSON übertragen und ins PHP-Objekt decodiert
		$json = json_decode($response);

		// Überprüfen Sie den Anforderungsfehlercode, und rufen Sie erneut
		// createVideo auf, wenn die Anforderung einen Fehler 213 erzeugt.
		//  Ein Fehler 213 tritt auf, wenn Sie die zulässige Anzahl
		//  gleichzeitiger Schreibanforderungen überschreiten.
		if(isset($json->error))	{
			if($json->error->code == 213) {
				return $this->createVideo($file, $meta);
			} else {
				return FALSE;
			}
		} else {
			return $response;
		}
	}
}

Hochladen mithilfe eines HTML-Formulars

Nun können Sie das definierte PHP-Skript in einem einfachen HTML-Formular einsetzen.

Dieses Beispiel definiert eine POST-Aktion für das Skript. Dieses Formular enthält auch zwei Eingabefelder zur Angabe des Namens und der Beschreibung des hochgeladenen Videos. Außerdem steht ein drittes Eingabefeld zur Verfügung, über das Sie die Videodatei in Ihrem Dateisystem suchen können:

<form method="post" action="uploadVideo.php" enctype="multipart/form-data">
	<input type="hidden" name="MAX_FILE_SIZE" value="16777000" />
	Titel: <input type="text" name="bcName" /><br />
	Kurzbeschreibung: <textarea name="bcShortDescription"></textarea><br />
	Datei: <input type="file" name="bcVideo" /><br />
	<input type="submit" />
</form>

Über die Absenden-Schaltfläche des Formulars werden die eingegebenen Daten an das PHP-Skript übergeben. Das Skript ist dann dafür zuständig, die Eingabe zu parsen und die createVideo-Methode einzurichten und aufzurufen.

Weitere Hilfe

Falls Sie für die ordnungsgemäße Wiedergabe Ihrer Videos Hilfe benötigen, können Sie den Brightcove-Support nutzen. Sie können hier eine Anfrage übermitteln. Um sicherzustellen, dass Sie schnellstmöglich eine Antwort erhalten, ist unten in einer Liste aufgeführt, was der Support für die Problemlösung benötigt.

  • Die Dateigröße
  • Die Hochlademethode (Standard, beschleunigt, FTP, Schreib-API)
  • Der Dateiname und die Erweiterung
  • Wird der Upload angehalten, bevor er 100 % erreicht?
  • Erreicht der Upload 100% und wird ein Fehler generiert? Falls ein Fehler generiert wird, senden Sie bitte einen Screenshot (bevorzugt) oder den Text der Fehlermeldung.

Nach dem Übermitteln Ihres Falls erhalten Sie eine Bestätigungs-E-Mail vom Brightcove-Support. Antworten Sie auf die Bestätigungs-E-Mail, wenn Sie dem Brightcove-Support weitere Informationen zu Ihrem Fall zukommen lassen möchten.

Kommentar hinzufügen

The content of this field is kept private and will not be shown publicly.
0

Kommentare