zoukankan      html  css  js  c++  java
  • FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建

     

    前言

      本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8。

     

    FFmpeg简介

      FFmpeg是领先的多媒体框架,能够解码,编码, 转码,mux,demux,流,过滤和播放人类和机器创建的几乎所有内容。它支持最模糊的古代格式,直至最前沿。无论它们是由某些标准委员会,社区还是公司设计的。它还具有高度的可移植性:FFmpeg可以在各种构建环境,机器体系结构和配置下,跨Linux,Mac OS X,Microsoft Windows,BSD,Solaris等编译,运行并通过我们的测试基础架构FATE。
      库功能介绍
      在这里插入图片描述

     

    FFmpeg下载

      官方地址:http://ffmpeg.org/download.html#releases
      CSDN下载地址:https://download.csdn.net/download/qq21497936/12838391
    开发使用当前3.4.8稳定版本:
      在这里插入图片描述
      三个都点击了,下载了,如下图:
      在这里插入图片描述
      经过查看,源码中只有configure和makefile,那么是在linux上编译的,笔者想编译windows平台上的mingw32版本的,说不定哪天就要修改编码呢,别说opencv遇到几次了。

     

    FFmpeg编译

    步骤一:准备msys环境

      下个msys安装,当然也可以使用msys2,笔者倾向msys,自己配置自己的开发环境。
      当然安装msys之后,需要将我们Qt5.9.3的mingw32编译工具链拷贝进去,并打开终端窗口将环境输入进去,结果如下:
      在这里插入图片描述

    export PATH=$PATH:/mingw530_32/bin/
    

    &esmp;&esmp;在这里插入图片描述

    步骤二:重新部署库的源码位置,需要拷贝到msys下去

      在这里插入图片描述
      解压后,如下:
      在这里插入图片描述

    步骤三:配置configure

    ./configure --prefix=/home/21497/compile/ffmpeg/ffmpeg-3.4.8/install
    

      在这里插入图片描述

    ./configure --prefix=/home/21497/compile/ffmpeg/ffmpeg-3.4.8/install --disable-x86asm
    

      在这里插入图片描述

    步骤四:解决问题“pr: command not found”

      配置coreutils
      在这里插入图片描述
      在这里插入图片描述
      下载地址:http://gnuwin32.sourceforge.net/packages/coreutils.htm
      直接下载bin文件。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      全拷贝过去,覆盖。
      在这里插入图片描述
    本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108542400

    步骤五:msys有平台问题,msys2没有,配置msys2环境

      下载安装msys2,自带了很多环境,此处注意,我们要用Qt5.9.3的mingw32,如下图:
      在这里插入图片描述

      在这里插入图片描述

    export PATH=$PATH:/mingw530_32/bin/
    

      在这里插入图片描述

    步骤六:配置configure切换msys2

    ./configure --prefix=/home/21497/compile/ffmpeg/ffmpeg-3.4.8/install --disable-
    x86asm  --enable-shared
    

      在这里插入图片描述
      在这里插入图片描述
      使用mingw32的环境变量,如下图:
      在这里插入图片描述

      在这里插入图片描述

    步骤七:编译

    make -j4
    

      在这里插入图片描述
      在这里插入图片描述

      同样的问题,ar,参照步骤四,后继续:
      在这里插入图片描述

      直接转用make,简单粗暴,原理读者自己理解
      在这里插入图片描述

    步骤八:安装make install

      在这里插入图片描述
      在这里插入图片描述

     

    模块化

     &esmp;在这里插入图片描述

     

    测试Demo

    FFmpegManager.h

    #ifndef FFMPEGMANAGER_H
    #define FFMPEGMANAGER_H
    
    #include <QObject>
    
    extern "C" {
        #include <libavcodec/avcodec.h>
        #include <libavformat/avformat.h>
        #include <libswscale/swscale.h>
        #include <libavdevice/avdevice.h>
        #include <libavformat/version.h>
        #include <libavutil/time.h>
        #include <libavutil/mathematics.h>
    }
    
    class FFmpegManager : public QObject
    {
        Q_OBJECT
    public:
        explicit FFmpegManager(QObject *parent = nullptr);
    
    signals:
    
    public slots:
    };
    
    #endif // FFMPEGMANAGER_H
    

    FFmpegManager.cpp

    #include "FFmpegManager.h"
    #include <QDebug>
    #include <QDateTime>
    
    //#define LOG qDebug()<<
    //#define LOG qDebug()<<__FILE__<<__LINE__<<
    #define LOG qDebug()<<__FILE__<<__LINE__<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss:zzz")
    
    FFmpegManager::FFmpegManager(QObject *parent)
        : QObject(parent)
    {
        LOG << avcodec_configuration();
    }
    
     

    工程模板v1.0.0

      对应工程模板v1.0.0(windows Qt5.9.3 mingw32)

     
     

    若该文为原创文章,未经允许不得转载
    原博主博客地址:https://blog.csdn.net/qq21497936
    原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
    本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108542400

  • 相关阅读:
    HDU1575--Tr A(矩阵快速幂)
    HDU 2147--HDU 2147(博弈)--我可能做了假题。。。
    新年第一发--HDU1848--Fibonacci again and again(SG函数)
    【转】你真的会二分查找吗?
    windows与ubuntu双系统的安装
    bestcoder#9--1001--Lotus and Characters
    PC端的混合应用通讯问题
    JS构造函数详解
    JS的prototype的共享机制分析
    使用a标签直接下载图片
  • 原文地址:https://www.cnblogs.com/qq21497936/p/13654837.html
Copyright © 2011-2022 走看看