本文來(lái)源電子發(fā)燒友社區(qū),作者:zealsoft, 帖子地址:https://bbs.elecfans.com/jishu_2305824_1_1.html
感謝“電子發(fā)燒友網(wǎng)”和飛凌嵌入式公司提供了本次OKA40i-C開發(fā)板的評(píng)測(cè)機(jī)會(huì)。上次我們介紹了通過(guò)HDMI接口連接智能電視的測(cè)試情況,今天使用FFmpeg進(jìn)行視頻編解碼的測(cè)試。
感謝“電子發(fā)燒友網(wǎng)”和飛凌嵌入式公司提供了本次OKA40i-C開發(fā)板的評(píng)測(cè)機(jī)會(huì)。上次我們介紹了通過(guò)HDMI接口連接智能電視的測(cè)試情況,今天使用FFmpeg進(jìn)行視頻編解碼的測(cè)試。
一、 FFmpeg的安裝
FFmpeg是用來(lái)記錄、轉(zhuǎn)換數(shù)字音頻、視頻的開源軟件,它支持文件和網(wǎng)絡(luò)流操作。它支持以函數(shù)庫(kù)的方式使用,所以有很多軟件都依賴它,包括VLC、暴風(fēng)影音、騰訊會(huì)議等。它的命令行程序也非常強(qiáng)大,各種命令行選項(xiàng)學(xué)起來(lái)雖然困難,但是幾乎能夠滿足日常對(duì)音視頻的各種處理需求。今天我們介紹的就是它的命令行工作方式。FFmpeg提供了全部源代碼,所以在網(wǎng)上可以找到很多教程是關(guān)于交叉編譯ARM版本的。如果想偷懶,也可以從https://johnvansickle.com/ffmpeg/下載已經(jīng)編譯好的版本。我們測(cè)試的版本使用的是FFmpeg-release-armel-static.tar.xz。解壓縮以后拷貝到arm開發(fā)板并設(shè)置好權(quán)限就可以使用了。
二、 USB攝像頭測(cè)試
- v4l2-ctl --list-devices
可以看到/dev/video0就是我們的USB攝像頭,如下圖。
![poYBAGMjESmAfJwfAABUouCoJ-0969.png](https://file.elecfans.com/web2/M00/69/6C/poYBAGMjESmAfJwfAABUouCoJ-0969.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
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
我們使用了兩種型號(hào)的USB攝像頭,按照手冊(cè)說(shuō)明使用內(nèi)置的uvccamera程序進(jìn)行測(cè)試,不過(guò)都沒有成功,得到的錯(cuò)誤信息如下圖所示。
![pYYBAGMjESqAEkELAABWcoXczkA697.png](https://file.elecfans.com/web2/M00/6A/03/pYYBAGMjESqAEkELAABWcoXczkA697.png)
![poYBAGMjESqAP62kAAAmhKzc3yY319.png](https://file.elecfans.com/web2/M00/69/6C/poYBAGMjESqAP62kAAAmhKzc3yY319.png)
我們使用FFmpeg可以抓取視頻,命令行如下:
- ffmpeg -f video4linux2 -s 640x480 -pix_fmt yuyv422 -i /dev/video0
- out.yuv
使用Windows版本的ffplay可以正常播放抓取的視頻,命令行如下:
- ffplay -s 640x480 -pix_fmt yuyv422 out.yuv
上面保存的是YUV格式的原始視頻,如果要保存壓縮視頻,可以用下面的命令行:
- ffmpeg -y -t 15 -r 25 -f video4linux2-i /dev/video0 out3.mp4 -timestamps bs
其中的-r 25表示每秒采樣25幀,這個(gè)參數(shù)必須有,否則FFmpeg可能會(huì)不斷地采集并壓縮同一視頻幀。-r參數(shù)超過(guò)30沒有什么意義,因?yàn)閁SB攝像頭的最大能力就是30fps。A40i可以對(duì)于1080p的視頻壓縮達(dá)到45fps,所以對(duì)USB攝像頭的視頻壓縮應(yīng)該沒有什么壓力。
三、 FFmpeg性能測(cè)試
FFmpeg有個(gè)benchmark參數(shù)可以方便進(jìn)行性能測(cè)試。我們對(duì)A40i開發(fā)板自帶的一個(gè)MP4視頻就行解碼測(cè)試,命令行如下:
- ffmpeg -benchmark -i translate.mp4 -f null –
得到的測(cè)試數(shù)據(jù)如下:
bench: utime=2.820s stime=0.110s rtime=0.956s
bench: maxrss=14208kB
手上暫時(shí)沒有ARM開發(fā)板可以對(duì)比,就拿我用了5年的i7-6500筆記本測(cè)試了一下,測(cè)試結(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
以后可以找其他開發(fā)板來(lái)對(duì)比一下。
四、 FFmpeg產(chǎn)生實(shí)時(shí)視頻流
FFmpeg可以支持實(shí)時(shí)視頻流的發(fā)送和接收,從而可以把板子上的視頻實(shí)時(shí)發(fā)送到PC上,由PC上的軟件實(shí)時(shí)接收并顯示。我們可以使用下面的命令將板子上的一個(gè)MP4轉(zhuǎn)換為RTP碼流發(fā)送的PC上:
- ffmpeg -re -i test.mp4 -an -c copy -f rtp rtp://192.168.0.105:1234
使用Wireshark可以看到在PC機(jī)的1234端口收到大量來(lái)自板子的H.264視頻流。
![pYYBAGMjESuAYxEfAAPhbfGMAgg347.png](https://file.elecfans.com/web2/M00/6A/03/pYYBAGMjESuAYxEfAAPhbfGMAgg347.png)
如果想在PC上顯示視頻流,需要建立一個(gè)SDP文件,它描述視頻流中的端口和編碼信息。SDP是來(lái)自SIP標(biāo)準(zhǔn)中定義,目前VLC、Apple QuickTime和ffplay等很多軟件都可以打開SDP文件,并按照SDP中的描述顯示視頻流。SDP文件并不需要手工編寫,在ffmpeg運(yùn)行時(shí)它會(huì)顯示命令行所對(duì)應(yīng)的SDP定義,如下圖所示。
![poYBAGMjESyASSoCAADe2O_5kTc452.png](https://file.elecfans.com/web2/M00/69/6C/poYBAGMjESyASSoCAADe2O_5kTc452.png)
也可以用重定向?qū)⑤敵鰧懭胍粋€(gè)SDP文件,如:
- ffmpeg -re -i test.mp4 -an -c copy -f rtp rtp://192.168.0.105:1234
- > rtp.sdp
下面就是使用VLC顯示的接收到的視頻流。
![pYYBAGMjES6ABJBrAB35b1G1HrE348.png](https://file.elecfans.com/web2/M00/6A/03/pYYBAGMjES6ABJBrAB35b1G1HrE348.png)
五、 FFmpeg轉(zhuǎn)發(fā)USB攝像頭的視頻流
前面演示了將MP4文件轉(zhuǎn)換為視頻流,我們也可以將USB攝像頭采集的內(nèi)容實(shí)時(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í)時(shí)抓取的USB攝像頭的視頻流了:
- ffplay -protocol_whitelist "file,udp,rtp" -i usb.sdp
聲明:本文內(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)投訴
-
飛凌
+關(guān)注
關(guān)注
0文章
134瀏覽量
16188
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
3.1s啟動(dòng)!飛凌嵌入式i.MX93開發(fā)板部署LVGL,打造更高效的GUI
近期,飛凌嵌入式為基于NXP i.MX93系列處理器打造的OK-MX9352-C開發(fā)板成功移植了LVGL v8.3,不僅界面美觀精致,啟動(dòng)速
![3.1s啟動(dòng)!<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](https://file1.elecfans.com/web3/M00/06/39/wKgZO2eIgguAfA2aAABGjTAqQWw318.png)
【飛凌嵌入式OK3588J-C開發(fā)板體驗(yàn)】OK3588J-C開發(fā)板的支持RKMPP的FFmpeg移植
沒辦法了,我們自己進(jìn)行編譯一下吧,而且飛凌官方也給我們提供具體的移植過(guò)程,OK3588 5.10.66 Forlinx Desktop20.04 移植ffmpeg,不過(guò)也可以按照我這里面來(lái)進(jìn)行移植
發(fā)表于 12-30 08:57
【飛凌嵌入式OK3588J-C開發(fā)板體驗(yàn)】OK3588J-C開發(fā)板的ffmpeg編解碼、HDMI輸入及編碼
是H264的。
在上傳到開發(fā)板里面,然后我們?cè)偈褂胒fprobe來(lái)查看一下具體的媒體信息。
我們首先使用最不帶參數(shù)的轉(zhuǎn)換命令試一下:
ffmpeg -i video.mp4 test1.mp4
執(zhí)行
發(fā)表于 12-27 19:26
【飛凌嵌入式OK3588J-C開發(fā)板體驗(yàn)】OK3588J-C開發(fā)板開箱、系統(tǒng)燒寫及環(huán)境測(cè)試
首先要特別感謝發(fā)燒友論壇和飛凌嵌入式給我們提供的本次試用機(jī)會(huì),在申請(qǐng)通過(guò)后很快就收到板子了,順豐快遞可以說(shuō)是貴重物品專用的快遞了,飛凌的包裝
發(fā)表于 12-26 18:35
[迅為RK3568開發(fā)板]非科班也能玩轉(zhuǎn)Android應(yīng)用,體驗(yàn)QT跨平臺(tái)能力
[迅為RK3568開發(fā)板]非科班也能玩轉(zhuǎn)Android應(yīng)用,體驗(yàn)QT跨平臺(tái)能力
![[迅為RK3568<b class='flag-5'>開發(fā)板</b>]非科班也能<b class='flag-5'>玩轉(zhuǎn)</b>Android應(yīng)用,體驗(yàn)QT跨平臺(tái)能力](https://file1.elecfans.com/web3/M00/02/F1/wKgZO2diirGAPoENAACpt0CV3xc346.png)
【飛凌嵌入式OK3588J-C開發(fā)板體驗(yàn)】OK3588J-C開發(fā)板開箱評(píng)測(cè)
很高興收到飛凌嵌入式提供的OK3588J-C開發(fā)板,這是瑞芯微最新的8K旗艦8核SOC,非常適合用來(lái)做機(jī)器視覺,AI,語(yǔ)音識(shí)別,圖像處理。
下面來(lái)看看OK3588J-
發(fā)表于 12-04 15:23
玩轉(zhuǎn)RK3588開發(fā)板基于connector-split 功能實(shí)現(xiàn)多屏聯(lián)動(dòng)
玩轉(zhuǎn)RK3588開發(fā)板基于connector-split 功能實(shí)現(xiàn)多屏聯(lián)動(dòng)
![<b class='flag-5'>玩轉(zhuǎn)</b>RK3588<b class='flag-5'>開發(fā)板</b>基于connector-split 功能實(shí)現(xiàn)多屏聯(lián)動(dòng)](https://file1.elecfans.com/web3/M00/00/C0/wKgZO2dNakGAHyqQAABxhNnhe3Q171.png)
飛凌嵌入式受邀亮相OpenHarmony人才生態(tài)大會(huì)
出席,并展示了其在OpenHarmony 4.1系統(tǒng)適配方面的最新成果。 在大會(huì)的靜態(tài)展示區(qū)域,飛凌嵌入式攜兩款明星產(chǎn)品OK3568-C開發(fā)板和OK527N-
![<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式受邀亮相OpenHarmony人才生態(tài)大會(huì)](https://file1.elecfans.com/web3/M00/00/7B/wKgZPGdJf5OANq4DAAkSLFrau2I699.png)
追加名額丨米爾瑞芯微RK3576開發(fā)板有獎(jiǎng)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動(dòng)加碼啦~~米爾追加了2塊價(jià)值849元的MYD-LR3576開發(fā)板發(fā)起試用活動(dòng)您不僅可以
![追加名額丨米爾瑞芯微RK3576<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
【飛凌嵌入式OK3576-C開發(fā)板體驗(yàn)】開箱報(bào)告
簡(jiǎn)介
很榮幸參與到本次由飛凌嵌入式和電子發(fā)燒友提供的OK3576-C開發(fā)板的試用機(jī)會(huì)。
飛
發(fā)表于 08-22 02:13
【飛凌嵌入式OK527N-C開發(fā)板體驗(yàn)】- 1. 開箱
周三左右就收到了快遞,一直忙其他的事情,沒時(shí)間弄這個(gè),就拖到周末了。
首先發(fā)個(gè)開箱貼,記錄下。
外包裝,盒子比想象的要大不少。
附帶飛凌的產(chǎn)品手冊(cè),里面有很多飛凌的
發(fā)表于 07-11 21:24
【飛凌嵌入式OK527N-C開發(fā)板體驗(yàn)】- 開箱
周三左右就收到了快遞,一直忙其他的事情,沒時(shí)間弄這個(gè),就拖到周末了。
首先發(fā)個(gè)開箱貼,記錄下。
外包裝,盒子比想象的要大不少。
附帶飛凌的產(chǎn)品手冊(cè),里面有很多飛凌的
發(fā)表于 06-30 23:04
點(diǎn)擊參與米爾NXP i.MX 93開發(fā)板有獎(jiǎng)試用
米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了3塊價(jià)值678元的MYD-LMX9X開發(fā)板發(fā)起試用活動(dòng)您不僅可以免費(fèi)體
![點(diǎn)擊參與米爾NXP <b class='flag-5'>i</b>.MX 93<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
免費(fèi)!NXP i.MX 93開發(fā)板有獎(jiǎng)試用
米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了2塊價(jià)值678
![免費(fèi)!NXP <b class='flag-5'>i</b>.MX 93<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
飛凌嵌入式i.MX8M Plus開發(fā)板的OTA遠(yuǎn)程升級(jí)方案
的方式,可升級(jí)系統(tǒng)內(nèi)核、文件系統(tǒng)和應(yīng)用。接下來(lái),將以飛凌嵌入式OKMX8MP-C開發(fā)板為例,基于Linux5.4.70版本內(nèi)核,展示升級(jí)前后的切換效果。切換前,系
![<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式<b class='flag-5'>i</b>.MX8M Plus<b class='flag-5'>開發(fā)板</b>的OTA遠(yuǎn)程升級(jí)方案](https://file1.elecfans.com/web2/M00/DF/38/wKgaomYvKimAG7MqAAByqnD0SWU989.png)
評(píng)論