bigbluebutton-Github/record-and-playback/matterhorn
2011-06-08 19:40:19 -04:00
..
scripts - remove publish/matterhorn.rb as we now run it as a separate process 2011-06-08 19:40:19 -04:00
webapp - add link to thin doc 2011-05-03 17:31:52 -04:00
.gitignore - move the matterhorn webapp 2011-05-03 11:50:05 -04:00
README - upgrade version of felix to 3.2.2 from 3.2.0 as 3.2.0 is not available anymore form the download link 2011-06-08 14:01:07 -04:00

Matterhorn Webapp
=================

Go to the webapp folder, and follow these instructions

* The matterhorn webapp requires:
	sudo apt-get install ruby1.8-dev 
	sudo apt-get install libxml2
	sudo apt-get install libxml2-dev
	sudo apt-get install libxslt-dev

* Install bundler and execute for get the required gems:
	sudo gem install bundler
	sudo bundle install
	
* Setting configuration:
	- Edit the bigbluebutton.yml file according to your installation

## For development

* Run the following: 
	sudo thin -R config.ru start

## For production 

* We need to create a run start level:	
	sudo thin install
	sudo /usr/sbin/update-rc.d -f thin defaults

* Then, run the following commands:
	sudo sh deploy.sh
	sudo service thin start

## Proxy Pass with Nginx

* Edit the file /etc/nginx/sites-enabled/bigbluebutton:
	# Bigbluebutton
	location /matterhorn/ {
		proxy_pass			http://127.0.0.1:3000/;
		proxy_redirect		default;
	}

	
===========

There is a ruby script in EC2 instance that:

1) Converts audio.wav to audiopresenter.ogg
2) Remove audio from flash videos, converting videopresenter.flv to justvideopresenter.flv and videopresentation.flv to justvideopresentation.flv.
3) Creates manifest.xml
4) Creates dublincore.xml (metadata is taken from strings declared in the script)
5) Creates a zipped package tosend.zip with
justvideopresenter.flv
justvideopresentation.flv
audiopresenter.ogg
manifest.xml
dublincore.xml
6) Compiles and executes a java class that sends the zipped package to Matterhorn server in the EC2 instance

Previously I installed:

vorbis tools => sudo apt-get install vorbis-tools
zip => sudo apt-get install zip
ruby => sudo apt-get install ruby irb rdoc
rubygems => sudo apt-get install rubygems
builder (a gem to generate xml) => gem install builder
streamio-ffmpeg (a gem to get media info) => gem install streamio-ffmpeg

To run the script:

cd /home/ubuntu/bnmaterial/prepareMediaRuby
ruby remix.rb audio.wav videopresenter.flv videopresentation.flv

Notes:
About parameters passed to the ruby script:
Audio file must be named <whatevername>.wav
Presenter Video  must be named   <whatever>presenter.flv
Presentation Video must be named <whatever>presentation.flv

If you don't want to run the ruby script and only want to send a ready zipped file to Matterhorn server :
cd /home/ubuntu/bnmaterial/
java ClientPreemptiveDigestAuthentication

It takes tosend.zip and sends it to Matterhorn Server

Then you can verify the uploaded file is in

http://ec2-50-17-155-248.compute-1.amazonaws.com:8080/engage/ui/index.html

Actually there are 3 objects in Media Gallery

  --------------------------------------------
| MATTERHORN 1.1 INSTALLATION IN UBUNTU LUCID  |
  --------------------------------------------

MATTERHORN INSTALLATION DIRECTORY AND SOURCES
	Create Matterhorn installation directory 
		sudo mkdir -p /opt/matterhorn
		sudo chown $USER:$GROUPS /opt/matterhorn
	Update pacakges and install subversion
		sudo apt-get update
		sudo apt-get install subversion
	Checkout Matterhorn 1.1 source in Matterhorn directory
		cd /opt/matterhorn
		svn checkout http://opencast.jira.com/svn/MH/tags/1.1.0 /opt/matterhorn/1.1.0
	
JAVA
	Update sources list 
		sudo nano /etc/apt/sources.list
		Add these lines at the end:
			deb http://archive.canonical.com/ubuntu lucid partner
			deb-src http://archive.canonical.com/ubuntu lucid partner
	Save the file and update
		sudo apt-get update
	Install java
		sudo apt-get install sun-java6-jdk
	Set JAVA_HOME variable
		echo "export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24/" >> ~/.bashrc
		source ~/.bashrc
 
	
APACHE MAVEN 
	Install maven
		sudo apt-get install maven2
	Set maven opts
		export MAVEN_OPTS='-Xms256m -Xmx960m -XX:PermSize=64m -XX:MaxPermSize=256m'
	
APACHE FELIX
	Get the lastest release of Felix
		sudo wget http://apache.deathculture.net//felix/org.apache.felix.main.distribution-3.2.2.tar.gz
	Unarchive
		sudo tar xvf org.apache.felix.main.distribution-3.2.2.tar.gz 
	Move and rename unarchived folder to Matterhorn installation directory
		sudo mv felix-framework-3.2.2 /opt/matterhorn/felix
	Configure
		sudo mkdir /opt/matterhorn/felix/load
		sudo cp -rf /opt/matterhorn/1.1.0/docs/felix/* /opt/matterhorn/felix/
    
BUILD MATTERHORN
	Go to Matterhorn source directory, deploy
		cd /opt/matterhorn/1.1.0/
		sudo mvn clean install -DdeployTo=/opt/matterhorn/felix/matterhorn
	
THIRD PARTY TOOLS
	Go to third party directory and run the script to install them
		cd /opt/matterhorn/1.1.0/docs/scripts/3rd_party
		sudo ./menu3p
	Note: Here you have an interactive menu where you need to run only options 0,1 and 2
		for Ubuntu.

EXPORT ENVIRONMENT VARIABLES
	echo "export M2_REPO=/home/$USER/.m2/repository" >> ~/.bashrc
	echo "export FELIX_HOME=/opt/matterhorn/felix" >> ~/.bashrc
	echo "export JAVA_OPTS='-Xms1024m -Xmx1024m -XX:MaxPermSize=256m'" >> ~/.bashrc
	source ~/.bashrc
		
CONFIGURE MATTERHORN PARAMETERS
	sudo nano /opt/matterhorn/felix/conf/config.properties
	
	Change server url "http://localhost" to your hostname 
	Example:
	org.opencastproject.server.url=ec2-50-16-8-19.compute-1.amazonaws.com:8080
	
	Change storage directory to the dir where you want to store processed files
	Example:
	org.opencastproject.storage.dir=/opt/matterhorn/opencast

	
FELIX HOME
	Running Matterhorn could throw an error with FELIX_HOME so edit the script to run Matterhorn
	sudo nano /opt/matterhorn/felix/bin/start_matterhorn.sh
	Change line 10 to
		FELIX="/opt/matterhorn/felix"

RUN MATTERHORN
		sudo sh /opt/matterhorn/felix/bin/start_matterhorn.sh
		
                                                                     
                                                                     
                                                                     
                                             
|||||||||||||||||||||||||||||||||||
  Ingesting to Matterhorn inbox 
|||||||||||||||||||||||||||||||||||

----------------------------------
Notes:
----------------------------------
User in BBB server is firstuser
User in Matterhorn server is matt
BBB server ip: 192.168.1.42
Matterhorn server ip: 192.168.1.40
FELIX_HOME: /opt/matterhorn/felix

----------------------------------
Steps:
----------------------------------
In the BBB server:

1) Create a ssh key
	ssh-keygen -t rsa
2)Ask for a passphrase. Press Enter
3)Ask for repeating the passphrase. Press Enter

The public key was generated in /home/firstuser/.ssh/
Its name is id_rsa.pub

In MH server:

4)Create a .ssh directory
	sudo mkdir /home/matt/.ssh
5)Create authorized_keys file
	sudo nano /home/matt/.ssh/authorized_keys
6) Copy the content from /home/firstuser/.ssh/id_rsa.pub in BBB server
   To /home/matt/.ssh/authorized_keys in MH server

In BBB Server:

7)scp /path/to/zipped_file.zip matt@192.168.1.40:/opt/matterhorn/felix/inbox

The file is sent and ingested in Matterhorn

----------------------------------
About inbox ingestion:
----------------------------------
-By default inbox directory is $FELIX_HOME/inbox
-If you need to change inbox directory, change the parameter
	felix.fileinstall.dir  
 in
	/opt/matterhorn/1.1.0/docs/felix/load/org.apache.felix.fileinstall-inbox.cfg
-Zipped package is deleted after it is ingested in inbox dir
-If the zipped package is not a media package it is sent to the storage_dir/files/collection
 where storage_dir is a parameter configured in $FELIX_HOME/conf/config.properties