Tag - 樹莓派pi 2

Raspberry Pi 攝像頭模塊應用程序文檔翻譯

Raspberry Pi 攝像頭模塊應用程序文檔翻譯

Raspberry Pi 攝像頭模塊應用程序文檔翻譯

更新日誌:

  • 2014 年3 月24 日更新:根據2013 年12 月更新的文檔,對原譯文進行擴展翻譯。翻譯完畢。
  • 2014 年3 月4 日更新:根據2013 年12 月更新的文檔,對原譯文進行擴展翻譯。部分內容未翻譯完畢。
  • 2013 年8 月4 日更新:根據Raspberry Pi 官方論壇發布的RaspiCam 正式文檔進行擴展翻譯。硬件安裝和軟件安裝部分稍後翻譯完成。
  • 2013 年5 月31 日更新:根據eLinux 中的Wiki 內容添加使用MP4Box 對視頻進行封裝的介紹。
  • 2013 年5 月24 日更新:根據2013 年5 月10 日更新的官方文檔完成了初步翻譯。

本文會在適當的時間裡進行增刪改等操作,如果您對該文感興趣,可以僅收藏本頁。

RaspiCam 文檔

本文檔將對2013 年12 月7 日為止可用的三個Raspberry Pi 攝像頭應用程序進行介紹。

目前提供了三個應用程序,分別為:raspistillraspividraspistillyuv。其中raspistill和raspistillyuv非常相似,並且都是用於捕捉圖像,而raspivid用於捕捉視頻。

所有應用程序均基於命令行方式運行,通過OpenMAX 的mmal API 進行編寫。OpenMAX 的mmal API 提供了更易使用的系統組件。注意,mmal 是一個由Broadcom 為Videocore 4 系統定制的API。

應用程序使用了四個OpenMAX(mmal)組件:camera(攝像)、preview(預覽)、encoder(編碼)、null_sink。所有應用程序均使用了攝像組件,raspistill使用了圖像編碼組件,raspivid使用了視頻編碼組件,raspistillyuv沒有使用編碼組件,而是直接將YUV或RGB從攝像組件輸出到文件。

預覽顯示為可選參數,但是可以用於全屏或輸出到指定的顯示器顯示區域進行顯示。如果預覽被禁用,那麼null_silk 組件將會對預覽幀進行“吸收”。這是由於儘管不需要攝像頭生成供顯示所用的的預覽幀,但是仍需要使用它們進行曝光計算和白平衡設置的緣故。

此外,還可以省略文件名參數,這樣既可以直接預覽顯示而不寫入文件,或者直接輸出到標準輸出設備上。命令行幫助可以通過直接輸入應用程序名稱獲得。

安裝攝像頭硬件

警告:攝像頭對靜電非常敏感。如果您在安裝攝像頭電路板時沒有防靜電手環,可以嘗試觸摸一下水龍頭、金屬水槽或其它類似的東西即可。

攝像頭電路板與Raspberry Pi 通過一條15 芯的排線進行連接。僅有兩個連接座需要連接,排線需要安裝到攝像頭電路板和Raspberry Pi 上。您需要正確安裝,否則攝像頭無法工作。對於攝像頭電路板,排線末端的藍色標記應該背對著電路板。而Raspberry Pi 部分,藍色標記應該正對著網絡接口方向(如果您使用的是Model A,那麼也是需要正對著網絡接口預留位)。

儘管兩部分連接座不盡相同,但它們的工作方式很相似。對於Raspberry Pi,拉起連接座兩端的卡扣。它應該很容易拉起,並能夠輕微活動。把排線完全插入到連接座中,並保證豎直,然後輕輕按下兩端的卡扣。攝像頭電路板方面,也需要您將卡扣向電路板相反方向拉開,然後輕輕插入排線,最後將卡扣推回。攝像頭電路板的連接座與Pi 上的區別就在這裡。

安裝攝像頭軟件

執行下文介紹的命令行進行下載並安裝最新的內核,GPU 固件及應用程​​序。您需要連接到互聯網才可以實現以下操作。

1
2
sudo apt-get update
sudo apt-get upgrade

接下來,您首先需要在Raspberry Pi 的raspi-config 程序中啟用攝像頭的支持。

1
sudo raspi-config

將光標移動到攝像頭選項(Camera option)處,並選擇啟用(Enable)。在退出raspi-config 時會要求您重新啟動。啟用選項是為了確保重啟後GPU 固件能夠正確運行(包括攝像頭驅動和調節電路),並且GPU 從主內存劃分到了足夠的內存使攝像頭能夠正確運行。

測試系統已經完成安裝並正常工作,可嘗試以下命令:

1
raspistill - v -o test .jpg

這將顯示來自攝像頭5 秒鐘的預覽圖像,並且拍攝一張照片,然後保存為文件test.jpg,同時顯示出需要相關信息。

故障排除

如果攝像頭工作不正常,您可以嘗試以下操作。

  • 連接排線是否連接正確?它們必須都垂直插入到插槽中。
  • 攝像頭模塊的連接座是否緊密的貼合到了電路板上?攝像頭模塊電路板上連接座的黑色卡扣,有時會發生鬆動。用指甲輕輕拉開,並且重新將排線插入,並且把卡扣按回。
  • 是否運行過sudo apt-get update 和sudo apt-get upgrade 了?
  • 是否運行過raspi-config 並啟用了攝像頭選項?
  • 您的電源合適嗎?除Raspberry Pi 所要求的電量,攝像頭將需要額外的200-250mA 的電量。

如果仍然無法工作,可以嘗試以下操作:

Error : raspistill/raspivid not found.該提示可以意味著您update/upgrade操作失敗了。請重試。

Error : ENOMEM displayed.攝像頭沒有啟動。請再次檢查所有的連接線。

Error : ENOSPC displayed.攝像頭可能使GPU內存溢出了。檢查/boot/目錄下的config.txt文件內容。gpu_men選項,最少應該為128。

如果以上內容都嘗試過了,攝像頭仍然無法工作,那麼它可能出現問題了。可以嘗試在Raspberry Pi 論壇的Camera 板塊找找是否有更多可用的幫助。

通用命令行參數

預覽窗口

–preview, -p預覽窗口設置<‘x,y,w,h’>
允許用戶在屏幕上定義預覽窗口的大小和位置。注意,這將在所有其它窗口/圖像的上層顯示。

–fullscreen, -f全屏預覽模式
強制預覽屏幕全屏顯示。注意,這將會保留輸入圖像的長寬比例,所以可能會在圖像的邊緣出現填充條。

–nopreview, -n不顯示預覽窗口
完全禁用預覽窗口。注意,儘管預覽窗口被禁用,但攝像頭仍然在進行處理,所以會繼續消耗資源。

–opacity, -op設置預覽窗口透明度
設置預覽窗口的透明度。0為完全透明,255為完全不透明。

攝像頭控制參數

–sharpness, -sh設置圖像銳度(-100 – 100)
設置圖像的銳度,默認為0。

–contrast, -co設置圖像對比度(-100 – 100)
設置圖像的對比度,默認為0。

–brightness, -br設置圖像亮度(0 – 100)
設置圖像的亮度,默認為50。0為最暗,100為最亮。

–saturation, -sa設置圖像飽和度(-100 – 100)
設置圖像色彩飽和度。默認為0。

–ISO, -ISO設置捕捉ISO
為捕捉圖像設置ISO。範圍為100到800。

–vstab, -vs打開視頻穩定
僅用於視頻模式,用於開啟視頻穩定。

–ev, -ev設置曝光補償
設置圖像的曝光補償。範圍為-10到10,默認為0。

–exposure, -ex設置曝光模式
可能用到的參數為:

  • auto -使用自動曝光模式
  • night -夜間拍攝模式
  • nightpreview -夜間預覽拍攝模式(暫且這麼稱呼)
  • backlight -逆光拍攝模式
  • spotlight -聚光燈拍攝模式
  • sports -運動拍攝模式(高速快門等)
  • snow -雪景優化拍攝模式
  • beach -海灘優化拍攝模式
  • verylong -長時間曝光拍攝模式
  • fixedfps -幀約束拍攝模式
  • antishake -防抖模式
  • fireworks -煙火優化拍攝模式

注意,不是所有的設置都會在對攝像頭進行微調時得到相應作用。

–awb, -awb設置自動白平衡
可能用到的參數為:

  • off -關閉白平衡測算
  • auto -自動模式(默認)
  • sun -日光模式
  • cloud -多雲模式
  • shade -陰影模式
  • tungsten -鎢燈模式
  • fluorescent -熒光燈模式
  • incandescent -白熾燈模式
  • flash -閃光模式
  • horizon -地平線模式

–imxfx, -ifx設置圖像特效
設置應用於圖像上的特效
可能用到的參數為:

  • none -無特效(默認)
  • negative -反色圖像
  • solarise -曝光過度圖像
  • posterize -色調圖像
  • whiteboard -白板特效
  • blackboard -黑板特效
  • sketch -素描風格特效
  • denoise -降噪圖像
  • emboss -浮雕圖像
  • oilpaint -油畫風格特效
  • hatch -草圖特效
  • gpen -馬克筆特效
  • pastel -柔化風格特效
  • watercolour -水彩風格特效
  • film -膠片顆粒風格特效
  • blur -模糊圖像
  • saturation -色彩飽和圖像
  • colourswap -暫未可用
  • washedout -暫未可用
  • posterise -暫未可用
  • colourpoint -暫未可用
  • colourbalance -暫未可用
  • cartoon -暫未可用

–colfx, -cfx設置色彩特效
指定圖像U和V通道的參數(範圍0到255)。例如:–colfx 128:128將得到一張單色圖像。

–metering, -mm設置測光模式
為預覽和捕捉指定測光模式
可能用到的參數為:

  • average -全畫面平衡測光
  • spot -點測光
  • backlit -模擬背光圖像
  • matrix -陣列測光

–rotation, -rot設置圖像旋轉(0 – 359)
對取景器和最終得到的圖像進行旋轉。可以接受0以上任何值,但由於硬件限制,只支持0、90、180、270度。

–hflip, -hf設置水平翻轉
水平翻轉預覽和保存的圖像。

–vflip, -vf設置垂直翻轉
垂直翻轉預覽和保存的圖像。

–roi, -roi設置傳感器感光區域
允許指定用於預覽和捕捉的源所使用的傳感器區域。該功能中x和y參數指定了坐上角的坐標,以及定義了寬度和高度值,並且所有值都為標準化坐標(0.0到1.0)。那麼,感光區域設置為橫向和縱向都為一半,並且寬度和高度都為傳感器的四分之一時,可以寫為:
-roi 0.5,0.5,0.25,0.25

–shutter, -ss設置快門速度
設置快門的速度為指定的值(單位為微秒)。據當前的考證,目前未定義時,快門速度上限大約為330000us(330ms或0.33s)。

應用程序專有設置

raspistill

–width, -w設置圖像寬度

–height, -h設置圖像高度

–quality, -q設置JPEG品質
品質為100時幾乎等同於未壓縮。75相對是比較好的選擇。

–raw, -r向JPEG元數據中添加RAW信息
該參數將從攝像頭獲取到的RAW信息插入到JPEG元數據中。

–output, -o輸出文件名
​​指定輸出的文件名 ​​。如果不指定,將不保存到文件。如果文件名 ​​為“-”,將輸出發送至標準輸出設備。

–latest, -l鏈接最後一幀到文件名
​​基於該名稱做一個指向最後一幀的文件系統鏈接。

–verbose, -v在運行過程中輸出詳細信息
在程序運行過程中,輸出調試/詳細信息。

–timeout, -t獲取圖片前的時間
程序將執行指定的時長,然後進行獲取操作(前提是output已指定)。如果未指定,將設置為5秒。

–timelapse, -tl間隔拍攝模式
指定多次拍攝之間所間隔的毫秒值。注意,您需要在文件名 ​​中加入%04d做為畫面計數。
-t 30000 -tl 2000 -o image%04d.jpg
將會在30秒的時間內,每兩秒拍攝一次,並且將文件命名為:image1.jpg、image0002.jpg…image0015.jpg。注意%04d表示在文件名 ​​中數字部分加入前導零,使其成為4位數。例如,%08d將生成8位數字。
如果間隔時間設置為0,程序將不間斷(取決於系統負擔及存儲速度)進行拍攝。不過需要注意,每次捕捉前還是會有30ms的最小暫停時間,用於曝光計算操作。

–thumb, -th設置縮略圖參數(x:y:quality)
允許指定插入到JPEG文件中縮略圖信息。如果不指定,將為默認的64×48質量為35的縮略圖。
如果設置為–thumb none,那麼將不會向文件中插入縮略圖信息。文件的尺寸也會稍微變小。

–demo, -d運行演示模式
該參數將循環使用所有攝像頭參數,並且不會捕捉。而且無論是否完成所有的循環,在超時周期到達時都會停止演示操作。循環之前的時間需要設置毫秒值。

–encoding, -e指定輸出文件的編碼
可用的參數為jpg、bmp、gif、png。注意,未被硬件加速支持的圖像格式(gif、png、bmp)在保存的時候要比jpg格式耗時更長。還需要注意,文件擴展名在編碼時將被完全忽略。

–exif, -x在捕捉的內容中加入EXIF標籤(格式為’key=value’)
允許在JPEG圖像中插入特定的EXIF標籤。您可以插入32條記錄。這是非常實用的功能,比如插入GPS元數據。例如設置經度
–exif GPS.GPSLongitude=5/1,10/1,15/100
該命令將會設置經度為5度10分15秒。查看EXIF文檔獲得所有可用標籤的詳細信息。支持的標籤如下:IFD0.或IFD1. <ImageWidth, ImageLength, BitsPerSample, Compression, PhotometricInterpretation, ImageDescription, Make, Model, StripOffsets, Orientation, SamplesPerPixel, RowsPerString, StripByteCounts, Xresolution, Yresolution, PlanarConfiguration, ResolutionUnit, TransferFunction, Software, DateTime , Artist, WhitePoint, PrimaryChromaticities, JPEGInterchangeFormat, JPEGInterchangeFormatLength, YcbCrCoefficients, YcbCrSubSampling, YcbCrPositioning, ReferenceBlackWhite, Copyright>

EXIF.
<ExposureTime, FNumber, ExposureProgram, SpectralSensitivity, a ISOSpeedRatings, OECF, ExifVersion, DateTimeOriginal, DateTimeDigitized, ComponentsConfiguration, CompressedBitsPerPixel, ShutterSpeedValue, ApertureValue, BrightnessValue, ExposureBiasValue, MaxApertureValue, SubjectDistance, MeteringMode, LightSource, Flash, FocalLength, SubjectArea, MakerNote, UserComment, SubSecTime, SubSecTimeOriginal, SubSecTimeDigitized, FlashpixVersion, ColorSpace, PixelXDimension, PixelYDimension, RelatedSoundFile, FlashEnergy, SpacialFrequencyResponse, FocalPlaneXResolution, FocalPlaneYResolution, FocalPlaneResolutionUnit, SubjectLocation, ExposureIndex, SensingMethod, FileSource, SceneType, CFAPattern, CustomRendered, ExposureMode, WhiteBalance, DigitalZoomRatio, FocalLengthIn35mmFilm, SceneCaptureType, GainControl, Contrast, Saturation, Sharpness, DeviceSettingDescription, SubjectDistanceRange, ImageUniqueID>

GPS.
<GPSVersionID, GPSLatitudeRef, GPSLatitude, GPSLongitudeRef, GPSLongitude, GPSAltitudeRef, GPSAltitude, GPSTimeStamp, GPSSatellites, GPSStatus, GPSMeasureMode, GPSDOP, GPSSpeedRef, GPSSpeed, GPSTrackRef, GPSTrack, GPSImgDirectionRef, GPSImgDirection, GPSMapDatum, GPSDestLatitudeRef, GPSDestLatitude, GPSDestLongitudeRef, GPSDestLongitude, GPSDestBearingRef , GPSDestBearing, GPSDestDistanceRef, GPSDestDistance, GPSProcessingMethod, GPSAreaInformation, GPSDateStamp, GPSDifferential>

EINT.
<InteroperabilityIndex, InteroperabilityVersion, RelatedImageFileFormat, RelatedImageWidth, RelatedImageLength>

注意,有部分標籤將會由攝像頭系統自動設置,但是會被命令行執行的EXIF操作所覆蓋。

如果設置為–exif none,那麼將不會向文件中插入EXIF信息。文件的尺寸也會稍微變小。

–fullpreview, -fp全預覽模式
這將使預覽窗口運行於全分辨率捕捉模式。該模式最大幀率為15fps,並且預覽將和捕捉擁有相同的可視區域。在不進行模式轉換時,捕捉動作將進行的更迅速。該功能目前還在開發中。

–keypress, -k按鍵模式

攝像頭會運行(-t)參數指定的時間,並且每次按下回車鍵時進行一次捕捉。在超時設置到達前按X 鍵然後按回車鍵將退出程序。如果超時時間設置為0,攝像頭將一直工作,直到按下X 鍵和回車鍵。使用verbose(-v)參數可以顯示輸入確認提示,否則不會有任何提示。

–signal, -s信號模式

攝像頭會運行(-t)參數指定的時間,並且每次向攝像進程發送USR1 信號時進行一次捕捉。該操作可以通過發送kill 命令進行終止。您可以使用“pgrep raspistill”命令找到攝像進程的ID。

1
kill -USR1

raspistillyuv

raspistillyuv 的許多選項與raspistill 是相同的。本節將對不同的部分進行講解。

不支持的選項:
–exif, –encoding, –thumb, –raw, –quality

擴展選項:–rgb, -rgb以RGB888形式保存未壓縮數據 該選項強製圖像保存為每個通道為8 bits的RGB格式,而不是YUV420格式。

注意,在raspistillyuv 中所保存的圖像在緩衝區中水平尺寸封裝為可被16 整除(所以可能會在每行的結尾都會出現無用的字節以使寬度可被16 整除)。緩衝區也會將垂直方向封裝為可被16 整除,在YUV 模式中,每個Y、U、V 平面都會使用該方式進行封裝。

raspivid

–width, -w設置圖像寬度
視頻的寬度。範圍為64到1920。

–height, -h設置圖像高度
視頻的高度。範圍為64到1080。

–bitrate, -b設置碼率。
使用比特/秒為單位,所以10Mbits/s需要輸入-b 10000000。對於H264編碼的1080p30高清視頻,碼率需要在15Mbits/s或以上。碼率最大為25Mbits/s(-b 25000000),但大於17Mbits/s時,在1080p30中並沒有太大區別。

–output -o輸出文件名
​​指定輸出的文件名 ​​。如果不指定,將不保存到文件。如果文件名 ​​為“-”,將輸出發送至標準輸出設備。

–verbose, -v在運行過程中輸出詳細信息
在程序運行過程中,輸出調試/詳細信息。

–timeout, -t獲取圖片前的時間
程序將執行指定的時長,然後進行獲取操作(前提是output已指定)。如果未指定,將設置為5秒。設置為0意味著程序將一直運行,直到按下Ctrl-C才會停止。

–demo, -d運行演示模式
該參數將循環使用所有攝像頭參數,並且不會捕捉。而且無論是否完成所有的循環,在超時周期到達時都會停止演示操作。循環之前的時間需要設置毫秒值。

–framerate, -fps指定錄製的視頻每秒的畫面數量
目前,最小的幀率為2fps,最大為30fps。似乎將來會有所改變。

–penc, -e在編碼完成後顯示預覽圖像
開啟該選項會在壓縮完成後顯示預覽圖像。顯示在預覽窗口中的圖像會因為壓縮的原因出現失真。正常情況下,預覽將會顯示攝像頭輸出的原始圖像。該功能在未來的版本中可能不再可用。

–intra, -g指定幀內刷新周期(關鍵幀率/畫面組)
為錄製的視頻設置幀內刷新周期(畫面組)率。H.264視頻在每個幀內刷新周期中都使用了I-frame。該選項指定了每個I-frame之間幀的數量。數字越大,生成的視頻尺寸越小,數字越小,視頻流將越龐大,直至出錯。

–qp, -qp設置量化參數

為視頻流設置初始量化參數。範圍從10 到40,並且對所錄製視頻的質量有極大的影響。值越大,質量越低,並且文件尺寸越小。碼流設置為0,並結合此參數一起使用,可用來設置一個完全動態碼流的視頻。

–profile, -pf為錄製的視頻指定H264配置文件

為錄製的視頻指定H264 配置文件。選項為:baseline、main、high。

–inline, -ih Insert PPS, SPS headers插入PPS,SPS頭

強制視頻流的I-frame 都包含PPS 和SPS 頭信息。某些視頻封裝格式需要該信息。例如Apple HLS。這些頭信息體積很小,所以不會讓文件的尺寸增加太多。

–timed, -td設置定時切換捕捉和暫停

該選項可以使視頻捕捉在特定的時間裡暫停並重新開始記錄。需要指定開啟時間和關閉時間兩個值。開啟時間是視頻的捕捉時長,關閉時間是暫停的時長。總錄製時長是又超時選項進行定義的。注意,由於開啟時間和關閉時間的設置原因,錄製時長將略微比超時設置的時間要長。

例如

1
raspivid -o test .h264 -t 25000 -timed 2500,5000

將進行25 秒的錄製操作。錄製操作包括若干個2500 毫秒(2.5 秒)錄製和5000 毫秒(5秒)暫停的操作,並且重複時長超過20 秒。所以該錄製過程中實際只錄製了10 秒的內容。包括4 段2.5 秒的視頻片斷= 被若干個5 秒鐘暫停操作分隔開的10 秒鐘視頻。

2.5 秒錄製– 5 秒暫停- 2.5 秒錄製– 5 秒暫停-2.5 秒錄製– 5 秒暫停– 2.5 秒錄製

錄製了25 秒。但僅有10 秒的記錄

–keypress, -k使用回車鍵在錄製和暫停兩種狀態間進行切換

每次點擊回車鍵將會暫停或重新開始錄製進程。點擊X 鍵後點擊回車鍵將停止錄製並關閉程序。注意,超時設置值將影響錄製結束時間,但僅在每次回車鍵點擊後進行檢查,所以如果系統正在等待按鍵操作,儘管超時設置已過期,錄製進程退出前也會等待按鍵操作。

–signal, -s使用SIGUSR1信號在錄製和暫停兩種狀態間進行切換

向Raspivid 進程發送USR1 信號來切換錄製和暫停。該操作可以通過使用kill 命令來實現。您可以使用“pgrep raspivid” 命令找到raspivid 的進程ID。

kill -USR1

注意,超時設置值將影響錄製結束時間,但僅在每次發送SIGUSR1 信號後進行檢查,所以如果系統正在等待信號,儘管超時設置已過期,錄製進程退出前也會等待信號的發送操作。

–initial, -i定義啟動時的初始狀態。

定義攝像頭初始狀態為暫停或立即開始錄像。選項可以為“record”(錄像)或“pause”(暫停)。注意,如果您設置的超時時長很短,而且初始狀態設置為“暫停”,那麼將不會錄製任何輸出的內容。

–segment, -sg將視頻流分段存儲到多個文件

與存儲在單個文件中不同,該參數將視頻分段存儲在以毫秒為單位所指定長度的數個文件中。為了將生成的文件命名為不同的名稱,您需要在文件名中合適的位置添加%04d 或類似的參數來讓文件名中顯示計數值。例如:

–segment 3000 -o video%04d.h264

將分割成每段長度3000 毫秒(3 秒)並且命名為video0001.h264,video0002.h264 等。每個段落都是可無縫連接的(段落之間不會丟幀),但每個片段的長度將取決於幀內週期值,原因是每個分割的段落都需要起始於I-frame 處。因此,每個段落都會等於或大於指定的時間長度。

–wrap, -wr設置最大分段數

當輸出分段視頻時,該參數設置了最大分段數,並且達到最大值時,將返回到初始的第一個段落。該參數賦予了錄製分段視頻的功能,但是將覆蓋之前生成的文件。所以,如果設置為4,那麼上面的例子中所生成的文件名為video0001.h264,video0002.h264,video0003.h264,video0004.h264。而且,一旦video0004.h264 文件錄製完畢後,計數將回到1,並且video0001.h264 將被覆蓋。

–start, -sn設置初始段落數

當輸出分段視頻時,該參數為初始的段落數,它允許從指定的段落恢復之前的錄製操作。默認值為1。

示例

圖像捕捉

默認情況下,傳感器將以其支持的最高分辨率進行捕捉。可以在命令行中通過使用-w 和-h 參數進行更改。

1
2
# 兩秒鐘(時間單位為毫秒)延遲後拍攝一張照片,並保存為image.jpg
raspistill -t 2000 -o image.jpg
1
2
# 拍攝一張自定義大小的照片。
raspistill -t 2000 -o image.jpg -w 640 -h 480
1
2
# 降低圖像質量,減小文件尺寸
raspistill -t 2000 -o image.jpg -q 5
1
2
# 強制使預覽窗口出現在坐標為100,100 的位置,並且尺寸為寬300 和高200 像素。
raspistill -t 2000 -o image.jpg -p 100,100,300,200
1
2
# 禁用預覽窗口
raspistill -t 2000 -o image.jpg -n
1
2
# 將圖像保存為PNG 文件(無損壓縮格式,但是要比JPEG 速度慢)。注意,當選擇圖像編碼時,文件擴展名將被忽略。
raspistill -t 2000 -o image.png –e png
1
2
# 向JPEG 文件中添加一些EXIF 信息。該命令將會把作者名稱標籤設置為Dreamcolor,GPS 海拔高度為123.5米。
raspistill -t 2000 -o image.jpg -x IFD0.Artist=Dreamcolor -x GPS.GPSAltitude=1235 /10
1
2
# 設置浮雕風格圖像特效
raspistill -t 2000 -o image.jpg -ifx emboss
1
2
# 設置YUV 圖像的U 和V 通道為指定的值(128:128 為黑白圖像)
raspistill -t 2000 -o image.jpg -cfx 128:128
1
2
# 僅顯示兩秒鐘預覽圖像,而不對圖像進行保存。
raspistill -t 2000
1
2
# 間隔獲取圖片,在10 分鐘(10 分鐘= 600000 毫秒)的時間裡,每10 秒獲取一張,並且命名為image_number_001_today.jpg,image_number_002_today.jpg... 的形式,並且最後一張照片將命名為latest.jpg。
raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg
1
2
# 獲取一張照片並發送至標準輸出設備
raspistill -t 2000 -o -
1
2
# 獲取一張照片並保存為一個文件
raspistill -t 2000 -o - > my_file.jpg
1
2
#攝像頭一直工作,當按下回車鍵時獲取一張照片。
raspistill -t 0 -k -o my_pics%02d.jpg

視頻捕捉

圖像尺寸和預覽設置與圖像捕捉相同。錄製的視頻默認尺寸為1080p(1920×1080)

1
2
# 使用默認設置錄製一段5 秒鐘的視頻片段(1080p30)
raspivid -t 5000 -o video.h264
1
2
# 使用指定碼率(3.5Mbits/s)錄製一段5 秒鐘的視頻片段
raspivid -t 5000 -o video.h264 -b 3500000
1
2
# 使用指定幀率(5fps)錄製一段5 秒鐘的視頻片段
raspivid -t 5000 -o video.h264 -f 5
1
2
# 發送到標準輸出設備一段5 秒鐘經過編碼的攝像頭流圖像
raspivid -t 5000 -o -
1
2
# 保存到文件一段5 秒鐘經過編碼的攝像頭流圖像
raspivid -t 5000 -o - > my_file.h264

Shell 錯誤代碼

應用程序將返回完整的錯誤代碼。可能出現的錯誤代碼為:

EX_OK 0應用程序運行成功
EX_USAGE 64錯誤的命令行參數
EX_SOFTWARE 70軟件或攝像頭錯誤
130由於按下Ctrl-C,應用程序終止運行

擴展內容

MP4Box

raspivid 通常會將錄製的視頻保存為.h264 格式的文件。而我們使用的很多播放器可能無法正常播放該格式的視頻文件。這就需要我們將生成的.h264 格式的文件封裝到播放器能夠識別的視頻容器格式中(比如封裝為mp4 格式)。有很多視頻處理軟件可以達到這個目的,您也可以直接在Raspberry Pi 上直接進行封裝。這裡介紹的是“gpac”中的“MP4Box”。安裝和使用的方法如下:

1
2
3
4
sudo apt-get update
sudo apt-get install gpac
MP4Box -add filename.h264 filename.mp4

相關網站

原文地址:RaspiCam Documentation
項目地址:RaspiCam
本文鏈接:Raspberry Pi攝像頭模塊應用程序文檔翻譯
Rpi Camera Module from eLinux

Raspberry Pi 攝像頭模塊應用程序文檔翻譯

台灣物聯科技 TaiwanIOT