若該文為原創文章,未經允許不得轉載
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108542400
各位讀者,知識無窮而人力有窮,要么改需求,要么找專業人士,要么自己研究
紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中…(點擊傳送門)
FFmpeg開發專欄(點擊傳送門)
上一篇:《FFmpeg開發筆記(二):ffmpeg在ubuntu編譯以及開發環境搭建》
下一篇:敬請期待
前言
??本篇章是對之前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
??QQ群:1047134658(點擊“檔案”搜索“ffmpeg-3.4.8_原始碼以及編譯后的庫”,群內與博文同步更新)
??開發使用當前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/
??
步驟二:重新部署庫的原始碼位置,需要拷貝到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
??
??
模塊化
??
測驗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)
上一篇:《FFmpeg開發筆記(二):ffmpeg在ubuntu編譯以及開發環境搭建》
下一篇:敬請期待
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108542400
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/22041.html
標籤:java
