به نام خدا
محمد نظری هستم برنامه نویس وب از سال 1392 برنامه نویسی رو شروع کردم این اولین آموزشی هست که دارم به صورت متنی کار میکنم امیدوارم من رو بخاطر سوتی هایی که میدم ببخشید (سعی دارم از این به بعد آموزش هایی رو در حوزه ای که تجربه دارم نشر بدم چون امام صادق فرموده اند هر چیزى زکاتى دارد و زکات دانش، آموختن آن است به اهلش.)
خب بریم سر اصل مطلب اول سعی میکنم یه نگاه تئوری داشته باشم به این بحث بعد میرم سراغ چند تا نمونه عملی و معرفی پلیرها و کتابخونه هایی که توی این زمینه خیلی کمک میکنه
استریم ویدیو (video stream) یا استریم کردن ویدیو تکنیکی هست که به وسیله اون میتونیم یک ویدیو رو بدون این که کل فایل ویدیو دانلود بشه توی یک پخش کننده به کاربر نشون بدیم، مثل دیدن یه ویدیو تو YouTube یا آپارات یا خیلی از سایت های دیگه، خب این چه کمکی میکنه؟
مزیت اصلی استریمینگ ویدیو این که بدون این که کل فایل دانلود بشه میتونیم اون ویدیو رو تماشا کنیم و اون ویدیو تیکه به تیکه برای ما دانلود میشه، به عبارت دیگر استریمینگ به شما اجازه میده که از محتوا قبل از اینکه همه فایل دانلود بشه، استفاده کنید.
مثلاً استریم ویدیو به این صورته که وقتی شما ویدیویی را تماشا میکنید بعد از کلیک روی دکمه پلی تقریباً بلافاصله شروع به تماشای اون کنید و مجبور نیستید منتظر دانلود فایلها باشید تا کل ویدیو به طور کامل دانلود بشه و بعد پخش کنید تا ببینید.
تکنیک استریمینگ بیشتر در پخش ویدیو و پخش زنده در بستر وب استفاده میشه
و Hls استانداردی هست بر بستر پروتکل HTTP برای استفاده از تکنیک استریم ویدیو که شرکت اپل اون رو ساخته و در حال حاضر شرکت های زیادی با این استاندارد کار میکنند مثل YouTube ، Vimeo ، آپارات و …
مثلا شما یک ویدیو 20 دقیقه ای رو با پسوند mp4 رو روی youtube بارگذاری میکنید. youtube ویدیو شما رو تبدیل میکنه به استاندارد hls و پخش میکنه خب چطور؟ ویدیو تقسیم میشه به قطعات کوچک تری بر مبنای ثانیه مثلا میگه هر ویدیو تقسیم بشه به فایل های ۵ ثانیه ای و ویدیوی شما تبدیل میشه به فایل های کوچکی با پسوند ts
تعداد فایل های میشه 240 تا فایل ts این فایل ها باید یک فهرستی داشته باشند تا نرم افزاری که میخواد این ها رو پخش کنه ترتیب این ها رو متوجه بشه برای همین نیاز به فایلی داریم به اسم manifest این فایل توسط سیستم درست میشه داخلش هم اسم و آدرس تمام فایل ها ، به همراه ثانیه اون فایل به ترتیب لیست شدن
در نهایت ما یه 240 تا فایل و یه فایل فهرست به اسم manifest داریم
خب بیایم در مورد فایل فهرست یا manifest صحبت کنیم این فایل برای این که تمیز باشه و همه بتونن متوجه بشن که چی توش داره باید یه ساختار استانداری داشته باشه برای همین یه استاندارد دیگه ای برای این فایل درست کردن به اسم m3u8 و پسوند فایل manifest هست .m3u8 خب این استاندارد مثل xml یا json هست یه تک های آماده ای داره که یه سرچ بزنید میاد چند تا شو توضیح میدم و یه نمونه میزارم
تصویر زیر بعد از تبدیل کردن یه فایل mp4 به استاندارد hls هست می بینید که یه عالمه فایل ts داریم و یه فایل index.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:18
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:16.389889,
index0.ts
#EXTINF:5.833333,
index1.ts
#EXTINF:8.333333,
index2.ts
#EXTINF:10.666667,
index3.ts
#EXTINF:15.166667,
index4.ts
#EXTINF:4.400000,
index5.ts
#EXT-X-ENDLIST
... این مقاله ادامه دارد میخوام یه ویدیو ضبط بکنم و در ادامه توضیح کامل بدم ولی فعلا نمیتونم اگر سوالی داشتید خوش حال میشم کمک کنم بهم ایمیل بزنید یا توی شبکه های اجتماعی پیام بدید @mohammadnazari110 و ایمیلم nazari.main@gmail.com