原文地址:
https://www.cnblogs.com/schips/p/12579218.html
一、安装 MinGW
下载好MinGW以后,安装时勾选以下选项:
mingw-devloper-toolkit
mingw32-base
mingw32-gcc-g++
msys-base
安装完成以后设置系统高级环境变量"E:\MinGW\bin",然后按住Win+R 打开cmd,输入gcc --version 测试是否成功
C:\Users\Schips>gcc --version
gcc (x86_64-posix-seh, Built by strawberryperl.com project) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
二、安装pkg-config
pkg-config是一个辅助的配置、链接工具,可以方便的支持gcc自动配置。
下载这两个包:pkg-config_0.26-1_win32、glib_2.18.4-1_win32
把pkg-config_0.26-1_win32.zip的pkg-config.exe加到环境变量$Path中。
三、运行MinGW目录下的msys.bat,然后进入到ffmpeg源码目录下执行:
# 进入FFmpeg源码目录
cd FFmpeg
# 配置编译参数
./configure --prefix=../ffmpeg_buildout --disable-static --enable-shared --enable-version3 --disable-ffplay --enable-ffmpeg --disable-x86asm
# 编译
make -j4
make install -j4
若编译过程中出现如下错误,打开libavformat/os_support.h,添加#include<winerror.h>,即可。错误内容:
CC libavformat/paf.o
In file included from libavformat/os_support.h:112:0,
from libavformat/os_support.c:29:
libavformat/os_support.c: In function 'ff_gai_strerror':
libavformat/os_support.c:194:10: error: 'ERROR_NOT_ENOUGH_MEMORY' undeclared (first use in this function)
case EAI_MEMORY:
^
libavformat/os_suppCCort.clibavformat/pcm.o:1
:10: note: each undeclared identifier is reported only once for each function it appears in
make: *** [libavformat/os_support.o] Error 1
make: *** Waiting for unfinished jobs....
四、在源文件加外生成ffmpeg_buildout文件夹:
测试ffmpeg功能:
ffmpeg -re -rtsp_transport tcp -i "rtsp://user:password@ip:port/h264/ch1/sub/av_stream" -f flv -vcodec copy -acodec copy -f flv -s 1280x720 -q 10 "rtmp://ip:port/xxx_whiteday_sub/stream"