一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

發(fā)燒友實(shí)測(cè) | 用A40i開(kāi)發(fā)板FFmpeg的安裝及測(cè)試

 ARM開(kāi)發(fā)板 2022-12-23 發(fā)布于河北

1. FFmpeg的安裝

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

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

2. USB攝像頭測(cè)試

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

v4l2-ctl --list-devices

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

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

v4l2-ctl -d  /dev/video0 --all
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

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

我們使用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沒(méi)有什么意義,因?yàn)閁SB攝像頭的最大能力就是30fps。

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

3. FFmpeg性能測(cè)試

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

ffmpeg-benchmark -i translate.mp4 -f null –

得到的測(cè)試數(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

由于我手上暫時(shí)沒(méi)有其他的開(kāi)發(fā)板可以對(duì)比,于是就通過(guò)我用了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

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

FFmpeg可以支持實(shí)時(shí)視頻流的發(fā)送和接收,從而可以把OKA40i-C開(kāi)發(fā)板上的視頻實(shí)時(shí)發(fā)送到PC上,由PC上的軟件實(shí)時(shí)接收并顯示。我們可以使用下面的命令將OKA40i-C開(kāi)發(fā)板上的一個(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)自O(shè)KA40i-C開(kāi)發(fā)板的H.264視頻流。

h.264視頻流

如果想在PC上顯示視頻流,需要建立一個(gè)SDP文件,它描述視頻流中的端口和編碼信息。SDP是來(lái)自SIP標(biāo)準(zhǔn)中定義,目前VLC、Apple QuickTime和ffplay等很多軟件都可以打開(kāi)SDP文件,并按照SDP中的描述顯示視頻流。SDP文件并不需要手工編寫(xiě),在ffmpeg運(yùn)行時(shí)它會(huì)顯示命令行所對(duì)應(yīng)的SDP定義,如下圖所示。

也可以用重定向?qū)⑤敵鰧?xiě)入一個(gè)SDP文件,如:

ffmpeg -re -i test.mp4 -an -c copy -f rtp rtp://192.168.0.105:1234 > rtp.sdp

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

5. 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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    精品人妻一区二区三区免费看| 婷婷激情四射在线观看视频| 亚洲日本久久国产精品久久| 91精品国产综合久久精品| 欧美日韩高清不卡在线播放| 亚洲淫片一区二区三区| 成人欧美一区二区三区视频| 91超频在线视频中文字幕| 狠狠做深爱婷婷久久综合| 91麻豆视频国产一区二区| 中国美女草逼一级黄片视频 | 熟女少妇一区二区三区蜜桃| 熟女中文字幕一区二区三区| 国产老女人性生活视频| 色婷婷人妻av毛片一区二区三区| 国产内射在线激情一区| 久久综合亚洲精品蜜桃| 99久热只有精品视频最新| 激情少妇一区二区三区| 懂色一区二区三区四区| 美女黄色三级深夜福利| 国产自拍欧美日韩在线观看| 草草视频福利在线观看| 开心激情网 激情五月天| 91亚洲精品国产一区| 肥白女人日韩中文视频| 色婷婷在线视频免费播放| 国产麻豆成人精品区在线观看| 日韩精品人妻少妇一区二区| 国产精品熟女乱色一区二区| 日本免费一区二区三女| 沐浴偷拍一区二区视频| 成人精品欧美一级乱黄| 国产又粗又长又大高潮视频| 夜色福利久久精品福利| 亚洲中文字幕高清视频在线观看| 少妇在线一区二区三区| 欧美日韩人妻中文一区二区 | 黄色国产精品一区二区三区| 午夜国产精品福利在线观看| 欧美人妻免费一区二区三区|