خانه » ادوبی فلش » گرفتن فیلم با فرمت flv از یک شی نمایشی در فلش

گرفتن فیلم با فرمت flv از یک شی نمایشی در فلش

گرفتن فیلم با فرمت flv از یک شی نمایشی در فلش

در این مطلب به یک موضوع کاربردی را برسی می کنیم ، شاید برنامه هایی را دیده باشید که شما در آنها توسط فلش طراحی انجام می دهید و بعد به شما امکان ذخیره تصویر طراحی شده را می دهد. حال ما می خواهیم مثلا یک MovieClip را که متحرک هست و کاربر در حرکت آن دخل و تصرف داشته و یا نداشته را به صورت یک ویدئو flv در اختیار کاربر قرار دهیم. و در واقع از بخشی از stage و شی های نمایشی فیلم بگیریم و یا در اصطلاح کپچر (capture) نماییم .
برای این کار می خواهیم فقط و فقط از فلش و اکشن اسکریپت کمک بگیریم و از برنامه های کاربردی دیگر هم استفاده ای نکنیم.

سورس کد پروژه کپچر از شی نمایشی فلش را دانلود کنید

این موضوع می تواند کاربرد بسیار زیادی در برنامه ها وب سایت ها و بازی های فلش  داشته باشد و می توانید کاربردهای زیبایی را در اختیار کاربران خود بگذارید ، به کاربر اجازه ذخیره کردن فیلم بدهید و یا آن را بر روی سرور خود ذخیره کنید.

تعدادی از خصوصیت های این class اکشن اسکریپت ۳ به شرح زیر می باشد :

  • انتخاب ساده displayobject برای کپچر شدن و امکان تنظیم fps (فریم بر ثانیه آن)
  • بهینه بودن استفاده از حافظه
  • مدیریت داخلی کپچر
  • پارامترهای کپچر کردن موقعیتی در استیج
  • و…

در مثالی که در زیر قرار داده ام موقعیتی که کپچر (capture) می شود یک شی نمایشی می باشد و در نهایت فایل تصویری flv بر روی سیستم کاربر ذخیره می شود:

برای مشاهده نیاز به فلش پلیر دارید

نحوه استفاده و به کار گیری کلاس  FLVRecorder :


// کپچر کردن شی screen_mc
// با سرعت ۲۰ فریم بر ثانیه
// توجه داشته باشید بخش نمایشی این کلیپ به عنوان بخش قابل کپچر در نظر گرفته می شود
var _myRecord : FLVRecord = new FLVRecord(screen_mc, 20);

// شروع و یا ادامه عمل ضبط کردن
_myRecord.start();

// ایست و یا قطع کردن عمل ضبط کردن
_myRecord.stop();

// برای شروع کردن یک عمل ضبط جدید می توانید از این دستور استفاده کنید
_myRecord.clean();

// و در نهایت داده باینری ایجاد شده را می توانید ذخیره کنید و یا به یک فایل پی اچ پی در سرور جهت ذخیره ارسال کنید.
var _file : FileReference  = new FileReference();
_file.save(_myRecord.flvRawData, "video.flv");

سورس کد پروژه کپچر از شی نمایشی فلش را دانلود کنید

مراقب حافظه باشید! در استفاده ازفایل های flv توجه داشته باشید که این فایل ها حجیم هستند ، در نتیجه برای کاهش حجم فایل ویدئویی ایجاد شده ، fps را کاهش دهید و موقعیتی که از آن فیلم گرفته می شود را کوچک تر در نظر بگیرید. این موارد می توانند تا حد زیادی حجم فایل خروجی را کاهش دهند.

یک مثال برای محدود کردن محدوده کپچر شدن و سرعت fps به همراه راه محاسبه حجم فایل ایجاد شده تا لحظه جاری:


// محدود کردن منطقه کپچر و تعیین سرعت ۱۵ فریم بر ثانیه
var area : Rectangle = new Rectangle(92,9, 160,224);
var _myRecord : FLVRecord = new FLVRecord(screen_mc, 10, area);

// محاسبه حجم فایل ایجاد شده برای پیشگیری از حجیم شدن فایل تصویری
var flvSize : Number = int(_myRecord.flvLength/100000)/10; // سایر بر مبنای مگابایت
if (flvSize>35) trace("فایل ویدئو بزرگ تر ۳۵ مگابایت شده است");

سورس کد پروژه کپچر از شی نمایشی فلش را دانلود کنید

موفق و پیروز باشید ، یا حق

Print Friendly
تگ ها :
پیوند مطلب قبلی
پیوند مطلب بعدی

درباره بهروز پولادرگ

متولد : ۵ مرداد سال ۱۳۶۷ ، حرفه : ادوبی فلش ، برنامه نویسی و طراحی وب ، طراحی گرافیک ، مالتی مدیا ، نرم افزار های تحت وب

35 نظر

  1. سلام بهروز جان، خیلی عالی بود. چند وقت نبودید اما با یه آموزش عالی برگشتید.
    در مورد فیلم برداری از دسکتاپ با ایر چیزی سراغ نداری؟ چند تا نمونه دیدم که از یه برنامه جانبی و nativeProcess استفاده می کردند اما جالب نبودن.
    موفق باشید.

  2. با سلام
    خیلی از مطالبتون تشکر می کنم.

    این فایل ویدیویی در کجا ذخیره می شه تا ببیینم.( گفته اید که در سیستم کاربر هم ذخیره می شه)

  3. سلام
    لطفا ی فایل برای آپلود عکس با اکشن ۲ و asp بزارین
    اگه هم نمیزارین ممنون میشم ب ایمیل من ارسال کنین
    خیلی خیلی لازمش دارم
    میخام بعد از آپلود توسط فلش ، توی پنجره خود فلش هم اون فایلو نمایش بده
    فقط و فقط اکشن ۲ لطف کنین
    با تشــــــــــــــــــــــــــــــــــــــــــــکر

    • سلام
      برای asp تنها کافیست فایل php را مشاهده کنید و توابع و دستورات این فایل را به aps تبدیل کنید
      در بخش فلش فرقی وجود ندارد ، تنها باید آدرس دهی را به فایل asp تغییر دهید
      موفق و پیروز باشید

  4. بسیار سپاسگذارم
    :))))
    اتفاقا ی سمپل دیدم گذاشتین تو سایتتون با پی اچ پی هست
    خیلی هم کامل و ساده هست
    مرسی

  5. آقای پولادرگ عزیز سلام
    من تازه کار با فلش و اکشن رو شروع کردم، ولی خب راه خیلی سختیه، و منابع خوبی هم در این زمینه وجود نداره، البته فلش رو خوب یاد گرفتم، ولی برای کار با اکشن اسکریپت ۳ خیلی مشکل دارم.
    در حال حاضر یک نرم افزار چند رسانه ای درست کردم که آخرهای کارم هست، بسیاری از اکشن های مورد نیاز رو پیدا کردم، ولی الان با چند تا مشکل مواجه هستم، خیلی ممنون میشم اگر کمکم کنید، الان واقعا گیر کردم و فرصتم هم کمه:
    ۱. دستور full screen میدم ولی وقتی اجرا می کنم، اجرای فیلم های flv با مشکل مواجه میشه و صفحه سیاه میشه، ظاهرا اون دستور فیلم ها رو هم full screen میکنه
    ۲. من در رزولوشن ۸۶۴*۱۱۵۲ طراحی کردم، ولی الان متوجه شدم خیلی از سیستم ها از رزولوشن پایینتری استفاده میکنن، چه کار کنم؟ ایا اشتباه کردم؟ دستوری رو می خوام که وقتی رزولوشن صفحه مخاطب کوچیکتر از طراحی من بود، stage من هم متناسب با اون سیستم کوچیک بشه و چیزی از صفحه حذف نشه.ایا الان باید تغییرش بدم به ۷۶۸*۱۰۲۴ ؟
    خواهش می کنم منو راهنمایی کنید عزیز. اگه لطف کنید جواب منو کامل و ساده برای یک آماتور بدید، و شماره تماستون را برام میل کنید باهاتون تماس بگیرم ممنون میشم.
    بی صبرانه منتظرم

    • سلام

      ۱ – بهتر از کامپوننت های دیگر به جز مورد اصلی استفاده کنید یا بخش پلیر را خودتان درست کنید
      ۲ – سلام می بایست توسط اکشن رزولوشن سیستم کاربر رو بگیرید و با شرط نسبت آن تغییرات را در محل قرار گیری اشیاء اتخاذ کنید
      برای اطلاعات کامل تر می بایست جستجو کنید ، مثلا برای مورد دوم طراحی شناور برای فلش می تواند برای همه رزولوشن ها در نظر بگیرید

      موفق و پیروز باشید

  6. با سلام
    مرسی از آموزشتون.
    خیلی شرمندم که اینجا این پیام رو می زارم.
    شما توی سایت فلش افزار، یک تایم لاین گذاشتین که برای جنگ ۳۳ روزه غزه بود.
    اما هیچ نمایش فلشی نیست که بیننده بتونه ببینش.اگر می شود لینکی یدید که ببینم.
    این با کلاس های away3d نوشته شده؟ آخه هرچی سرچ می زنم آموزش نیست تو اینترنت.اگر می شود راهنماییم کنید.
    با تشکر قبلی

    • سلام این مورد به صورت آنلاین برای نمایش وجود ندارد
      این موارد و موارد مشابه را می شود با هر انجین سه بعدی ایجاد کرد ، مثل alernativa3D و PV ، Away3D و… کار و عمکرد هم خیلی با هم فرقی ندارد
      البته از نظر سرعت alernativa3D بهتر هست و گزینه مناسبتری برای شما می باشد
      آموزش هم به صورت انگلیسی بسیار در نت موجود هست
      موفق و پیروز باشید

      • من نمونه خارجی این فایل رو دیدم اما وقتی دیکامپیل می کنم با این اررور مواجه می شوم.
        C:\Users\Sky\Desktop\MiddleEastRoad\com\greensock\TweenMax.as, Line 259 1084: Syntax error: expecting rightbrace before leftbracket.
        می تونید کمک کنید؟آخه من به این فابل خیلی نیاز دارم.

        • سلام
          همان طور که می دانید برنامه های دیکامپایل هنوز کامل نیستند و نمی توانند کاملا و درست این کار را انجام دهند و شما می بایست خطا ها را با روجوع به خط مربوطه رفع کنید
          در برخی موارد شاید اصلا این کار امکان پذیر نشود… و لازم باشد بخشی یا حتی کل کد از ابتدا نوشته شود و یا اصلاحات خیلی زیادی داشته باشد ، اطمینان داشته باشید بعد از رفع این خطا خطای بعدی را هم خواهید داشت تا تمام شدن این موارد…
          موفق و پیروز باشید

  7. باسلام یه سوال داشتم من با کدنویسی یه مربع ساختم حالا میخوام اونا از وسط به چرخش دربیارم اما نمیدونم چطور باید وسط اونا تعریف کنم یه سوال دیگه هم دارم فرق بین buttonMode با useHandCursor چیه؟ ممنون میشم جوابم را بدید.

    • سلام
      می بایست شی خود را به اندازه نصف از هر دوطرف تغییر مختصات بدهید
      buttonMode یک شی را مانند دکمه خصوصیت می دهد و زمانی که موس روی آن می رود عملکرد دکمه را خواهد داشت
      و useHandCursor امکان نمایش نماد دست در جاهایی که شما می خواهید را فراهم می آورد و مثلا می توانید یک دکمه را تنظیم کنید که وقتی موس رویش می آید شکلش تغییر نکند

      موفق و پیروز باشید

  8. با سلام و سپاس از زحمات شما،
    در صورتی که نیاز به ذخیره سازی صفحه به صورت فایل تصویری باشد کد های مورد نیاز را در صورت امکان ارایه فرمایید . با تشکر

  9. سلام دوست من .من یه مشکل اساسی دارم با این فلش دارم . من انیمیشن فلش رو درست کردم . پاپلیش گرفتم . خروجی . اولا این فایل خروجی توسیستم های دیگه پخش نمیشه . اون سیستم ها ادوب پلیر نصب دارن . دوم اینکه اگه بخوام این کلیپ فلش تو اینترنت انتشار بدم . نمیشه . چون فرمتش اس دبلیو اف هست قبول نمیکنه . حالا بگو چطوری میتونم این کلیپ رو به فرمت های دیگه تغییر بدم که کیفیتش بهم نخوره . یا اگه راه دیگه میدونی بمن بگو . ممنون میشم به میلم بفرستی . سرعتر بهتر مرسی

    • سلام
      به نسخه فلشی که تولید کرده اید در فلش توجه کنید کاربر می بایست همان نسخه را یا بالاتر برای مشاهده داشته باشد
      در مورد خروجی فلش با کیفیت بالا امکان خروجی ویدئویی را نیز در اختیار شما قرار می هد که می توانید استفاده کنید
      راه دیگر هم پخش و کپچر کرده تصویر توسط برنامه های تصویر بردار از مانیتور می باشد که البته روش خروجی خود فلش کیفیت بسیار بالاتری به شما خواهد داد
      ولی در کل در صورتی که فلش را شما در مرورگر خود می بینید هیچ مشکلی وجود ندارد و مشکل از سیستم فرد دیگر است ، البته در مواردی به دلیل این که فایلی را درون فلش لود می کنید که آدرس آن را به اشتباه در فایل های سیستم خود داده اید فلشی برای دیگران اجرا نمی شود این مورد را هم برسی کنید.

      موفق و پیروز باشید

  10. ممنونم میشه یه راه بگی که من بتونم انیمیشن فلشم رو تو یوتیوب بزارم .شما تاحالا تونستین این کار بکنید؟

    • سلام
      برای این کار می بایست خروجی ویدئویی با فرمت مناسب مثل mp4 یا flv گرفته و در سایت مربوطه آپلود کنید
      حال یا ویدئو را از بخش Export خود فلش گرفته یا با برنامه های جانبی و یا کپچر کردن از روی صفحه و…
      هیچ مشکلی برای این مورد وجود ندارد
      موفق و پیروز باشید

  11. واقعا ممنونم که پاسخ سوالات من رو میدین . یه مسئله هست و اونم این هستکه خروجی با فرمت هایی که گفتید . هم حجم بالایی داره هم کیفیتش نسبت به فلش کمتره / کپچر رو امتحان نکردم .میتونید نرم افزار معرفی بکنید؟ ممنونم

    • سلام
      نباید از هیچ نوع فرمت ویدئویی انتظار حجمی با رقابت با فلش داشته باشید
      زیرا فلش بر اساس وکتور و تصویر برداری است و ویدئو ها بر مبنای رستر و پیکس.
      برای برنامه های مربوطه به کپچر تصویر مانیتور همین عبارت را وب جستجو کنید ، موارد زیادی وجود دارد برای نمونه camista Studio و…
      موفق و پیروز باشید

  12. تازه ی تازه ی تازه

    درود بر شما…
    دوست عزیز من حدود ۳۷-۸ ثانیه تصویر متحرک ساختم.
    ۱۰۰۰ دفعه export گرفتم و همیشه ۹ ثانیه رو بیشتر تبدیل به ویدیو نمیکنه.
    ممنون میشم اگه تو اولین فرصت بگید که مشکل کارم چیه

    • سلام

      سلام اول این که نسخه های جدید تر فلش این مشکل را ندارد
      دوم این که فلش برای خروجی ویدئو دو حالت پیش روی شما می گذارد حال اولیه که خودکار طول ویدئو را تشخیص می دهد و حال دوم این که به شما اجاره وارد کردن زمان می دهد که شما مثلا می گویید که خروجی ویدئو ۲ دقیقه و ۳ ثانیه باشد و فلش یک ویدئو با همین زمان به شما می دهد حتی اگر که یک توپ در حال پرش داشته باشید به مدت تعیین شده حرکت آن را به صورت تکراری ذخیره می کند.

      در کل فلش با نسخه های جدید تر مشکل ذخیره داده را بهبود داده است ، در ضمن فلش خروجی MOV می دهد و شما می بایست توسط تبدیل کننده ای که همراه فلش نصب می شود به فرمت FLV و یا فرمتی دیگر که مورد نظرتان هست تبدیل کنید

      موفق و پیروز باشید

  13. تازه ی تازه ی تازه

    دوست عزیز باور کن من یه گندی زدم که فقط خدا میدونه چیه.
    تایم دادم و نتیجه باز ۹ ثانیه بود…
    ورژن فلشم هم قدیمی نیست. دارم با adobe flash cc کار میکنم :/

    وقتی روی تایم لاین enter میزنم، همه چیز رو دقیق و مو به مو نشون میده.
    اما خروجی ویدیو نمیتونم بیشتر از ۹ ثانیه بگیرم ازش :(

    • سلام
      اگر از فلش CC استفاده کنید طبیعتا نباید مشکلی داشته باشید
      برای این مورد می بایست نمونه را ببینم تا بتوانم مشکل را برسی کنم
      از طریق ارتباط با ما یا آپلود و ارسال لینک اقدام نمایید
      موفق و پیروز باشید

  14. سلام من میخوام إز یک dvd که قفل داره و فیلم هاش به صورت فلش هست رو capture کنم میشه راهنماییم کنید که با چه نرم افزاری و چطور میتونم این کار رو بکنم؟

    • سلام

      راحت ترین روش بدون شکستن قفل ، استفاده از برنامه های screen capture هست که برای ساخت آموزش و دمو استفاده می شود.
      با جستجو نرم افزارهای مختلفی را پیدا خواهید نمود

      موفق و پیروز باشید

  15. سلام
    ۱-میخواستم بپرسم چه جوری توی فلش تمام فریم ها رو به صورت تک تک خروجی png بگیرم با flash cs6کارمیکنم؟
    ۲-وبعد یک سوال دیگه توی cc ابزار استخوان بندی ها روهر چی گشتم پیدانکردم کجاست دقیقا؟

    • سلام

      از بخش file -> Export Movie استفاده کنید و فرمت را روی png قرار دهید برای هر فریم یک تصویر ایجاد می شود
      ابزار استخوان بندی در cc حذف شده است می بایست از ورژن CS5.5 یا CS6 استفاده کنید

      موفق و پیروز باشید

  16. یک دنیا ممنون. فقط چرا وقتی dpi روبالا میبرم عکس هاسفید saveمیشن اصلا میشه فایل فلش رو بدون افت کیفیت وارد افتر افکت کنم .
    سپاس

    • سلام
      بله با خروجی گرفتن MOV می توانید با کیفیت مناسب وارد افتر افکت نمایید البته به صورت تصاویر پشت سر هم نباید مشکلی باشد اگر مشکلی می بینید از نسخه های جدید فلش استفاده کنید ، این مورد که خروجی با بالا رفتن روزولوشن به صورت سفید ذخیره شود برای بنده تا به حال پیش نیامده حتی رزولوشن های خیلی بالا…
      در ضمن در نسخه های قبلی فلش ماسک ها در برخی موارد در خروجی ویدئو و… با مواردی مشکل مواجه می شد که در نسخه های جدید cc این مشکل دیگر مشاهده نشده است.

      موفق و پیروز باشید

    • سلام
      ممنون .شرمنده اینقدر سوال میپرسم .چند وقت پیش شنیدم یک نرم افزار هست که فایل های فلش رو تجزیه میکنه راهی وجود داره فایلمون رو وقتی به مشتری میدیم قفل اش کنیم.

ارسال جواب

آدرس رایانامه شما منتشر نخواهد شد.فیلد های اجباری علامت گزاری شده اند *

*

رفتن به بالای صفحه