Products & Services | moovimee | About

 

 

ViSS Technologies

 

ViSSAPI Specification and

User Manual

 

RESTful API (Application Programming Interface) Specification and

User Manual for innovative functionality on Video Indexing and Search,

provided by ViSS (Video Search Systems)

www.viss-tech.com

 

Revision 2.15

January 2012

 

 

Executive Summary

 

This document describes the ViSSAPI (Application Programming Interface), by ViSS Technologies. This ViSSAPI is a RESTful API that provides the required set of controls to access the powerful functions of ViSS for video indexing and video search.

 

With this ViSSAPI, ViSS introduces to the video industry a new, ultra-fast, patent applied, stream based, multimodal video search engine, with an innovative method for characterizing (fingerprinting) video segments. ViSSAPI enables fast creation of fingerprint database (indexing functionality) and fast video retrieval from a video repository (search functionality).

 

 

Contact information and support

 

ViSSAPI has been designed and developed by ViSS (Video Search Systems), a startup company in video processing with over two years of innovative research and development of a revolutionary core technology, acting as a versatile multimodal video search engine. Our technology provides unique solution to the Media Content retrieval problem.

 

We are a Silicon Valley based company located at Sunnyvale CA, (440 N. Wolfe Rd. - Sunnyvale, CA 94085) constantly evolving our core technology to meet the demanding field of video and media content.

 

www.viss-tech.com

ViSS (Video Search Systems)

440 N. Wolfe Rd. Sunnyvale, CA 94085

federico@viss-tech.com | +1 408 459 1504

 

Our engineering team will provide you with top level support related to our API with samples and solutions answering your technical enquires.

 

 

ViSSAPI Performance

 

ViSSAPI provides the fastest method in the industry to search a video clip in a pool of videos. The figure below presents the benchmarking results for the search times of a short clip (5 to 8 seconds duration) into a pool of 300 hours and 600 hours video repository.

 

More specifically, for a 300 hours repository, the search algorithm produced the first occurrence result in just 5 seconds, while completing the total search process in a total of just 8 seconds.

 

For the case of 600 hours of video repository, the first search result was produced in just 6 seconds and the entire search has been completed in a total of just 8 seconds!

 

Figure 1: ViSS video on video search performance (basic search algorithm)

 

RESTful ViSSAPI on the Cloud

 

The overall schema of ViSS technology on the cloud is depicted in the next figure 2. The main parts of this technology reside on the ViSS server. This implements the following main functions:

 

- Connect with the Web Server and implement the REST protocol

- Insert the info (fingerprint) extracted from videos into the MS-SQL database (Indexing)

- Search an indexed video among the already indexed videos residing in an MS-SQL database

- List all videos in the database

- Delete a video from the database

 

Videos to be indexed can reside either in the ViSS server or in a cloud storage device (e.g. Amazon S3)

 

A web developer can create custom services, based on the agnostic RESTful API of ViSS, using the web technology and language (php, JavaScript, Python, Ruby, etc.) of his choice.

 

Figure 2: ViSS technology on the cloud

 

ViSSAPI Reference

 

General schema of URL

http://<IP address of ViSS Server>:4567/<command ID>/<parameters>/<parameters>/<parameters>

where <command ID> can be one of the following values:

 

Command

Command ID

Connect to Server

1

Disconnect from Server

2

List of indexed videos

6

Delete an indexed video

7

Index Setup

3

Index

4

Search Setup

53

Search (simple)

5

Search (extended)

51

Get Search Results

52

 

Note:

For all the examples listed below, we use a sample user with user name (un): einstein and password (pw): viss. Those credentials, user name (un) and password (pw) will be given to any registered user on our service and will uniquely identify the user. Those credentials will be used as parameters on our ViSSAPI calls.

 

Moreover, those credentials are valid for the access of our ftp server, that the used has to upload his video files, BEFORE the usage of the ViSSAPI calls. For more details on the video files upload process, see the relevant paragraph entitled “How to Upload Videos” at the end of this page.

 

 

Connect to Server

Connects to a ViSS video database

URL

http://<IP address of ViSS Server>:4567/1/<VISS database server>/un=<user name>,pw=<password>

Example API call

http://192.102.7.47:4567/1/VISSAPISERVER/un=einstein,pw=viss

Response

ViSSDBConnect() status: OK !

 

Disconnect from Server

Connects to a ViSS video database

URL

http://<IP address of ViSS Server>:4567/2/<VISS database server>/un=<user name>,pw=<password>

Example API call

http://192.102.7.47:4567/2/VISSAPISERVER/un=einstein,pw=viss

Response

ViSSDBDissconnect() status: OK !

 

List of indexed videos

Returns the list of videos already indexed into the database.

URL

http://<IP address of ViSS Server>:4567/6/un=<user name>,pw=<password>

Example API call

http://192.102.7.47:4567/6/un=einstein,pw=viss

Response

Comma separated array of strings. Each string has the video ID and video name of the videos uploaded (and indexed) by the user. Response example:

["7 | Casablanca.avi\n", "10 | Godfather.mp4\n"]

 

Delete an indexed video

Deletes a video from the database.

URL

http://<IP address of ViSS Server>:4567/7/un=<user name>,pw=<password>/<video ID>

Example API call

http://192.102.7.47:4567/7/un=einstein,pw=viss/666

Response

1). On successful deletion: ViSSDeleteVideo() status: OK !

2). On failure due to non existent video ID: ViSSDeleteVideo() status: ERROR: ["PROBLEM during DELETE; video ID does not exist!"]

3). On failure due to non recognizable user ID: ViSSDeleteVideo() status: ERROR: ["PROBLEM during DELETE; USER does not exist!"]

 

Index Setup

Processes the video file in the order to extract its index for the database.

URL

http://<IP address of ViSS Server>:4567/3/un=<user name>,pw=<password>/<video file>/<scene change storage option: 0 or 1 or 10 or 11>

Example API call

http://192.102.7.47:4567/3/un=einstein,pw=viss/Godfather.mp4/1

Scene change storage options:

o "1", will produce .jpg image files of the scene changes in the video, as detected by ViSS engine.

o "0", no scene change .jpg image files will be created.

o "11", both .jpg image files and .flv movie file will be produced.

o "10", only .flv movie file will be produced.

 

Response

1). On success: ViSSIndexSetup() status: OK !

2).On completion of the process of extracting the video index and pending the insertion of this index into the database:

ViSSIndexSetup() status: ERROR: ["Extracting frames info completed. Execute ViSSIndex()!"]

3). While still in the process of extracting the video index:

ViSSIndexSetup() status: ERROR: ["Extracting frames info in progress: [1069 of 2675 (40%)]"]

 

Index

Inserts the video index prepared by the previous Index Setup action, into the database

URL

http://<IP address of ViSS Server>:4567/4/un=<user name>,pw=<password>

Example API call

http://192.102.7.47:4567/4/un=einstein,pw=viss

Response

1). On success: ViSSIndex() status: OK !

2). If previous extraction process not completed:

ViSSIndex() status: ERROR: ["No fingerprint to ViSSIndex()!"]

3). While still in the process of extracting the video index:

ViSSIndex() status: ERROR: ["Extracting frames info in progress: [2139 of 2675 (80%)]"]

 

Search Setup

Setups the search engine by defining the video or video fragment to be used as query

URL

http://<IP address of ViSS Server>:4567/53/un=<user name>,pw=<password>/<video ID>/from=<frame start>,to=<frame end>

Example API call

http://192.107.7.47:4567/53/un=einstein,pw=viss/666/from=16,to=1024

Response

1). On success: ViSSCreateQuery() status: OK !

2). Video to be used as query is ill-defined or void of usable content:

ViSSCreateQuery() status: ERROR: ["No records inserted in the QUERRY; most probably video ID does not exist!"]

 

Search (simple)

Searches the video, as defined by the previous Search Setup step, into the database

URL

http://<IP address of ViSS Server>:4567/5/un=<user name>,pw=<password>/

Example API call

http://192.102.7.47:4567/5/un=einstein,pw=viss

Response

ViSSSearch() status: OK !

 

Search (extended)

Searches the video, as defined by the previous Search Setup step, with extended parameters, user defined choice

URL

http://<IP address of ViSS Server>:4567/51/un=<user name>,pw=<password>/mode=1,qstart=16,qstop=2048,kmax=12,md=1,fa=1,jit=0,colorTol=5

Example API call

http://192.102.7.47:4567/51/un=einstein,pw=viss/mode=1,qstart=16,qstop=2048,kmax=12,md=1,fa=1,jit=0,colorTol=5

Response

ViSSExtSearch() status: OK !

 

Get Search Results

Returns to the user the results of the search, as produced by the previous Search step.

URL

http://<IP address of ViSS Server>:4567/52/un=<user name>,pw=<password>

Example API call

http://192.102.7.47:4567/52/un=einstein,pw=viss

Response

ViSSSearchGetResult() status: OK !

 

 

Using ViSSAPI

 

This paragraph presents the basic methodology and usage of the ViSSAPI functionality.

 

Step 1. Connect to the database

http://192.102.7.47:4567/1/VISSAPISERVER/un=einstein,pw=viss

 

 

Step 2. Index (=insert a video)

2.1. Initially setup the index process:

http://192.102.7.47:4567/3/un=einstein,pw=viss/Godfather.mp4/1

2.2. Index the previous video.  Note: the next call will fail, if the previous one is not completed

http://192.102.7.47:4567/4/un=einstein,pw=viss

 

Step 3. Search a video within the database

3.1. Search setup

http://localhost:4567/53/un=einstein,pw=viss/666/from=16,to=1024

 

3.2.a. Simple Search

http://192.102.7.47:4567/5/un=einstein,pw=viss

OR

3.2.b. Extended (parameterized) Search

http://192.102.7.47:4567/51/un=einstein,pw=viss/mode=1,qstart=16,qstop=2048,kmax=12,md=1,fa=1,jit=0,colorTol=5

 

3.3. Get Search Results

http://192.102.7.47:4567/52/un=einstein,pw=viss

 

 

Step 4. Disconnect from the database

http://192.102.7.47:4567/2/VISSAPISERVER/un=einstein,pw=viss

 

While connected to the database, all videos indexed by the user can be listed, new ones can be inserted or existing ones deleted, as specified above.

 

 

How to Upload Videos

 

ViSSAPI is a cloud service providing to the user the ability to upload the Video files to our servers. Consequently, the first step that the user must perform, before the usage of ViSS RESTful API (as described in the previous paragraphs) is to upload his Video files, in any video encoding format, to our repository server, using the user name and password provided by our support team. This user name and password combination is the one and only identifying the user and used as parameters in all ViSSAPI calls.

 

The same user name and password combination, can be used to access our ftp server using any ftp client. The user files will be stored at user specific directories that can be accessed only by the registered user, using his user name and password unique credentials.

 


 

 


 

 

 

 

 

 

 

 

 

 

Copyright (c) 2012 ViSS Technologies. All rights reserved.