實(shí)時(shí)視頻IMU采集項目(1): 在Qt中使用FFmpeg庫
優(yōu)采云 發(fā)布時(shí)間: 2020-08-07 08:15概述
要實(shí)現項目中視頻流的實(shí)時(shí)傳輸和顯示,最常見(jiàn)的是編碼和解碼操作. 如果您自己實(shí)現H.264的編碼和解碼,則將花費大量時(shí)間和精力. 因此,通常使用開(kāi)源H.264編*敏*感*詞*. 所謂的編*敏*感*詞*是用于實(shí)現編碼和解碼,輸入原創(chuàng )數據流以及輸出H.264編碼流的代碼.
在Ubuntu16.04下安裝FFmpeg
首先在官方網(wǎng)站上下載最新的FFmpeg壓縮包源代碼,然后使用以下命令解壓縮:
$ tar xvf ffmpeg-3.4.2.tar.bz2
然后進(jìn)入解壓縮的文件夾以查看安裝步驟:
$ cd ffmpeg-3.4.2
$ cat INSTALL.md
顯示內容如下:
安裝FFmpeg: 輸入./configure創(chuàng )建配置. 配置列表
通過(guò)運行configure --help打印
選項.
可以從與FFmpeg源不同的目錄中啟動(dòng)
configure,以在樹(shù)外構建對象. 為此,請在啟動(dòng)配置時(shí)使用絕對路徑,例如/ ffmpegdir / ffmpeg / configure. 然后鍵入make來(lái)構建FFmpeg. 需要GNU Make 3.81或更高版本. 鍵入make install以安裝您構建的所有二進(jìn)制文件和庫.
注意
默認情況下,非系統依賴(lài)項(例如libx264,libvpx)處于禁用狀態(tài).
請按照上述步驟進(jìn)行安裝:
$ ./configure --prefix=/home/string/ffmpeg3.4.2 --enable-shared --disable-static
提醒: 找不到Yasm / nasm或太舊. 使用–disable-yasm進(jìn)行嚴重破壞的構建.
發(fā)現未安裝yasm,因此請安裝yasm:
$ sudo apt-get install yasm
安裝后,重新執行上述第一步以生成配置文件
$ make
$ make install
# 安裝后,查看ffmpeg版本
cd ~/ffmpeg3.4.2/bin
./ffmpeg -version
安裝成功.
Qt導入FFmpeg庫
首先創(chuàng )建一個(gè)新的Qt項目,默認情況下每個(gè)人都會(huì )知道這一點(diǎn). 下一步是根據先前的安裝目錄配置Qt pro文件. 如下圖所示:
核心是添加FFmpeg庫目錄和庫文件路徑信息.
INCLUDEPATH += /home/string/ffmpeg3.4.2/include
LIBS += -L /home/string/ffmpeg3.4.2/lib -lavcodec -lswresample -lavutil -lavformat -lswscale
下一步是修改main.cpp文件,以測試FFmpeg文件是否成功導入.
<p># main.cpp
#include "mainwidget.h"
#include
#include
using namespace std;
// 由于建立的是C++工程,編譯時(shí)使用的是C++編譯器編譯,
// 而FFmpeg是C的庫,因此這里需要加上extern "C",否則會(huì )提示各種未定義
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavfilter/avfilter.h"
#include "libswresample/swresample.h"
#include "libavdevice/avdevice.h"
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWidget w;
w.show();
cout