Giter Club home page Giter Club logo

openvideoannotation's Introduction

OpenVideoAnnotation

Annotation Plugin

Annotations.js is a plugin for Video JS player. The aim of this plugin is to create annotations in video-js.

Live-Demo

There is a demo of the annotations plugin in the next webpage:

https://gteavirtual.org/ova/index.php?r=site/page&view=explore

Installation

To use the tool you need to install the video-js player plugin, rangeslider plugin for video-js and the Annotator plugin to annotate text and video.

In addition add annotations.min.js and annotations.min.css CDN distributed file to your head tag, just after videojs:

	<head>
		<!-- Annotator -->
		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
		<script src="http://assets.annotateit.org/annotator/v1.2.5/annotator-full.min.js"></script>
		<link rel="stylesheet" href="http://assets.annotateit.org/annotator/v1.2.5/annotator.min.css">

		<!--video-js-->
		<link href="http://vjs.zencdn.net/4.1/video-js.css" rel="stylesheet">
		<script src="lib/video-js/video.min.js"></script>

		<!--RangeSlider Pluging-->
		<script src="lib/rangeslider.min.js"></script>
		<link href="lib/rangeslider.min.css" rel="stylesheet">

		<!--Annotations Pluging-->
		<script src="build/annotations.min.js"></script>
		<link href="build/annotations.min.css" rel="stylesheet">
	</head>

Usage

Load all the videos in video-js with different id, as you can see in the tutorial of video-js player

<video id="vid1" class="video-js vjs-default-skin" controls preload="none" width="640" height="264"
poster="http://video-js.zencoder.com/oceans-clip.png"
data-setup=''>
	<source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' />
	<source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm' />
	<source src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg' />
</video>

To load and control the plugin from Javascript must select the

with the content to annotate. In addition add the plugin to the videojs, as follow:

<script>
	var options = {
    		optionsAnnotator: {user: {},store: {}},
			optionsVideoJS: {},
			optionsRS: {},
    		optionsOVA: {posBigNew:'ul'},
    	}
	//Add the div id to annotate by Annotator. In the demo.html the id is "airlock" too.
	var ova = new OpenVideoAnnotation.Annotator($('#airlock'),options);
	
	//(optional) Set the configuration for the users
	ova.setCurrentUser($('#username').val());

	$('#username').change(function () {
		ova.setCurrentUser($(this).val());
	});
	
</script>

The initial options for the annotations is the position of the button for new annotations:

posBigNew (options):

  • ul (up left) -by default-
  • ur (up right)
  • bl (below left)
  • br (below right)
  • c (center)
  • none (without button)

NumAnnotations: it is the number of Annotation that will be load in the display. The other annotation will be hide under the scroll. (By default: 16)

URl API to preload an annotation

This plugin allow to share an annotation with two methodologies:

The first method will send a stored annotation in the database (ToDo)

The second method will send a new isolated annotation that is not in the database. The code to share a annotation with this method is:

http://url-with-the-video.com/?ovaSrc=(Source)&ovaContainer=(ContainerID)&ovaStart=(Start)&ovaEnd=(End)&ovaText=(Text)&ovaUser=(User)

All the values between brackets must be replaced by the real value.

The obligatory values are:

  • ovaSrc = source where is the video. For example, in the demo video with this plugin the source is in: http://video-js.zencoder.com/oceans-clip.mp4
  • ovaContainer = the id where we had put the video. In the demo is vid1
  • ovaStart = the time to start the video
  • ovaEnd = the time to end the video

The optionals values are:

  • ovaText = the text that the user will see.
  • ovaUser = the user who has sent the annotation

Caution, all these variables must be ready to be in a URL link and take care of special characters like &()#/. To do this, we can parse the string with decodeURIComponent().

An example of URL API is this:

http://danielcebrian.com/annotations/demo.html?ovaContainer=vid1&ovaSrc=http%3A%2F%2Fvideo-js.zencoder.com%2Foceans-clip.mp4&ovaStart=2&ovaEnd=10&ovaText=This%20is%20test&ovaUser=Test%20User

API Methods to take control of the plugin

Once the plugin is started and the DOM readed, we can control the Open Video Annotator giving the id of the video in the html. It is possible to use the following functions:

newVideoAn(VideoID)

Create a new video annotation. VideoID is the ID in html for the video. In the demo example is 'vid1'.

	ova.newVideoAn('divID');

showDisplay(VideoID)

Show the annotation display

	ova.showDisplay('divID');

hideDisplay(VideoID)

Hide the annotation display

	ova.hideDisplay('divID');

setposBigNew(VideoID, position)

Set the position of the new big annotation button. The values for the inlet position are:

  • ul (up left) -by default-
  • ur (up right)
  • bl (below left)
  • br (below right)
  • c (center)
  • none (without button)
	ova.setposBigNew('divID',position);

playTarget(annotationId)

Play an annotation using the annotation Id, like this example:

	ova.playTarget('8I2NBkJbQoeF3-bqgpcwTw');

openvideoannotation's People

Contributors

danielcebrian avatar chsadmin avatar bryant1410 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.