diff --git a/.gitattributes b/.gitattributes
index fb5e4e6644dc608e909dfdfc6a1c0e66667ce9a0..fd39a6d3e34ce18b4f1c78ce9cd064a4e210b1fa 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -5,3 +5,6 @@
 *.vcxproj         text eol=crlf
 *.vcxproj         text eol=crlf
 *.vcxproj.filters text eol=crlf
+
+cmake/ALL_BUILD.vcxproj.user.in text eol=crlf
+
diff --git a/cmake/Modules/FindLibavcodec.cmake b/cmake/Modules/FindLibavcodec.cmake
index d2297f432c6bed6a58dc05be1e58f79857f6fa1a..9f0584f8eea489bc1c56034504fd6bab0b7a8527 100644
--- a/cmake/Modules/FindLibavcodec.cmake
+++ b/cmake/Modules/FindLibavcodec.cmake
@@ -1,12 +1,12 @@
 # Once done these will be defined:
 #
-#  Libavcodec_FOUND
-#  Libavcodec_INCLUDE_DIR
-#  Libavcodec_LIBRARIES
+#  LIBAVCODEC_FOUND
+#  LIBAVCODEC_INCLUDE_DIRS
+#  LIBAVCODEC_LIBRARIES
 #
 
-if(Libavcodec_INCLUDE_DIR AND Libavcodec_LIBRARIES)
-	set(Libavcodec_FOUND TRUE)
+if(LIBAVCODEC_INCLUDE_DIRS AND LIBAVCODEC_LIBRARIES)
+	set(LIBAVCODEC_FOUND TRUE)
 else()
 	find_package(PkgConfig QUIET)
 	if (PKG_CONFIG_FOUND)
@@ -31,8 +31,8 @@ else()
 		NAMES avcodec
 		HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_AVCODEC_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
 
-	set(Libavcodec_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavcodec include dir")
-	set(Libavcodec_LIBRARIES ${AVCODEC_LIB} CACHE STRING "Libavcodec libraries")
+	set(LIBAVCODEC_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavcodec include dir")
+	set(LIBAVCODEC_LIBRARIES ${AVCODEC_LIB} CACHE STRING "Libavcodec libraries")
 
 	find_package_handle_standard_args(Libavcodec DEFAULT_MSG AVCODEC_LIB FFMPEG_INCLUDE_DIR)
 	mark_as_advanced(FFMPEG_INCLUDE_DIR AVCODEC_LIB)
diff --git a/cmake/Modules/FindLibavformat.cmake b/cmake/Modules/FindLibavformat.cmake
index 2d3686b76c1e7b91d80917302b71eae8f546d820..2334309c9ec6abcc72d4334a294a1a571da9f510 100644
--- a/cmake/Modules/FindLibavformat.cmake
+++ b/cmake/Modules/FindLibavformat.cmake
@@ -1,12 +1,12 @@
 # Once done these will be defined:
 #
-#  Libavformat_FOUND
-#  Libavformat_INCLUDE_DIR
-#  Libavformat_LIBRARIES
+#  LIBAVFORMAT_FOUND
+#  LIBAVFORMAT_INCLUDE_DIRS
+#  LIBAVFORMAT_LIBRARIES
 #
 
-if(Libavformat_INCLUDE_DIR AND Libavformat_LIBRARIES)
-	set(Libavformat_FOUND TRUE)
+if(LIBAVFORMAT_INCLUDE_DIRS AND LIBAVFORMAT_LIBRARIES)
+	set(LIBAVFORMAT_FOUND TRUE)
 else()
 	find_package(PkgConfig QUIET)
 	if (PKG_CONFIG_FOUND)
@@ -31,8 +31,8 @@ else()
 		NAMES avformat
 		HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_AVFORMAT_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
 
-	set(Libavformat_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavformat include dir")
-	set(Libavformat_LIBRARIES ${AVFORMAT_LIB} CACHE STRING "Libavformat libraries")
+	set(LIBAVFORMAT_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavformat include dir")
+	set(LIBAVFORMAT_LIBRARIES ${AVFORMAT_LIB} CACHE STRING "Libavformat libraries")
 
 	find_package_handle_standard_args(Libavformat DEFAULT_MSG AVFORMAT_LIB FFMPEG_INCLUDE_DIR)
 	mark_as_advanced(FFMPEG_INCLUDE_DIR AVFORMAT_LIB)
diff --git a/cmake/Modules/FindLibavutil.cmake b/cmake/Modules/FindLibavutil.cmake
index c0c01f7c605ac155b15976d32e697cd199de0ccc..49229c6fcf123c8d2e988cd303aee353d59b36ea 100644
--- a/cmake/Modules/FindLibavutil.cmake
+++ b/cmake/Modules/FindLibavutil.cmake
@@ -1,12 +1,12 @@
 # Once done these will be defined:
 #
-#  Libavutil_FOUND
-#  Libavutil_INCLUDE_DIR
-#  Libavutil_LIBRARIES
+#  LIBAVUTIL_FOUND
+#  LIBAVUTIL_INCLUDE_DIRS
+#  LIBAVUTIL_LIBRARIES
 #
 
-if(Libavutil_INCLUDE_DIR AND Libavutil_LIBRARIES)
-	set(Libavutil_FOUND TRUE)
+if(LIBAVUTIL_INCLUDE_DIRS AND LIBAVUTIL_LIBRARIES)
+	set(LIBAVUTIL_FOUND TRUE)
 else()
 	find_package(PkgConfig QUIET)
 	if (PKG_CONFIG_FOUND)
@@ -31,8 +31,8 @@ else()
 		NAMES avutil
 		HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_AVUTIL_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
 
-	set(Libavutil_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavutil include dir")
-	set(Libavutil_LIBRARIES ${AVUTIL_LIB} CACHE STRING "Libavutil libraries")
+	set(LIBAVUTIL_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavutil include dir")
+	set(LIBAVUTIL_LIBRARIES ${AVUTIL_LIB} CACHE STRING "Libavutil libraries")
 
 	find_package_handle_standard_args(Libavutil DEFAULT_MSG AVUTIL_LIB FFMPEG_INCLUDE_DIR)
 	mark_as_advanced(FFMPEG_INCLUDE_DIR AVUTIL_LIB)
diff --git a/cmake/Modules/FindLibswresample.cmake b/cmake/Modules/FindLibswresample.cmake
index b402effd000243034827e0e2fb91aa551aaecbb4..03622a49973a74059572fbff09358b99845e3b98 100644
--- a/cmake/Modules/FindLibswresample.cmake
+++ b/cmake/Modules/FindLibswresample.cmake
@@ -1,12 +1,12 @@
 # Once done these will be defined:
 #
-#  Libswresample_FOUND
-#  Libswresample_INCLUDE_DIR
-#  Libswresample_LIBRARIES
+#  LIBSWRESAMPLE_FOUND
+#  LIBSWRESAMPLE_INCLUDE_DIRS
+#  LIBSWRESAMPLE_LIBRARIES
 #
 
-if(Libswresample_INCLUDE_DIR AND Libswresample_LIBRARIES)
-	set(Libswresample_FOUND TRUE)
+if(LIBSWRESAMPLE_INCLUDE_DIRS AND LIBSWRESAMPLE_LIBRARIES)
+	set(LIBSWRESAMPLE_FOUND TRUE)
 else()
 	find_package(PkgConfig QUIET)
 	if (PKG_CONFIG_FOUND)
@@ -31,8 +31,8 @@ else()
 		NAMES swresample
 		HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_SWRESAMPLE_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
 
-	set(Libswresample_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswresample include dir")
-	set(Libswresample_LIBRARIES ${SWRESAMPLE_LIB} CACHE STRING "Libswresample libraries")
+	set(LIBSWRESAMPLE_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswresample include dir")
+	set(LIBSWRESAMPLE_LIBRARIES ${SWRESAMPLE_LIB} CACHE STRING "Libswresample libraries")
 
 	find_package_handle_standard_args(Libswresample DEFAULT_MSG SWRESAMPLE_LIB FFMPEG_INCLUDE_DIR)
 	mark_as_advanced(FFMPEG_INCLUDE_DIR SWRESAMPLE_LIB)
diff --git a/cmake/Modules/FindLibswscale.cmake b/cmake/Modules/FindLibswscale.cmake
index 6bdabce0d4d5a0a2d56d8233722ea7dc39cef95f..23f1b97eda7888b7edf4415836bbce2f1d6ce4d6 100644
--- a/cmake/Modules/FindLibswscale.cmake
+++ b/cmake/Modules/FindLibswscale.cmake
@@ -1,12 +1,12 @@
 # Once done these will be defined:
 #
-#  Libswscale_FOUND
-#  Libswscale_INCLUDE_DIR
-#  Libswscale_LIBRARIES
+#  LIBSWSCALE_FOUND
+#  LIBSWSCALE_INCLUDE_DIRS
+#  LIBSWSCALE_LIBRARIES
 #
 
-if(Libswscale_INCLUDE_DIR AND Libswscale_LIBRARIES)
-	set(Libswscale_FOUND TRUE)
+if(LIBSWSCALE_INCLUDE_DIRS AND LIBSWSCALE_LIBRARIES)
+	set(LIBSWSCALE_FOUND TRUE)
 else()
 	find_package(PkgConfig QUIET)
 	if (PKG_CONFIG_FOUND)
@@ -31,8 +31,8 @@ else()
 		NAMES swscale
 		HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_SWSCALE_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
 
-	set(Libswscale_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswscale include dir")
-	set(Libswscale_LIBRARIES ${SWSCALE_LIB} CACHE STRING "Libswscale libraries")
+	set(LIBSWSCALE_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswscale include dir")
+	set(LIBSWSCALE_LIBRARIES ${SWSCALE_LIB} CACHE STRING "Libswscale libraries")
 
 	find_package_handle_standard_args(Libswscale DEFAULT_MSG SWSCALE_LIB FFMPEG_INCLUDE_DIR)
 	mark_as_advanced(FFMPEG_INCLUDE_DIR SWSCALE_LIB)
diff --git a/cmake/Modules/FindLibx264.cmake b/cmake/Modules/FindLibx264.cmake
index 3fdf2de44c97d59346e53321fb4a8830fb77344d..ea2c28839d89dfd8c4d92b21d2bd55dda7efeaae 100644
--- a/cmake/Modules/FindLibx264.cmake
+++ b/cmake/Modules/FindLibx264.cmake
@@ -1,12 +1,12 @@
 # Once done these will be defined:
 #
-#  Libx264_FOUND
-#  Libx264_INCLUDE_DIR
-#  Libx264_LIBRARIES
+#  LIBX264_FOUND
+#  LIBX264_INCLUDE_DIRS
+#  LIBX264_LIBRARIES
 #
 
-if(Libx264_INCLUDE_DIR AND Libx264_LIBRARIES)
-	set(Libx264_FOUND TRUE)
+if(LIBX264_INCLUDE_DIRS AND LIBX264_LIBRARIES)
+	set(LIBX264_FOUND TRUE)
 else()
 	find_package(PkgConfig QUIET)
 	if (PKG_CONFIG_FOUND)
@@ -23,6 +23,7 @@ else()
 		NAMES x264.h
 		HINTS
 			ENV x264Path
+			ENV FFmpegPath
 			${_X264_INCLUDE_DIRS}
 			/usr/include /usr/local/include /opt/local/include /sw/include)
 
@@ -30,8 +31,8 @@ else()
 		NAMES x264 libx264
 		HINTS ${X264_INCLUDE_DIR}/../lib ${X264_INCLUDE_DIR}/lib${_lib_suffix} ${_X264_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
 
-	set(Libx264_INCLUDE_DIR ${X264_INCLUDE_DIR} CACHE PATH "x264 include dir")
-	set(Libx264_LIBRARIES ${X264_LIB} CACHE STRING "x264 libraries")
+	set(LIBX264_INCLUDE_DIRS ${X264_INCLUDE_DIR} CACHE PATH "x264 include dir")
+	set(LIBX264_LIBRARIES ${X264_LIB} CACHE STRING "x264 libraries")
 
 	find_package_handle_standard_args(Libx264 DEFAULT_MSG X264_LIB X264_INCLUDE_DIR)
 	mark_as_advanced(X264_INCLUDE_DIR X264_LIB)
diff --git a/libobs/CMakeLists.txt b/libobs/CMakeLists.txt
index f272b1554e9e1aa57559caaecd937c833e9cc008..98cffd1a96a9b5a2ba0dd074c320c38bb1576dc4 100644
--- a/libobs/CMakeLists.txt
+++ b/libobs/CMakeLists.txt
@@ -1,20 +1,20 @@
 project(libobs)
 
 find_package(Libswscale REQUIRED)
-include_directories(${Libswscale_INCLUDE_DIR})
-add_definitions(${Libswscale_DEFINITIONS})
+include_directories(${LIBSWSCALE_INCLUDE_DIRS})
+add_definitions(${LIBSWSCALE_DEFINITIONS})
 
 find_package(Libswresample REQUIRED)
-include_directories(${Libswresample_INCLUDE_DIR})
-add_definitions(${Libswresample_DEFINITIONS})
+include_directories(${LIBSWRESAMPLE_INCLUDE_DIRS})
+add_definitions(${LIBSWRESAMPLE_DEFINITIONS})
 
 find_package(Libavutil REQUIRED)
-include_directories(${Libavutil_INCLUDE_DIR})
-add_definitions(${Libavutil_DEFINITIONS})
+include_directories(${LIBAVUTIL_INCLUDE_DIRS})
+add_definitions(${LIBAVUTIL_DEFINITIONS})
 
 find_package(Libavformat REQUIRED)
-include_directories(${Libavformat_INCLUDE_DIR})
-add_definitions(${Libavformat_DEFINITIONS})
+include_directories(${LIBAVFORMAT_INCLUDE_DIRS})
+add_definitions(${LIBAVFORMAT_DEFINITIONS})
 
 add_definitions(-DLIBOBS_EXPORTS)
 
@@ -235,11 +235,11 @@ target_link_libraries(libobs
 	PRIVATE
 		jansson
 		${libobs_PLATFORM_DEPS}
-		${Libswscale_LIBRARIES}
-		${Libswresample_LIBRARIES}
-		${Libavutil_LIBRARIES})
+		${LIBSWSCALE_LIBRARIES}
+		${LIBSWRESAMPLE_LIBRARIES}
+		${LIBAVFORMAT_LIBRARIES}
+		${LIBAVUTIL_LIBRARIES})
 
 install_obs_core(libobs EXPORT LibObs)
 install_obs_data(libobs ../build/data/libobs libobs)
 install_obs_headers(${libobs_HEADERS})
-
diff --git a/plugins/obs-ffmpeg/CMakeLists.txt b/plugins/obs-ffmpeg/CMakeLists.txt
index a507ae0d29ff59f199287230b09ab8f90f871fd0..9251be942bd4998c1a97b050fb8df683dce0b697 100644
--- a/plugins/obs-ffmpeg/CMakeLists.txt
+++ b/plugins/obs-ffmpeg/CMakeLists.txt
@@ -6,24 +6,24 @@ if(WIN32)
 endif()
 
 find_package(Libavcodec REQUIRED)
-include_directories(${Libavcodec_INCLUDE_DIR})
-add_definitions(${Libavcodec_DEFINITIONS})
+include_directories(${LIBAVCODEC_INCLUDE_DIRS})
+add_definitions(${LIBAVCODEC_DEFINITIONS})
 
 find_package(Libavutil REQUIRED)
-include_directories(${Libavutil_INCLUDE_DIR})
-add_definitions(${Libavutil_DEFINITIONS})
+include_directories(${LIBAVUTIL_INCLUDE_DIRS})
+add_definitions(${LIBAVUTIL_DEFINITIONS})
 
 find_package(Libswscale REQUIRED)
-include_directories(${Libswscale_INCLUDE_DIR})
-add_definitions(${Libswscale_DEFINITIONS})
+include_directories(${LIBSWSCALE_INCLUDE_DIRS})
+add_definitions(${LIBSWSCALE_DEFINITIONS})
 
 find_package(Libavformat REQUIRED)
-include_directories(${Libavformat_INCLUDE_DIR})
-add_definitions(${Libavformat_DEFINITIONS})
+include_directories(${LIBAVFORMAT_INCLUDE_DIRS})
+add_definitions(${LIBAVFORMAT_DEFINITIONS})
 
 find_package(Libswresample REQUIRED)
-include_directories(${Libswresample_INCLUDE_DIR})
-add_definitions(${Libswresample_DEFINITIONS})
+include_directories(${LIBSWRESAMPLE_INCLUDE_DIRS})
+add_definitions(${LIBSWRESAMPLE_DEFINITIONS})
 
 set(obs-ffmpeg_HEADERS
 	obs-ffmpeg-formats.h)
@@ -38,11 +38,11 @@ add_library(obs-ffmpeg MODULE
 target_link_libraries(obs-ffmpeg
 	libobs
 	${obs-ffmpeg_PLATFORM_DEPS}
-	${Libavcodec_LIBRARIES}
-	${Libavutil_LIBRARIES}
-	${Libswscale_LIBRARIES}
-	${Libavformat_LIBRARIES}
-	${Libswresample_LIBRARIES})
+	${LIBAVCODEC_LIBRARIES}
+	${LIBAVUTIL_LIBRARIES}
+	${LIBSWSCALE_LIBRARIES}
+	${LIBAVFORMAT_LIBRARIES}
+	${LIBSWRESAMPLE_LIBRARIES})
 
 install_obs_plugin(obs-ffmpeg)
 
diff --git a/plugins/obs-x264/CMakeLists.txt b/plugins/obs-x264/CMakeLists.txt
index 47f1acfbaacd1ebfd21afe49134203d64a96d4fd..93fd36808adf5d8b442f77942c8b17d43c335450 100644
--- a/plugins/obs-x264/CMakeLists.txt
+++ b/plugins/obs-x264/CMakeLists.txt
@@ -1,8 +1,8 @@
 project(obs-x264)
 
 find_package(Libx264 REQUIRED)
-include_directories(${Libx264_INCLUDE_DIR})
-add_definitions(${Libx264_DEFINITIONS})
+include_directories(${LIBX264_INCLUDE_DIRS})
+add_definitions(${LIBX264_DEFINITIONS})
 
 set(obs-x264_SOURCES
 	obs-x264.c
@@ -12,7 +12,7 @@ add_library(obs-x264 MODULE
 	${obs-x264_SOURCES})
 target_link_libraries(obs-x264
 	libobs
-	${Libx264_LIBRARIES})
+	${LIBX264_LIBRARIES})
 
 install_obs_plugin(obs-x264)