I've been trying to compile OpenCV3 beta for Debian Jessie, but I can't figure out how to compile support for video I/O .
Tutorials that can be found on-line usually use ffmpeg library, but as I found out Debian 8 replace this library with libav (?).
Of course I found tutorials how to remove libav and install ffmpeg, but I would rather try to find some another way.
I use OpenCV3 beta from http://opencv.org/
When I use this switch
Code: Select all
-DWITH_FFMPEG=0
When I don't use that switch, then I get this error:
Code: Select all
In file included from /home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg_impl.hpp:65:0,
from /home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg.cpp:45:
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/ffmpeg_codecs.hpp:98:7: error: ‘CODEC_ID_H264’ was not declared in this scope
{ CODEC_ID_H264, MKTAG('H', '2', '6', '4') },
^
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/ffmpeg_codecs.hpp:99:7: error: ‘CODEC_ID_H264’ was not declared in this scope
{ CODEC_ID_H264, MKTAG('h', '2', '6', '4') },
... a lot more codecs
In file included from /home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg.cpp:45:0:
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg_impl.hpp: In member function ‘double CvCapture_FFMPEG::getProperty(int)’:
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg_impl.hpp:782:33: error: ‘AVStream’ has no member named ‘r_frame_rate’
return av_q2d(video_st->r_frame_rate);
^
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg_impl.hpp: In member function ‘double CvCapture_FFMPEG::get_fps()’:
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg_impl.hpp:829:49: error: ‘AVStream’ has no member named ‘r_frame_rate’
double fps = r2d(ic->streams[video_stream]->r_frame_rate);
^
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg_impl.hpp: In function ‘AVStream* icv_add_video_stream_FFMPEG(AVFormatContext*, AVCodecID, int, int, int, double, int)’:
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg_impl.hpp:1218:24: error: ‘CODEC_ID_H264’ was not declared in this scope
if (c->codec_id == CODEC_ID_H264) {
^
In file included from /home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg.cpp:45:0:
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg_impl.hpp: In function ‘int icv_av_write_frame_FFMPEG(AVFormatContext*, AVStream*, uint8_t*, uint32_t, AVFrame*)’:
/home/sehny/Dokumenty/opencv-3.0.0-beta/modules/videoio/src/cap_ffmpeg_impl.hpp:1267:72: error: ‘avcodec_encode_video’ was not declared in this scope
out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);
^
[ 45%] Built target opencv_photo
[ 45%] Building CXX object modules/shape/CMakeFiles/opencv_shape.dir/src/sc_dis.cpp.o
modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:146: návod pro cíl „modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o“ selhal
make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o] Chyba 1
make[2]: *** Čeká se na nedokončené úlohy…
[ 45%] Building CXX object modules/shape/CMakeFiles/opencv_shape.dir/src/precomp.cpp.o
CMakeFiles/Makefile2:2406: návod pro cíl „modules/videoio/CMakeFiles/opencv_videoio.dir/all“ selhal
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Chyba 2