คลังเก็บป้ายกำกับ: DVR

Linux DVR demo program

ความเดิมจากตอนที่ แนะนำ ฮาร์ดแวร์ซึ่งก็คือ DVR card จาก Adlink และ Yuan  ไปแล้ว วันนี้จะมาเดโมให้ดูกับโปรแกรมที่เพิ่งเขียนขึ้นมาใหม่ครับ ( เขียนตอนหยุดปีใหม่นี่เอง เสร็จตอนเวลาข้ามเที่ยงคืนวันสิ้นปีมาหน่อยเดียว อิอิ ) โดยโปรแกรมนี้รันบน Kubuntu ด้วยเครื่อง VIA VB8001 จับคู่กับ Yuan ตัวเก่านั่นแล

จริงๆ ตอนแรกจะเขียนเรื่อง การเขียนโปรแกรมด้วย DBUS ที่เคยเกริ่นเอาไว้เมื่อนานมาแล้ว ก็เลยเอาโปรแกรมที่เขียนแล้วใช้ DBUS มาโชว์ให้ดูด้วย จะได้เห็นภาพการใช้งานได้ง่ายขึ้น ก็เลยยกยอดเอาไปตอนหน้าละกัน อิอิ สำหรับการเขียนโปรแกรม

ระบบนี้ประกอบด้วยสองโปรแกรม ตัวแรกรันเป็น backend รับสัญญาณภาพจาก DVR มาทั้ง 4 แชนแนล โปรแกรมตัวที่สอง คือตัวแสดงผลภาพที่ส่งมาจากโปรแกรม backend และรอรับอินพุตจากคีย์บอร์ด ที่สามารถกดคีย์เพื่อเลือกดูทีละแชนแนลก็ได้ หรือ ดูรวม 4 แชนแนลก็ได้ โดยผมใช้ DBUS ตรงนี้แหละ เมื่อมีการกดคีย์บอร์ดในโปรแกรมแสดงผล ก็จะเป็นการเรียกเมธอดแบบข้ามโปรเซสไปที่โปรแกรม backend เพื่อเป็นการเลือกแชนแนลของสัญญาณภาพจะที่ส่งออกมา ผมใช้วิธีนี้เพราะเดี๋ยวจะเอาไปไว้ควบคุมโปรแกรมที่ใช้บันทึกวิดิโอด้วย

ก็ดูผลลัพธ์ของตัวโปรแกรมทั้งสองเอาละกันครับ จริงๆ ผมทดลองเอา module GPS + บอร์ด Arduino ใช้ส่งตำแหน่ง ความเร็ว ออกมาได้แล้ว ( อันนี้ไม่ได้เขียนโปรแกรมเองเลย เอาโค้ดเค้ามาใช้ทั้งหมด แค่ออกแรงบัดกรีนิดหน่อย ) ว่าจะเอามาเขียน overlay ทับลงบนภาพวิดิโอ แต่ขอยกไว้ตอนต่อๆไปละกัน เพราะโมดูล GPS ที่ว่ามันของถูกๆจากบ้านหม้อ พอเข้าบ้านแล้วมั่วเลย (แต่ลองบนรถตอนขากลับมาจากต่างจังหวัด ก็ถูกต้องรวดเร็วดีนะ)

หมายเหตุ : ผมขอแก้หน่อย ชอบบอกว่า DBUS คล้าย DCOM อยู่เรื่อย จริงๆแล้วยังไม่ใช่นะครับ ยังไม่ถึงขนาดนั้น ถ้าให้เจาะจงจริงๆ มันเหมือน COM แบบ out of process มากกว่าครับ

DVR card

dvr    ช่วงนี้เรื่องกล้องวงจรปีดกำลังบูม จริงๆมันก็บูมมานานแล้วเหมือนกัน แต่เพราะมีข่าวว่าจับโจรได้เพราะกล้องอยู่เนืองๆจึงทำให้ยังขายกันได้อยู่ แม้ว่าจะมีผู้ขายเพิ่มขึ้นมามากมายหลายเจ้า

ส่วนตัวผมนั้นเล่นเรื่องนี้มาสามสี่ปีแล้วเพราะมีคนมาจ้างทำระบบน่ะครับ แต่จะเน้นเรื่อง image processing มากกว่าการติดตั้งใช้งานปรกติทั่วไป ดังนั้นการซื้อมาเป็นตัวเครื่องเลยจึงไม่ใช่ตัวเลือกของผม อีกตัวเลือกหนึ่ง นั่นคือ การใช้เป็น pci card มาเสียบเข้ากับ pc เพื่อใช้ pc เป็น DVR (Digital Video Recorder) จึงดูเหมาะสมกว่า

วันนี้จึงมาแนะนำกันว่า ไอ้เจ้าการ์ดใบนี้ ซึ่งในตลาดนั่นหาซื้อได้ในราคาตั้งแต่หลักพันต้นๆไปจนถึงหลักหมื่นนั้น อะไรที่ทำให้ราคามันเป็นอย่างนั้นไปได้

ตามรูปเลยครับ ท่านลองส่องการ์ดของท่านดูว่ามีอะไรบ้าง ส่วนใหญ่วางเลย์เอาท์มาคล้ายๆกันละครับ ก็เริ่มด้วยตัวที่ทำหน้าที่เป็น video decoder ไอ้เจ้าชิพตัวนี้ก็จะทำหน้าที่รับสัญญาณ analog จากกล้อง cctv หรือ tv หรือจากเครื่องเล่นวิดิโอก็ได้ครับ แปลงเป็นสัญญาณ digital จะ sampling กันกี่บิตก็แล้วแต่รุ่นและยี่ห้อ โดยทั่วไปเมื่อชิพตัวนี้นำมาใช้กับ dvr ก็จะรับได้ 1 channel ขนาด D1 ตัวอย่างชิพที่เห็นได้ตามท้องตลาดทั่วไปก็เช่น ของ Conexant BT878 หรือ NXP SAA7130 ถ้าเป็นชิพพวกนี้ก็ดูได้เลยว่าถ้าต้องการ full frame rate แบบ realtime จากกล้องกี่ตัว ก็ต้องมีชิพนี้จำนวนเท่านั้นแหละ (แต่ก็อาจมียกเว้นที่รวมมาเป็นชิพตัวเดียวใหญ่ๆสำหรับหลายๆ channel เลยก็เคยเห็นเหมือนกัน) เมื่อเป็นเช่นนั้นก็ต้องมีชิพตัวต่อไปขึ้นมาทำหน้าที่ให้การ์ด pci หนึ่งใบเห็นเป็นเหมือนมี pci เท่าจำนวนกล้อง เจ้าตัวนี้เรียกว่า pci bridge นั่นเอง เจ้าตัวนี้ที่ใช้กันก็คงจะเป็น PLX หรือ P ตัวเดียวของ Pericom

snapshot11

4-channels DVR runs on Linux

ส่วนที่เป็น option เพิ่มเข้าทำให้ราคามันต่างกันออกไปนั้นน่าจะอยู่ที่ ชิพประมวลผลพิเศษ FPGA ที่แต่ละเจ้าใส่โปรแกรมเข้าไปเพื่อให้การ์ดมีความสามารถมากขึ้นเช่น บีบอัดและเข้ารหัสเป็น H.264 โดยที่ไม่ต้องไปพึ่งพา cpu ของ pc นั่นเอง ตัวนี้ที่เคยเห็นก็ของเจ้าใหญ่ XILINX นั่นเอง

ก็คงพอเห็นภาพและเป็นประโยชน์ในการเลือกซื้อและใช้งานนะครับ หวังว่าคงช่วยให้ท่านเสียเงินไปอย่างคุ้มค่ามากขึ้น