The eLog library was initially developed as a research prototype and later published for lifelogging researchers in 2010 to help them easily analyze heterogenous data and complex visualization. It has been kept growing with the progress of mobile computing environments and recently its UI part is released with GPL v3 license for wider usage. The eLog UI library is optimized for mobile environment and can get easily integrated with existing Web services.

Who We Are

The original work was proposed by Pil Ho and later extended the work with collaboration with 28 researchers around the world who contributed their lifelogs, collaborated for lifelog analysis and share research results to build up an open lifelogging platform for the public. Pil Ho has been keeping the development updating the library following up the progress in mobile computing.


  • Nov. 2014: Change the web page skin using bootstrap.
  • Nov. 2014: Published elog UI library as GPL v3.
  • Oct. 2014: Version up eLog library and documentation.


ffmpeg practice

GoPro captures a movie in the MP4 format. And if captured in 3D using the chest-mount, it is mostly flipped in vertical. We are currently developing necessary video processing algorithms using OpenCV libraries and source codes will be soon released (Some are already available; check out http://www.elifelog.org/page/source-code-distribution). 

For test purposes, ffmpeg is also an excellent tool to prepare or post-process videos. This section summarizes the list of commands frequently used for our experiment. For Mac users, ffmepg installed using MacPort looks not compiled with additional filters necessary to run below commands. So we recommend to download the entire source code from http://www.ffmpeg.org/download.html and run configure to install it (i.e. ./configure; ./make all; ./sudo make install). For a complete list of ffmpeg options, see http://www.ffmpeg.org/ffmpeg.html.

  • If you want to simply extract a part of video by timestamp, for instance from "00:01:30" to "00:11:30", then the duration becomes "00:10:00". Also we will use -sameq to keep the video quality same as the original. Or if you want to use the same codec then use -vcodec rather than -sameq to force to copy the video using same codecs (http://stream-recorder.com/forum/ffmpeg-vcodec-copy-vs-sameq-t8121.html). Thanks Pierre for information.
ffmpeg -i 3D_L0001.MP4 -sameq -ss "00:01:30" -t "00:10:00" 3D_L0001_part.MP4
  • Extract the part of a video and flip it when a camera was upside-down.
ffmpeg -i 3D_L0001.MP4 -sameq -vf "vflip,hflip" -ss "00:01:30" -t "00:10:00" 3D_L0001_part.MP4
ffmpeg -i 3D_L0001.MP4 -vf "vflip,hflip,mp=eq2=1:1.2:0.2" -s 960x520 -y -b 2000k -bt 2000k 3D_L0001.AVI
cat 3d_L0001.avi 3D_L0002.avi 3D_L0003.avi > merge_all.avi
ffmpeg -i merge_all.avi -b 2000k -y merge.avi
  • OpenCV writes video with no audio information. Thus it needs to merge an audio file later to complete the video file. Below shows an example creating the 3D stereo sound from left and right audio sources.
ffmpeg -i 3D_L0001.MP4 -vf "vflip,hflip,mp=eq2=1:1.2:0.2" -s 960x520 -y -b 2000k -bt 2000k 3D_L0001.AVI
  • In case you want to convert the sequence of images into the video. Be aware that the starting image should be named as save_00000.png for the below case. Or else it will be failed in finding images whether there exists save_00010.png.
ffmpeg -i "save_%05d.png" -r 25 -sameq output.avi
  • If the input image sequence is not a image per frame, then we can change the frame rate (ex. for ViconRevue images). Below assumes 3 frames / second input sequence and normal output video
ffmpeg -f image2 -r 3 -i "%08d.JPG" -s 640x480 -sameq -r 24 pilhokim_05042012.avi
  • If the input image names do not start with 0 (ex: 00000.JPG), then use this trick from Create a video slideshow from images. For PNG images, you should change the input vcodec from mjpeg to png (-vcodec png). Be aware that the additional '-' after '-i' is not a typo.
cat M0005/*.JPG | ffmpeg -f image2pipe -r 1 -vcodec mjpeg -i - -vcodec libx264 -r 24 M0005.mp4