diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f6f2933..f74d6395 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,7 +46,7 @@ message("#######################################################################
# setup include dir and lib dir
include_directories(${LITE_AI_ROOT_DIR})
-link_directories(${LITE_AI_ROOT_DIR}/lib)
+link_directories(${LITE_AI_ROOT_DIR}/lib/${PLATFORM_NAME})
# include custom cmake files.
include(cmake/setup_opencv_libs.cmake)
diff --git a/README.md b/README.md
index 27897bfa..c5aa2883 100644
--- a/README.md
+++ b/README.md
@@ -256,16 +256,48 @@ The output is:
cp -r you-path-to-downloaded-or-built-TNN/include/tnn lite.ai.toolkit/tnn
```
-and put the libs into **lite.ai.toolkit/lib** directory. Please reference the build-docs[1](#lite.ai.toolkit-1) for **third_party**.
-* **lite.ai.toolkit/lib**
+and put the libs into **lite.ai.toolkit/lib/(linux|windows)** directory. Please reference the build-docs[1](#lite.ai.toolkit-1) for **third_party**.
+* **lite.ai.toolkit/lib/(linux|windows)**
```shell
- cp you-path-to-downloaded-or-built-opencv/lib/*opencv* lite.ai.toolkit/lib
- cp you-path-to-downloaded-or-built-onnxruntime/lib/*onnxruntime* lite.ai.toolkit/lib
- cp you-path-to-downloaded-or-built-MNN/lib/*MNN* lite.ai.toolkit/lib
- cp you-path-to-downloaded-or-built-ncnn/lib/*ncnn* lite.ai.toolkit/lib
- cp you-path-to-downloaded-or-built-TNN/lib/*TNN* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-opencv/lib/(linux|windows)/*opencv* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-onnxruntime/lib/(linux|windows)/*onnxruntime* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-MNN/lib/(linux|windows)/*MNN* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-ncnn/lib/(linux|windows)/*ncnn* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-TNN/lib/(linux|windows)/*TNN* lite.ai.toolkit/lib
```
+Note, your also need to install ffmpeg(<=4.2.2) in Linux to support the opencv videoio module. See [issue#203](https://github.com/DefTruth/lite.ai.toolkit/issues/6). In MacOS, ffmpeg4.2.2 was been package into lite.ai.toolkit, thus, no installation need in OSX. In Windows, ffmpeg was been package into opencv dll prebuilt by the team of opencv. Please make sure -DWITH_FFMPEG=ON and check the configuration info when building opencv.
+* first, build ffmpeg(<=4.2.2) from source.
+```shell
+git clone --depth=1 https://git.ffmpeg.org/ffmpeg.git -b n4.2.2
+cd ffmpeg
+./configure --enable-shared --disable-x86asm --prefix=/usr/local/opt/ffmpeg --disable-static
+make -j8
+make install
+```
+* then, build opencv with -DWITH_FFMPEG=ON, just like
+```shell
+#!/bin/bash
+
+mkdir build
+cd build
+
+cmake .. \
+ -D CMAKE_BUILD_TYPE=Release \
+ -D CMAKE_INSTALL_PREFIX=your-path-to-custom-dir \
+ -D BUILD_TESTS=OFF \
+ -D BUILD_PERF_TESTS=OFF \
+ -D BUILD_opencv_python3=OFF \
+ -D BUILD_opencv_python2=OFF \
+ -D BUILD_SHARED_LIBS=ON \
+ -D BUILD_opencv_apps=OFF \
+ -D WITH_FFMPEG=ON
+
+make -j8
+make install
+cd ..
+```
+after built opencv, you can follow the steps to build lite.ai.toolkit.
* Windows: You can reference to [issue#6](https://github.com/DefTruth/lite.ai.toolkit/issues/6)
* Linux: The Docs and Docker image for Linux will be coming soon ~ [issue#2](https://github.com/DefTruth/lite.ai.toolkit/issues/2)
diff --git a/README.zh.md b/README.zh.md
index e70cd2ca..57b83a68 100644
--- a/README.zh.md
+++ b/README.zh.md
@@ -257,16 +257,47 @@ static void test_default()
cp -r you-path-to-downloaded-or-built-TNN/include/tnn lite.ai.toolkit/tnn
```
-然后把各个依赖库拷贝到**lite.ai.toolkit/lib** 文件夹。 请参考依赖库的编译文档[1](#lite.ai.toolkit-1)。
-* **lite.ai.toolkit/lib**
+然后把各个依赖库拷贝到**lite.ai.toolkit/lib/(linux|windows)** 文件夹。 请参考依赖库的编译文档[1](#lite.ai.toolkit-1)。
+* **lite.ai.toolkit/lib/(linux|windows)**
```shell
- cp you-path-to-downloaded-or-built-opencv/lib/*opencv* lite.ai.toolkit/lib
- cp you-path-to-downloaded-or-built-onnxruntime/lib/*onnxruntime* lite.ai.toolkit/lib
- cp you-path-to-downloaded-or-built-MNN/lib/*MNN* lite.ai.toolkit/lib
- cp you-path-to-downloaded-or-built-ncnn/lib/*ncnn* lite.ai.toolkit/lib
- cp you-path-to-downloaded-or-built-TNN/lib/*TNN* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-opencv/lib/(linux|windows)/*opencv* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-onnxruntime/lib/(linux|windows)/*onnxruntime* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-MNN/lib/(linux|windows)/*MNN* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-ncnn/lib/(linux|windows)/*ncnn* lite.ai.toolkit/lib
+ cp you-path-to-downloaded-or-built-TNN/lib/(linux|windows)/*TNN* lite.ai.toolkit/lib
```
-
+注意,你还需要安装ffmpeg(<=4.2.2),因为opencv的videoio模块依赖ffmpeg进行mp4的编解码。参考[issue#203](https://github.com/DefTruth/lite.ai.toolkit/issues/6) . 在MacOS下,ffmpeg4.2.2已经作为一个自定义依赖库被我打包进lite.ai.toolkit,不需要再从HomeBrew安装为系统库,因此lite.ai.toolkit是单体的,你可以把它移植到app里面,不用心另一台运行app的机器没有ffmpeg,MacOS版本的lite.ai.toolkit已经包含ffmpeg. 在Windows下,opencv官方团队已经提供了用于opencv的ffmpeg预编译库。在Linux下编译opencv时,请确保-DWITH_FFMPEG=ON,并检查是否链接到ffmpeg.
+* 先编译ffmpeg,注意必须是低版本的,高于4.4的,opencv会不兼容。
+```shell
+git clone --depth=1 https://git.ffmpeg.org/ffmpeg.git -b n4.2.2
+cd ffmpeg
+./configure --enable-shared --disable-x86asm --prefix=/usr/local/opt/ffmpeg --disable-static
+make -j8
+make install
+```
+* 然后,编译带ffmpeg支持的OpenCV,指定-DWITH_FFMPEG=ON
+```shell
+#!/bin/bash
+
+mkdir build
+cd build
+
+cmake .. \
+ -D CMAKE_BUILD_TYPE=Release \
+ -D CMAKE_INSTALL_PREFIX=your-path-to-custom-dir \
+ -D BUILD_TESTS=OFF \
+ -D BUILD_PERF_TESTS=OFF \
+ -D BUILD_opencv_python3=OFF \
+ -D BUILD_opencv_python2=OFF \
+ -D BUILD_SHARED_LIBS=ON \
+ -D BUILD_opencv_apps=OFF \
+ -D WITH_FFMPEG=ON
+
+make -j8
+make install
+cd ..
+```
+编译完opencv后,你就可以按照上述的步骤,继续编译lite.ai.toolkit.
* Windows: 你可以参考[issue#6](https://github.com/DefTruth/lite.ai.toolkit/issues/6) ,讨论了常见的编译问题。
* Linux: 参考MacOS下的编译,替换Linux版本的依赖库即可。Linux下的发行版本将会在近期添加 ~ [issue#2](https://github.com/DefTruth/lite.ai.toolkit/issues/2)
diff --git a/cmake/lite.ai.toolkit-cmd.cmake b/cmake/lite.ai.toolkit-cmd.cmake
index 4a6527aa..b2ab4a48 100644
--- a/cmake/lite.ai.toolkit-cmd.cmake
+++ b/cmake/lite.ai.toolkit-cmd.cmake
@@ -131,31 +131,35 @@ function(add_lite_ai_toolkit_engines_libs_command)
# copy opencv libs
if (INCLUDE_OPENCV)
message("Installing OpenCV libs -> INCLUDE_OPENCV: ${INCLUDE_OPENCV} ...")
- file(GLOB ALL_OpenCV_LIBS ${LITE_AI_ROOT_DIR}/lib/*opencv*)
+ file(GLOB ALL_OpenCV_LIBS ${LITE_AI_ROOT_DIR}/lib/${PLATFORM_NAME}/*opencv*)
+ file(GLOB FFMPEG_AV_LIBS ${LITE_AI_ROOT_DIR}/lib/${PLATFORM_NAME}/*av*)
+ file(GLOB FFMPEG_SW_LIBS ${LITE_AI_ROOT_DIR}/lib/${PLATFORM_NAME}/*sw*)
file(INSTALL ${ALL_OpenCV_LIBS} DESTINATION ${LIBRARY_OUTPUT_PATH})
+ file(INSTALL ${FFMPEG_AV_LIBS} DESTINATION ${LIBRARY_OUTPUT_PATH})
+ file(INSTALL ${FFMPEG_SW_LIBS} DESTINATION ${LIBRARY_OUTPUT_PATH})
endif()
# copy onnxruntime libs
if (ENABLE_ONNXRUNTIME)
message("Installing ONNXRuntime libs -> ENABLE_ONNXRUNTIME: ${ENABLE_ONNXRUNTIME} ...")
- file(GLOB ALL_ONNXRUNTIME_LIBS ${LITE_AI_ROOT_DIR}/lib/*onnxruntime*)
+ file(GLOB ALL_ONNXRUNTIME_LIBS ${LITE_AI_ROOT_DIR}/lib/${PLATFORM_NAME}/*onnxruntime*)
file(INSTALL ${ALL_ONNXRUNTIME_LIBS} DESTINATION ${LIBRARY_OUTPUT_PATH})
endif()
# copy MNN libs
if (ENABLE_MNN)
message("Installing MNN libs -> ENABLE_MNN: ${ENABLE_MNN} ...")
- file(GLOB ALL_MNN_LIBS ${LITE_AI_ROOT_DIR}/lib/*MNN*)
+ file(GLOB ALL_MNN_LIBS ${LITE_AI_ROOT_DIR}/lib/${PLATFORM_NAME}/*MNN*)
file(INSTALL ${ALL_MNN_LIBS} DESTINATION ${LIBRARY_OUTPUT_PATH})
endif()
# copy NCNN libs
if (ENABLE_NCNN)
message("Installing NCNN libs -> ENABLE_NCNN: ${ENABLE_NCNN} ...")
- file(GLOB ALL_NCNN_LIBS ${LITE_AI_ROOT_DIR}/lib/*ncnn*)
+ file(GLOB ALL_NCNN_LIBS ${LITE_AI_ROOT_DIR}/lib/${PLATFORM_NAME}/*ncnn*)
file(INSTALL ${ALL_NCNN_LIBS} DESTINATION ${LIBRARY_OUTPUT_PATH})
endif()
# copy TNN libs
if (ENABLE_TNN)
message("Installing TNN libs -> ENABLE_TNN: ${ENABLE_TNN} ...")
- file(GLOB ALL_TNN_LIBS ${LITE_AI_ROOT_DIR}/lib/*TNN*)
+ file(GLOB ALL_TNN_LIBS ${LITE_AI_ROOT_DIR}/lib/${PLATFORM_NAME}/*TNN*)
file(INSTALL ${ALL_TNN_LIBS} DESTINATION ${LIBRARY_OUTPUT_PATH})
endif()
endfunction()
diff --git a/cmake/lite.ai.toolkit.cmake b/cmake/lite.ai.toolkit.cmake
index 2f6c06a3..4e32980b 100644
--- a/cmake/lite.ai.toolkit.cmake
+++ b/cmake/lite.ai.toolkit.cmake
@@ -1,6 +1,11 @@
add_lite_ai_toolkit_shared_library(${VERSION_STRING} ${SOVERSION_STRING})
add_lite_ai_toolkit_engines_headers_command()
-add_lite_ai_toolkit_engines_libs_command()
+
+# TODO: Windows需要之后兼容
+if(${PLATFORM_NAME} MATCHES macos OR ${PLATFORM_NAME} MATCHES linux)
+ add_lite_ai_toolkit_engines_libs_command()
+endif()
+
if(${PLATFORM_NAME} MATCHES macos OR ${PLATFORM_NAME} MATCHES linux)
add_lite_ai_toolkit_test_custom_command()
endif()
diff --git a/cmake/setup_opencv_libs.cmake b/cmake/setup_opencv_libs.cmake
index ba9eee7d..5e20d241 100644
--- a/cmake/setup_opencv_libs.cmake
+++ b/cmake/setup_opencv_libs.cmake
@@ -5,7 +5,7 @@ set(OpenCV_LIBS
opencv_imgproc
opencv_imgcodecs
opencv_video
- opencv_videoio
+ opencv_videoio # need ffmpeg for mp4 io
) # need only
message("###########################################################################################")
diff --git a/lib/.gitignore b/lib/.gitignore
index b521b7d7..e43b0f98 100644
--- a/lib/.gitignore
+++ b/lib/.gitignore
@@ -1,3 +1 @@
-windows
-linux
-android
\ No newline at end of file
+.DS_Store
diff --git a/lib/android/.gitignore b/lib/android/.gitignore
new file mode 100644
index 00000000..e69de29b
diff --git a/lib/libopencv_video.4.5.dylib b/lib/libopencv_video.4.5.dylib
deleted file mode 100644
index 18c2da7f..00000000
Binary files a/lib/libopencv_video.4.5.dylib and /dev/null differ
diff --git a/lib/libopencv_video.dylib b/lib/libopencv_video.dylib
deleted file mode 100755
index 18c2da7f..00000000
Binary files a/lib/libopencv_video.dylib and /dev/null differ
diff --git a/lib/linux/.gitignore b/lib/linux/.gitignore
new file mode 100644
index 00000000..e69de29b
diff --git a/lib/macos/.gitignore b/lib/macos/.gitignore
new file mode 100644
index 00000000..e69de29b
diff --git a/lib/libMNN.dylib b/lib/macos/libMNN.dylib
similarity index 100%
rename from lib/libMNN.dylib
rename to lib/macos/libMNN.dylib
diff --git a/lib/libTNN.0.dylib b/lib/macos/libTNN.0.dylib
similarity index 100%
rename from lib/libTNN.0.dylib
rename to lib/macos/libTNN.0.dylib
diff --git a/lib/libTNN.dylib b/lib/macos/libTNN.dylib
similarity index 100%
rename from lib/libTNN.dylib
rename to lib/macos/libTNN.dylib
diff --git a/lib/macos/libavcodec.58.dylib b/lib/macos/libavcodec.58.dylib
new file mode 100755
index 00000000..16c228c7
Binary files /dev/null and b/lib/macos/libavcodec.58.dylib differ
diff --git a/lib/macos/libavcodec.dylib b/lib/macos/libavcodec.dylib
new file mode 100755
index 00000000..16c228c7
Binary files /dev/null and b/lib/macos/libavcodec.dylib differ
diff --git a/lib/macos/libavdevice.58.dylib b/lib/macos/libavdevice.58.dylib
new file mode 100755
index 00000000..06b8aeea
Binary files /dev/null and b/lib/macos/libavdevice.58.dylib differ
diff --git a/lib/macos/libavdevice.dylib b/lib/macos/libavdevice.dylib
new file mode 100755
index 00000000..06b8aeea
Binary files /dev/null and b/lib/macos/libavdevice.dylib differ
diff --git a/lib/macos/libavfilter.7.dylib b/lib/macos/libavfilter.7.dylib
new file mode 100755
index 00000000..cf0e9ca2
Binary files /dev/null and b/lib/macos/libavfilter.7.dylib differ
diff --git a/lib/macos/libavfilter.dylib b/lib/macos/libavfilter.dylib
new file mode 100755
index 00000000..cf0e9ca2
Binary files /dev/null and b/lib/macos/libavfilter.dylib differ
diff --git a/lib/macos/libavformat.58.dylib b/lib/macos/libavformat.58.dylib
new file mode 100755
index 00000000..7d468162
Binary files /dev/null and b/lib/macos/libavformat.58.dylib differ
diff --git a/lib/macos/libavformat.dylib b/lib/macos/libavformat.dylib
new file mode 100755
index 00000000..7d468162
Binary files /dev/null and b/lib/macos/libavformat.dylib differ
diff --git a/lib/macos/libavutil.56.dylib b/lib/macos/libavutil.56.dylib
new file mode 100755
index 00000000..dd8cfba3
Binary files /dev/null and b/lib/macos/libavutil.56.dylib differ
diff --git a/lib/macos/libavutil.dylib b/lib/macos/libavutil.dylib
new file mode 100755
index 00000000..dd8cfba3
Binary files /dev/null and b/lib/macos/libavutil.dylib differ
diff --git a/lib/libncnn.1.dylib b/lib/macos/libncnn.1.dylib
similarity index 100%
rename from lib/libncnn.1.dylib
rename to lib/macos/libncnn.1.dylib
diff --git a/lib/libncnn.dylib b/lib/macos/libncnn.dylib
similarity index 100%
rename from lib/libncnn.dylib
rename to lib/macos/libncnn.dylib
diff --git a/lib/libonnxruntime.1.7.0.dylib b/lib/macos/libonnxruntime.1.7.0.dylib
similarity index 100%
rename from lib/libonnxruntime.1.7.0.dylib
rename to lib/macos/libonnxruntime.1.7.0.dylib
diff --git a/lib/libonnxruntime.dylib b/lib/macos/libonnxruntime.dylib
similarity index 100%
rename from lib/libonnxruntime.dylib
rename to lib/macos/libonnxruntime.dylib
diff --git a/lib/macos/libopencv_calib3d.4.5.dylib b/lib/macos/libopencv_calib3d.4.5.dylib
new file mode 100755
index 00000000..139d64e3
Binary files /dev/null and b/lib/macos/libopencv_calib3d.4.5.dylib differ
diff --git a/lib/macos/libopencv_calib3d.dylib b/lib/macos/libopencv_calib3d.dylib
new file mode 100755
index 00000000..139d64e3
Binary files /dev/null and b/lib/macos/libopencv_calib3d.dylib differ
diff --git a/lib/libopencv_core.4.5.dylib b/lib/macos/libopencv_core.4.5.dylib
old mode 100644
new mode 100755
similarity index 50%
rename from lib/libopencv_core.4.5.dylib
rename to lib/macos/libopencv_core.4.5.dylib
index 6303279d..4e7d57b2
Binary files a/lib/libopencv_core.4.5.dylib and b/lib/macos/libopencv_core.4.5.dylib differ
diff --git a/lib/libopencv_core.dylib b/lib/macos/libopencv_core.dylib
similarity index 50%
rename from lib/libopencv_core.dylib
rename to lib/macos/libopencv_core.dylib
index 2bf036d2..4e7d57b2 100755
Binary files a/lib/libopencv_core.dylib and b/lib/macos/libopencv_core.dylib differ
diff --git a/lib/macos/libopencv_features2d.4.5.dylib b/lib/macos/libopencv_features2d.4.5.dylib
new file mode 100755
index 00000000..0d58dd7a
Binary files /dev/null and b/lib/macos/libopencv_features2d.4.5.dylib differ
diff --git a/lib/macos/libopencv_features2d.dylib b/lib/macos/libopencv_features2d.dylib
new file mode 100755
index 00000000..0d58dd7a
Binary files /dev/null and b/lib/macos/libopencv_features2d.dylib differ
diff --git a/lib/macos/libopencv_flann.4.5.dylib b/lib/macos/libopencv_flann.4.5.dylib
new file mode 100755
index 00000000..e30201bd
Binary files /dev/null and b/lib/macos/libopencv_flann.4.5.dylib differ
diff --git a/lib/macos/libopencv_flann.dylib b/lib/macos/libopencv_flann.dylib
new file mode 100755
index 00000000..e30201bd
Binary files /dev/null and b/lib/macos/libopencv_flann.dylib differ
diff --git a/lib/macos/libopencv_gapi.4.5.dylib b/lib/macos/libopencv_gapi.4.5.dylib
new file mode 100755
index 00000000..d604bc27
Binary files /dev/null and b/lib/macos/libopencv_gapi.4.5.dylib differ
diff --git a/lib/macos/libopencv_gapi.dylib b/lib/macos/libopencv_gapi.dylib
new file mode 100755
index 00000000..d604bc27
Binary files /dev/null and b/lib/macos/libopencv_gapi.dylib differ
diff --git a/lib/macos/libopencv_highgui.4.5.dylib b/lib/macos/libopencv_highgui.4.5.dylib
new file mode 100755
index 00000000..54244e0a
Binary files /dev/null and b/lib/macos/libopencv_highgui.4.5.dylib differ
diff --git a/lib/macos/libopencv_highgui.dylib b/lib/macos/libopencv_highgui.dylib
new file mode 100755
index 00000000..54244e0a
Binary files /dev/null and b/lib/macos/libopencv_highgui.dylib differ
diff --git a/lib/libopencv_imgcodecs.4.5.dylib b/lib/macos/libopencv_imgcodecs.4.5.dylib
old mode 100644
new mode 100755
similarity index 99%
rename from lib/libopencv_imgcodecs.4.5.dylib
rename to lib/macos/libopencv_imgcodecs.4.5.dylib
index 864e9092..932bd6ab
Binary files a/lib/libopencv_imgcodecs.4.5.dylib and b/lib/macos/libopencv_imgcodecs.4.5.dylib differ
diff --git a/lib/libopencv_imgcodecs.dylib b/lib/macos/libopencv_imgcodecs.dylib
similarity index 99%
rename from lib/libopencv_imgcodecs.dylib
rename to lib/macos/libopencv_imgcodecs.dylib
index 864e9092..932bd6ab 100755
Binary files a/lib/libopencv_imgcodecs.dylib and b/lib/macos/libopencv_imgcodecs.dylib differ
diff --git a/lib/libopencv_imgproc.4.5.dylib b/lib/macos/libopencv_imgproc.4.5.dylib
old mode 100644
new mode 100755
similarity index 55%
rename from lib/libopencv_imgproc.4.5.dylib
rename to lib/macos/libopencv_imgproc.4.5.dylib
index 76d64a36..fa7ffef5
Binary files a/lib/libopencv_imgproc.4.5.dylib and b/lib/macos/libopencv_imgproc.4.5.dylib differ
diff --git a/lib/libopencv_imgproc.dylib b/lib/macos/libopencv_imgproc.dylib
similarity index 55%
rename from lib/libopencv_imgproc.dylib
rename to lib/macos/libopencv_imgproc.dylib
index 76d64a36..fa7ffef5 100755
Binary files a/lib/libopencv_imgproc.dylib and b/lib/macos/libopencv_imgproc.dylib differ
diff --git a/lib/macos/libopencv_ml.4.5.dylib b/lib/macos/libopencv_ml.4.5.dylib
new file mode 100755
index 00000000..927cd782
Binary files /dev/null and b/lib/macos/libopencv_ml.4.5.dylib differ
diff --git a/lib/macos/libopencv_ml.dylib b/lib/macos/libopencv_ml.dylib
new file mode 100755
index 00000000..927cd782
Binary files /dev/null and b/lib/macos/libopencv_ml.dylib differ
diff --git a/lib/macos/libopencv_objdetect.4.5.dylib b/lib/macos/libopencv_objdetect.4.5.dylib
new file mode 100755
index 00000000..0d273a36
Binary files /dev/null and b/lib/macos/libopencv_objdetect.4.5.dylib differ
diff --git a/lib/macos/libopencv_objdetect.dylib b/lib/macos/libopencv_objdetect.dylib
new file mode 100755
index 00000000..0d273a36
Binary files /dev/null and b/lib/macos/libopencv_objdetect.dylib differ
diff --git a/lib/macos/libopencv_photo.4.5.dylib b/lib/macos/libopencv_photo.4.5.dylib
new file mode 100755
index 00000000..103cb101
Binary files /dev/null and b/lib/macos/libopencv_photo.4.5.dylib differ
diff --git a/lib/macos/libopencv_photo.dylib b/lib/macos/libopencv_photo.dylib
new file mode 100755
index 00000000..103cb101
Binary files /dev/null and b/lib/macos/libopencv_photo.dylib differ
diff --git a/lib/macos/libopencv_stitching.4.5.dylib b/lib/macos/libopencv_stitching.4.5.dylib
new file mode 100755
index 00000000..dc27791b
Binary files /dev/null and b/lib/macos/libopencv_stitching.4.5.dylib differ
diff --git a/lib/macos/libopencv_stitching.dylib b/lib/macos/libopencv_stitching.dylib
new file mode 100755
index 00000000..dc27791b
Binary files /dev/null and b/lib/macos/libopencv_stitching.dylib differ
diff --git a/lib/macos/libopencv_video.4.5.dylib b/lib/macos/libopencv_video.4.5.dylib
new file mode 100755
index 00000000..b19cfda5
Binary files /dev/null and b/lib/macos/libopencv_video.4.5.dylib differ
diff --git a/lib/macos/libopencv_video.dylib b/lib/macos/libopencv_video.dylib
new file mode 100755
index 00000000..b19cfda5
Binary files /dev/null and b/lib/macos/libopencv_video.dylib differ
diff --git a/lib/libopencv_videoio.4.5.dylib b/lib/macos/libopencv_videoio.4.5.dylib
old mode 100644
new mode 100755
similarity index 54%
rename from lib/libopencv_videoio.4.5.dylib
rename to lib/macos/libopencv_videoio.4.5.dylib
index 6e405528..cb0f9193
Binary files a/lib/libopencv_videoio.4.5.dylib and b/lib/macos/libopencv_videoio.4.5.dylib differ
diff --git a/lib/libopencv_videoio.dylib b/lib/macos/libopencv_videoio.dylib
similarity index 54%
rename from lib/libopencv_videoio.dylib
rename to lib/macos/libopencv_videoio.dylib
index 6e405528..cb0f9193 100755
Binary files a/lib/libopencv_videoio.dylib and b/lib/macos/libopencv_videoio.dylib differ
diff --git a/lib/macos/libswresample.3.dylib b/lib/macos/libswresample.3.dylib
new file mode 100755
index 00000000..e154ade5
Binary files /dev/null and b/lib/macos/libswresample.3.dylib differ
diff --git a/lib/macos/libswresample.dylib b/lib/macos/libswresample.dylib
new file mode 100755
index 00000000..e154ade5
Binary files /dev/null and b/lib/macos/libswresample.dylib differ
diff --git a/lib/macos/libswscale.5.dylib b/lib/macos/libswscale.5.dylib
new file mode 100755
index 00000000..b9084299
Binary files /dev/null and b/lib/macos/libswscale.5.dylib differ
diff --git a/lib/macos/libswscale.dylib b/lib/macos/libswscale.dylib
new file mode 100755
index 00000000..b9084299
Binary files /dev/null and b/lib/macos/libswscale.dylib differ
diff --git a/lib/windows/.gitignore b/lib/windows/.gitignore
new file mode 100644
index 00000000..e69de29b