Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error compiling on Debian Jessie #18

Closed
tektektek opened this issue Jul 8, 2014 · 10 comments
Closed

Error compiling on Debian Jessie #18

tektektek opened this issue Jul 8, 2014 · 10 comments

Comments

@tektektek
Copy link

I followed the instructions on the download page, and noticed that the ffmpeg package wasn't found, because of Debian's move to libav. All others were installed.

When running make -j3, it fails with the following output:

[  4%] Built target V3D
[  4%] Building C object slowmoVideo/lib/CMakeFiles/sVencode.dir/ffmpegEncode_sV.c.o
[  8%] Built target sV
Scanning dependencies of target sVinfo
Scanning dependencies of target sVflow
[  9%] Building CXX object slowmoVideo/lib/CMakeFiles/sVflow.dir/flowRW_sV.cpp.o
[  9%] Building C object slowmoVideo/lib/CMakeFiles/sVinfo.dir/videoInfo_sV.c.o
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/videoInfo_sV.c: In function ‘getInfo’:
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/videoInfo_sV.c:78:56: error: ‘AVStream’ has no member named ‘r_frame_rate’
             AVRational fps = pFormatContext->streams[i]->r_frame_rate;
                                                        ^
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c: In function ‘prepare’:
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c:107:5: warning: implicit declaration of function ‘avformat_alloc_output_context2’ [-Wimplicit-function-declaration]
     avformat_alloc_output_context2(&video->fc, NULL, NULL, filename);
     ^
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c:139:39: error: ‘CODEC_ID_NONE’ undeclared (first use in this function)
     if (video->format->video_codec != CODEC_ID_NONE) {
                                       ^
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c:139:39: note: each undeclared identifier is reported only once for each function it appears in
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c:179:29: error: ‘CODEC_ID_MPEG2VIDEO’ undeclared (first use in this function)
         if (cc->codec_id == CODEC_ID_MPEG2VIDEO || cc->codec_id == CODEC_ID_MPEG4) {
                             ^
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c:179:68: error: ‘CODEC_ID_MPEG4’ undeclared (first use in this function)
         if (cc->codec_id == CODEC_ID_MPEG2VIDEO || cc->codec_id == CODEC_ID_MPEG4) {
                                                                    ^
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c:183:29: error: ‘CODEC_ID_MPEG1VIDEO’ undeclared (first use in this function)
         if (cc->codec_id == CODEC_ID_MPEG1VIDEO){
                             ^
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c:300:5: warning: ‘avcodec_alloc_frame’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3114) [-Wdeprecated-declarations]
     video->picture = avcodec_alloc_frame();
     ^
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c: In function ‘eatARGB’:
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c:353:9: warning: implicit declaration of function ‘avcodec_encode_video’ [-Wimplicit-function-declaration]
         video->outSize = avcodec_encode_video(cc, video->outbufV, video->outbufSizeV, video->picture);
         ^
/home/tektektek/src/slowmoVideo/src/slowmoVideo/lib/ffmpegEncode_sV.c:360:17: warning: implicit declaration of function ‘av_rescale_q’ [-Wimplicit-function-declaration]
                 pkt.pts = av_rescale_q(cc->coded_frame->pts, cc->time_base, video->streamV->time_base);
                 ^
slowmoVideo/lib/CMakeFiles/sVinfo.dir/build.make:54: recipe for target 'slowmoVideo/lib/CMakeFiles/sVinfo.dir/videoInfo_sV.c.o' failed
make[2]: *** [slowmoVideo/lib/CMakeFiles/sVinfo.dir/videoInfo_sV.c.o] Error 1
CMakeFiles/Makefile2:223: recipe for target 'slowmoVideo/lib/CMakeFiles/sVinfo.dir/all' failed
make[1]: *** [slowmoVideo/lib/CMakeFiles/sVinfo.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
slowmoVideo/lib/CMakeFiles/sVencode.dir/build.make:54: recipe for target 'slowmoVideo/lib/CMakeFiles/sVencode.dir/ffmpegEncode_sV.c.o' failed
make[2]: *** [slowmoVideo/lib/CMakeFiles/sVencode.dir/ffmpegEncode_sV.c.o] Error 1
CMakeFiles/Makefile2:153: recipe for target 'slowmoVideo/lib/CMakeFiles/sVencode.dir/all' failed
make[1]: *** [slowmoVideo/lib/CMakeFiles/sVencode.dir/all] Error 2
[ 10%] [ 10%] Building CXX object slowmoVideo/lib/CMakeFiles/sVflow.dir/flowField_sV.cpp.o
Building CXX object slowmoVideo/lib/CMakeFiles/sVflow.dir/flowTools_sV.cpp.o
[ 10%] Building CXX object slowmoVideo/lib/CMakeFiles/sVflow.dir/kernel_sV.cpp.o
Linking CXX static library libsVflow.a
[ 10%] Built target sVflow
Makefile:113: recipe for target 'all' failed
make: *** [all] Error 2

I'd love to try this program out and compiling seems to be my only option on Debian... any ideas?

@valgit
Copy link
Contributor

valgit commented Jul 8, 2014

Hi, I am trying to build a deb package. but in the mean time could you try with my own clone : https://github.com/valgit/slowmoVideo, it should compile on ubuntu 14.04 + qt5, I haven't already push my changes here.

@jvalrog
Copy link

jvalrog commented Jul 8, 2014

valgit, I tried your clone and it only worked after removing "qt4" references from the CMakeList.txt files.

The only problem I found is this:

slowmoVideo-master $ make
[  4%] Built target V3D
[  8%] Built target sV
[  9%] Built target sVencode
[ 12%] Built target sVflow
[ 13%] Built target sVinfo
[ 13%] Built target sVvis
[ 16%] Built target sVgui
[ 40%] Built target sVproj
[ 41%] Built target slowmoInterpolate
[ 42%] Built target slowmoVideoInfo
Linking CXX executable slowmoUI
../lib/libsVencode.a(video_enc.cpp.o): In function `CreateVideoWriter(char const*, int, int, double, int, char const*)':
/home/tigre/Downloads/slowmoVideo/slowmoVideo-master/src/slowmoVide /lib/video_enc.cpp:11: undefined reference to `CreateVideoWriter_QT(char const*, int, int, double, char const*)'
collect2: error: ld returned 1 exit status
make[2]: *** [slowmoVideo/slowmoUI/slowmoUI] Error 1
make[1]: *** [slowmoVideo/slowmoUI/CMakeFiles/slowmoUI.dir/all] Error 2
make: *** [all] Error 2

@valgit
Copy link
Contributor

valgit commented Jul 8, 2014

Yes, my version should be able to work with QT4 or QT5. On my ubuntu I only have QT5, maybe it's what you call "qt4 reference" (can you give me what you change ) ?
for the last on, it's on option only available under OSX (use of quicktime as encoder in place of ffmpeg ;-)
you can disable it using -DUSE_QTKIT=FALSE in your cmake commandline (or by setting it to false in the CMakeCache.txt if you don't want to rerun it !)

@jvalrog
Copy link

jvalrog commented Jul 8, 2014

Ok, that helped, I'm almost there!

[ 92%] Building CXX object slowmoVideo/test/CMakeFiles/encodeFramesTest.dir ffmpegTestEncodeFrames.cpp.o
Linking CXX executable encodeFramesTest
CMakeFiles/encodeFramesTest.dir/ffmpegTestEncodeFrames.cpp.o: In function `main':
/home/tigre/Downloads/slowmoVideo/slowmoVideo-master/src/slowmoVideo/test/ffmpegTestEncodeFrames.cpp:30: undefined reference to `prepare'
/home/tigre/Downloads/slowmoVideo/slowmoVideo-master/src/slowmoVideo/test/ffmpegTestEncodeFrames.cpp:37: undefined reference to `eatSample'
/home/tigre/Downloads/slowmoVideo/slowmoVideo-master/src/slowmoVideo test/ffmpegTestEncodeFrames.cpp:44: undefined reference to `eatARGB'
/home/tigre/Downloads/slowmoVideo/slowmoVideo-master/src/slowmoVideo test/ffmpegTestEncodeFrames.cpp:46: undefined reference to `finish'
collect2: error: ld returned 1 exit status
make[2]: *** [slowmoVideo/test/encodeFramesTest] Error 1
make[1]: *** [slowmoVideo/test/CMakeFiles/encodeFramesTest.dir/all] Error 2
make: *** [all] Error 2

@valgit
Copy link
Contributor

valgit commented Jul 8, 2014

yes, almost there !
this last one came from the fact i have not already report my modification in the test branch, so you also need to disable testing : -DENABLE_TESTS=FALSE (or modify the CMakeCache.txt !)

@valgit valgit closed this as completed Jul 12, 2014
@tektektek
Copy link
Author

Yes, those fixes also work for me. Thanks @valgit ! For the record, I succeeded in compiling in Debian Jessie with Qt4.

Maybe it's appropriate to include these gotchas in the main website, on the compilation instructions:

  1. Use valgit's fork (https://github.com/valgit/slowmoVideo) instead of the main repository
  2. The cmake call should be cmake ../src -DUSE_QTKIT=FALSE -DENABLE_TESTS=FALSE

Is this correct? I can go ahead and make a pull request on the website repository.

@valgit
Copy link
Contributor

valgit commented Jul 20, 2014

I am ok with that if you will.

@brousselle
Copy link

Hello All,

thanks valgit :D for that work.
I am also running jessie, and it compiled smoothly.
but still the gpu flowbuilder does not work:

I have installed the nvidia-cg-toolkit which is a pre-requisite if i
remember well

when compiling i have this:
======================V3D============================

  • (info) Installation prefix: /tmp.
    (Can be adjusted with -DCMAKE_INSTALL_PREFIX=your_path. Default:
    .)
  • (info) Shaders will be included in the binary: YES
    (Can be disabled with the cmake flag -DDISABLE_INCLUDE_SOURCE)
  • (ok) OpenGL found in /usr/include:
    /usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so;/usr/lib/x86_64-linux-gnu/libSM.so;/usr/lib/x86_64-linux-gnu/libICE.so;/usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
  • (ok) GLUT found in /usr/include:
    /usr/lib/x86_64-linux-gnu/libglut.so;GLUT_Xmu_LIBRARY-NOTFOUND;/usr/lib/x86_64-linux-gnu/libXi.so
  • (ok) GLEW found at /usr/include/GL
  • (ok) JPEG libraries found at /usr/include:
    /usr/lib/x86_64-linux-gnu/libjpeg.so
  • (ok) PNG libraries found at /usr/include;/usr/include
  • V3D will be built: ---YES---
    ==================slowmoVideo========================
  • (info) slowmoVideo installation goes to /tmp.
    (Can be adjusted with -DCMAKE_INSTALL_PREFIX=your_path. Default is
    .)
  • (ok) ffmpeg found at
  • (ok) OpenCV 2.4.9 found at .
  • slowmoVideo will be built: ---YES---
    =======================END===========================

but in the preferences i cannot activate:
Flow method: GPU,V3D (requires flowbuilder and a video card) (greyed out)
only CPU,OpenCV is avalaible.

testing with :
/tmp/bin/slowmoFlowBuilder --identify

                              9:35

Inconsistency detected by ld.so: dl-version.c: 224: _dl_check_map_versions:
Assertion `needed != ((void *)0)' failed!

shows the error.

Did you manage to use it ?

By the way i am in charge of the ppa for ubuntu. once it will work on my
machine, i will try to update the ppa.

Thanks,
Benoit.

On Sun, Jul 20, 2014 at 2:33 PM, valgit notifications@github.com wrote:

I am ok with that if you will.


Reply to this email directly or view it on GitHub
#18 (comment)
.

@valgit
Copy link
Contributor

valgit commented Aug 19, 2014

Hi,

thanks for all your inputs. As I am on travel I have no way to check, but as soon as I can, I will look at that.
thanks

@brousselle
Copy link

Hello,

great ! FYI i have already opened a new issue for this:
#22

Thanks,
Benoit.

On Tue, Aug 19, 2014 at 2:52 PM, valgit notifications@github.com wrote:

Hi,

thanks for all your inputs. As I am on travel I have no way to check, but
as soon as I can, I will look at that.
thanks


Reply to this email directly or view it on GitHub
#18 (comment)
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants