پخش رسانه
به ارسال تصاویر ویدئویی و یا فایل صوتی به فرمت های مختلف و یا فشرده شده به سمت کاربر بطوری که کاربر بتواند با استفاده از نرم افزار کلاینت خود بدون نیاز به ذخیره فایل های دریافت شده را استفاده کند Media Streaming یا پخش رسانه گفته میشود. در پخش رسانه نیاز نیست تا کاربر جهت مشاهده فایل مورد نظر کل فایل را دانلود نمایید، به این دلیل که رسانه بصورت ادامه دارد به سمت کاربر ارسال میشود و کاربر میتواند انچه را که از سمت سرور به دستش رسیده را با نرم افزار های کلاینت مربوط مشاهده نمایید. با استفاده از Media Streaming کاربر میتواند فایل ویدئویی و یا صوتی که در حال مشاهده ان میباشد را به عقب بازگردانده و یا به جلو ببرد.
نرم افزار های سمت سرور زیادی جهت این امر ارائه شده است که برخی از انان را در این پست برسی مینماییم. از فواید Media Streaming میتوان به نکات زیر اشاره کرد:
- کاربر قادر میباشد با استفاده از نرم افزار های مربوط فایل ویدئویی خود را جستجو و یا برای خود Play-List ایجاد نمایید.
- مدیر سرور قادر خواهد بود تا فایل در حال مشاهده و زمان مشاهده ان و … را مانیتور نمایید.پ
- بخشی از فایل که به سمت کاربر ارسال میشود همان بخش از ویدئو بوده که کاربر تمایل دارد ان را مشاهده نمایید و این امر باعث مدیریت ترافیک سرور میشود.
- از متد ها و فرمت های متنوع تصویری و صوتی جهت پیاده سازی بهترین استراتژی جهت حفظ کیفیت و پایداری سرور میتواند بهره برد.
معمولا پخش رسانه از فایل های از پیش ضبط شده میباشد هرچند میتوان از Device هایی مانند دوربین فیلم برداری و یا ابزار های ضبط صدا بصورت زنده رسانه را منتشر کرد. در پخش زنده یا Live سیگنال های ویدئو بصورت دیجیتال تبدیل شد و توسط وب سرور بصورت Multicast به همه کاربران ارسال میشود. مدیا منتشر شده توسط Server Application توسط کلاینت دریاف و بصورت Real-Time توسط Media Player برای کاربر پخش میشود. Media player میتواند بصورت یک پلاگین در برنامه، بخشی از مرورگر یا یک Device اختصاصی (مانند Ipod) برای این امر باشد. برای مثال YouTube از Flash Player استفاده میکند. کیفیت پخش کاملا به سرعت اینترنت کاربر وابسطه است.
فرمت های پخش تصاویر
جهت تبدیل فایل های تصویری و ویدئویی فرمت های استانداردی مشخص شد که جهت Media Streaming میتوان از فرمت مورد نیاز با توجه به شرایط استفاده نمود. فرمت ها توسط کمپانی ها و موسسات مختلفی منتشر شده است که دارای شاخص های کیفیت در صدا یا تصویر و یا میزان فشرده سازی میباشد. انتخاب فرمت درست میتواند در لود سرور و میزان رضایت کاربران موثر باشد. با توجه به اهمیت این موضوع تعدادی از فرمت های شاخص و پرکاربرد بصورت مختصر معرفی خواهد شد:
- ۳GP: این فرمت توسط Generation Partnership Project (3GPP) که یک سازمان برای هماهنگی بین شرکت های ارتباطات از راه دور (Telecommunications) میباشد ارائه شد. از این فرمت در تلفن های همراه ۳G استفاده میشد، هرچند قابلیت استفاده در تلفن های همراه ۲G و ۴G را نیز داراست. این فرمت در بسیاری از تلفن های همراه و نرم افزار هایی مانند VLC,Quick Time,Totem,RealPlayer و GOM player پشتیبانی میشود. در صورت نیاز میتوانید با استفاده از نرم افزار های تبدیل ۳gp را به فرمت های دلخواه تبدیل کنید.
- AVI: فرمت avi یا Audio Video Interleaved در سال ۱۹۹۲ به عنوان بخشی از نرم افزار های ویندوزی توسط مایکروسافت معرفی شد. فرمت avi هم صدا و هم تصویر را در خود دارد و میتواند بصورت Multiple Streaming مورد استفاده قرار بگیرد. البته این فرمت دارای محدودیت هایی مانند عدم ارائه یک راهکار استاندارد برای encode کردن اطلاعات aspect rate ، عدم فشرده سازی و… میباشد.
- MP4: فرمت pm4 یا MPEG-4 Part 14 برای نگهداری تصویر و صدا استفاده میشود هرچند میتوانید عکس و Subtitle را نیز در ان داشته باشید. مانند دیگر فرمت های جدید این فرمت نیز قابلیت Stream شدن تحت اینترنت را داراست.
- FLV: این فرمت جهت پخش فایل های فلش با استفاده از ۶ Flash Player و یا ورژن های جدیدتر میباشد. فایل های flv بصورت مناسبی فشرده شده و حجم مناسبی خواهد داشت. flv میتواند توسط بسیاری از player های تحت ویندوز و تحت لینوکس مانند VLC پخش و توسط بسیاری از ابزار ها مانند FFmpeg تبدیل شود.
- MPEG-TS: فرمت MPEG transport stream جهت انتقال صدا و تصویر برای سیستم های Broad Cast مانندDigital Video Broadcasting بصورت اختصار DVB استفاده میشود. برای نمونه میتوان به ATSC و IPTV (سیستم پخش انلاین تلوزیونی) اشاره کرد.
معرفی پروتکل های Streaming
جهت Online Media Streaming پروتکل های متفاوتی ارائه شده است که میتوانید با توجه به نوع ارائه سرویس و زیرساخت نرم افزاری و یا سخت افزاری بهترین گزینه را انتخاب نمایید. باید توجه داشته باشید بعضی از پروتکل های ارائه شده توسط شرکت های بزرگ برای سرویس های تحت اختیارشان ارائه شده است. برای شروع تعدادی از پرکاربرد ترین پرتکل ها بصورت مختصر معرفی میشود تا اشنایی جزئی با این پروتکل ها حاصل شود.
- HTTP: این پروتکل برای اکثریت شناخته شده است و نیاز چندانی به توضیح ندارد. یکی از پروتکل هایی که میتوانید با بهره گیری از ان پخش انلاین داشته باشید http میباشد که تقریبا توسط اکثر engine های Streaming پشتیبانی می شود.
- MPEG-DASH: پروتکل Dynamic Adaptive Streaming Over HTTP با نام MPEG-DASH نیز شناخته میشود یک تکنیک Adaptive Bitrate Streaming میباشد که با استفاده از وب سرور HTTP قابلیت پخش با کیفیت بالا را فراهم اورده است. همانند HLS که مخفف Http Live Streaming مربوط به شرکت Apple است در mpeg dash نیز فایل به بخش های کوچکتر http تقسیم شده که زمان های کوتاه پخش را در خود دارد که میتوان ساعات طولانی از یک فیلم و یا یک رویداد زنده را شامل شود. فایل ها میتواند شامل Bit rate های مختلف باشد که Bit rate مورد نظر میتواند توسط کاربر و یا بصورت اتوماتیک با توجه به سرعت اینترنت کاربر انتخاب شود. پروتکل مورد استفاده این متد TCP-IP میباشد.
- RTMP: این متد مخفف Real-Time Messaging Protocol میباشد که توسط شرکت Macromedia جهت پخش فایل های صوتی و تصویری با استفاده از flash به وسیله server ارائه شد. macromedia هم اکنون توسط شرکت Adobe تصاحب شده است.
- HLS: پروتکل HLS یا همان HTTP Live Streaming برای ارائه مدیا به Device های شرکت Apple میباشد که توسط همین شرکت معرفی شده است.
غیر از متد های معرفی شده متد های دیگری مانند UDP,SRTP, WebRT و … نیز قابل استفاده میباشد که هر کدام از روش های مخصوص به خود برای Broadcast کردن اطلاعات استفاده میکنند. متد های معرفی شده نیز در این مقاله بطور کامل معرفی نشده است. جهت برسی این پروتکل های میتوانید از جستجو در گوگل استفاده نمایید هرچند سعی شده تا پرتکل های پرکاربر معرفی شود.
سرور های پخش رسانه
سرور های مختلفی جهت استفاده برای Media Streaming ارائه شده است که میتوان در شرایط مختلف با توجه به نیاز از ان استفاده نمود. برخی از این سیستم ها در ادامه این مقاله بصورت مختصر برسی خواهد شد.
- Red-5: این یک ابزار رایگان برای استفاده جهت Streaming میباشد. سرویس ارائه شده توسط این سیستم streaming مانند ابزار هایی مانند Adobe Flash Media Server, Wowza Streaming Nginx میباشد. با استفاده از این ابزار میتوانید فایل هایی با پسوند FLV, F4V, MP4, 3GP, MP3, AAC را Broadcast و یا Live Streaming نمایید. این ابزار پروتکل های RTMPE, RTMPS, RTMPT و RTMP را پشتیبانی میکند.
- Adobe Flash Media Server: سرور AMS یک مدیا سرور است که با استفاده از Flash Player Runtime جهت ارائه فایل های تصویری به کاربر استفاده مینماید. Adobe Media Server یک هاب محسوب میشود که برنامه ها با استفاده از پروتکل RTMP به ان متصل میشوند. سرور میتواند با استفاده از FLV player نصب شده اطلاعات را به کاربر ارسال و یا از کاربر دریافت کند.
- IIS Media Services: پخش انلاین بخشی از امکان iis media service است و علاوه بر این امکانات دیگری نیز توسط این سرویس دهنده مانند adaptive streaming, Analytics, scale to the edge, progressive downloads, Convert with Ease, Perfect Control ارائه شده است.
- Wowza: بدون شک یکی از بهترین Media Server های موجود بوده که با توجه به هزینه لایسنس نسبتا مناسب امکانات بسیاری را ارائه میکند. توسط این ابزار قادر خواهید بود تا ترافیک روی سرور را مانیتور کرده و حتی امکان لودبالانسینگ را نیز فراهم کرده است. پروتکل های HLS, RTMP, Live Streaming و Adaptive bit rate نیز در این ابزار پشتیبانی میشود. فرمت های بسیاری مانند: FLV, 3GP, MP4 و MP3 در این مدیا سرور قابل استفاده میباشد.
- OpenBroadcaster: یک سرویس دهنده تحت وب متن ازاد میباشد. این ابزار برای راه اندازی تلوزیون و رادیو بوده که با یک رابط کاربری ساده تحت وب مدیریت میشود. با استفاده از کامپوننت های موجود برای این ابزار میتوان ان را مدیریت کرد. از کامپوننت های ان میتوان به OBserver که یک ابزار HTML5 AJAX برای اپلود فایل و OBPlayer که یک ابزار تحت لینوکس برای مدیریت کاربران متصل به سرور است نام برد.
- Nimble Streamer: ابزار رایگان Nimble امکان پخش زنده و Video On Demand (VOD) را به شما میدهد. این مدیا سرور برای پلتفرم های لینوک، مک و ویندوز ارائه شده است و از بسیاری از پروتکل ها نظیر RTMP, HLS HTTP,MPEG DASH پشتیبانی میکند.