https://github.com/johmathe/Shotdetect
local
- depency for the shotdetection tool:
- sudo apt-get install libavdevice-dev libavformat-dev
libgd2-noxpm(can’t find) libgd2-noxpm-dev - sudo apt-get install
libwxgtk2.6-dev(->)libwxgtk2.8-devwx2.6-doc**wx2.8-doc**libwxgtk2.6-headers(can’t find)
- sudo apt-get install libavdevice-dev libavformat-dev
- ffmpeg
add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
apt-get update
apt-get install ffmpeg
- install the tool
mkdir -p build && cd build && cmake -D USE_WXWIDGETS:BOOL=OFF .. && make
- error1: “swscale library not found”
apt-get install libswscale-dev
- error2: LIBXML2_LIBRARIES (missing: LIBXML2_INCLUDE_DIR LIBXML2_VERSION_STRING) (Required is at least version “2.7”)
apt-get install libxml2 libxml2-dev libxslt1-dev
- error3: /usr/bin/clang++
- error1: “swscale library not found”
apt-get install clang-3.5 llvm
sudo ln -s /usr/bin/clang-3.5 /usr/bin/clang
sudo ln -s /usr/bin/clang++-3.5 /usr/bin/clang++
#add ```/work/na/programs/videoshots/code2/Shotdetect/build/``` to ~/.bashrc($PATH)
tsubame
.bashrc
export PATH=$SOFT/libxslt/bin:$SOFT/wxWidgets/bin:$WORK/software/llvm-5.0.0.src/build/bin:/gs/hs0/tga-crest-deep/shinodaG/library/ffmpeg/bin:$PATH
#export PATH=$SOFT/libxslt/bin:$SOFT/wxWidgets/bin:$WORK/software/llvm-5.0.0.src/build/bin:$WORK/software/ffmpeg_sources/build/bin:$PATH
export LD_LIBRARY_PATH=/gs/hs0/tga-crest-deep/shinodaG/library/ffmpeg/lib:$LD_LIBRARY_PATH
#export LD_LIBRARY_PATH=$WORK/software/ffmpeg_sources/build/lib:$LD_LIBRARY_PATH
libgd-2.2.5.tar.gz
mkdir build && cd build
cmake -DENABLE_JPEG=TRUE -DENABLE_PNG=TRUE ..
make
change cmake/findGD.cmake
(FIND_PATH(GD_INCLUDE_DIR gd.h
and FIND_LIBRARY(GD_LIBRARY
)
libxslt-1.1.32.tar.gz
mkdir build && cd build
../configure --prefix=/gs/hs0/tga-shinoda/15M54105/software_install/libxslt
make
make install
modify ~/.bashrc($PATH
,)
wxWidgets-3.1.0.tar.bz2
mkdir gtk-build && cd gtk-build
../configure --enable-unicode --enable-debug --prefix=/gs/hs0/tga-shinoda/15M54105/software_install/wxWidgets
make
make install
modify ~/.bashrc
($PATH
, $LD_LIBRARY
)
install clang
cd /gs/hs0/tga-shinoda/15M54105/software
wget http://releases.llvm.org/5.0.0/llvm-5.0.0.src.tar.xz
tar xvJf llvm-5.0.0.src.tar.xz
wget http://releases.llvm.org/5.0.0/cfe-5.0.0.src.tar.xz
tar xvJf cfe-5.0.0.src.tar.xz
mv cfe-5.0.0.src llvm-5.0.0.src/tools/clang
wget http://releases.llvm.org/5.0.0/clang-tools-extra-5.0.0.src.tar.xz
tar xvJf clang-tools-extra-5.0.0.src.tar.xz
mv clang-tools-extra-5.0.0.src.tar.xz llvm-5.0.0.src/tools/clang/tools/extra
wget http://releases.llvm.org/5.0.0/compiler-rt-5.0.0.src.tar.xz
tar xvJf compiler-rt-5.0.0.src.tar.xz
mv compiler-rt-5.0.0.src llvm-5.0.0.src/projects/compiler-rt
cd llvm-5.0.0.src && mkdir build && cd build
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/gs/hs0/tga-shinoda/15M54105/software_install/llvm ..
make
make clang
- add
/gs/hs0/tga-shinoda/15M54105/software/build/bin/
/gs/hs0/tga-shinoda/15M54105/software/build/lib
to ~/.bashrc (seems-DCMAKE_INSTALL_PREFIX=
didn’t work) - modify
CMakeList.txt
SET(CMAKE_C_COMPILER "/gs/hs0/tga-shinoda/15M54105/software/llvm-5.0.0.src/build/bin/clang")
SET(CMAKE_CXX_COMPILER "/gs/hs0/tga-shinoda/15M54105/software/llvm-5.0.0.src/build/bin/clang++")
other error(ffmpeg)
error happens when make
, seems ffmpeg has problems.
new version changed name of function, so the previous version should work. But if you installed the new version, just change the source code of the tool.
I modified the .bashrc to use the ffmpeg installed in tsubame by RY.
change source code(film.cc)
vim $WORK/videoshot_iccv/Shotdetect/src/film.cc
%s/AV_PIX_FMT_RGB24/PIX_FMT_RGB24/g
%s/avcodec_decode_video2/av_frame_alloc/g
change source code(FindFFmpeg.cmake)
add three lines in videoshot_iccv/Shotdetect/cmake/FindFFmpeg.cmake
FFMPEG_FIND(LIBSWRESAMPLE swresample swresample.h) ###new line1
127
128 SET(FFMPEG_FOUND "NO")
129 IF (FFMPEG_LIBAVFORMAT_FOUND AND FFMPEG_LIBAVDEVICE_FOUND AND FFMPEG_LIBAVCODEC_FOUND AND FFMPEG_LIBAVUTIL_FOUND AND FFMPEG_LIBSWSCALE_FOUND AND FFMPEG_LIBSWRESAMPLE_FOUND AND STDINT_OK)
130
131 SET(FFMPEG_FOUND "YES")
132
133 SET(FFMPEG_INCLUDE_DIRS
134 ${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS}
135 ${FFMPEG_LIBAVDEVICE_INCLUDE_DIRS}
136 ${FFMPEG_LIBAVCODEC_INCLUDE_DIRS}
137 ${FFMPEG_LIBAVUTIL_INCLUDE_DIRS}
138 ${FFMPEG_SWSCALE_INCLUDE_DIRS}
139 ${FFMPEG_SWRESAMPLE_INCLUDE_DIRS} ###new line2
140 )
141
142 IF (${FFMPEG_STDINT_INCLUDE_DIR})
143 SET(FFMPEG_INCLUDE_DIRS
144 ${FFMPEG_INCLUDE_DIRS}
145 ${FFMPEG_STDINT_INCLUDE_DIR}
146 )
147 ENDIF()
148
149
150 SET(FFMPEG_LIBRARY_DIRS ${FFMPEG_LIBAVFORMAT_LIBRARY_DIRS})
151
152 SET(FFMPEG_LIBRARIES
153 ${FFMPEG_LIBAVFORMAT_LIBRARIES}
154 ${FFMPEG_LIBAVDEVICE_LIBRARIES}
155 ${FFMPEG_LIBAVCODEC_LIBRARIES}
156 ${FFMPEG_LIBAVUTIL_LIBRARIES}
157 ${FFMPEG_LIBSWSCALE_LIBRARIES}
158 ${FFMPEG_LIBSWRESAMPLE_LIBRARIES}) ###new line3
change source code3 (CMakeList.txt)
38c38
< PKG_CHECK_MODULES (FFMPEG_PKG REQUIRED libavcodec libavfilter libavutil libavdevice libavformat libavformat libswscale libswresample)
---
> PKG_CHECK_MODULES (FFMPEG_PKG REQUIRED libavcodec libavfilter libavutil libavdevice libavformat libavformat libswscale)
70,74d69
< ENDIF()
< IF(FFMPEG_LIBSWRESAMPLE_FOUND)
< MESSAGE(STATUS "swresample library found: ${FFMPEG_LIBSWRESAMPLE_LIBRARIES}")
< ELSE()
< MESSAGE(STATUS "swresample library not found.")
flow
cd $WOK/videoshot_iccv/Shotdetect
mkdir build -p
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D USE_WXWIDGETS:BOOL=OFF -DCMAKE_EXE_LINKER_FLAGS="-ldl -lz -llzma -lpthread" ..
make