一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何移植FFmpeg

ElfBoard ? 2024-06-07 15:28 ? 次閱讀

?FFmpeg是一款專門用于處理數(shù)字音頻和視頻,支持錄制、轉(zhuǎn)換,并能將這些媒體內(nèi)容轉(zhuǎn)化為實時流數(shù)據(jù)的開源計算機程序。它遵循LGPL或GPL許可協(xié)議,為用戶提供了涵蓋音視頻錄制、格式轉(zhuǎn)換及流媒體分發(fā)的全方位解決方案,深入掌握FFmpeg已成為每一位多媒體開發(fā)工程師的必修課。今天就跟各位小伙伴分享一篇共創(chuàng)社的學(xué)習(xí)筆記,探討一下如何移植FFmpeg。

配置交叉編譯環(huán)境

ElfBoard官方使用的是arm-poky-linux-gnueabi-gcc交叉編譯器,但是在使用中發(fā)現(xiàn)會報錯,這里使用的是gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux(在實驗中使用gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf會報一個與pkg-config有關(guān)的錯誤,暫未找到問題原因及解決方法)。

arm交叉編譯器下載完成后,創(chuàng)建/usr/local/arm目錄并將下載的壓縮包拷貝到該目錄下并解壓。

sudo mkdir /usr/local/arm sudo cp gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz /usr/local/arm/ sudo tar -vxf ggcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz

wKgaomZinXqAB6aXAAFGzbG-50k567.png

之后配置環(huán)境變量,使用命令“sudo gedit /etc/profile”打開profile文件,并在文件最后添加“export PATH=$PATH:/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin”。

wKgaomZinZOAe--NAAQ_7XcJ2G4064.png

最后保存文件并使用reboot命令重啟系統(tǒng),在命令行輸入“arm-linux-gnueabihf-gcc -v”查詢是否搭建成功,如果沒搭建成功,請檢查上一步的PATH路徑是否填寫正確。

wKgaomZinbOAQg30ABmrl2gFNXM430.png

編譯x264

首先從以下網(wǎng)站獲取x264的源碼并下載。(http://download.videolan.org/pub/videolan/x264/snapshots/)

wKgZomZincyAWeJyABAPN5yNVAI848.png

將下載的壓縮包放到你的工作目錄下并解壓,并創(chuàng)建一個“x264_install”文件夾用于存放編譯后生成的文件。

tar -vxf x264-snapshot-20191217-2245-stable.tar.bz2 mkdir x264_install

之后進入解壓的“x264-snapshot-20191217-2245-stable”文件夾下(我這里將文件夾重命名為了x264),并執(zhí)行如下命令。

./configure --enable-shared --prefix=/home/feng/文檔/開發(fā)/Linux/proj/ffmpeg/x264_install/ --host=arm-linux-gnueabihf --disable-asm

其中:

prefix=/home/feng/文檔/開發(fā)/Linux/proj/ffmpeg/x264_install/表示指定編譯后存放路徑。

host=arm-linux-gnueabihf :表示指定交叉編譯鏈,用戶需要修改為自己的交叉編譯器。

wKgaomZingiAZImLAAP-VUjttq4410.png

之后修改“config.mak”文件,需要將交叉編譯工具修改為自己使用的交叉編譯工具。

SYS_ARCH=ARM SYS=LINUX CC= arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-gcc -o AR= arm-linux-gnueabihf-ar rc RANLIB= arm-linux-gnueabihf-ranlib

wKgZomZinjCAWLH2AALH3csEFA4273.png

最后執(zhí)行

make make install

完成x264的編譯。

編譯FFmpeg

首先從以下網(wǎng)站上下載ffmpeg源碼并放置在工作目錄下。(http://ffmpeg.org/download.html)

wKgaomZintCAGS7NAAJTenbK2Rs940.png

之后與x264編譯類似,解壓并創(chuàng)建文件夾ffmpeg_install用于存放生成的文件

tar -vxf ffmpeg-snapshot.tar.bz2 mkdir ffmpeg_install

進入解壓后的ffmpeg文件夾,并修改Makefile文件,添加編譯選項。

CFLAGS += -fPIC

執(zhí)行如下命令來配置編譯選項。

./configure --cross-prefix=arm-linux-gnueabihf- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --prefix=/home/feng/文檔/開發(fā)/Linux/proj/ffmpeg/ffmpeg_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/feng/文檔/開發(fā)/Linux/proj/ffmpeg/x264_install/include --extra-ldflags=-L/home/feng/文檔/開發(fā)/Linux/proj/ffmpeg/x264_install/lib --extra-libs=-ldl

參數(shù)說明:

  • cross-prefix=arm-linux-gnueabihf-:配置為自己的交叉編譯工具
  • cc=arm-linux-gnueabihf-gcc:配置為自己的交叉編譯工具
  • arch=arm --prefix=/home/feng/文檔/開發(fā)/Linux/proj/ffmpeg/ffmpeg_install:編譯后存放路徑
  • extra-cflags=-I/home/ubuntu/work/ffmpeg/_x264_install/include:x264的include路徑
  • extra-ldflags=-L/home/ubuntu/work/ffmpeg/_x264_install/lib :x264的lib路徑
wKgaomZinx2ASFxRAAdh9kb2dCA144.png

這一步可能遇到的問題:

ERROR: x264 not found using pkg-config

解決方法:需要指定x264/lib/pkgconfig的路徑:

export PKG_CONFIG_PATH=/home/feng/文檔/開發(fā)/Linux/proj/ffmpeg/x264_install/lib/pkgconfig

error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

解決方法:

sudo apt-get install apt-file sudo apt-file update sudo apt-file search libz.so.1 sudo apt-get install lib32z1

如果出現(xiàn)問題,可以查看/ffmpeg/ffbuild目錄下的config.log文件,查看具體報錯原因。

最后執(zhí)行:

make make install

完成FFmpeg的編譯。

wKgaomZin3mAT_llAAaWp5h1zzI509.png

文件移植

進入x264_install/lib目錄,將x264_install/lib文件夾下的庫文件拷貝到開發(fā)板的/lib/目錄下:

scp -o HostKeyAlgorithms=+ssh-rsa *x264* root@192.168.0.232:/lib/

進入ffmpeg_install/lib目錄,將ffmpeg_install/lib文件夾下的so庫文件全部拷貝到開發(fā)板的/lib/目錄下:

scp -o HostKeyAlgorithms=+ssh-rsa *lib* root@192.168.0.232:/lib/

進入ffmpeg_install/bin/目錄,將ffmpeg_install/bin/目錄下的ffmpeg文件拷貝到開發(fā)板的/bin/目錄下

scp -o HostKeyAlgorithms=+ssh-rsa ffmpeg root@192.168.0.232:/bin/

完成文件的移植。

測試

將免驅(qū)的USB攝像頭插到ELF 1開發(fā)板的USB口上,可以看到在/dev文件夾下會新增一個video2的設(shè)備,這個就是攝像頭。

wKgaomZioI2AS0ACAAmJuTeGzq0082.png

之后測試使用FFmpeg錄制攝像頭視頻并保存

ffmpeg -f video4linux2 -s 320x240 -i /dev/video2 /home/root/cam_video.avi

會出現(xiàn)如下所示:

wKgaomZioLmACLsFAAyWvlwjNxs734.png

使用Ctrl+C打斷錄制,這時候會看到/home/root目錄下出現(xiàn)了cam_video.avi文件,這個就是錄制的視頻文件。

將該視頻文件傳輸?shù)?a target="_blank">電腦上進行查看。在命令行輸入

scp -o HostKeyAlgorithms=+ssh-rsa cam_video.avi feng@192.168.0.1:/home/feng/

其中“feng@192.168.0.1:/home/feng/”需要改成自己電腦的用戶名和ip地址以及想要存放文件的路徑,這時候在/home/feng/文件夾下就能看到并播放錄制的視頻了。

wKgaomZioOyAQ4JSAAGU7-U_Nq4144.png

至此,就完成了FFmpeg的移植。期望這一過程能為正在探索嵌入式領(lǐng)域知識的小伙伴們帶來實質(zhì)性的幫助。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5125

    文章

    19438

    瀏覽量

    313068
  • 數(shù)字音頻
    +關(guān)注

    關(guān)注

    9

    文章

    208

    瀏覽量

    67413
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5389

    瀏覽量

    100885
  • Linux開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    7188
  • 學(xué)習(xí)開發(fā)板

    關(guān)注

    0

    文章

    10

    瀏覽量

    401
收藏 人收藏

    評論

    相關(guān)推薦

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

    本篇介紹了嵌入式Qt播放視頻的準(zhǔn)備工作:交叉編譯FFmpeg庫并移植到Linux板子中,并先通過ffmpeg指令測試視頻播放效果。下篇將嘗試設(shè)計Qt界面來結(jié)合FFmpeg進行視頻的播放
    的頭像 發(fā)表于 09-15 02:08 ?2852次閱讀
    嵌入式Qt-交叉編譯<b class='flag-5'>FFmpeg</b>與視頻播放測試

    Tiny4412移植ffmpeg實現(xiàn)視頻解碼

    ?FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼
    的頭像 發(fā)表于 09-29 15:31 ?1649次閱讀
    Tiny4412<b class='flag-5'>移植</b><b class='flag-5'>ffmpeg</b>實現(xiàn)視頻解碼

    【風(fēng)火輪YY3568開發(fā)板免費體驗】第二章:YY3568 ffmpeg 編譯以及 nanogui 移植

    本章主要記錄如何移植 nanogui 以及在 buildroot 下快樂編譯 ffmpeg
    的頭像 發(fā)表于 08-11 15:41 ?2833次閱讀
    【風(fēng)火輪YY3568開發(fā)板免費體驗】第二章:YY3568  <b class='flag-5'>ffmpeg</b> 編譯以及 nanogui <b class='flag-5'>移植</b>

    飛凌嵌入式ElfBoard ELF 1板卡-如何移植FFmpeg

    的全方位解決方案,深入掌握FFmpeg已成為每一位多媒體開發(fā)工程師的必修課。今天就跟各位小伙伴分享一篇共創(chuàng)社的學(xué)習(xí)筆記,探討一下如何移植FFmpeg。 配置交叉編譯環(huán)境ELFbord官方
    發(fā)表于 06-06 09:17

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-如何移植FFmpeg

    的全方位解決方案,深入掌握FFmpeg已成為每一位多媒體開發(fā)工程師的必修課。今天就跟各位小伙伴分享一篇共創(chuàng)社的學(xué)習(xí)筆記,探討一下如何移植FFmpeg。 配置交叉編譯環(huán)境ELFbord官方
    發(fā)表于 06-06 09:32

    【飛凌嵌入式OK3588J-C開發(fā)板體驗】OK3588J-C開發(fā)板的支持RKMPP的FFmpeg移植

    沒辦法了,我們自己進行編譯一下吧,而且飛凌官方也給我們提供具體的移植過程,OK3588 5.10.66 Forlinx Desktop20.04 移植ffmpeg,不過也可以按照我這里面來進行
    發(fā)表于 12-30 08:57

    ffmpeg可以移植到SMT32H7嗎?

    找不到相關(guān)資料,ffmpeg移植到stm32的資源
    發(fā)表于 03-14 07:44

    【OK210申請】物聯(lián)網(wǎng)控制器,實時視頻項目

    申請理由:已買ok6410, 對比一下性能。 希望推薦給同事和朋友。作為M2M team培訓(xùn)的開發(fā)板。項目描述:1,移植ffmpeg, ffserver vlc等 流媒體服務(wù)器。 2,使用linaro構(gòu)建rootfs。3,機器人控制等。
    發(fā)表于 06-29 21:25

    iTOP-iMX6ULL開發(fā)板-FFmpeg移植

    將其轉(zhuǎn)化為流的多媒體視頻處理工具,擁有視頻采集功能、視頻格式轉(zhuǎn)換、視頻抓圖等功能。本文檔介紹如何將 ffmpeg 移植到 ARM 平臺。開發(fā)板使用迅為i.MX6ULL終結(jié)者和USB免驅(qū)攝像頭,交叉編譯
    發(fā)表于 09-04 10:28

    如何將ffmpeg移植到ARM平臺

    ffmpeg移植到ARM平臺。開發(fā)板使用迅為i.MX6ULL終結(jié)者和USB免驅(qū)攝像頭,交叉編譯工具為arm-linux-gnueabihf,yocto Qt5文件系統(tǒng)。
    發(fā)表于 12-28 06:24

    怎么實現(xiàn)ffmpeg解碼器到龍芯3B的移植?

    本文實現(xiàn)了ffmpeg解碼器到龍芯3B的移植,并針對龍芯3B實現(xiàn)了對向量擴展指令支持的特點,對ffmpeg解碼器進行了手工向量化。
    發(fā)表于 06-02 06:57

    迅為imx6開發(fā)板QT系統(tǒng)移植FFmpeg-編譯x264

    ffmpeg 移植到ARM 平臺。相關(guān)的配套資料在網(wǎng)盤資料的“iTOP-i.MX6 開發(fā)板資料匯總(不含光盤資料)\08_iTOP-i.MX6 開發(fā)板 Linux 系統(tǒng)開發(fā)資料\09-Linux 系統(tǒng)移植
    發(fā)表于 10-14 11:25

    迅為imx6開發(fā)板QT系統(tǒng)移植FFmpeg移植到ARM開發(fā)板和測試

    我們通過 ssh 將_x264_install 下的庫文件拷貝到開發(fā)板的/lib/目錄下,大家也可以使用 nfs 或者 U 盤拷貝文件到開發(fā)板,如下圖所示:將_ffmpeg_install/lib
    發(fā)表于 10-28 11:18

    ffmpeg第三方庫如何在harmony 3.0上編譯跑通?

    該如何編譯,目前是沒有config.h文件的。因為純新手很多基礎(chǔ)都不懂,之前看過連老師在openharmony 1.0 上的第三方庫移植,用的是hi3861,但是我嘗試了一下移植ffmpeg到1.0
    發(fā)表于 12-20 13:16

    Purple Pi R1 FFMPEG移植與測試

    FFMPEG移植與測試下載源碼git clone https://github.com/aaron201912/ffmpeg.git將ffmpeg-master.zip 放到Ubun
    發(fā)表于 09-06 15:22