Videos in Drupal einbinden und wiedergeben

Di, 22.06.2010 - 10:53 -- Daniel Espendiller

Irgendwie konnte ich keine gute brauchbare und halbwegs aktuelle Anleitung finden, wie man innerhalb von Drupal Videos insbesondere h264 bzw. mp4 einbinden kann. Deswegen hier meine Möglichkeiten. Vielleicht hilft es dem ein oder anderen.

Video

Ohne Module

Bisher habe ich ich es immer ohne Module gelöst indem ich einen Inhaltstypen (videoseite) für Videos angelegt habe und diesen dann innerhalb des Themes per node-videoseite.tpl.php überschrieben habe. Die Videos werden in ein CCK Feld hochgeladen und dann hochgeladen. Auf Dauer natürlich keine Lösung, es reicht aber wenn man nicht gleich wieder eine ganze Reihe Module installieren will.

$_vid_template='
<script type="text/javascript" src="/flowplayer.min.js"></script>
  <a
    href="%vid%"
    style="display:block;width:520px;height:330px"
    id="player">
  </a>
 
  <script>
    flowplayer("player", "/flowplayer.swf",  {
      clip: {
      autoPlay: false,
      scaling: \'fit\',
      autoBuffering: true // <- do not place a comma here
    }
  });
  </script>';
[...]
<?php print $content ?>
[...]
<?php
$videonodes=count($node->field_video);
if ($videonodes>0 AND !$page == 0) {
  $vids="";
  for($i=0;$i<$videonodes;$i++) {
   $vids.=str_replace("%vid%","/".$node->field_video[$i]['filepath'],$_vid_template);
  }
  if ($vids!="") echo $vids;
}
[...]

Flowplayer

Damit überhaupt ein Flashplayer innerhalb der SWF Tools angewählt werden kann, muss ein unterstützter Flash-Video-Player installieren. Dazu aktiviert man das entsprechende Drupal Module in unserem Fall Flowplayer3. Den Flowplayer laden wir uns von der Homepage runter und kopieren die enthaltenen Daten in den shared Pfad siehe unten. Die Versionsnummer sollten wir lassen, sonst gibts Probleme.
Unter Einstellungen > SWF Tools > FlowPlayer 3 müssen wir dann die genaue Bezeichnung der swf mit der Version eintragen. In diesem Fall also flowplayer-3.2.2.swf

sites\all\modules\swftools\shared\flowplayer3\flowplayer-3.2.2.swf
sites\all\modules\swftools\shared\flowplayer3\flowplayer.controls-3.2.1.swf

Filehandler: h264 und mp4

Damit Dateianhänge an Nodes auch mittels SWF Tools und Flashplayer angesprochen werden, müssen wir anhand der Dateiendung einstellen, was genau passieren soll. Über Einstellungen > SWF Tools > File handling können für jede Dateiendung einen eigenen Player definieren. Normalerweise nutzen Videos die flv Endung, mittlerweile hat sich hier allerdings mittlerweile h264 mit mp4 durchgesetzt.
In SWF Tools wurde diese Verhalten noch nicht eingebunden (Version 2.x). Also müssen wird hierfür unter mixed media (alle unbekannten Dateiendungen) einen Player einstellen.

CCK

Irgendwie müssen wir die Videos auf unsere Seite bekommen. Am einfachsten legen wir ein mittels FileField ein Feld für einen Inhaltstypen an, wodrüber die Video-Verwaltung abgewickelt wird. Dank dieser Methode können wir direkt über Felder anzeige Funktion von CCK nutzen und die Ausgabe des Feldes an SWF Tools übergeben.
Neben einer Playliste werden auch einzelnen Dateien unterstützt und sollte dann entweder SWF Tools - Playlist oder die anderen SWF Tools Optionen. Zusätzlich sollte man noch unter Einstellungen > SWF Tools > CCK formatters nachsehen. Hier kann man einstellen wie sich eine Playliste verhalten sollten, wenn nur eine Datei enthalten ist. z.B. ein Bild ausgeben. Kann mir momentan keinen Reim rausmachen wofür man es benötigen sollte, aber wer weiß.

Hinweis

Nun sollte alles soweit funktionieren. Was ich immer noch einstelle ist, dass Videos direkt nach dem Aufrufen bereits heruntergeladen werden (Auto buffering). Dadurch wird direkt vom Flowplayer ein Vorschaubild angezeigt, wie oben im Bild zu sehen war. Sollte man gerade im Internet mit Bezug auf die Bandbreite allerdings mit Vorsicht genießen.
Und das Videoscaling sollte auf Fit gesetzt werden, um keine Eierköpfe und co. zu bekommen :) .

Youtube und Co.

Neben Videos direkt auf der eigenen Seiten hochzuladen, kann man mittels Drupal auch Videos von anderen Anbieter einbinden, so bekommt man wesentlich mehr Seitenaufrufe. Hierzu gibt es das Module Embedded Media Field. Es stellt ein CCK Feld bereit, in welches wir die URL eines externen Videos angeben können. Die Einbindung des passenden Players über nimmt das Module von alleine.