Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: minor text change

...

The Islandora Video Solution Pack is used to ingest digital videos into Fedora. It supports creation of derivatives in various different video formats, and requires the server-side installation of accompanying codecs to enable this functionality. It can also be configured to stream the video to a player window on-site using JWPlayer.

Dependencies

  • Islandora
  • Tuque
  • ffmpegFFmpeg is required if TN, MKV and or MP4 derivatives are to be created on the same server as Islandora. Compliation ompilation guides: UbuntuCentOS
  • ffmpeg2Theora is required (optional) is only necessary if OGG and thumbnail derivatives Theora video derivatives are to be created on the same server as Islandora (Optional  - Instructions).
  • The IslandoraIslandora JWPlayer library (and the Libraries API module) or the  Video.js player are is required to play videos in a video object's 'View' tab.
Note

FFmpeg version versions that have been tested:

  • 1.1.
1 has been tested.
  • 4 It can be downloaded here
  • 2.8.11-0ubuntu0.16.04.1 from Ubuntu 16.04 Package Management

FFmpeg sample compile flags: --prefix=/usr/local/stow/ffmpeg-1.1.4 --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdc1394 --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid

Note

 remove the --enable-x11grab flag on the ffmpeg configure.

...

Installation

This installation cam can be very tricky, and possibly the most difficult of all components of the Islandora stack. Please see this post regarding past installs on the Islandora Google Group for details (please replace any references to release 7.x-1.3 with 7.x.1-5):
https://groups.google.com/forum/#!topic/islandora/wuOjmRTY5Rs

...

The Islandora Video Solution pack can be configured at Administration » Islandora » Solution Pack Configuration » Video Solution Pack  (http://path.to.your.site/admin/islandora/solution_pack_config/video), and includes the following options:

Image Added

Viewers

If players have video.js player has been correctly installed on the server, you will be able to select which one to use here. 

  • Keep original file after ingest? - Check this option to retain files uploaded to a video collection as a datastream appended to the video object

Image Removed

...

it as the default player. Videojs is the only player currently supported by Islandora. JW Player is no longer supported beginning with Islandora 7x-1.11. 

Paths to FFmpeg/Theora executables

For derivative creation, the Video Solution Pack needs to know the location of the binaries that perform conversion. On Unix-based systems, this can often be done by running:

Code Block
whereis ffmpeg ffmpeg2theora

and checking Check for binary package files located in folders called 'bin' (such as /usr/bin, /usr/local/bin, etc.).

Warning

Video conversion in any context is an extremely resource-heavy task that can be very taxing on the computer performing it. In the case of Islandora, when using these derivative creation options, the task is called upon and performed by the 'apache' user on the same server Islandora is running on and that users are performing other tasks with. When creating video derivatives on ingest, please consider either delaying ingest to a low-traffic period of time, or performing derivative creation on another machine altogether.

Create .mkv derivative

Creates an optional datastream with datastream ID "MKV". 

Create display mp4 locally

Most players require a datastream called "MP4". Check this option to create the MP4 datastream locally. Disable this if another server will create derivatives.

MP4 audio codec

The audio codec used by ffmpeg. If you are concerned about audio quality in your playable video derivatives, then the current best practice is to use libfdk_aac, which (due to license incompatibilities) cannot be bundled with ffmpeg. Therefore you must compile ffmpeg from source (see above) using the flag `--enable-libfdk-aac `. See https://trac.ffmpeg.org/wiki/Encode/AAC for more details.

Create OGG locally

Note

Creating OGGs locally only exists for legacy compatibility. Unless you have a very good reason for doing so, you should not use this option. If necessary, view ffmpeg2Theora documentation for more on creating OGG derivatives.

Create thumbnail locally

Use ffmpeg to extract a thumbnail from the first section of the video file. This is much less resource-intensive than creating video derivatives, but the option exists to create these derivatives on an external server or defer them as well.

Play OBJ datastream if MP4 is not present

While the MP4 datastream is intended to be the web-friendly, playable version of the file in the 'OBJ' datastream, in some cases, the 'OBJ' datastream is perfectly web-friendly and playable. This option will play such 'OBJ' datastreams in the player in cases where there is no 'MP4' datastream.  In conjunction with the above option to (not) create display 'MP4' locally, this option will allow you to save on storage space for a collection of MP4-type objects.

Maximum file size for playing OBJ (in MB)

Large files may cause problems with players. There is an assumption that 'MP4' derivatives will not be too large to play in any web-based player, but high-quality OBJs might. This provides a size cap on the files that will be served to the player from the OBJ datastream.

 

Content Models, Prescribed Datastreams and Forms

The Video Solution Pack comes with the following objects in http://path.to.your.site/admin/islandora/solution_pack_config/solution_packs:

...

RELS-EXT

Default Fedora relationship metadata

MODS

MODS descriptive metadata record created during ingest

DC

Dublin Core descriptive metadata record

OBJ

The original video file ingested

TECHMDFITS technical metadata record MP4MP4 derivative created during ingest by ffmpeg and used by JWPlayer if no suitable video exists
TNThumbnail image pulled from a frame halfway through the video by ffmpeg
MP4MP4 derivative created during ingest by FFmpeg and sent to the Video.js viewerOGGOGG audio-only derivative created by ffmpeg2theora
MKVMKV derivative optionally created during ingest by ffmpegTNThumbnail image pulled from a frame of the video by ffmpeg2theoraFFmpeg

The Video Solution Pack comes with the Video MODS Form.

...

If you would like to contribute to this module, please check out our helpful  CONTRIBUTING.md. In addition, we have helpful Documentation for Developers info info, as well as our our Developers section section on the Islandora.ca site.

The Video Solution Pack includes an ingest/purge load test that is disabled and unusable by default. This particular solution pack was chosen for load testing due to the resource-heavy process of creating video derivatives and ingesting several potentially-massive files. To enable and use it:

  1. Make sure that the Testing module is enabled and that all prerequisites for derivative creation are satisfied for the Video Solution Pack.
  2. Edit the islandora_video.info file in this folder, removing the ; and whitespace before the line files[] = tests/islandora_video_load_test.test
  3. Create a folder in the the tests/fixtures/ called  called load, and place as many videos in that folder as you would like to ingest. These files all must fit within the size specified by your php.ini file's maximum post size, and they must have a file extension supported by the Video Solution Pack, otherwise they will not be picked up by the load test.
  4. Clear the Drupal cache.

...

Note

THIS WILL NOT WORK ON OPERATING SYSTEMS THAT DO NOT SUPPORT THE PHP GLOB_BRACE FLAG (E.G. SOLARIS).