FFmpeg win8下的Cygwin编译安装及clion运行校验

1、FFmpeg编译和安装 

       大体流程编译按照摹课网李超老师的笔记 摹课ffmpeg编译流程 执行,上面的错误我都走了一遍。。。

     好了上车了!!!

准备:Cygin安装文件  点下一步就好了

步骤:安装时一些库必须装上 

1. gcc
2. g++
3. make
4. cmake
5. automake
6. gdb
7. nasm
8. yasm
9. wget

相关图片  如果忘了上述安装 直接重新点击安装文件安装  把需要安装的选上再下一步 对之后使用没有影响

安装 apt-cyg: 1、 wget -c https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg  2、install apt-cyg /bin

有了这个神器,我们就可以安装一些Linux下的常用命令了,是不是很爽?

安装pkg-config: apt-cyg install pkg-config(这个比较坑 我最后就是这个卡了一天)

编译 yasm
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure   --prefix=/usr/local/lib/pkgconfig  我设置了安装路径 (不写这段 我之前的安装的库不知道去哪了 读者也可以按实际情况添上此段)
make && make install 

 编译 fdk-aac

wget https://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-2.0.0.tar.gz      

tar xvf fdk-aac-2.0.0.tar.gz
cd fdk-aac-2.0.0
./configure --prefix=/usr/local/lib/pkgconfig  我设置了安装路径 (不写这段 我之前的安装的库不知道去哪了 读者也可以按实际情况添上此段)
make&& make install

安装lame
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar -xzf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure  --prefix=/usr/local/lib/pkgconfig  我设置了安装路径 (不写这段 我之前的安装的库不知道去哪了 读者也可以按实际情况添上此段)
 make && make install

注:编译lame遇到的问题:

问题一:
在Cygwin下安装 lame的时候遇到执行 ./configure 失败的情况。如 "error: cannot guess build type; you must sepcify one",对这个问题可以通过下面的步骤来解决:
安装automake。可以通过 which automake来确认automake 是否已经安装。如果没有安装,可以通使用 apt-cyg install automake进行安装。
确认automake当前版本。可执行automake --version获取当前automake的版本号。
将 lame目录下的 config.guess文件替换为 /usr/share/automake-version下的config.guess 文件。
此时,再执行./configure进就可以下成功了。
问题二:
make时出现 "error: '_O_BINARY' undeclared (first use in this function)"的错误,解决办法如下:
打开出错文件 vi ./frontend/lametime.c
将下面这段代码注释掉
/*
#elif defined __CYGWIN
setmod(fileno(fp), _O_BINARY);
*/
再执行make就可以成功了。

安装nasm
wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz
tar xvf nasm-2.13.03.tar.gz
cd nasm-2.13.03
./configure --prefix=/usr/local/lib/pkgconfig  我设置了安装路径 (不写这段 我之前的安装的库不知道去哪了 读者也可以按实际情况添上此段)
make && sudo make install

安装x264
wget http://mirror.yandex.ru/mirrors/ftp.videolan.org/x264/snapshots/last_x264.tar.bz2
bunzip2 last_x264.tar.bz2
tar -vxf last_x264.tar
cd last_x264 --prefix=/usr/local/lib/pkgconfig  我设置了安装路径 (不写这段 我之前的安装的库不知道去哪了 读者也可以按实际情况添上此段)
./configure --enable-static --enable-shared --disable-asm --disable-avs
make && sudo make install

安装ffmpeg
从ffmpeg官网下载代码编译, 编译方法如下:
wget -c https://ffmpeg.org/releases/ffmpeg-4.1.3.tar.bz2
bunzip2 ffmpeg-4.1.3.tar.bz2
cd ffmpeg-4.1.3
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-small --arch=x86_64 --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-filter=delogo --enable-debug --disable-optimizations --enable-shared
make && sudo make install

完成之后各个包文件如图:  

编译ffmpeg出现的错误

找不到 fdk-aac等库 主要pkg-config 找不到fdk-aac.pc等相关文件造成  

解决1:export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  设置路径 我试了没用。。。

解决2:系统环境变量 添加 PKG_CONFIG_PATH路径 此路径下需要有.pc文件

可以使用 命令测试是否生效:

中间编译ffmpeg出现还出了个错误  主要是ffmpeg版本的问题 如果你是用4.0.2会有这个问题  换成4.1.3就不会了此中间做了判断。建议编译使用4.1.3!

此ffmpeg编译安装完成!

 

2、在win上安装ffmpeg

   

          上图为编译好的ffmpeg\bin目录路径添加到系统环境变量path中  然后bin中还需要添加相关的dll文件

cygwin1.dll 从cygwin\bin 下获取  libx264-157.dll从cygwin\home\MS\last_x264 获取 到此ok

3 clion运行校验

安装clion 开发工具 这个直接官网找了下

clion根据CMakeLists.txt  配置文件配置

你还需要把ffmpeg

红框的dll文件放到cgywin\bin下不然会报错  找不到相关文件

 

cmake_minimum_required(VERSION 3.14)
project(untitled1 C)

set(CMAKE_C_STANDARD 99)

set(SOURCE_FILES
        main.c
        )
#使用绝对路径  你也可以复制你工程里用./include 
set(INC_DIR E:/cygwin/usr/local/ffmpeg/include)
set(LINK_DIR E:/cygwin/usr/local/ffmpeg/lib)

include_directories(${INC_DIR})
link_directories(${LINK_DIR})

add_executable(untitled1
        ${SOURCE_FILES})

#配置链接库
target_link_libraries(
        untitled1

        avcodec
        avdevice
        avfilter
        avformat
        avutil
        postproc
        swresample
        swscale
)

main.c 代码

#include <stdio.h>
#include <stdlib.h>
#include<libavformat/avformat.h>
#include<libavcodec/avcodec.h>
#include <libavutil/log.h>

int main() {
    printf("version: %d" ,avcodec_version());
    printf("configuration: %s" ,avcodec_configuration());
    return 0;
}

输出:

version: 3810148configuration: --prefix=/usr/local/ffmpeg --enable-gpl --enable-small --arch=x86_64 --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-filter=delogo --enable-debug --disable-optimizations --enable-shared

到此结束!

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值