Skip to content

HellicarAndLewis/ProjectTimeCone

Repository files navigation

ProjectTimeCone

An interactive installation that use multiple cameras to create a bullet-time like effect using frame interpolation.

Get the right development tools

  • Download CMake 2.8+
  • Download Git

Windows 7

Windows 8

  • Download and install the MicroSoft VisualStudio C++ Redistributable Package (x86) link and extract it to: c:\projects\ProjectTimeCone
  • For Windows 8, clone the current OF git repository and make sure you have this revision: 5125fdf5c1e52659690497b0bfaceafb17f8143a (git checkout 5125fdf5c1e52659690497b0bfaceafb17f8143a )
  • Install Visual Studio 2012 Professional Trial (you can use it for 90 days)

Mac

  • Download the mac version.

  • Clone the repository:

$ cd c:\projects\ProjectTimeCone\apps
$ git clone git@github.com:HellicarAndLewis/ProjectTimeCone.git

$ cd ProjectTimeCone
$ git submodule init
$ git submodule update

$ cd addons/roxlu
$ git checkout master

Setup Runtime-VideoEncoder

  • Download the nightly of libav (from 2013.07.24).
  • Extract the file
  • Copy all the dll files and the avconv.exe to Runtime-VideoEncoder/bin/avconv/win/
  • To compile
    • open a VS2010/VS2012 terminal
    • go to Runtime-VideoEncoder/build/cmake/
      • for release: build_release_[vs2010,vs2012].bat
      • for debug: build_debug_[vs2010,vs2012].bat

Install Runtime-VideoEncoder

  • The debug version can be run from the command line
  • The release version should be installed as service
  • To install the release version do:
    • Open a command prompt
    • Remove the service:
    • Install service:
      • Open a Command Prompt as Administrator:
      • from start screen, search for cmd.exe
      • then right click and select Run as Administrator from bottom menu
      • Type: `sc create "VideoEncoder" binpath= "C:\projects\ProjectTimeCone\apps\ProjectTimeCone\Runtime-VideoEncoder\bin\Runtime-VideoEncoder.exe"

Start/stop the VideoEncoder Service

  • net start VideoEncoder
  • net stop VideoEncoder

Setup Runtime-YouTube

  • Create a Google Application:
    • Get a Google account and make sure to login into YouTube before continueing
    • Go to Google API Console and create a new project. See this page for more info
    • Make sure that you enable the YouTube Data API v3 in the servics pane.
    • Click on the API Access, then Create an oAuth client ID...
      • Leave all things default
      • Create an installed application
      • Select other as type
  • Go to ProjectTimeCone\Runtime-YouTube\bin\data and copy youtube_example.cfg to youtube.cfg
  • Open the youtube.cfg file and copy the Client ID and Client SECRET into this file.
  • Open ProjectTimeCone\addons\roxlu\addons\YouTube\html\index.html in Chrome
    • paste the client ID into the field and press GO.
    • Accept the permission popup, and copy the auth-code you get into youtube.cfg.
  • Now make sure you remove bin\data\youtube.db before starting the app
  • To compile:
    • open a VS2010/vs2012 terminal
    • go to Runtime-YouTube/build/cmake/
      • for release: build_release_[vs2010,vs2012].bat
      • for debug: build_debug_[vs2010,vs2012].bat

Install Runtime-YouTube

  • Open a Command Prompt as Administrator:
    • from start screen, search for cmd.exe
    • then right click and select Run as Administrator from bottom menu
  • Type: `sc create "YouTubeUploader" binpath= "C:\projects\ProjectTimeCone\apps\ProjectTimeCone\Runtime-YouTube\bin\Runtime-YouTube.exe"

Start/stop the YouTubeUploader Service

  • net start YouTubeUploader
  • net stop YouTubeUploader

Setup Test-YouTubeClientIPC

  • Make sure the destination path for the frames exists: Test-YouTubeClientIPC\bin\data\frames\ if not, create it.
  • Compile the app + run it (open project file in VS2010 or XCode)

Updating changes made in a submodule

Before you commit your changes, check if you are working in a branch or not. By default, after doing git submodule update you're not working in a brnach.

Check if you're working in a branch

$ cd submodule
$ git branch -a

Not working in a branch

$ cd submodule
$ git checkout master
$ git commit -am "Updating changes of submodule"
$ git push origin master

Working in a branch

$ cd submodule
$ git commit -am "Updating changes of submodule"
$ git push origin master

tell the root project to use the current submodule commit

$ cd ../to/project/root
$ git commit -am "Updated submodule"
$ git push origin master

Getting the latest version of a submodule

$ cd project
$ git remote update
$ git clone origin/master   # get the latest submodule info
$ git submodule update      # let git update the submodule info which is stored in the root project

Configuring a project for the YouTube and VideoEncoder code

When you're using the Runtime-VideoEncoder/src/videoencoder and addons/roxlu/addons/Youtube code you need to add some files and configs to your Visual Studio project so everything compiles nice and smooth. Follow the steps below.

General config settings

  • Add WIN32_LEAN_AND_MEAN to your preprocessor flags
  • Change Configuration Properties > General > Character Set to not set
  • After adding the sqlite sources, you need to tell MSVC2012 that it's a C file and not a C++: Right click the sqlite3.c file, go to 'C/C++ > Advanced > Compile As' and select "Compile as C Code"

We need to add the following source files:

  • roxlu/addons/log/src/*.cpp
  • roxlu/addons/sqlite/src/*.cpp
  • roxlu/addons/sqlite/extern/sqlite/*.cpp
  • roxlu/addons/uv/src/*.cpp
  • roxlu/addons/youtube/src/*.cpp
  • Runtime-VideoEncoder/src/videoencoder/src/*.cpp
  • roxlu/lib/src/*.cpp

Add these include directories:

.\..\addons\roxlu\lib\include\
.\..\Runtime-VideoEncoder\src\videoencoder\include\
.\..\addons\roxlu\extern\include\
.\..\addons\roxlu\addons\UV\include\
.\..\addons\roxlu\addons\YouTube\include\
.\..\addons\roxlu\addons\SQLite\extern\sqlite\
.\..\addons\roxlu\addons\SQLite\include\
.\..\addons\roxlu\addons\PCRE\include\
.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\curl\
.\..\addons\roxlu\addons\Log\include\

As a one liner for VS

.\..\addons\roxlu\lib\include\;.\..\Runtime-VideoEncoder\src\videoencoder\include\;.\..\addons\roxlu\extern\include\;.\..\addons\roxlu\addons\UV\include\;.\..\addons\roxlu\addons\YouTube\include\;.\..\addons\roxlu\addons\SQLite\extern\sqlite\;.\..\addons\roxlu\addons\SQLite\include\;.\..\addons\roxlu\addons\PCRE\include\;.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\curl\;.\..\addons\roxlu\addons\Log\include\

Add these preprocessor flags

WIN32_LEAN_AND_MEAN

Add these linker input libraries

.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\libuv.lib
.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\libcurl.lib
.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\jansson.lib
.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\pcre.lib
.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\pcrecpp.lib
ws2_32.lib
psapi.lib
iphlpapi.lib

As a one liner for VS

.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\libuv.lib;.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\libcurl.lib;.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\jansson.lib;.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\pcre.lib;.\..\addons\roxlu\extern\lib\win\vs2010\MD\32\pcrecpp.lib;ws2_32.lib;psapi.lib;iphlpapi.lib;.\..\addons\roxlu\extern\lib\win\vs2010\MD\32d\msgpack.lib; 

Copy these DLLs files to your bin dir

addons/roxlu/extern/bin/win/vs2010/MD/32/janson.dll        
addons/roxlu/extern/bin/win/vs2010/MD/32/libcurl.dll
addons/roxlu/extern/bin/win/vs2010/MD/32/libcurl.dll
addons/roxlu/extern/bin/win/vs2010/MD/32/libeay32.dll
addons/roxlu/extern/bin/win/vs2010/MD/32/pcre.dll
addons/roxlu/extern/bin/win/vs2010/MD/32/pcrecpp.dll

About

An interactive installation that use multiple cameras to create a bullet-time like effect using frame interpolation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published