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

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

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

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

ElfBoard技術(shù)貼|如何在ELF 2開發(fā)板上部署v4l2loopback

ElfBoard ? 2025-06-05 14:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式系統(tǒng)開發(fā)領(lǐng)域,虛擬視頻設(shè)備技術(shù)正成為實(shí)現(xiàn)多媒體功能創(chuàng)新的關(guān)鍵技術(shù)支撐。v4l2loopback作為一款功能強(qiáng)大的Linux內(nèi)核模塊,可以為視頻流處理提供靈活的路由架構(gòu),在遠(yuǎn)程協(xié)作、實(shí)時(shí)流媒體傳輸及AI視覺處理等場(chǎng)景展現(xiàn)出顯著應(yīng)用價(jià)值。本文將以ELF 2開發(fā)板為載體,系統(tǒng)闡述v4l2loopback模塊的工程化部署全流程。

一、設(shè)置環(huán)境

首先需配置交叉編譯工具鏈路徑,確保系統(tǒng)能夠正確識(shí)別ARM64架構(gòu)的編譯工具。打開終端,執(zhí)行以下命令:

elf@ubuntu:~/work/ELF2-linux-source$ export PATH=/home/elf/aarch64-buildroot-linux-gnu_sdk-buildroot/bin:$PATH

二、配置內(nèi)核

elf@ubuntu:~/work/ELF2-linux-source$ ./build.sh elf2_desktop_defconfig

三、編譯內(nèi)核頭文件

內(nèi)核頭文件是編譯內(nèi)核模塊的關(guān)鍵依賴,包含了內(nèi)核 API 的定義。執(zhí)行以下命令編譯內(nèi)核頭文件:

elf@ubuntu:~/work/ELF2-linux-source$ ./build.sh kernel linux-headers


四、獲取并編譯v4l2loopback

4.1克隆v4l2loopback倉(cāng)庫(kù)

通過(guò)Git工具從官方代碼倉(cāng)庫(kù)獲取v4l2loopback的最新源代碼。在終端中執(zhí)行以下命令:

elf@ubuntu:~/work/ELF2-linux-source$ git clone https://github.com/umlaeute/v4l2loopback.git

4.2進(jìn)入v4l2loopback目錄

克隆完成后,使用cd命令進(jìn)入v4l2loopback源代碼目錄:

elf@ubuntu:~/work/ELF2-linux-source$ cd v4l2loopback/

4.3修改v4l2loopback.c文件

由于不同開發(fā)板的內(nèi)核架構(gòu)和配置存在差異,需對(duì)v4l2loopback的源代碼進(jìn)行適當(dāng)修改以確保兼容性。使用文本編輯器打開v4l2loopback.c文件:

elf@ubuntu:~/work1/ELF2-linux-source/v4l2loopback$ vi v4l2loopback.c

做如下修改:

wKgZO2hBM0uASyZlAADBObJOlAM001.pngwKgZPGhBM1aASAjbAAD2MM6BtmA006.png

修改完成后,保存并退出編輯器。

4.4編譯v4l2loopback模塊

elf@ubuntu:~/work1/ELF2-linux-source/v4l2loopback$ make KERNEL_DIR=$(pwd)/../kernel ARCH=arm64 CROSS_COMPILE=aarch64-buildroot-linux-gnu-

參數(shù)說(shuō)明:

KERNEL_DIR=$(pwd)/../kernel:指定內(nèi)核源代碼目錄,用于獲取編譯所需的內(nèi)核頭文件和編譯配置。

ARCH=arm64:指定目標(biāo)架構(gòu)為ARM64,與ELF 2開發(fā)板的硬件架構(gòu)匹配。

CROSS_COMPILE=aarch64-buildroot-linux-gnu-:指定交叉編譯工具前綴,確保生成的模塊適用于ARM64架構(gòu)的開發(fā)板。

編譯過(guò)程完成后,將在當(dāng)前目錄下生成名為v4l2loopback.ko的內(nèi)核模塊文件,這是后續(xù)需要部署到開發(fā)板上的核心文件。

五、測(cè)試驗(yàn)證

5.1拷貝v4l2loopback.ko文件到開發(fā)板

將生成的v4l2loopback.ko文件通過(guò)U盤拷貝到開發(fā)板/root目錄下。

5.2加載模塊

在開發(fā)板上加載v4l2loopback模塊,創(chuàng)建2個(gè)設(shè)備并指定設(shè)備號(hào)

root@elf2-desktop:~# insmod v4l2loopback.ko devices=2 video_nr=21,22 card_label=VirtualCam1,VirtualCam2

參數(shù)說(shuō)明:

devices=2:指定創(chuàng)建2個(gè)虛擬視頻設(shè)備。

video_nr=21,22:手動(dòng)指定設(shè)備號(hào)為/dev/video21和/dev/video22,避免與系統(tǒng)已有的視頻設(shè)備號(hào)沖突。

card_label=VirtualCam1,VirtualCam2(可選):為虛擬設(shè)備設(shè)置易識(shí)別的標(biāo)簽,方便后續(xù)使用中區(qū)分不同設(shè)備。

5.3列出已加載的模塊

執(zhí)行以下命令查看已加載的內(nèi)核模塊,確認(rèn) v4l2loopback 模塊是否成功加載:

root@elf2-desktop:~# lsmod

wKgZO2hBNGKAZCmtAAAnEnLRipg857.png

輸出包含v4l2loopback相關(guān)信息,則表明模塊加載成功。

5.4檢查生成的視頻設(shè)備

通過(guò)以下命令列出系統(tǒng)中的視頻設(shè)備文件,檢查是否成功創(chuàng)建了指定的虛擬視頻設(shè)備:

root@elf2-desktop:~# ls /dev/video*

wKgZO2hBNKKAPk5FAABKpF9lbFU302.png

可以看到/dev/video21和/dev/video22兩個(gè)設(shè)備文件。

5.5查看設(shè)備信息

使用v4l2-ctl工具查看虛擬視頻設(shè)備的詳細(xì)信息

root@elf2-desktop:~# v4l2-ctl --device=/dev/video21 --info

wKgZPGhBNRKAQTHQAACEWkwtUS8589.png

5.6視頻流傳輸

說(shuō)明:

ELF 2開發(fā)板連接屏幕;

登錄兩個(gè)終端,一個(gè)使用串口登錄,一個(gè)使用網(wǎng)絡(luò)登錄;

5.6.1在終端1推送測(cè)試視頻流(FFmpeg)

FFmpeg會(huì)持續(xù)生成SMPTE測(cè)試條視頻流,并寫入/dev/video21。

root@elf2-desktop:~# ffmpeg -f lavfi -i smptebars=size=1024x600 -pix_fmt yuv420p -f v4l2 /dev/video21

wKgZPGhBNayAZUGAAABxMwUxxPc810.png

終端1輸出:

wKgZPGhBNcCAfm1iAAD3P3UeGdQ669.pngwKgZO2hBNceAN0-7ABT4OOrzTYw701.pngwKgZO2hBNdOABQrDABvZWgYOseo046.png

5.6.2在終端2查看視頻流(GStreamer)

root@elf2-desktop:~# gst-launch-1.0 v4l2src device=/dev/video21 ! autovideosink

wKgZO2hBNgmABSL5AAA9oDkFqPw303.png

屏幕彈出一個(gè)窗口顯示SMPTE測(cè)試條:

wKgZO2hBNiOAGL6UAACYKpldTbc377.png

通過(guò)以上步驟,我們完成了在ELF 2開發(fā)板上部署v4l2loopback的全過(guò)程。從事嵌入式開發(fā)工程師與高校師生可基于此構(gòu)建各種視頻應(yīng)用場(chǎng)景,如視頻會(huì)議系統(tǒng)、智能監(jiān)控系統(tǒng)等。如果在實(shí)踐中遇到問(wèn)題,歡迎隨時(shí)交流探討!

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

    關(guān)注

    6067

    文章

    45000

    瀏覽量

    650715
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19677

    瀏覽量

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

    關(guān)注

    0

    文章

    39

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ElfBoard技術(shù)|如何在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的UART功能

    UART即通用異步收發(fā)器,是一種支持全雙工串行通信協(xié)議的接口。在i.MX6ULL處理器平臺(tái)上,該處理器原生支持多達(dá)8路的UART接口,提供了豐富的串行通信能力。 針對(duì)ELF 1開發(fā)板,實(shí)際引出
    的頭像 發(fā)表于 09-25 13:56 ?2842次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>NXP源碼基礎(chǔ)上適配<b class='flag-5'>ELF</b> 1<b class='flag-5'>開發(fā)板</b>的UART功能

    來(lái)自資深工程師對(duì)ELF 2開發(fā)板的產(chǎn)品測(cè)評(píng)

    來(lái)自資深工程師對(duì)ELF 2開發(fā)板的使用測(cè)評(píng)
    的頭像 發(fā)表于 04-28 15:03 ?999次閱讀
    來(lái)自資深工程師對(duì)<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>的產(chǎn)品測(cè)評(píng)

    ElfBoard技術(shù)實(shí)戰(zhàn)|ELF 2開發(fā)板本地部署DeepSeek大模型的完整指南

    ELF 2開發(fā)板本地部署DeepSeek大模型的完整指南
    的頭像 發(fā)表于 05-16 11:13 ?1839次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b>實(shí)戰(zhàn)|<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>本地<b class='flag-5'>部署</b>DeepSeek大模型的完整指南

    ElfBoard技術(shù)|如何在ELF 2開發(fā)板中適配 AX200NGW WiFi模塊

    ELF2開發(fā)板適配AX200NGWWi-Fi6模塊,是開發(fā)者在嵌入式設(shè)備中實(shí)現(xiàn)高速無(wú)線聯(lián)網(wǎng)的實(shí)際需求,更是解鎖其全場(chǎng)景無(wú)線通信能力的關(guān)鍵升級(jí)。針對(duì)ARM架構(gòu)需要手動(dòng)適配的特性,本文將提供清晰的步驟
    的頭像 發(fā)表于 06-24 09:09 ?1516次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b><b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>中適配 AX200NGW WiFi模塊

    ElfBoard技術(shù)|如何在【RK3588】ELF 2開發(fā)板上進(jìn)行根系統(tǒng)的定制

    ELF 2開發(fā)板已經(jīng)適配了Linux 5.10及Elf2 Desktop 22.04操作系統(tǒng),其中Elf2 Desktop 22.04系統(tǒng)是
    的頭像 發(fā)表于 07-02 16:33 ?2284次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>【RK3588】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>上進(jìn)行根系統(tǒng)的定制

    ELF 2學(xué)習(xí)試用】ELF 2開發(fā)板開箱測(cè)評(píng)

    簡(jiǎn)介 很高興收到飛凌嵌入式提供的ELF 2開發(fā)板ELF 2學(xué)習(xí)基于瑞芯微RK3588旗艦處理
    發(fā)表于 01-15 09:43

    ELF 2學(xué)習(xí)試用】ELF2開發(fā)板開箱體驗(yàn)及基本使用環(huán)境搭建

    開發(fā)板 輸出為12v 3A的電源適配器(和ipad的充電器外觀好像) 圖1 外包裝盒 圖2 開箱物品內(nèi)容 圖3 ELF2開發(fā)板正面
    發(fā)表于 01-19 22:41

    何在米爾TI AM62開發(fā)板上部署流媒體服務(wù)實(shí)現(xiàn)監(jiān)控功能

    :~/mjpeg_server/ scp *.so root@192.168.10.11:~/mjpeg_server/ 最終,開發(fā)板上部署的文件如下: 二、攝像頭信息獲取 米爾官方的系統(tǒng),提供了v4l2工具
    發(fā)表于 07-03 18:32

    rk3399是怎樣使用v4l2loopback實(shí)現(xiàn)虛擬camera開發(fā)

    1、編譯v4l2回環(huán)設(shè)備驅(qū)動(dòng)camera驅(qū)動(dòng),生成video0設(shè)備;drivers/v4l2loopback/v4l2loopback.cdrivers/v4l2loopback
    發(fā)表于 05-06 11:34

    這么簡(jiǎn)單!G2L開發(fā)板安裝Docker

    Docker是什么?Docker有什么用?我們不再贅述。RZ/G2L開發(fā)板支持ubuntu系統(tǒng),下面快速演示一下如何在G2L開發(fā)板上安裝支持
    的頭像 發(fā)表于 04-15 16:18 ?1004次閱讀
    這么簡(jiǎn)單!G<b class='flag-5'>2L</b><b class='flag-5'>開發(fā)板</b>安裝Docker

    ELF技術(shù)|如何在開發(fā)板上實(shí)現(xiàn)對(duì)Java的支持

    Java作為一種功能強(qiáng)大且廣泛應(yīng)用的編程語(yǔ)言,具有廣泛的適應(yīng)性和實(shí)用性。在ELF1開發(fā)板上集成Java支持,無(wú)疑將賦予嵌入式開發(fā)者更廣闊的選擇空間,今天就為各位小伙伴詳細(xì)解析如何在
    的頭像 發(fā)表于 03-13 16:47 ?787次閱讀
    <b class='flag-5'>ELF</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b><b class='flag-5'>開發(fā)板</b>上實(shí)現(xiàn)對(duì)Java的支持

    ElfBoard技術(shù)|在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的按鍵功能

    本次源碼適配工作是在NXPi.MX6ULLEVK評(píng)估的Linux內(nèi)核源碼(特定版本:Linux-imx_4.1.15)基礎(chǔ)上進(jìn)行的。主要目標(biāo)是調(diào)整功能接口引腳配置,以適應(yīng)ELF1開發(fā)板。接下來(lái)
    的頭像 發(fā)表于 07-10 09:54 ?950次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|在NXP源碼基礎(chǔ)上適配<b class='flag-5'>ELF</b> 1<b class='flag-5'>開發(fā)板</b>的按鍵功能

    ElfBoard技術(shù)|如何在ELF 1開發(fā)板上搭建流媒體服務(wù)器

    流媒體服務(wù)器是一種專門用于傳輸實(shí)時(shí)數(shù)據(jù)流的服務(wù)器軟件,廣泛用于視頻直播、視頻會(huì)議、音頻播放等應(yīng)用場(chǎng)景。在嵌入式開發(fā)領(lǐng)域,將流媒體服務(wù)器部署開發(fā)板上可以實(shí)現(xiàn)諸如視頻監(jiān)控、實(shí)時(shí)數(shù)據(jù)傳輸?shù)裙δ?。本文將介紹如何利用nginx和其rtm
    的頭像 發(fā)表于 08-20 14:48 ?943次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b><b class='flag-5'>ELF</b> 1<b class='flag-5'>開發(fā)板</b>上搭建流媒體服務(wù)器

    ElfBoard技術(shù)|如何在ELF 1開發(fā)板上交叉移植Qt

    在嵌入式系統(tǒng)開發(fā)領(lǐng)域,針對(duì)特定硬件平臺(tái)進(jìn)行Qt框架的移植與適配是一項(xiàng)關(guān)鍵技術(shù)任務(wù)。作為業(yè)界主流的跨平臺(tái)應(yīng)用開發(fā)框架,Qt憑借其完善的圖形界面支持能力,在嵌入式開發(fā)圖形界面應(yīng)用程序中占據(jù)
    的頭像 發(fā)表于 02-24 16:18 ?637次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b><b class='flag-5'>ELF</b> 1<b class='flag-5'>開發(fā)板</b>上交叉移植Qt

    ElfBoard技術(shù)|【RK3588】ELF 2開發(fā)板開機(jī)自啟動(dòng)詳解

    在嵌入式系統(tǒng)開發(fā)中,合理管理開機(jī)自啟動(dòng)項(xiàng)目能夠優(yōu)化系統(tǒng)啟動(dòng)流程,確保關(guān)鍵服務(wù)和應(yīng)用按時(shí)加載運(yùn)行。本文將詳細(xì)介紹在ELF2開發(fā)板Linux5.10.209系統(tǒng)下基于SystemVinit服務(wù)管理機(jī)制
    的頭像 發(fā)表于 06-27 16:20 ?1140次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|【RK3588】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>開機(jī)自啟動(dòng)詳解