Difference between revisions of "Video documents"

From EPrints Documentation
Jump to: navigation, search
(Video.js Integration)
Line 44: Line 44:
  
 
<source lang="perl">
 
<source lang="perl">
#TN - render a video.js player for video documents
+
... code under review...
%files = $doc->files;
 
my $type = "";
 
my $videoDiv = $session->make_element( "div" );
 
foreach my $file ( keys %files )
 
{
 
$type = $doc->get_type;
 
 
if ($type eq "video"){
 
my $video_preview_image = $doc->thumbnail_url("preview");
 
my $videomimetype_1="video/mp4";
 
my $video_preview_1 = $doc->thumbnail_url("video_mp4");
 
my $videomimetype_2="video/ogg";
 
my $video_preview_2 = $doc->thumbnail_url("video_ogg");
 
 
if ($video_preview_1 || $video_preview_2){
 
  my $videoplayer = $session->make_element( "video", id=>"my-video", class=>"video-js", controls=>"", preload=>"auto", poster=>$video_preview_image, 'data-setup'=>"{}" );
 
  if ($video_preview_1){
 
  my $source_1 = $session->make_element ("source", src=>$video_preview_1, type=>$videomimetype_1);
 
  $videoplayer->appendChild( $source_1 );
 
  }
 
if ($video_preview_2){
 
my $source_2 = $session->make_element ("source", src=>$video_preview_2, type=>$videomimetype_2);
 
$videoplayer->appendChild( $source_2 );
 
}
 
  my $nojsP = $session->make_element ("p", class=>"vjs-no-js");
 
my $nojstext = "To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video";
 
$nojsP->appendChild( $session->make_text( $nojstext) );
 
$videoplayer->appendChild( $nojsP );
 
$videoDiv->appendChild($videoplayer);
 
}
 
}
 
}
 
#$videoDiv now holds the video player, and can be added to the page with appendChild($videoDiv)
 
 
</source>
 
</source>
  

Revision as of 20:05, 14 October 2016


This page is in development and will eventually contain information about supporting Video documents in EPrints.

Related Pages

Video Transcoding by EPrints/FFMPEG

Are there particular video codecs/containers recommended for the streaming/seeking to work (H264 in MP4 container)? EPrints performs the following tasks when generating "thumbnails" for videos, using FFMPEG:

  • generate an image thumbnail
  • transcode video to ogg container
  • transcode video to mp4 container

Video Document Integration

Should the video player be integrated as an iframe embed code, document "preview" or as a part of the eprint_render? Most recent version of EdShare generates a video player directly on the abstract page, rather than a document "preview". It is also possible to embed a video player (typically with an iframe) to stream content from another site, like YouTube and Vimeo.

Video Players

Depositors can upload video documents. Since EPrints 3.3, there is a lightbox/flowplayer in EPrints, under /lib/static/. However, EPrints does not embed any video player as a "preview" thumbnail or on the abstract page. To generate a video player for a document in EPrints, the Kultur plugin (http://files.eprints.org/773/) can be used to extend the preview with a video player.

Video.js Integration

One solution is to integrate video.js with EPrints. Following these instructions: http://videojs.com/getting-started/ Integration involves adding the following to the <head> of the template (globally, in /archives/ARCHIVEID/lang/LANGID/templates/default.xml)

<link href="http://vjs.zencdn.net/5.11.7/video-js.css" rel="stylesheet"/>
<!-- If you'd like to support IE8 -->
<script src="http://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script>

and the following right before the last closing </body> tag:

<script src="http://vjs.zencdn.net/5.11.7/video.js"></script>

Generating the video player can be done in eprint_render.pl, as follows:

... code under review...

Server Settings

The following file should contain a path to ffmpeg and ffprobe:

   /opt/eprints3/lib/syscfg.d/executables.pl

ffmpeg should be installed on the server. On some servers (Ubuntu), 'libx264' needs to be installed for the H264 codec.