国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式Qt-交叉編譯FFmpeg與視頻播放測試

碼農愛學習 ? 來源:碼農愛學習 ? 作者:碼農愛學習 ? 2022-09-15 02:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

想要在Linux板子上通過Qt界面來播放視頻,一種可選的方式是調用FFmpeg庫來實現視頻的解碼與播放。本篇先來進行FFmpeg庫的交叉編譯,將FFmpeg庫移植到Linux板子上。

1 交叉編譯FFmpeg

FFmpeg需要用到x264庫,需要先編譯這個庫。

1.1 編譯x264

官網http://www.videolan.org/developers/x264.html下載x264的源碼

pYYBAGMh0M2AZvmqAAC6ZUzf06Q357.png

然后解壓,并進行配置

#解壓
tar -xvf x264-master.tar.bz2

#進入源碼目錄, 進行配置
./configure  --enable-shared --enable-static --host=arm-linux-gnueabihf --cross-prefix=arm-linux-gnueabihf-   --disable-opencl --enable-pic --disable-asm --prefix=$PWD/_install

一些參數說明:

--host=arm-linux-gnueabihf :指定交叉編譯鏈

--enable-shared :允許共享

--disable-asm:跳過匯編

--prefix=$PWD/_install:指定編譯后存放路徑(當前目錄的install子目錄)

pYYBAGMh0PaAWvefAAB8aoULXKY683.png

然后進行編譯

make
make install

查看文件夾_install,可以看到生成的bin、include、lib子目錄

poYBAGMh0QqASAzfAABNrnvKLyA786.png

1.2 編譯FFmpeg

然后編譯FFmpeg,官網下載地址:http://ffmpeg.org/download.html

pYYBAGMh0RKAEl2aAACiOe-9QM8991.png

同樣是進行解壓

tar -xvf ffmpeg-snapshot.tar.bz2

進入ffmpeg源碼目錄,修改Makefile,添加編譯選項:CFLAGS += -fPIC

poYBAGMh0SWAG6FaAABsirl3ZoA864.png

然后進行配置

./configure --cross-prefix=arm-linux-gnueabihf- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --prefix=$PWD/_install --enable-shared --disable-static --enable-gpl --enable-nonfree --disable-ffplay --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-x86asm --disable-stripping --enable-libx264 --extra-cflags=-I/home/xxpcb/tools/ffmpeg/x264-master/_install/include --extra-ldflags=-L/home/xxpcb/tools/ffmpeg/x264-master/_install/lib --extra-libs=-ldl

一些參數說明:

--cross-prefix=arm-linux-gnueabihf-:配置為自己的交叉編譯工具

--cc=arm-linux-gnueabihf-gcc:配置為自己的交叉編譯工具

--extra-cflags=-I/home/xxpcb/tools/ffmpeg/x264-master/_install/include:配置為剛才x264生成出來的include目錄

--extra-ldflags=-L/home/xxpcb/tools/ffmpeg/x264-master/_install/lib --extra-libs=-ldl:配置為剛才x264生成出來的lib目錄

我這里配置后報錯,如下:

poYBAGMh0UiAeNgNAADEg46wrmY156.png

嘗試將PKG_CONFIG_PATH變量進行配置:

export PKG_CONFIG_PATH="/home/xxpcb/tools/ffmpeg/x264-master/_install/lib/pkgconfig"

實際測試無效,還是報錯:

pYYBAGMh0VqAGsj3AACcp8QOtfI368.png

參考這個帖子:

https://stackoverflow.com/questions/51918409/compiling-ffmpeg-x265-not-found-using-pkg-config/63661853

在配置項增加一條:

--pkg-config="pkg-config --static"

完整的配置項如下:

./configure --cross-prefix=arm-linux-gnueabihf- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --prefix=$PWD/_install --enable-shared --disable-static --enable-gpl --enable-nonfree --disable-ffplay --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-x86asm --disable-stripping --enable-libx264 --extra-cflags=-I/home/xxpcb/tools/ffmpeg/x264-master/_install/include --extra-ldflags=-L/home/xxpcb/tools/ffmpeg/x264-master/_install/lib --extra-libs=-ldl --pkg-config="pkg-config --static"

這次配置成功了:

poYBAGMh0YqAJvBZAABQIB-BYmY000.png

然后進行編譯

make
make install
pYYBAGMh0ZiAZbj6AABUStMDy20129.png

查看文件夾_x264_install,可以看到生成的bin、include、lib、share子目錄

pYYBAGMh0aCAOb6-AABV-DI5h60300.png

2 測試FFmpeg

2.1 編譯的庫拷貝到板子中

復制x264-master的lib目錄中的x264庫文庫到開發板的/usb/local/lib目錄

poYBAGMh0aiAUobEAADffLq2mXY773.png

復制ffmpeg的lib目錄中的so庫文庫到開發板/usb/local/lib目錄

poYBAGMh0a2Aaf3MAADC0LyHblY458.png

復制ffmpeg的bin目錄中的ffmpeg文庫到開發板/usb/local/bin目錄

pYYBAGMh0bWAUu_gAAC4FeGV764832.png

我使用的是SSH的方式進行復制的,具體命令如下:

scp xxpcb@192.168.5.104:/home/xxpcb/tools/ffmpeg/x264-master/_install/lib/*x264* ./
scp xxpcb@192.168.5.104:/home/xxpcb/tools/ffmpeg/ffmpeg/_install/lib/*so* ./

scp xxpcb@192.168.5.104:/home/xxpcb/tools/ffmpeg/ffmpeg/_install/bin/ffmpeg ./

SSH復制有點慢,可以嘗試其它復制方式。

2.2 視頻播放測試

先輸入ffmpeg,看下是否能找到這個程序,我這里有報錯,提示找不到對應的庫(實際上是有這個庫的):

pYYBAGMh0deAfxScAAAm8yR0oj8946.png

添加LD_LIBRARY_PATH變量,并導出

export LD_LIBRARY_PATH=/usr/local/lib

再次輸入ffmpeg,沒有報錯了:

pYYBAGMh0euAfiwJAABP1QCUtvE523.png

通過ffmpeg指令測試視頻播放

#播放板子中自帶的視頻
ffmpeg -i mixkit_river.mp4 -pix_fmt rgb565le -f fbdev /dev/fb0 -f hw:0,0

#播放網絡視頻
ffmpeg -i rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 -pix_fmt rgb565le -vf scale=800:480 -f fbdev /dev/fb0 -f hw:0,0

指令輸入后的打印如下:

poYBAGMh0g2AHYQLAADkjr0yaSU231.png

這個是播放效果的截圖:

poYBAGMh0hWAY5VSAAMIiy_Wjmk020.png

3 總結

本篇介紹了嵌入式Qt播放視頻的準備工作:交叉編譯FFmpeg庫并移植到Linux板子中,并先通過ffmpeg指令測試視頻播放效果。下篇將嘗試設計Qt界面來結合FFmpeg進行視頻的播放。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5198

    文章

    20442

    瀏覽量

    333973
  • Linux
    +關注

    關注

    88

    文章

    11758

    瀏覽量

    219006
  • bqTESLA
    +關注

    關注

    0

    文章

    4

    瀏覽量

    8878
  • 交叉編譯
    +關注

    關注

    0

    文章

    37

    瀏覽量

    13024
  • ffmpeg
    +關注

    關注

    0

    文章

    51

    瀏覽量

    7942
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是嵌入式應用開發?

    、實現和部署,還包括硬件選擇、軟件設計、測試、集成和維護等流程?。 定義和背景 嵌入式應用開發是指將軟件部署到嵌入式系統中,這些系統廣泛應用于消費電子和工業自動化中。嵌入式系統通常
    發表于 01-12 16:13

    C語言單元測試嵌入式軟件開發中的作用及專業工具的應用

    三、winAMS工具的核心功能與優勢 winAMS是一款專業的嵌入式C語言單元測試工具,針對嵌入式開發的特殊需求提供了全面解決方案。其主要功能特點包括: ?編譯器級代碼解析引擎***
    發表于 12-18 11:46

    從小白到大牛:Linux嵌入式系統開發的完整指南

    使用 C 語言(嵌入式開發主力語言)、POSIX 標準接口(文件 IO、進程、線程、信號量)。推薦通過 “溫度采集系統”“串口通信工具”等小型項目練手,重點掌握多線程編程(解決并發任務)、交叉編譯(主機
    發表于 12-16 10:42

    瑞芯微RK3562平臺FFmpeg硬件編解碼移植及性能測試實戰攻略

    本文介紹瑞芯微RK3562平臺,FFmpeg硬件編解碼移植及性能測試方法。FFmpeg簡介與實測數據FFmpeg簡介FFmpeg是一套多媒體
    的頭像 發表于 11-28 19:02 ?1294次閱讀
    瑞芯微RK3562平臺<b class='flag-5'>FFmpeg</b>硬件編解碼移植及性能<b class='flag-5'>測試</b>實戰攻略

    CW32嵌入式軟件開發的必備知識

    嵌入式軟件開發作為計算機科學和電子工程的交叉領域,要求開發人員具備一系列的專業知識和技能。 而基于CW32的嵌入式軟件開發必備知識包括以下部分: 1 、編程語言 熟練掌握C(C++)語言,這是
    發表于 11-28 07:48

    瑞芯微RK3588平臺FFmpeg硬件編解碼移植及性能測試實戰攻略

    本文介紹瑞芯微RK3588平臺,FFmpeg硬件編解碼移植及性能測試方法。FFmpeg簡介與實測數據FFmpeg簡介FFmpeg是一套多媒體
    的頭像 發表于 10-21 13:51 ?1745次閱讀
    瑞芯微RK3588平臺<b class='flag-5'>FFmpeg</b>硬件編解碼移植及性能<b class='flag-5'>測試</b>實戰攻略

    RK3506開發板QT Creator開發手冊,交叉編譯工具鏈與QT應用示例,入門必備

    本文基于觸覺智能RK3506核心板/開發板介紹QTCreator交叉編譯配置與QT應用示例。如需購買開發板進行評估驗證簡介QTCreatorQtCreator?是由TheQtCompany開發的跨平臺集成開發環境(IDE),專為
    的頭像 發表于 09-30 16:26 ?3682次閱讀
    RK3506開發板<b class='flag-5'>QT</b> Creator開發手冊,<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>工具鏈與<b class='flag-5'>QT</b>應用示例,入門必備

    嵌入式軟件測試與專業測試工具的必要性深度解析

    嵌入式系統作為控制、監視或輔助裝置運行的專用計算機系統,其軟件測試面臨著獨特的挑戰和嚴格的要求。專業測試工具在嵌入式軟件開發過程中發揮著不可替代的作用,是確保系統可靠性和安全性的關鍵保
    發表于 09-28 17:42

    嵌入式從入門到進階,怎么學?

    (kmallocvs vmalloc)、 中斷線程化項目實戰:移植 MQTT 到嵌入式設備(物聯網數據上報)、用 QT 開發工業設備監控界面(Modbus 協議)。
    發表于 09-02 09:44

    如何調用mpp硬解+ffmpeg本地播放視頻,RK3576

    我往rk3576上部署了一個ubuntu系統,想測試rkmpp+ffmpeg或者rkmpp+gstreamer硬解,實現本地播放視頻,有什么思路或者案例可以供我參考嗎? 目前遇到了很多
    發表于 08-23 10:05

    嵌入式工程師為什么要學QT?

    、Clang、MSVC等,并提供了跨平臺的編譯和發布流程。 強大的集成開發環境(IDE) Qt Creator提供了代碼編輯、調試、構建和發布功能,極大地提升了開發效率。 因此,Qt嵌入
    發表于 08-14 15:15

    【EASY EAI Orin Nano開發板試用體驗】04-編譯及安裝帶有RKMPP的ffmpeg

    前言 在上一篇試用報告中已經將QT安裝完畢,并正常啟動了,接下來我們進行安裝ffmpeg,但是如果我們直接使用apt來進行安裝的話,那么其并不帶有瑞芯微的硬編解碼,所以需要我們來自己編譯ffm
    發表于 07-20 19:21

    RK3568開發板暗藏32位兼容開關?飛凌嵌入式帶你一鍵解鎖!

    RK3568是一款64位處理器,飛凌嵌入式為其提供的交叉編譯器也是64位的,然而部分用戶可能需要在RK3568開發板上運行32位應用。本文將詳細闡述如何使用32位交叉
    的頭像 發表于 07-19 08:49 ?4384次閱讀
    RK3568開發板暗藏32位兼容開關?飛凌<b class='flag-5'>嵌入式</b>帶你一鍵解鎖!

    不借助Linux系統,在Windows下如何搭建ZMC900E交叉編譯環境

    嵌入式Linux系統,由于系統資源的匱乏,通常無法安裝本地編譯器進行本地開發,而需要在借助一臺主機進行交叉開發。一般情況下,在主機安裝相應的交叉編譯
    的頭像 發表于 05-21 11:34 ?927次閱讀
    不借助Linux系統,在Windows下如何搭建ZMC900E<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>環境

    嵌入式開發入門指南:從零開始學習嵌入式

    開發(設備驅動、內核編譯) 4. 推薦的學習資源書籍:《嵌入式系統軟件設計基礎》《ARM Cortex-M系列嵌入式開發》在線課程:慕課網、B站嵌入式教學
    發表于 05-15 09:29