Capture Video In C#.Net

19 11 2008

با سلام خدمت دوستان خوبم امروز می خوام یک سری کد و یک نمونه برنامه براتون بزارم تا با نحوه دریافت تصاویر از webcam و ذخیره تصاویر دریافتی در فایل avi آشنا بشین. بدون بحث اضافی می رم تا توضیح مختصری در مورد کد های برنامه براتون بدم. در این پروژه ما سه تا کلاس اساسی داریم که به قول معروف، تقریبا کارهای تصویر برداری و ضبط تصاویر رو بر عهده دارن.

1- کلاس CaptureAPI : نمونه pinvoke شده API های کار با دوربین

2- کلاس AVIStreamAPI : نمونه pinvoke شده API های کار با فایل های avi از قبیل ساخت فایل، ساخت استریم avi، ساختن header های فایل avi و …

3- کلاس AviStream : که وظیفه ساخت فایل و ضبط تصاویر رو با استفاده از api های pinvoke شده رو بر عهده داره.

در این پروژه پس از اتصال به webcam با استفاده از توابع کلاس CaptureAPI و پخش تصاویر با استفاده از event OnVideoCaptured هر frame به bitmap تبدیل شده و سپس بر روی pictureboxنمایش داده میشه. با استفاده از این روش و تبدیل frame های استخراج شده به bitmap نوبت میرسه به ساخت فایل avi و stream مربوط به فایل avi با استفاده از توابع کلاس AviStream، ابتدا فایل avi Initialize شده سپس با استفاده از flage Create فایل avi خام بدون هیچگونه data و header ی که در ساخت avi به کار میره، ساخته میشه . پس از مراحل ساخت فایل نوبت به initalize کردن stream فایل avi میرسه، پس از ساخت stream ، اولین frame که به صورت bitmap هستش به stream اضافه میشه و به همین ترتیب frame های بعدی تا زمان توقف تصویربرداری و بستن فایل avi . شما به راحتی میتونید با استفاده از این روش با دوربین یا webcam ی که در منزل دارید برنامه ای بنویسید که دوربین رو شناسایی کرده اطلاعات رو frame به frame بگیره و ضبط کنه.

نمونه ی برنامه رو می تونید از لینک پایین دانلودش کنید. 🙂 امیدوارم تونسته باشم کمکی در یادگیری کار با دوربین و ضبط تصاویر کرده باشم.

لینک دریافت نمونه پروژه :http://www.megaupload.com/?d=2SJM7J40