XWikiTube Application

Last modified by Heribert Schorn on 2022/08/22 00:12

cogApplication to upload, encode and play videos
Developed by

Mohamed Boussaa

Active Installs28
2 Votes
LicenseGNU Lesser General Public License 2.1

Installable with the Extension Manager


Application to upload, encode and play videos.

This application could be installed with Extension Manager but requires to have FFmpeg on your server to work properly.

The objective of the XWikiTube Application is to upload videos and transcode them in order to play them using Dynamic Adaptive Streaming over HTTP (DASH) technique.

It works by detecting a user's bandwidth and CPU capacity in real time and adjusting the quality of a video stream accordingly.

You can find more information about uploading, encoding and playing processes.

XWikitube uses the FFmpeg library to encode videos.


To upload a new video or show created video go to the XWikiTube application main page (XWikiTube.WebHome).

XWikiTube main page

Upload and play a new  video

  • To upload a new video just click on the <Add new entry> button in the top of the XWikiTube application main page.
  • Enter the video information: Title, category and description.
  • Click <Save and View> button.
  • You will be redirected to the view page of the new video.
  • If a video has not been yet uploaded then you will have the possibility to upload a video via the <Select video> input.

Upload a new video

Uploading progress

  • Once the uploading process is completed click on the Encode button to start encoding the video.
  • You will see the progress on each step of the encoding process.

Encode a video

Encoding progress

  • Once the encoding process is completed click on the <View the video> link to view the view.

Encoding completed, view the video

  • The view page of the uploaded video will be organized into 2 tabs.
  • The first tab will show a DASH player that will allow you to play the video.
  • The second tab will contain infromation and video streams generated during encoding process.
  • XWikiTube allows you to integrate your video wherever you want in the wiki.

Play a video

Prerequisites & Installation Instructions

We recommend using the Extension Manager to install this extension (Make sure that the text "Installable with the Extension Manager" is displayed at the top right location on this page to know if this extension can be installed with the Extension Manager). Note that installing Extensions when being offline is currently not supported and you'd need to use some complex manual method.

You can also use the following manual method, which is useful if this extension cannot be installed with the Extension Manager or if you're using an old version of XWiki that doesn't have the Extension Manager:

  1. Log in the wiki with a user having Administration rights
  2. Go to the Administration page and select the Import category
  3. Follow the on-screen instructions to upload the downloaded XAR
  4. Click on the uploaded XAR and follow the instructions
  5. You'll also need to install all dependent Extensions that are not already installed in your wiki

Install FFmpeg

Install from sources

Copy and paste the whole code box for each step.

Using sudo apt-get install may not work, if there is an error like pkg: warning: 'ldconfig' not found in PATH or not executable you need to use sudo su and then execute the apt-get command.

Get the build dependencies

sudo apt-get update
sudo apt-get -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev \
  libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
  libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev yasm

Get the video encoders which are available on debian

sudo apt-get install libx264-dev libmp3lame-dev libopus-dev

Build the rest

Now make a directory for the source files that will be downloaded later in this guide:

mkdir ~/ffmpeg_sources

Compilation & Installation

cd ~/ffmpeg_sources
wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master
tar xzvf fdk-aac.tar.gz
cd mstorsjo-fdk-aac*
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make install
make distclean
cd ~/ffmpeg_sources
wget http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.4.0.tar.bz2
tar xjvf libvpx-1.4.0.tar.bz2
cd libvpx-1.4.0
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests
PATH="$HOME/bin:$PATH" make
make install
make clean
cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-2.7.2.tar.bz2
tar xjvf ffmpeg-*.tar.bz2
cd ffmpeg*
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
PATH="$HOME/bin:$PATH" make
make install
make distclean
sudo cp ~/bin/ff* /usr/local/bin/
hash -r

Install on mac

brew install ffmpeg --with-libvpx --with-libvorbis --with-gpj --with-libass --with-libfdkaac --withfreetype --withlibmp3lam --with-libopus --withlibtheora --with-libx264 --with-nonfree


Dependencies for this extension (org.xwiki.contrib:application-xwikitube 1.5.1):

Get Connected