محمد نظری
محمد نظری
خواندن ۴ دقیقه·۵ سال پیش

معرفی استریم ویدیو یا استریمینگ کردن ویدیو - شماره یک

به نام خدا

محمد نظری هستم برنامه نویس وب از سال 1392 برنامه نویسی رو شروع کردم این اولین آموزشی هست که دارم به صورت متنی کار میکنم امیدوارم من رو بخاطر سوتی هایی که میدم ببخشید (سعی دارم از این به بعد آموزش هایی رو در حوزه ای که تجربه دارم نشر بدم چون امام صادق فرموده اند هر چیزى‌ زکاتى دارد و زکات دانش، آموختن آن است به اهلش.)

خب بریم سر اصل مطلب اول سعی میکنم یه نگاه تئوری داشته باشم به این بحث بعد میرم سراغ چند تا نمونه عملی و معرفی پلیرها و کتابخونه هایی که توی این زمینه خیلی کمک میکنه

استریم ویدیو یا استریمینگ کردن ویدیو یعنی چی؟

استریم ویدیو (video stream) یا استریم کردن ویدیو تکنیکی هست که به وسیله اون میتونیم یک ویدیو رو بدون این که کل فایل ویدیو دانلود بشه توی یک پخش کننده به کاربر نشون بدیم، مثل دیدن یه ویدیو تو YouTube یا آپارات یا خیلی از سایت های دیگه، خب این چه کمکی میکنه؟

مزیت اصلی استریمینگ ویدیو این که بدون این که کل فایل دانلود بشه میتونیم اون ویدیو رو تماشا کنیم و اون ویدیو تیکه به تیکه برای ما دانلود میشه، به عبارت دیگر استریمینگ به شما اجازه میده که از محتوا قبل از اینکه همه فایل دانلود بشه، استفاده کنید.

مثلاً استریم ویدیو به این صورته که وقتی شما ویدیویی را تماشا می‌کنید بعد از کلیک روی دکمه پلی تقریباً بلافاصله شروع به تماشای اون کنید و مجبور نیستید منتظر دانلود فایل‌ها باشید تا کل ویدیو به طور کامل دانلود بشه و بعد پخش کنید تا ببینید.

تکنیک استریمینگ بیشتر در پخش ویدیو و پخش زنده در بستر وب استفاده میشه
استاندارد hls تیکه تیکه لود شدن برای کاربر
استاندارد hls تیکه تیکه لود شدن برای کاربر

و اما HTTP Live Streaming یا HLS

و Hls استانداردی هست بر بستر پروتکل HTTP برای استفاده از تکنیک استریم ویدیو که شرکت اپل اون رو ساخته و در حال حاضر شرکت های زیادی با این استاندارد کار میکنند مثل YouTube ، Vimeo ، آپارات و …

وقتی شما یک ویدیو رو در youtube آپلود می کنید چه اتفاقی می افتد؟

مثلا شما یک ویدیو 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

چطور ویدیو رو تبدیل کنیم به استاندارد hls و در یک صفحه وب بخش کنیم?

... این مقاله ادامه دارد میخوام یه ویدیو ضبط بکنم و در ادامه توضیح کامل بدم ولی فعلا نمیتونم اگر سوالی داشتید خوش حال میشم کمک کنم بهم ایمیل بزنید یا توی شبکه های اجتماعی پیام بدید @mohammadnazari110 و ایمیلم nazari.main@gmail.com

hlstsاستریم ویدئواستریمینگvideo stream
برنامه نویس وب ، الان بیشتر سمت فرانت کار میکنم Vue ، با اپلیکیشن های PWA خیلی حال میکنم ، قبلا php کار بودم البته الان هم هستم ، عاشق وب مدرن ، سعی میکنم همیشه یادبگیرم
شاید از این پست‌ها خوشتان بیاید