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

videoio: build issues with FFmpeg 5.1 #22418

Closed
3 of 4 tasks
sjmgarnier opened this issue Aug 23, 2022 · 5 comments
Closed
3 of 4 tasks

videoio: build issues with FFmpeg 5.1 #22418

sjmgarnier opened this issue Aug 23, 2022 · 5 comments

Comments

@sjmgarnier
Copy link

sjmgarnier commented Aug 23, 2022

System information (version)
  • OpenCV => 4.6
  • Operating System / Platform => macOS Monterey, Arch Linux
  • Compiler => XCode toolchain (Mac), GCC toolchain (Arch Linux)
Detailed description

OpenCV compilation fails when FFmpeg 5.1 is installed on the system (no issue with 5.0.x and earlier versions). Here is the associated error message on Mac (the error message is somewhat similar on Arch Linux):

In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:80:6: warning: 'LIBAVCODEC_VERSION_INT' is not defined, evaluates to 0 [-Wundef]
#if (LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(54, 51, 100))
     ^
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:146:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('H', '2', '6', '4') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:147:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('h', '2', '6', '4') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:148:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('X', '2', '6', '4') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:149:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('x', '2', '6', '4') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:150:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '1') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:151:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('V', 'S', 'S', 'H') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:153:7: error: use of undeclared identifier 'CODEC_ID_H263'; did you mean 'AV_CODEC_ID_H263'?
    { AV_CODEC_ID_H263, MKTAG('H', '2', '6', '3') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:82:26: note: expanded from macro 'AV_CODEC_ID_H263'
#define AV_CODEC_ID_H263 CODEC_ID_H263
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:54:5: note: 'AV_CODEC_ID_H263' declared here
    AV_CODEC_ID_H263,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:154:7: error: use of undeclared identifier 'CODEC_ID_H263P'; did you mean 'AV_CODEC_ID_H263P'?
    { AV_CODEC_ID_H263P, MKTAG('H', '2', '6', '3') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263P
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:83:27: note: expanded from macro 'AV_CODEC_ID_H263P'
#define AV_CODEC_ID_H263P CODEC_ID_H263P
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:69:5: note: 'AV_CODEC_ID_H263P' declared here
    AV_CODEC_ID_H263P,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:155:7: error: use of undeclared identifier 'CODEC_ID_H263I'; did you mean 'AV_CODEC_ID_H263I'?
    { AV_CODEC_ID_H263I, MKTAG('I', '2', '6', '3') }, /* intel h263 */
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263I
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:84:27: note: expanded from macro 'AV_CODEC_ID_H263I'
#define AV_CODEC_ID_H263I CODEC_ID_H263I
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:70:5: note: 'AV_CODEC_ID_H263I' declared here
    AV_CODEC_ID_H263I,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:156:7: error: use of undeclared identifier 'CODEC_ID_H261'; did you mean 'AV_CODEC_ID_H261'?
    { AV_CODEC_ID_H261, MKTAG('H', '2', '6', '1') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H261
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:85:26: note: expanded from macro 'AV_CODEC_ID_H261'
#define AV_CODEC_ID_H261 CODEC_ID_H261
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:53:5: note: 'AV_CODEC_ID_H261' declared here
    AV_CODEC_ID_H261,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:159:7: error: use of undeclared identifier 'CODEC_ID_H263P'; did you mean 'AV_CODEC_ID_H263P'?
    { AV_CODEC_ID_H263P, MKTAG('U', '2', '6', '3') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263P
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:83:27: note: expanded from macro 'AV_CODEC_ID_H263P'
#define AV_CODEC_ID_H263P CODEC_ID_H263P
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:69:5: note: 'AV_CODEC_ID_H263P' declared here
    AV_CODEC_ID_H263P,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:160:7: error: use of undeclared identifier 'CODEC_ID_H263P'; did you mean 'AV_CODEC_ID_H263P'?
    { AV_CODEC_ID_H263P, MKTAG('v', 'i', 'v', '1') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263P
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:83:27: note: expanded from macro 'AV_CODEC_ID_H263P'
#define AV_CODEC_ID_H263P CODEC_ID_H263P
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:69:5: note: 'AV_CODEC_ID_H263P' declared here
    AV_CODEC_ID_H263P,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:162:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('F', 'M', 'P', '4') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:163:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('D', 'I', 'V', 'X') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:164:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('D', 'X', '5', '0') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:165:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('X', 'V', 'I', 'D') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:166:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('M', 'P', '4', 'S') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:167:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('M', '4', 'S', '2') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:168:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG(0x04, 0, 0, 0) }, /* some broken avi use this */
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/var/folders/ty/hlxp4fjd4dlcm9y08gnxgtyw0000gn/T/Rtmpmy3YCG/opencv-4.6.0/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1-with-options_2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o] Error 1
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
make: *** [all] Error 2
Steps to reproduce
Issue submission checklist
  • I report the issue, it's not a question
  • I checked the problem with documentation, FAQ, open issues,
    forum.opencv.org, Stack Overflow, etc and have not found any solution
  • I updated to the latest OpenCV version and the issue is still there
  • There is reproducer code and related data files: videos, images, onnx, etc
@marv
Copy link

marv commented Sep 27, 2022

This has been fixed by 496eed9

@bashtavenko
Copy link

bashtavenko commented Nov 2, 2022

I don't think it is fixed. Steps to reproduce:

git clone --depth 1 --branch 4.6.0 https://github.com/opencv/opencv.git opencv-4.6.0
mv opencv-4.6.0 opencv
mkdir -p build && cd build
cmake -DBUILD_LIST=core,highgui,imgcodecs,imgproc,videoio ../opencv
make -j4

opencv/modules/videoio/src/ffmpeg_codecs.hpp:81:26: error: ‘CODEC_ID_H264’ was not declared in this scope; did you mean ‘AV_CODEC_ID_H264’?
81 | #define AV_CODEC_ID_H264 CODEC_ID_H264
| ^~~~~~~~~~~~~

@alalek
Copy link
Member

alalek commented Nov 2, 2022

4.6.0

It was released before mentioned patch.
No new releases.

@alalek alalek mentioned this issue Nov 3, 2022
4 tasks
@timofey-retailnext
Copy link

this happens due to missing header in videoio's ffmpeg code. see #22753

@kallaballa
Copy link
Contributor

kallaballa commented Nov 11, 2022

I can confirm that building with ffmpeg 5.1.2 works using the 4.x branch on the most recent OpenSuse TumbleWeed (Linux),

OpenCV build configuration is:

General configuration for OpenCV 4.6.0-dev =====================================
  Version control:               4.6.0-536-gda5db72f95

  Extra modules:
    Location (extra):            /home/elchaschab/devel/opencv_contrib-4.x/modules
    Version control (extra):     unknown

  Platform:
    Timestamp:                   2022-11-09T18:34:30Z
    Host:                        Linux 6.0.6-1-default x86_64
    CMake:                       3.24.2
    CMake generator:             Unix Makefiles
    CMake build tool:            /usr/bin/gmake
    Configuration:               Release

  CPU/HW features:
    Baseline:                    SSE SSE2 SSE3
      requested:                 SSE3
    Dispatched code generation:  SSE4_1 SSE4_2 FP16 AVX AVX2 AVX512_SKX
      requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
      SSE4_1 (16 files):         + SSSE3 SSE4_1
      SSE4_2 (1 files):          + SSSE3 SSE4_1 POPCNT SSE4_2
      FP16 (0 files):            + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
      AVX (4 files):             + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
      AVX2 (32 files):           + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2
      AVX512_SKX (5 files):      + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 AVX_512F AVX512_COMMON AVX512_SKX

  C/C++:
    Built as dynamic libs?:      YES
    C++ standard:                11
    C++ Compiler:                /usr/bin/c++  (ver 12.2.1)
    C++ flags (Release):         -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG
    C++ flags (Debug):           -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG
    C Compiler:                  /usr/bin/cc
    C flags (Release):           -fsigned-char -W -Wall -Wreturn-type -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -O3 -DNDEBUG  -DNDEBUG
    C flags (Debug):             -fsigned-char -W -Wall -Wreturn-type -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUG
    Linker flags (Release):      -Wl,--exclude-libs,libippicv.a -Wl,--exclude-libs,libippiw.a   -Wl,--gc-sections -Wl,--as-needed -Wl,--no-undefined  
    Linker flags (Debug):        -Wl,--exclude-libs,libippicv.a -Wl,--exclude-libs,libippiw.a   -Wl,--gc-sections -Wl,--as-needed -Wl,--no-undefined  
    ccache:                      NO
    Precompiled headers:         NO
    Extra dependencies:          dl m pthread rt
    3rdparty dependencies:

  OpenCV modules:
    To be built:                 aruco barcode bgsegm bioinspired calib3d ccalib core cvv datasets dnn dnn_objdetect dnn_superres dpm face features2d flann freetype fuzzy gapi hfs highgui img_hash imgcodecs imgproc intensity_transform line_descriptor mcc ml objdetect optflow phase_unwrapping photo plot python3 quality rapid reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking video videoio videostab wechat_qrcode xfeatures2d ximgproc xobjdetect xphoto
    Disabled:                    world
    Disabled by dependency:      -
    Unavailable:                 alphamat cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev hdf java julia matlab ovis python2 sfm ts viz
    Applications:                apps
    Documentation:               NO
    Non-free algorithms:         NO

  GUI:                           QT5
    QT:                          YES (ver 5.15.6 )
      QT OpenGL support:         YES (Qt5::OpenGL 5.15.6)
    GTK+:                        YES (ver 2.24.33)
      GThread :                  YES (ver 2.74.1)
      GtkGlExt:                  YES (ver 1.2.0)
    OpenGL support:              YES (/lib64/libGL.so /lib64/libGLU.so)
    VTK support:                 NO

  Media I/O: 
    ZLib:                        /lib64/libz.so (ver 1.2.12)
    JPEG:                        /lib64/libjpeg.so (ver 62)
    WEBP:                        /lib64/libwebp.so (ver encoder: 0x020f)
    PNG:                         /lib64/libpng.so (ver 1.6.38)
    TIFF:                        /lib64/libtiff.so (ver 42 / 4.4.0)
    JPEG 2000:                   OpenJPEG (ver 2.5.0)
    OpenEXR:                     build (ver 2.3.0)
    HDR:                         YES
    SUNRASTER:                   YES
    PXM:                         YES
    PFM:                         YES

  Video I/O:
    DC1394:                      YES (2.2.6)
    FFMPEG:                      YES
      avcodec:                   YES (59.37.100)
      avformat:                  YES (59.27.100)
      avutil:                    YES (57.28.100)
      swscale:                   YES (6.7.100)
      avresample:                NO
      avdevice:                  YES (59.7.100)
    GStreamer:                   YES (1.20.4)
    v4l/v4l2:                    YES (linux/videodev2.h)

  Parallel framework:            pthreads

  Trace:                         YES (with Intel ITT)

  Other third-party libraries:
    Intel IPP:                   2020.0.0 Gold [2020.0.0]
           at:                   /home/elchaschab/devel/opencv/build/3rdparty/ippicv/ippicv_lnx/icv
    Intel IPP IW:                sources (2020.0.0)
              at:                /home/elchaschab/devel/opencv/build/3rdparty/ippicv/ippicv_lnx/iw
    VA:                          YES
    Lapack:                      YES (/lib64/libopenblas.so)
    Eigen:                       NO
    Custom HAL:                  NO
    Protobuf:                    build (3.19.1)

  OpenCL:                        YES (INTELVA)
    Include path:                /home/elchaschab/devel/opencv/3rdparty/include/opencl/1.2
    Link libraries:              Dynamic load

  Python 3:
    Interpreter:                 /usr/bin/python3 (ver 3.10.8)
    Libraries:                   /lib64/libpython3.10.so (ver 3.10.8)
    numpy:                       /usr/lib64/python3.10/site-packages/numpy/core/include (ver 1.23.4)
    install path:                lib/python3.10/site-packages/cv2/python-3.10

  Python (for build):            /usr/bin/python2.7

  Java:                          
    ant:                         NO
    JNI:                         NO
    Java wrappers:               NO
    Java tests:                  NO

  Install to:                    /usr/local
-----------------------------------------------------------------

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

No branches or pull requests

7 participants