华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
  當(dāng)前位置:操作系統(tǒng) > Linux > 文章內(nèi)容
  

Linux基礎(chǔ)教程:通過ffplay實現(xiàn)攝像頭preview

 [ 2016年2月18日 ] 【
硬件平臺:Jetson TK1 開發(fā)板(NVIDIA Tegra K1 Mobile Processor 32bit),寧波舜宇光電SP103A(OV16825)模組
軟件平臺:Ubuntu/Linaro 4.8.2-16ubuntu4(Linux version 3.10.40 32bit)

攝像頭驅(qū)動已經(jīng)實現(xiàn),支持v4l2的接口。

首先安裝SDL庫,第一次通過源代碼安裝的SDL-1.2.14版本,使用時總是提示SDL初始化失敗。第二次先輸入命令“sudo apt-get remove libsdl1.2debian”,“sudo apt-get install libsdl1.2-dev”,再通過源代碼安裝SDL-1.2.15問題解決了。

然后安裝x264,步驟比較簡單
$git clone git://git.videolan.org/x264.git
$cd x264
$./configure
$make
$sudo make install

最后安裝ffmpeg,通過git下載官網(wǎng)最新的版本,當(dāng)前版本是2.8版本,通過configure --enable-memalign-hack --enable-static,make, sudo make install安裝就可以了。

我們的驅(qū)動輸出的是sensor的原始數(shù)據(jù),為bayer raw10格式,每個顏色占用16bit,只有低10位是有效數(shù)據(jù),順序為bggr。ffmpeg的原始代碼是不支持raw10的,需要做一定的修改。原始代碼支持bayer raw8和bayer raw16, 因為bayer raw10和bayer raw16一樣都是占用兩個字節(jié),所以我們參考bay raw16修改。首先在libavdevice/v4l2-common.c中的ff_fmt_conversion_table中增加一項,這里我們直接借用raw16格式,在應(yīng)用看來raw10作為raw16處理,在v4l2接口調(diào)用時使用V4L2_PIX_FMT_SBGGR10。

{ AV_PIX_FMT_BAYER_BGGR16LE, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SBGGR10 },

對于raw16,目前的代碼在libswscale/bayer_template.c中BAYER_SHIFT設(shè)置為8,表示低位的8位直接舍棄,因為raw10只能舍棄低2位,所以我們將BAYER_SHIFT設(shè)置為2。

為了方便調(diào)試可以將libavutil/log.c中av_log_level從AV_LOG_INFO改成AV_LOG_TRACE,輸出更多信息。

做完以上修改后重新編譯,安裝ffmpeg,然后使用命令"ffplay -f v4l2 -input_format bayer_bggr16le -video_size 4608x3456 -i /dev/video0"就可以實現(xiàn)預(yù)覽了,如果還是提示SDL初始化失敗,可以在shell中輸入DISPLAY=:0和export DISPLAY命令設(shè)置一下DISPLAY。
本文糾錯】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
莒南县| 北票市| 安康市| 阿拉善右旗| 龙川县| 泌阳县| 东海县| 高淳县| 永清县| 澎湖县| 南乐县| 交口县| 武鸣县| 闵行区| 萨嘎县| 如皋市| 贵德县| 灌云县| 博白县| 武强县| 嘉鱼县| 青河县| 忻州市| 新乡县| 噶尔县| 黔西| 黄骅市| 洪洞县| 乡宁县| 徐汇区| 梅河口市| 石家庄市| 霍州市| 汨罗市| 霸州市| 万源市| 上高县| 民乐县| 逊克县| 梧州市| 龙胜|