1* On Linux and other Unix flavors OpenCV uses default or user-built ffmpeg/libav libraries. 2 If user builds ffmpeg/libav from source and wants OpenCV to stay BSD library, not GPL/LGPL, 3 he/she should use --enabled-shared configure flag and make sure that no GPL components are 4 enabled (some notable examples are x264 (H264 encoder) and libac3 (Dolby AC3 audio codec)). 5 See https://www.ffmpeg.org/legal.html for details. 6 7 If you want to play very safe and do not want to use FFMPEG at all, regardless of whether it's installed on 8 your system or not, configure and build OpenCV using CMake with WITH_FFMPEG=OFF flag. OpenCV will then use 9 AVFoundation (OSX), GStreamer (Linux) or other available backends supported by opencv_videoio module. 10 11 There is also our self-contained motion jpeg codec, which you can use without any worries. 12 It handles CV_FOURCC('M', 'J', 'P', 'G') streams within an AVI container (".avi"). 13 14* On Windows OpenCV uses pre-built ffmpeg binaries, built with proper flags (without GPL components) and 15 wrapped with simple, stable OpenCV-compatible API. 16 The binaries are opencv_ffmpeg.dll (version for 32-bit Windows) and 17 opencv_ffmpeg_64.dll (version for 64-bit Windows). 18 19 See build_win32.txt for the build instructions, if you want to rebuild opencv_ffmpeg*.dll from scratch. 20 21 The pre-built opencv_ffmpeg*.dll is: 22 * LGPL library, not BSD libraries. 23 * Loaded at runtime by opencv_videoio module. 24 If it succeeds, ffmpeg can be used to decode/encode videos; 25 otherwise, other API is used. 26 27 If LGPL/GPL software can not be supplied with your OpenCV-based product, simply exclude 28 opencv_ffmpeg*.dll from your distribution; OpenCV will stay fully functional except for the ability to 29 decode/encode videos using FFMPEG (though, it may still be able to do that using other API, 30 such as Video for Windows, Windows Media Foundation or our self-contained motion jpeg codec). 31 32 See license.txt for the FFMPEG copyright notice and the licensing terms. 33