精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

利用VFW在Delphi中開發視頻捕獲程序

開發 開發工具
文中詳細介紹了如何利用VFW在Delphi中開發視頻捕獲程序的步驟,同時給出了程序實例。

  許多關于視頻的軟件(如視頻會議、可視電話等)開發都應用于視頻捕獲技術。微軟為軟件開發人員提供了一個專門用于視頻捕獲的VFW SDK,從而為在Windows系統中實現視頻捕獲提供了標準的接口,并大大降低了程序的開發難度。由于VFW SDK只有VC和VB版,沒有Delphi版,因此需要在Delphi中一一聲明DLL中的各個函數和變量。文中詳細介紹了如何利用VFW在Delphi中開發視頻捕獲程序的步驟,同時給出了程序實例。

  1. 引言

  視頻捕獲與實時處理是目前圖像處理系統中最關鍵的技術之一,能否準確捕獲指定的視頻圖像,進而實現精確地數據分析與處理,關系到整個系統的成敗。筆者在開發“公路安全線軋壓檢測系統”時就遇到此情況。該系統主要研究在公路關鍵地段,過往機動車輛是否瞬間軋壓黃色安全線。因此車輛軋壓安全線的一個主要原因是車輛超車或逆向行使而違反了上下行規則,這是造成交通事故的最主要、最直接的因素。本系統通過實時拍攝,抓取瞬間圖像,并經過系統的分析和處理來及時準確地檢測車輛行駛情況,從而驅動控制設備以作出相關處理。

  顯然,這個系統的關鍵之處是實時捕獲視頻圖像。為此,采用微軟公司推出的關于數字視頻的一個軟件包VFW。它能使應用程序通過數字化設備從傳統的模擬視頻源得到數字化的視頻剪輯。VFW的一個關鍵思想是播放時不需要專用硬件。為了解決數字視頻數據量大的問題,需要對數據進行壓縮,而VFW引進了AVI的文件標準。該標準未規定如何對視頻進行捕獲、壓縮及播放,僅規定視頻和音頻該如何存儲在硬盤上及在AVI文件中交替存儲視頻幀和與之相匹配的音頻數據。但VFW可使程序員通過發送消息或設置屬性來捕獲、播放和編輯視頻剪輯。當用戶在安裝VFW時,安裝程序會自動地安裝配置視頻所需要的組件,如設備驅動程序、視頻壓縮程序等。VFW主要由6個模塊組成。具體如表1所列。

表1 VFW功能模塊:

功能 模塊
AVICAP.DLL 包含執行視頻捕獲的函數,它給AVI文件的I/O處理和視頻、音頻設備驅動程序提供一個高級接口
MSVIDEO.DLL 包含一套特殊的DrawDib函數,用來處理屏幕上的視頻操作
MCIAVI.DRV 包括對VFW的MCI命令解釋器的驅動程序
AVIFILE.DLL 包含由標準多媒體I/O(mmio)函數提供的更高的命令,用來訪問.AVI文件
ICM 壓縮管理器,用于管理的視頻壓縮/解壓縮的編譯碼器(Codec)
ACM 音頻壓縮管理器,提供與ICM相似的服務,適用于波形音頻

 

#p#

  2. 視頻捕獲程序開發的基本步驟

  2.1 使用AVICap窗口類

  筆者使用的是AVICap窗口類來開發視頻捕獲程序。AVICap類支持實時視頻流捕獲和單幀捕獲,并提供對視頻源的控制。通常使用的MCI控件雖然也提供了數字視頻服務。并為視頻疊加提供了Overlay命令集等,但這些命令主要是基于文件的操作,還不能滿足實時地從視頻緩存中提取數據的要求。對于使用沒有視頻疊加能力的捕獲卡的PC機來說,用MCI提供的命令集是無法捕獲視頻流的。而AVICap窗口類在捕獲視頻方面具有一定的優勢,它能直接訪問視頻緩沖區,而不需要生成中間文件,因而實時性很強,效率也很高。另外,它還可將數字視頻捕獲到一個文件中。

  2.2 開發的基本步驟

  開發視頻捕獲程序主要有以下四個步驟:

  (1)創建“捕獲窗”。

  在進行視頻捕獲之前必需要先創建一個“捕獲窗”,并應以此為基礎進行所有的捕獲及設置操作。“捕獲窗”可用AVICap窗口類的“Cap Create Capture Window”函數來創建,其窗口風格可設置為WSCHILD和WS_VISIBLE參數。

  “捕獲窗”類似于標準控件,它具有下列功能:

  *將視頻流和音頻流捕獲到一個AVI文件中;

  *動態地同視頻和音頻輸入器件連接或斷開;

  *以Overlay或Preview模式對輸入的視頻流進行實時顯示;

  *在捕獲時,可指定所用的文件名,并可將捕獲文件的內容拷貝到另一個文件;

  *設置捕獲速率;

  *顯示控制視頻源、視頻格式及視頻壓縮的對話框;

  *創建、保存或載入調色板;

  *將圖像和相關的調色板拷貝到剪貼板;

  *將捕獲的單幀圖像保存到DIB格式文件。

  (2)關聯捕獲窗和驅動程序

  單獨定義的捕獲窗是不能工作的,它須與一個設備相關聯才能取得視頻信號。用函數CapDriver Connect可使捕獲窗與其設備驅動程序相關聯。

  (3)設置視頻設備的屬性

  通過設置TcaptureParms結構變量的各個成員變量,可以控制設備的采樣頻率、中斷采樣按鍵、狀態行為。設置好TcaptureParms結構變量后,可以用函CapCaptureSetSetup使設置生效。之后還可以用CapPreviewScale、CapPreviewRate設置預覽的比例與速度,也可以直接使用設備的默認值。

  (4)打開預覽

  利用函數CapOverlay可選擇是否采用疊加模式預覽,以使系統資源占用小,視頻顯示速度加快。然后用CapPreview啟動預覽功能,這時就可以在屏幕上看到來自攝像機的圖像了。

  通過以上四步就可以建立一個基本的視頻捕獲程序,但如果想自己處理從設備捕獲到的視頻數據,則要使用捕獲窗回調函數來處理,比如一幀一幀地獲得視頻數據或以流的方式獲得視頻數據等。

#p#

  3. 基于Delphi的視頻捕獲程序

  根據系統對系統訪問、處理速度等方面的特殊需求,筆者選用Delphi作為開發工具。下面以開發一個逐幀從視頻設備上捕獲視頻數據的程序為例,來說明每個函數的作用以及開發的具體過程。所給例程的功能是可以在屏幕上顯示捕獲到的視頻,并可以獲得每一幀的圖像數據。具體步驟如下:

  以下是引用片段:

  (1)新建一個工程,并將AVICAP32.PAS包含到USES中。

  (2)在Form1上放置一個Tpanel控件,設Name為“gCapVideoArea”,該控件用于顯示視頻。之后再放置兩個Tbutton控件,一個Name為“Openvideo”,另一個Name為“Closevideo”。

  (3)定義全局變量

  1. ghCapWnd:Thandle; //定義捕獲窗句柄   
  2. VideoStr:LPVIDEOHDR; //可以得到視頻數據指針的結構變量,用于回調函數中  
  3. CapParms:TcaptureParms; //用于設置設備屬性的結構變量     

  (4)編寫代碼

  在Name為“Openvideo”的Tbutton的Click事件中寫入以下代碼:

  1. procedure Tform1.OpenvidoClick(Sender:TObject);   
  2. begin   
  3. //使用Tpanel控件來創建捕獲窗口   
  4. ghCapWnd:=CapCreateCaptureWindow(Pchar('KruwoSoft'),   
  5. WS_CHILD or WS_VISIBLE, //窗口樣式   
  6. 0,//X坐標   
  7. 0,//Y坐標   
  8. gCapVideoArea,Width, //窗口寬   
  9. gCapVideoArea,Handle, //窗口句柄   
  10. 0); //一般為0   

  為了能夠捕獲視頻,應啟動一個捕獲幀回調函數VideoStreamCallBack。捕獲一個視頻流或當前設備狀態時,應分別使用以下函數:

  1. CapSetCallbackOnVideoStream; //捕獲一個視頻流   
  2. CapSetCallbackOnError; //得到一個設備錯誤   
  3. CapSetCallbackOnStatus //得到一個設備狀態   
  4. //定義一個幀捕獲回調函數   
  5. CapSetCallbackOnFrame (ghCapWnd,LongInt(@VideoStreamCallBack));   
  6. //將一個捕獲窗口與一個設備驅動相關聯,第二個參數是個序號,當系統中裝有多個顯示驅動程序時,其值分別依次為0到總個數   
  7. CapDreiverConnect(ghCapWnd,0);   
  8. CapParms,dwRequestMicroSecPerFrame:=40000;   
  9. CapParms.fLimitEnabled:=FALSE;   
  10. CapParms.fCaptureAudio:=FALSE;//NO Audio   
  11. CapParms.fMCIControl:=FALSE;   
  12. CapParms.fYield:=TRUE;   
  13. CapParms.vKeyAbort:=VK_ESCAPE;   
  14. CapParms.fAbortLeftMouse:=FLASE;   
  15. CapParms.fAbortRightMouse:=FALSE;   
  16. //使設置生效   
  17. CapCaptureSetSetup(ghCapWnd,LongInt(@CapParms),sizeof(TCAPTUREPARMS));   
  18. CapPreviewScale(ghCapWnd,1);   
  19. CapPreviewRate(ghCapWnd,66);   

  如果要捕獲視頻流,則要使用函數來指定不生成文件。否則將會自動生成AVI文件:

  1. CapCaptureSequenceNoFile(ghCapWnd); 

  指定是否使用疊加模式,1為使用,否則為0;

  1. CapOverlay(ghCapWnd,1);   
  2. CapPreview(ghCapWnd,1);   
  3. End;  

  在Name為“Closevideo”的Tbutton的Click事件中寫入以下代碼:

  1. procedure TForm1.ClosevideoClick(Sender:Tobject);   
  2. begin   
  3. capCaptureAbort(ghCapWnd); //停止捕獲   
  4. capDriveDisconnect(ghCapWnd); //將捕獲窗同驅動器斷開   
  5. end;  

  定義捕獲幀回調函數:

  1. function FrameCallBack(hWnd:HWND;lpVHdr:LongInt):LongInt;stdcall;   
  2. var   
  3. DataPoint:^byte;   
  4. DibLen,RectWidth,RectHeight:integer;   
  5. begin   
  6. VideoStr:=LPVIDEOHDR(lpVHdr);   
  7. DibLen:=VideoStr^.dwBufferLength;   
  8. GetMem(DataPoint,64000);   
  9. //將幀數據COPY到一個內存中,注意:DATAPOINT要先分配空間   
  10. CopyMemory(DataPoint,VideoStr^.lpData,Diblen);   
  11. ……   
  12. end;   

#p#

  結束語:

  靈活地使用AVICap窗口類的回調函數可以滿足各種需求,但要注意從視頻卡中捕獲的視頻數據的格式和圖像的長寬要參考視頻卡的參數。另外,有些視頻卡通過設置可支持多種格式和圖像長寬,所以,在還原圖像時,要注意參考所用的視頻卡的參數。

【編輯推薦】

  1. Delphi基礎開發技巧
  2. Delphi編程讀取txt文件數據
  3. 如何在Delphi中自動錄入數據
  4. 基于Delphi的屏幕抓圖技術的實現
  5. Delphi初學者應小心的六大問題
責任編輯:韓亞珊 來源: 編程愛好者
相關推薦

2009-01-16 08:57:58

GCCC編譯

2024-01-30 08:56:55

性能監控性能管理工具內存存儲

2009-07-04 10:00:12

電纜傳輸視頻布線

2014-03-13 11:25:43

C++OpenCV

2011-07-21 15:49:27

iPhone 模擬器 視頻

2009-08-10 13:05:06

C# DLLC# Delphi開發

2013-09-13 13:15:28

AndroidWebViewJavaScript

2022-07-20 09:07:03

Linuxtcpdump網絡工具

2010-02-02 13:15:00

C++ lambda函

2010-06-12 16:41:10

BlackBerry開

2014-01-07 10:12:15

Spark

2009-04-09 15:40:01

JSONJavaScript枚舉

2021-02-20 09:57:02

人工智能移動應用

2011-02-25 15:49:09

NecessitasQtAndroid

2009-05-26 12:23:56

Linux變量文件命名

2019-07-05 18:06:18

ffsendFirefox SenLinux

2011-07-13 15:32:38

ODBC數據庫驅動程序系統DSN

2013-04-22 15:24:16

Android開發Android屏保程序

2021-07-20 07:58:54

WSLWindows 系統Linux 程序

2020-10-13 19:04:58

Bash信號捕獲Shell腳本
點贊
收藏

51CTO技術棧公眾號

国产无套内射久久久国产| 古典武侠综合av第一页| 国产在线免费av| 欧美日本三级| 一本色道**综合亚洲精品蜜桃冫| 色吧亚洲视频| 丰满少妇高潮在线观看| 日韩电影免费在线看| 欧美裸身视频免费观看| 国产美女精品久久| 国产精品一级在线观看| 欧美性高跟鞋xxxxhd| 久久av喷吹av高潮av| 亚洲三级中文字幕| 国产精品1区2区| 国产精品久久久久久久电影| 国产亚洲欧美久久久久| 青青草原综合久久大伊人精品 | 久久理论片午夜琪琪电影网| 国产三级黄色片| 国产毛片久久久| 91精品国产综合久久精品性色| 国产欧美在线一区| 女人天堂av在线播放| 国产欧美一区视频| 精品国产综合| www.桃色av嫩草.com| 欧美aa在线视频| 2023亚洲男人天堂| 久久99久久98精品免观看软件| 日韩电影免费网站| 亚洲欧美日韩成人| a级一a一级在线观看| 日韩视频一区二区三区四区| 欧美三级一区二区| 亚洲乱码国产一区三区| 国产精品电影| 亚洲成人精品影院| 日本大片免费看| 久久五月精品| 欧美国产禁国产网站cc| 欧美日韩亚洲一区二区三区四区| 男人的天堂a在线| 粉嫩蜜臀av国产精品网站| 91精品网站| 不卡视频免费在线观看| 国产成人自拍高清视频在线免费播放| 成人网在线免费看| 国产剧情久久久| 激情综合网激情| 成人在线视频网| 一级久久久久久久| 国产一区二区三区在线观看精品 | 在线观看免费观看在线| 日韩综合一区二区| 国产精品电影观看| 伊人精品一区二区三区| 久久精品国产亚洲一区二区三区| 国产精品亚洲第一区| 亚洲香蕉在线视频| 韩国欧美国产1区| 91视频99| 色偷偷在线观看| 不卡高清视频专区| 欧美lavv| 欧美日韩视频在线播放| 亚洲色图视频免费播放| 91麻豆天美传媒在线| 美女91在线| 欧美日韩亚洲国产一区 | 韩国三级电影一区二区| 91嫩草免费看| 日本一二三区在线视频| 国产喂奶挤奶一区二区三区| 亚欧洲精品在线视频免费观看| 日本天堂在线观看| 亚洲综合图片区| 欧美亚洲另类色图| 农村妇女一区二区| 欧美变态口味重另类| 日韩少妇一区二区| 精品国精品国产自在久国产应用| 神马久久桃色视频| 久久久久黄色片| 亚洲欧美日韩精品一区二区 | 一区二区三区麻豆| 国产一区视频网站| 久久精品国产理论片免费| 丁香在线视频| 亚洲综合一二三区| 欧美性猛交xxx乱久交| 精品一区二区三区视频在线播放| 亚洲第一男人天堂| 亚洲一区视频在线播放| 欧美精品九九| 国产99久久精品一区二区| 国产精品视频一区二区三区,| 成人av综合一区| 亚洲国产日韩综合一区| sis001亚洲原创区| 欧美日韩性生活| 天堂www中文在线资源| 精品国产一区二区三区噜噜噜| 久久精品国亚洲| 国产精品久久久久久久久久久久久久久久久 | 91精品国产色综合| 国产精品欧美激情在线| 久久久久久久久伊人| 激情六月天婷婷| 日本欧美在线| 亚洲色图15p| 久久午夜无码鲁丝片| 久久av资源站| 欧美一区二区三区四区夜夜大片| 青草在线视频| 欧美电影影音先锋| 国产精品扒开腿做爽爽| 影音先锋国产精品| 亚洲最大福利视频网| 国产精品99999| 高跟丝袜一区二区三区| 波多野结衣电影免费观看| 欧美亚洲国产激情| 欧美一区视频在线| 天堂在线视频免费| 亚洲一卡二卡三卡四卡| 51自拍视频在线观看| 色88久久久久高潮综合影院| 热re91久久精品国99热蜜臀| 少妇精品视频一区二区| 亚洲图片有声小说| av天堂一区二区| 欧美精品一级| 91成人免费观看| 精品国产丝袜高跟鞋| 欧美日本在线播放| 91视频最新网址| 久久av资源网| 在线综合视频网站| www一区二区三区| 久久九九亚洲综合| av av片在线看| 一区二区三区精品视频在线| 日韩精品在线播放视频| 91精品国产调教在线观看| 国产有码在线一区二区视频| 日本暖暖在线视频| 91麻豆精品国产91久久久久久| 少妇视频一区二区| 精品一区二区三区不卡| 中文字幕一区二区三区有限公司| www.久久草.com| 欧美老女人在线视频| 亚洲AV无码精品国产| 亚洲一卡二卡三卡四卡| 亚洲少妇18p| 中文日韩欧美| 日韩资源av在线| 国产精品久久乐| 最近2019年日本中文免费字幕 | 亚洲美女尤物影院| 亚洲欧美激情视频| 亚洲视频久久久| 亚洲免费在线电影| 国产一级免费片| 久久国产免费| 宅男一区二区三区| avtt综合网| 欧美一区在线直播| 欧美69xxx| 日韩你懂的在线观看| 欧美福利视频一区二区| 久久精品水蜜桃av综合天堂| 国产美女18xxxx免费视频| 欧美午夜不卡影院在线观看完整版免费| www日韩av| 国产免费不卡| 久久综合久久88| 日本免费一区视频| 欧美日韩视频在线第一区| 91视频综合网| 26uuu另类欧美亚洲曰本| www.com操| 欧美日韩18| 牛人盗摄一区二区三区视频| 99视频有精品高清视频| 91国内免费在线视频| 成黄免费在线| 亚洲福利精品在线| 中文字幕久久网| 午夜在线电影亚洲一区| 国产欧美一区二区三区在线观看视频| 国产伦理精品不卡| 日日摸天天爽天天爽视频| 亚洲精品国产首次亮相| 欧美大香线蕉线伊人久久| 国产精品视频首页| 国产不卡一区二区在线播放| 欧美6一10sex性hd| 中文字幕日韩av综合精品| 黑人精品一区二区三区| 欧美人牲a欧美精品| 久久久国产精品成人免费| 亚洲日本在线a| 婷婷色一区二区三区 | 伊人影院综合网| 成人福利视频网站| 超碰在线播放91| 亚洲欧美大片| 成人免费在线网| 亚洲经典一区| 亚洲一区二区三区四区中文| 欧美成人一区在线观看| 亚洲xxxx在线| 国产精品va视频| 国产精品亚洲自拍| 二区三区不卡| 欧美亚洲一区在线| www.综合| 久久久久久久久国产精品| 欧美午夜电影一区二区三区| 亚洲女人天堂网| 日本黄色免费视频| 欧美成人vps| 国产超碰人人模人人爽人人添| 欧美午夜影院一区| 波多野结衣激情视频| 精品久久久久久久久久国产| 国产精品第一页在线观看| 亚洲精品网站在线观看| 一级片一级片一级片| 国产精品丝袜91| 中国女人特级毛片| 中文无字幕一区二区三区| 亚洲色成人网站www永久四虎| 久久亚洲精品国产精品紫薇| 欧美成人三级伦在线观看| 成人视屏免费看| 亚洲少妇18p| 91亚洲国产成人精品一区二区三| 毛茸茸free性熟hd| 成人看片黄a免费看在线| 美女露出粉嫩尿囗让男人桶| 成人污污视频在线观看| 国产性猛交96| 99久久久国产精品免费蜜臀| aaaa黄色片| www亚洲一区| 91网站免费入口| 亚洲国产精品t66y| 久久久99999| 一区二区激情小说| 国产亚洲精久久久久久无码77777| 一片黄亚洲嫩模| 国产一级理论片| 狠狠躁夜夜躁人人爽超碰91| 99久久久久久久久| 欧美日韩你懂得| jlzzjlzzjlzz亚洲人| 欧美精品一区二区三区高清aⅴ | 久久精品亚洲一区| a在线免费观看| 久久免费国产精品1| 久草在线资源福利站| 日本欧美在线视频| 99国内精品久久久久| 国产精品sss| 亚洲资源网站| 伊人天天久久大香线蕉av色| 91tv官网精品成人亚洲| 婷婷五月综合缴情在线视频| 久久国产毛片| 肉色超薄丝袜脚交| 99久久亚洲一区二区三区青草| 国产偷人妻精品一区| 国产精品欧美一区喷水| 黄色一级视频免费| 一本高清dvd不卡在线观看| 97在线播放免费观看| 亚洲大尺度美女在线| 成人高清网站| 欧美精品激情blacked18| 成人va天堂| 99re在线播放| 成人羞羞网站| 亚洲精品无码国产| 免费观看在线综合色| 日本久久久久久久久久| 欧美韩国一区二区| 久久久久久久福利| 欧美性色黄大片| 丰满人妻一区二区三区免费视频| 在线播放日韩专区| av福利在线导航| 91精品免费视频| 久久97视频| 999久久欧美人妻一区二区| 日韩中文字幕麻豆| fc2成人免费视频| 亚洲欧洲精品一区二区精品久久久| 国产91av视频| 在线综合亚洲欧美在线视频 | 久久亚洲精品一区二区| 在线观看爽视频| 福利视频久久| 香蕉视频官网在线观看日本一区二区| 久色视频在线播放| 国产精品主播直播| 欧美极品jizzhd欧美18| 午夜精品视频一区| 精品国产无码一区二区| 这里只有精品视频在线| 亚洲精品中文字幕| 国产免费一区二区三区| 欧美1区2区| 在线观看中文av| 国产精品久久久久婷婷二区次| 国产一级18片视频| 精品国产免费视频| 最新黄网在线观看| 国产日产久久高清欧美一区| 国产精品一区高清| 2022亚洲天堂| 久久综合狠狠综合久久综合88 | 天堂av最新在线| 成人黄色免费片| 日韩视频在线观看| 天天影视综合色| 久久综合九色综合欧美98| 日韩乱码一区二区| 亚洲福利在线观看| 91九色在线看| 国产精品一区二区av| 狠狠综合久久| 日本wwww色| 亚洲图片欧美一区| 人妻91麻豆一区二区三区| 欧美激情视频一区| 亚洲精品高潮| www成人免费| 成人av在线资源网| 久久国产精品系列| 亚洲欧美国产精品久久久久久久 | 国产原创精品视频| 成人中心免费视频| 欧美日本国产| 岛国av免费观看| 亚洲综合色网站| 欧美熟妇交换久久久久久分类| 国a精品视频大全| 久久97精品| 国产精品涩涩涩视频网站| 国产精品色一区二区三区| 国产又大又长又粗| 欧美成人午夜激情| 久久91在线| 91热这里只有精品| 一色桃子久久精品亚洲| www.av日韩| 欧美伊久线香蕉线新在线| 国产中文字幕一区二区三区| jizz18女人| 一区二区三区中文字幕电影| 国产 欧美 精品| 热99精品只有里视频精品| 欧美gayvideo| 韩国三级在线看| 日本国产一区二区| 午夜在线视频播放| 国产精品久久久久久免费观看 | 日本久久久久久久久久久| 日韩av自拍| 午夜福利三级理论电影| 色噜噜狠狠一区二区三区果冻| 色综合久久影院| 福利视频一区二区三区| 日韩专区一卡二卡| h色网站在线观看| 亚洲精品视频中文字幕| 一区二区三区日本视频| 免费看日本毛片| 国产精品久线观看视频| 噜噜噜久久,亚洲精品国产品| 国产成人av网址| 欧美国产专区| 卡一卡二卡三在线观看| 日韩免费电影网站| 老司机2019福利精品视频导航| 国产a级片免费看| www激情久久| jlzzjlzz亚洲女人18| 国产精品久久久久久久久借妻| 综合一区av| 夫妇交换中文字幕| 亚洲国产精品福利| 图片一区二区| 黄色国产精品视频| 亚洲一区二区三区四区在线免费观看| 国产在线黄色| 国产精品一区二区a|