Difference between revisions of "Viper"

From fd.io
Jump to: navigation, search
(Viper Player for ICN)
(Quick Start)
Line 34: Line 34:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
https://jenkins.fd.io/view/cicn/job/cicn-android-sdk-merge-master-ubuntu1604/
 
https://jenkins.fd.io/view/cicn/job/cicn-android-sdk-merge-master-ubuntu1604/
 
Mac Os X
 
Download the Qt environment from https://www.qt.io/download and install MacOs and QtChart modules.
 
<syntaxhighlight lang="bash">
 
$ TRANSPORT=ICN #or HICN
 
$ QT_DIR=<qt_base_folder>/<version>
 
$ BASE_DIR=`pwd`
 
$ SRC_PATH=${BASE_DIR}/src
 
$ mkdir -p $SRC_PATH
 
$ BUILD_PATH=${BASE_DIR}/build
 
$ mkdir -p $BUILD_PATH
 
$ if which brew >/dev/null; then
 
if brew ls --versions openssl > /dev/null; then
 
echo "openssl installed"
 
else \
 
brew install openssl
 
brew link openssl
 
fi
 
if brew ls --versions libevent > /dev/null; then
 
echo "libevent installed"
 
else
 
brew install libevent
 
brew link libevent
 
fi
 
        if brew ls --versions asio > /dev/null; then
 
echo "asio installed"
 
else
 
brew install asio
 
brew link asio
 
fi
 
        if brew ls --versions curl > /dev/null; then
 
echo "curl installed"
 
else
 
brew install curl
 
brew link curl
 
fi
 
    else
 
    echo brew does not exist
 
    exit 1
 
  fi
 
$ if brew ls --versions ffmpeg > /dev/null; then
 
echo "ffmpeg installed"
 
    else
 
brew install ffmpeg
 
brew link ffmpeg
 
  fi
 
$ cd ${SRC_PATH}
 
$ if [ ! -d ${SRC_PATH}/QtAV ]; then
 
git clone https://github.com/wang-bin/QtAV.git
 
  fi
 
$ export CPATH=/usr/local/include:$CPATH
 
$ export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH
 
$ mkdir -p ${BUILD_PATH}/QtAV
 
$ cd ${BUILD_PATH}/QtAV
 
$ $QT_DIR/clang_64/bin/qmake ${SRC_PATH}/QtAV/
 
$ make
 
$ bash sdk_install.sh
 
$ cd ${SRC_PATH}
 
$ if [ ! -d ${SRC_PATH}/viper ]; then
 
git clone -b viper/master https://gerrit.fd.io/r/cicn viper
 
  fi
 
$ mkdir -p ${BUILD_PATH}/libdash
 
$ cd ${BUILD_PATH}/libdash
 
$ cmake  ${SRC_PATH}/viper/libdash
 
$ make
 
$ make install
 
$ mkdir -p ${BUILD_PATH}/viper
 
$ cd ${BUILD_PATH}/viper
 
$ if [ "${TRANSPORT}" == "ICN" ]; then
 
  $QT_DIR/clang_64/bin/qmake ${SRC_PATH}/viper/
 
  else
 
        $QT_DIR/clang_64/bin/qmake ${SRC_PATH}/viper/ "TRANSPORT_LIBRARY = HICNET"
 
  fi
 
$ make
 
</syntaxhighlight>
 
 
  
 
Ubuntu 16.04
 
Ubuntu 16.04

Revision as of 11:33, 13 May 2019

Viper Player for ICN

VIPER is an MPEG-DASH video player that supports video retrieval using TCP or CICN from an HTTP video server using several video qualities. VIPER implements a variety of adaptive controllers such as PANDA, AdapTech, and BOLA. It supports video qualities up to UHD but best tablets can render up to FHD such as iPad Pro or Google Pixel. The video player does not support audio streams as it is mainly used as a prototype for demonstrations. This feature will be available later on.

Dependencies

  • ffmpeg
  • libparc
  • libxml2
  • libcurl4
  • libdash (see inside libdash folder of viper project)
  • Qt5.7 or higher
  • QtAV

If ICN

  • libccnx-common
  • libccnx-transport-rta
  • long-bow
  • libicnet

If hICN

  • llibhicntransport

Quick Start

Installation from binary packages

Android 7 (to appear on Google Play)

Download apps from the following link

https://jenkins.fd.io/view/cicn/job/cicn-android-sdk-merge-master-ubuntu1604/

Ubuntu 16.04

 $ sudo apt-get install software-properties-common
 $ echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io.master.ubuntu.$(lsb_release -sc).main/ ./" \
          | sudo tee -a /etc/apt/sources.list.d/99fd.io.list
 $ sudo add-apt-repository --yes ppa:beineri/opt-qt571-xenial
 $ wget -q -O - http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
 $ echo "deb [trusted=yes] http://archive.getdeb.net/ubuntu xenial-getdeb apps" | sudo tee -a /etc/apt/sources.list.d/getdeb.list
 $ sudo apt-get update
 $ sudo apt-get install viper

Build the dependencies

  • QtAV For building and install the library, from the root folder of the projet:
 $ git clone https://github.com/wang-bin/QtAV
 $ cd QtAV
 $ mkdir build && cd build
 $ qmake ../QtAV.pro
 $ make
 $ sh sdk_install.sh
  • libdash For building the player, from the root folder of the project:
 $ git clone -b viper/master https://gerrit.fd.io/r/cicn viper
 $ cd viper/libdash
 $ mkdir build && cd build
 $ cmake ../
 $ make
 $ make install

Build the player

For building the player, from the root folder of the project:

 $ TRANSPORT=ICN #or HICN
 $ cd viper
 $ mkdir build && cd build
 $ if [ "${TRANSPORT}" == "ICN" ]; then
  	qmake ../viper.pro
    else
        qmake ../viper.pro "TRANSPORT_LIBRARY = HICNET"
    fi
 $ make
 $ ./viper

Platforms

Viper has been tested in:

- Ubuntu 16.04 (x86_64)
- MacOSX 10.13
- Android 7
- iOS 10