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

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

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

發(fā)燒友實(shí)測 | 用飛凌OKA40i-C開發(fā)板玩轉(zhuǎn)FFmpeg

飛凌嵌入式 ? 2022-12-16 15:52 ? 次閱讀

本篇試用報告由發(fā)燒友zealsoft提供,感謝zealsoft的支持。飛凌嵌入式會在電子發(fā)燒友和電路城論壇持續(xù)開展開發(fā)板有獎試用活動,更有京東E卡等著你!歡迎大家的持續(xù)關(guān)注。

1. FFmpeg的安裝

FFmpeg是用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻的開源軟件,它支持文件和網(wǎng)絡(luò)流操作。它支持以函數(shù)庫的方式使用,所以有很多軟件都依賴它,比如VLC、暴風(fēng)影音、騰訊會議等。它的命令行程序也非常強(qiáng)大,各種命令行選項學(xué)起來雖然困難,但是幾乎能夠滿足日常對音視頻的各種處理需求。今天我們就通過飛凌嵌入式OKA40i-C開發(fā)板來介紹它的命令行工作方式。

FFmpeg提供了全部源代碼,所以在網(wǎng)上可以找到很多教程是關(guān)于交叉編譯ARM版本的。我們測試的版本使用的是FFmpeg-release-armel-static.tar.xz。解壓縮以后拷貝到飛凌嵌入式OKA40i-C開發(fā)板上并設(shè)置好權(quán)限就可以使用了。

2. USB攝像頭測試

OKA40i-C開發(fā)板接口豐富,它支持USB攝像頭、CMOS-OV5640攝像頭、模擬攝像頭。把USB攝像頭插入開發(fā)板,然后使用

v4l2-ctl --list-devices

可以看到/dev/video0就是我們的USB攝像頭,如下圖。

4463586e-7ce4-11ed-b116-dac502259ad0.png

使用下面的命令可以看到該攝像頭的全部參數(shù)

v4l2-ctl -d /dev/video0 --all

Driver Info (not using libv4l2): Driver name : uvcvideo Card type : USB2.0 PC CAMERA Bus info : usb-sunxi-ehci-1 Driver version : 3.10.65 Capabilities : 0x04000001 Video Capture Streaming Video input : 0 (Camera 1: ok) Format Video Capture: Width/Height : 640/480 Pixel Format : 'YUYV' Field : None Bytes per Line : 1280 Size Image : 614400 Colorspace : Default Transfer Function : Default YCbCr Encoding : Default Quantization : Default Crop Capability Video Capture: Bounds : Left 0, Top 0, Width 640, Height 480 Default : Left 0, Top 0, Width 640, Height 480 Pixel Aspect: 1/1 Streaming Parameters VideoCapture: Capabilities : timeperframe Frames per second: 30.000 (30/1) Read buffers : 0 brightness (int) : min=0 max=255 step=1 default=128value=128 contrast (int) : min=0 max=255 step=1 default=135value=135 saturation (int) : min=0 max=255 step=1 default=75 value=75 hue (int) : min=-127 max=127 step=1 default=0 value=0 gamma (int) : min=1 max=8 step=1 default=4 value=4 power_line_frequency (menu) : min=0 max=2 default=1 value=1 sharpness (int) : min=0 max=15 step=1 default=5 value=5 backlight_compensation (int) : min=1 max=5 step=1 default=1 value=1

我們使用了兩種型號的USB攝像頭,按照手冊說明使用內(nèi)置的uvccamera程序進(jìn)行測試,不過都沒有成功,得到的錯誤信息如下圖所示。

447bdc04-7ce4-11ed-b116-dac502259ad0.png44954748-7ce4-11ed-b116-dac502259ad0.png

我們使用FFmpeg可以抓取視頻,命令行如下:

ffmpeg-fvideo4linux2-s640x480-pix_fmtyuyv422-i/dev/video0out.yuv

使用Windows版本的ffplay可以正常播放抓取的視頻,命令行如下:

ffplay-s640x480-pix_fmtyuyv422out.yuv

上面保存的是YUV格式的原始視頻,如果要保存壓縮視頻,可以用下面的命令行:

ffmpeg-y-t15-r25-fvideo4linux2 -i/dev/video0out3.mp4-timestampsbs

其中的-r 25表示每秒采樣25幀,這個參數(shù)必須有,否則FFmpeg可能會不斷地采集并壓縮同一視頻幀。-r參數(shù)超過30沒有什么意義,因?yàn)閁SB攝像頭的最大能力就是30fps。

飛凌嵌入式OKA40i-C開發(fā)板可以對于1080P的視頻壓縮達(dá)到45fps,所以對USB攝像頭的視頻壓縮應(yīng)該沒有什么壓力。

3. FFmpeg性能測試

FFmpeg有個benchmark參數(shù)可以方便進(jìn)行性能測試。我們對A40i開發(fā)板自帶的一個MP4視頻就行解碼測試,命令行如下:

ffmpeg-benchmark-itranslate.mp4-fnull–

得到的測試數(shù)據(jù)如下:

video: 148kB audio: 3428kB subtitle:0kB other streams:0kB globalheaders:0kB muxing overhead: unknown bench: utime=2.820s stime=0.110s rtime=0.956s bench: maxrss=14208kB

由于我手上暫時沒有其他的開發(fā)板可以對比,于是就通過我用了5年的i7-6500筆記本測試了一下,測試結(jié)果如下:

video: 241kB audio: 3428kB subtitle:0kB other streams:0kB globalheaders:0kB muxing overhead: unknown bench: utime=0.391s stime=0.000s rtime=0.228s bench: maxrss=20316kB

4. FFmpeg產(chǎn)生實(shí)時視頻流

FFmpeg可以支持實(shí)時視頻流的發(fā)送和接收,從而可以把OKA40i-C開發(fā)板上的視頻實(shí)時發(fā)送到PC上,由PC上的軟件實(shí)時接收并顯示。我們可以使用下面的命令將OKA40i-C開發(fā)板上的一個MP4轉(zhuǎn)換為RTP碼流發(fā)送的PC上:

ffmpeg -re-itest.mp4-an-ccopy-frtprtp://192.168.0.105:1234

使用Wireshark可以看到在PC機(jī)的1234端口收到大量來自O(shè)KA40i-C開發(fā)板的H.264視頻流。

44b0c25c-7ce4-11ed-b116-dac502259ad0.png

如果想在PC上顯示視頻流,需要建立一個SDP文件,它描述視頻流中的端口和編碼信息。

SDP是來自SIP標(biāo)準(zhǔn)中定義,目前VLC、Apple QuickTime和ffplay等很多軟件都可以打開SDP文件,并按照SDP中的描述顯示視頻流。SDP文件并不需要手工編寫,在ffmpeg運(yùn)行時它會顯示命令行所對應(yīng)的SDP定義,如下圖所示。

44eb558e-7ce4-11ed-b116-dac502259ad0.png

也可以用重定向?qū)⑤敵鰧懭胍粋€SDP文件,如:

ffmpeg-re-itest.mp4-an-ccopy-frtprtp://192.168.0.105:1234>rtp.sdp

下面就是使用VLC顯示的接收到的視頻流。

450a6f96-7ce4-11ed-b116-dac502259ad0.png


5. FFmpeg轉(zhuǎn)發(fā)USB攝像頭的視頻流

前面演示了將MP4文件轉(zhuǎn)換為視頻流,我們也可以將USB攝像頭采集的內(nèi)容實(shí)時轉(zhuǎn)發(fā)到PC上,使用下面的命令行即可。

ffmpeg -y -t 15 -r 25 -f video4linux2 -i /dev/video0 -f rtp rtp://192.168.0.105:1234 > usb.sdp

再使用下面的命令行就可以看到實(shí)時抓取的USB攝像頭的視頻流了:

ffplay -protocol_whitelist "file,udp,rtp" -i usb.sdp

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

    關(guān)注

    5088

    文章

    19158

    瀏覽量

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

    關(guān)注

    25

    文章

    5096

    瀏覽量

    97823
收藏 人收藏

    評論

    相關(guān)推薦

    榜樣力量,智領(lǐng)未來——2024年度電子發(fā)燒友社區(qū)表彰

    、開源硬件系列直播等,還有 36場開發(fā)板測評活動,累計31061人參與申請,9011篇試用報告、5009個開發(fā)板試用作品; 2024年,電子發(fā)燒友社區(qū)的發(fā)展離不開眾多生態(tài)企業(yè)及活躍工程師的鼎力支持
    發(fā)表于 01-16 13:36

    3.1s啟動!嵌入式i.MX93開發(fā)板部署LVGL,打造更高效的GUI

    近期,嵌入式為基于NXP i.MX93系列處理器打造的OK-MX9352-C開發(fā)板成功移植了LVGL v8.3,不僅界面美觀精致,啟動速
    的頭像 發(fā)表于 01-16 11:52 ?84次閱讀
    3.1s啟動!<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式<b class='flag-5'>i</b>.MX93<b class='flag-5'>開發(fā)板</b>部署LVGL,打造更高效的GUI

    嵌入式OK3588J-C開發(fā)板體驗(yàn)】OK3588J-C開發(fā)板的支持RKMPP的FFmpeg移植

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

    嵌入式OK3588J-C開發(fā)板體驗(yàn)】OK3588J-C開發(fā)板開箱評測

    很高興收到嵌入式提供的OK3588J-C開發(fā)板,這是瑞芯微最新的8K旗艦8核SOC,非常適合用來做機(jī)器視覺,AI,語音識別,圖像處理。 下面來看看OK3588J-
    發(fā)表于 12-04 15:23

    華秋電子 | 電子發(fā)燒友亮相OpenHarmony人才生態(tài)大會2024

    開發(fā)者社區(qū)生態(tài)構(gòu)建上,劉勇回顧了電子發(fā)燒友社區(qū)在OpenHarmony開發(fā)板評測活動上的顯著成果,累計發(fā)出300多塊開發(fā)板、超過2000人次的申請評測試用,以及1000多份原創(chuàng)評
    發(fā)表于 12-02 09:45

    設(shè)計TMS320C548/9 DSP開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《設(shè)計TMS320C548/9 DSP開發(fā)板.pdf》資料免費(fèi)下載
    發(fā)表于 10-26 10:13 ?0次下載
    設(shè)計TMS320<b class='flag-5'>C</b>548/9 DSP<b class='flag-5'>開發(fā)板</b>

    i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 17:23 ?11次下載

    【「OpenHarmony開發(fā)與實(shí)踐 | 基于紅莓RK2206開發(fā)板」閱讀體驗(yàn)】+初體驗(yàn)1

    愛好者沒有bug,「OpenHarmony開發(fā)與實(shí)踐 | 基于紅莓RK2206開發(fā)板」大賣吧!哦對了 你們的開發(fā)板是怎么準(zhǔn)備的呢?【小派RK2206
    發(fā)表于 09-18 18:30

    嵌入式OK3576-C開發(fā)板體驗(yàn)】開箱報告

    簡介 很榮幸參與到本次由嵌入式和電子發(fā)燒友提供的OK3576-C開發(fā)板的試用機(jī)會。
    發(fā)表于 08-22 02:13

    嵌入式OK527N-C開發(fā)板體驗(yàn)】- 1. 開箱

    周三左右就收到了快遞,一直忙其他的事情,沒時間弄這個,就拖到周末了。 首先發(fā)個開箱貼,記錄下。 外包裝,盒子比想象的要大不少。 附帶的產(chǎn)品手冊,里面有很多
    發(fā)表于 07-11 21:24

    嵌入式OK527N-C開發(fā)板體驗(yàn)】- 開箱

    周三左右就收到了快遞,一直忙其他的事情,沒時間弄這個,就拖到周末了。 首先發(fā)個開箱貼,記錄下。 外包裝,盒子比想象的要大不少。 附帶的產(chǎn)品手冊,里面有很多
    發(fā)表于 06-30 23:04

    嵌入式RK3568開發(fā)板藍(lán)牙收、發(fā)文件測試

    本文由電子發(fā)燒友論壇用戶fsdzdzy提供,感謝分享。嵌入式每月定期開展新的開發(fā)板體驗(yàn)活動,歡迎更多工程師朋友的關(guān)注和參與。
    的頭像 發(fā)表于 02-02 16:31 ?1921次閱讀
    <b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式RK3568<b class='flag-5'>開發(fā)板</b>藍(lán)牙收、發(fā)文件測試

    嵌入式T113-i開發(fā)板的調(diào)屏方法

    對于飛嵌入式T113-i開發(fā)板的調(diào)屏問題,需要按照以下步驟進(jìn)行操作
    的頭像 發(fā)表于 01-29 16:25 ?1074次閱讀

    如何在嵌入式T113-i開發(fā)板的Buildroot中移植MQTT協(xié)議?

    嵌入式OK113i-S開發(fā)板上市一段時間以來收獲了很多關(guān)注,也成為了許多客戶項目選型的優(yōu)質(zhì)之選。在實(shí)際的項目開發(fā)中,工程師朋友們可能會需
    的頭像 發(fā)表于 01-26 08:02 ?552次閱讀
    如何在<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式T113-<b class='flag-5'>i</b><b class='flag-5'>開發(fā)板</b>的Buildroot中移植MQTT協(xié)議?

    嵌入式A40i-H核心已適配“礦鴻OS”

    嵌入式基于全志科技A40i-H打造的FETA40i-C核心成功完成了“礦鴻OS”的系統(tǒng)適配,嵌入式核心
    的頭像 發(fā)表于 01-18 08:02 ?1044次閱讀
    <b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式A<b class='flag-5'>40i</b>-H核心<b class='flag-5'>板</b>已適配“礦鴻OS”