Welcome to the wiki talking about FFmpeg on Windows.

Batch file for MSYS files of MinGW + MSYS

msys.bat
@REM ***************************************************************************
@REM
@REM Batch file for MSYS files of MinGW + MSYS
@REM
@REM Version: 1.2 @ August 28, 2011
@REM
@REM *** License ***
@REM
@REM Except where otherwise noted, all of the batchs and scripts are
@REM copyrighted by http://www.FFmpegWindows.org
@REM
@REM Copyright (C) 2010-2011 http://www.FFmpegWindows.org All rights reserved.
@REM
@REM These batchs and scripts are provided "as-is," without any express or
@REM implied warranty. In no event shall the author be held liable for any
@REM damages arising from the use of them.
@REM
@REM Permission is granted to anyone to use these batchs and scripts for
@REM any purpose, including commercial applications, and to alter and
@REM redistribute it, provided that the following conditions are met:
@REM
@REM 1. All redistributions of batchs and scripts must retain all copyright
@REM    notices that are currently in place, and this list of conditions
@REM    without modification.
@REM
@REM 2. Modified versions must be plainly marked as such, and must not be
@REM    misrepresented as being the original batchs and scripts.
@REM
@REM http://www.ffmpegwindows.org
@REM
@REM ***************************************************************************
@REM
@REM Files needed:
@REM   MSYS Core: msysCORE-1.0.11-bin.tar.gz
@REM   MSYS update: msysCORE-1.0.17-1-msys-1.0.17-bin.tar.lzma
@REM   make: make-3.81-3-msys-1.0.13-bin.tar.lzma
@REM   coreutils: coreutils-5.97-3-msys-1.0.13-ext.tar.lzma
@REM   libintl: libintl-0.17-2-msys-dll-8.tar.lzma
@REM   libiconv: libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
@REM   libtermcap: libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
@REM   vim (optional): vim-7.3-2-msys-1.0.13-bin.tar.lzma
@REM pkg-config:
@REM   pkg-config.exe: pkg-config_0.25-1_win32.zip
@REM   libglib-2.0-0.dll: glib_2.18.4-1_win32.zip
@REM
@REM ***************************************************************************

@REM check if we are running within the main batch file
@IF NOT "%IN_MINGW_MSYS_BAT%"=="1" (
	@ECHO.
	@ECHO This batch file "%~NX0" needs to be called by the main batch file.
	@ECHO.
	@PAUSE
	@EXIT /B 1
)

REM global variables: INSTALL_BASE, OPERATION, OPERATE_BATCH

REM MSYS installation directory
SET INSTALL_DIR=%INSTALL_BASE%MSYS\
REM base url
SET BASE_URL=http://sourceforge.net/projects/mingw/files

REM operation
IF "%OPERATION%"=="LIST" ECHO MSYS files list
IF "%OPERATION%"=="DOWNLOAD" ECHO Downloading MSYS files
IF "%OPERATION%"=="INSTALL" ECHO Installing MSYS files

REM MSYS CORE 1.0.11
REM http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-core/msys-1.0.11/msysCORE-1.0.11-bin.tar.gz/download
SET FILE_URL=%BASE_URL%/MSYS/BaseSystem/msys-core
SET FILE_VER=msys-1.0.11
SET FILE_NAME=msysCORE-1.0.11-bin.tar.gz
CALL %OPERATE_BATCH%
IF ERRORLEVEL==1 EXIT /B 1

REM MSYS BASE 1.0.17-1
REM http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-core/msys-1.0.17-1/msysCORE-1.0.17-1-msys-1.0.17-bin.tar.lzma/download
SET FILE_URL=%BASE_URL%/MSYS/BaseSystem/msys-core
SET FILE_VER=msys-1.0.17-1
SET FILE_NAME=msysCORE-1.0.17-1-msys-1.0.17-bin.tar.lzma
CALL %OPERATE_BATCH%
IF ERRORLEVEL==1 EXIT /B 1

REM MSYS make
REM http://sourceforge.net/projects/mingw/files/MSYS/make/make-3.81-3/make-3.81-3-msys-1.0.13-bin.tar.lzma/download
SET FILE_URL=%BASE_URL%/MSYS/make
SET FILE_VER=make-3.81-3
SET FILE_NAME=make-3.81-3-msys-1.0.13-bin.tar.lzma
CALL %OPERATE_BATCH%
IF ERRORLEVEL==1 EXIT /B 1

REM MSYS coreutils
REM http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/coreutils/coreutils-5.97-3/coreutils-5.97-3-msys-1.0.13-ext.tar.lzma/download
SET FILE_URL=%BASE_URL%/MSYS/BaseSystem/coreutils
SET FILE_VER=coreutils-5.97-3
SET FILE_NAME=coreutils-5.97-3-msys-1.0.13-ext.tar.lzma
IF "%OPERATION%"=="INSTALL" (
	REM only install pr.exe for configuring ffmpeg
	CALL %OPERATE_BATCH% -i!bin\pr.exe
) ELSE (
	CALL %OPERATE_BATCH%
)
IF ERRORLEVEL==1 EXIT /B 1

REM MSYS vim
IF "%INCLUDE_VIM%"=="1" (
	REM http://sourceforge.net/projects/mingw/files/MSYS/vim/vim-7.3-2/vim-7.3-2-msys-1.0.16-bin.tar.lzma/download
	SET FILE_URL=%BASE_URL%/MSYS/vim
	SET FILE_VER=vim-7.3-2
	SET FILE_NAME=vim-7.3-2-msys-1.0.16-bin.tar.lzma
	IF "%OPERATION%"=="INSTALL" (
		REM only install bin\*.*
		CALL %OPERATE_BATCH% -i!bin\*.*
		REM create shortcut "vi" for "vim"
		IF EXIST "%INSTALL_DIR%bin" (
			ECHO #! /bin/sh> "%INSTALL_DIR%bin\vi"
			ECHO exec vim "$@">> "%INSTALL_DIR%bin\vi"
		)
	) ELSE (
		CALL %OPERATE_BATCH%
	)
	IF ERRORLEVEL==1 EXIT /B 1
)

REM MSYS libintl
REM http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/gettext/gettext-0.17-2/libintl-0.17-2-msys-dll-8.tar.lzma/download
SET FILE_URL=%BASE_URL%/MSYS/BaseSystem/gettext
SET FILE_VER=gettext-0.17-2
SET FILE_NAME=libintl-0.17-2-msys-dll-8.tar.lzma
CALL %OPERATE_BATCH%
IF ERRORLEVEL==1 EXIT /B 1

REM MSYS libiconv
REM http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/libiconv/libiconv-1.13.1-2/libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma/download
SET FILE_URL=%BASE_URL%/MSYS/BaseSystem/libiconv
SET FILE_VER=libiconv-1.13.1-2
SET FILE_NAME=libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
CALL %OPERATE_BATCH%
IF ERRORLEVEL==1 EXIT /B 1

REM MSYS libtermcap
REM http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/termcap/termcap-0.20050421_1-2/libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma/download
SET FILE_URL=%BASE_URL%/MSYS/BaseSystem/termcap
SET FILE_VER=termcap-0.20050421_1-2
SET FILE_NAME=libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
CALL %OPERATE_BATCH%
IF ERRORLEVEL==1 EXIT /B 1

REM pkg-config
REM http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.25-1_win32.zip
SET FILE_URL=http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies
SET FILE_VER=
SET FILE_NAME=pkg-config_0.25-1_win32.zip
IF "%OPERATION%"=="INSTALL" (
	SET FILE_ZIP=1
	REM only install pkg-config.exe
	CALL %OPERATE_BATCH% -i!bin\pkg-config.exe
) ELSE (
	CALL %OPERATE_BATCH%
)
IF ERRORLEVEL==1 EXIT /B 1

REM libglib
REM http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip
SET FILE_URL=http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.18
SET FILE_VER=
SET FILE_NAME=glib_2.18.4-1_win32.zip
IF "%OPERATION%"=="INSTALL" (
	SET FILE_ZIP=1
	REM only install pkg-config.exe
	CALL %OPERATE_BATCH% -i!bin\libglib-2.0-0.dll
) ELSE (
	CALL %OPERATE_BATCH%
)
IF ERRORLEVEL==1 EXIT /B 1
 
 
IF "%OPERATION%"=="INSTALL" (
	REM wget
	COPY /B /Y "%WGET%" "%INSTALL_DIR%bin\wget.exe" > nul 2> nul

	REM create some directories for ffmpeg
	IF NOT EXIST "%INSTALL_BASE%Downloads" MKDIR "%INSTALL_BASE%Downloads"
	IF NOT EXIST "%INSTALL_BASE%ExtLib" MKDIR "%INSTALL_BASE%ExtLib"
	IF NOT EXIST "%INSTALL_BASE%FFmpeg" MKDIR "%INSTALL_BASE%FFmpeg"
	IF NOT EXIST "%INSTALL_BASE%Scripts" MKDIR "%INSTALL_BASE%Scripts"
	IF NOT EXIST "%INSTALL_BASE%Temp" MKDIR "%INSTALL_BASE%Temp"

	REM generate file systems table
	IF EXIST "%INSTALL_DIR%etc" (
		ECHO #Win32_Path			Mount_Point> "%INSTALL_DIR%etc\fstab"
		ECHO %INSTALL_BASE:\=/%MinGW		/mingw>> "%INSTALL_DIR%etc\fstab"
		ECHO %INSTALL_BASE:\=/%Downloads		/downloads>> "%INSTALL_DIR%etc\fstab"
		ECHO %INSTALL_BASE:\=/%ExtLib		/extlib>> "%INSTALL_DIR%etc\fstab"
		ECHO %INSTALL_BASE:\=/%FFmpeg		/ffmpeg>> "%INSTALL_DIR%etc\fstab"
		ECHO %INSTALL_BASE:\=/%Scripts		/scripts>> "%INSTALL_DIR%etc\fstab"
		ECHO %INSTALL_BASE:\=/%Temp		/temp>> "%INSTALL_DIR%etc\fstab"
	)
)
 
EXIT /B 0

Batch files list

Download the batch files and utils

Print/export