-
October 12th, 2019, 01:48
#1
عضو جدید
تبدیل لینک ویدیو به لینک blob برای پلیر آنلاین
با سلام و احترام
دوستان عزیز ممنون میشم در صورت امکان بنده رو راهنمایی کنید.
چطور میتونم یک آدرس ویدیو با لینک مستقیم رو در یک پلیر ویدیو با آدرس blob مثال به شکل زیر اجرا و پخش کنم ؟
مثال آدرس اصلی ویدیو به این شکل آپلود میشه : https://myweb.com/video.mp4 یا دیگر فرمت های تصویری از جمله mkv
بعد میخوام تو پلیر با آدرسی به این شکل نمایش داده بشه : blob:https://myweb.com/b7a37a03-8584-45c5-b506-5c0b19802e23
میشه گفت یه جور کد گذاری روی لینک های فایل های تصویری و صوتی هستش .
در ضمن ممنون میشم اگر کسی کد حاضری یا اسکریپت حاضری داره همین جا قرار بده تا بنده و دیگر کاربران انجمن استفاده کنیم.
ممنون و وقت همگی بخیر
-
تعداد تشکر ها از blogparsi به دلیل پست مفید
-
October 12th, 2019 01:48
# ADS
-
October 12th, 2019, 10:46
#2
پاسخ : تبدیل لینک ویدیو به لینک blob برای پلیر آنلاین
Blob یک ابجکت جاوااسکریپت هست ، که ازش برای نمایش داده های خام تو جاوا اسکریپت استفاده میشه ، داده هایی که یه صورت عادی تو جاوا اسکریپت پشتیبانی نمیشه ، مثل داده های باینری (نمونه داده هایی مثل تصویر یا ویدیو)
وقتی یک داده Blob دارید ، به خودی خودش نمیتونید ازش استفاده کنید ، برای اینکه بتونید از اون داده های استفاده کنید ، باید از یک متد createObjectURL استفاده کنید ، این متد یک URL برای ارائه داده ایجاد میکنه (طول عمرش بسته به اون داکیومنتی که داخلش ایجاد شده هست)
Blob هیچ نقشی توی کد گذاری نداره ، برای استفاده از ویدیوهای کد گذاری شده باید از Encrypted Media Extensions که یکی از API های مرورگر هست استفاده کنید.
برای نمایش ویدیو های به صورت Blob از نظر فنی میتونید اینکار رو انجام بدید ، اول باید اون ویدیو رو کامل دانلود کنید ، بعد براش یک createObjectURL ایجاد کنید و در آخر هم توی سورس ویدیو قرارش بدید ، این روش برای ویدیوهای کوتاه جواب میده ، اما برای ویدیوهای بزرگ هم اینکه احمقانه هست ، و اینکه خود مرورگرها هم محدودیت هایی تو اندازه فایل های دانلودی دارن.
برای نمایش فایل های بزرگ شما اول باید فایل ویدیویی تون رو به قسمت های کوچیکتر تقسیم کنید (مثلا قسمت های ۱۰ ثانیه ای) ، بعد یک فایل نقشه برای تقسیم بندهای تون درست کنید (اینکه هر قسمت مربوط به کدوم بازه زمانی ویدیوتون هست) ، بعد از اون هنگام پخش ویدیو قسمت ها متناوب با پخش ویدیو دانلود کنید براش یک createObjectURL ایجاد کنید و اون رو جهت بخش به مرورگر بدیم (برای پخش ویدیوهای به اینصورت (استریم) باید از |Media Source Extensions API استفاده کنید).
به روش بالا میگن استریم ، ۲ استاندارد پر طرفدار برای استریم ویدیوهای داریم یکی HLS و یک هم MPEG Dash ، هر دوی این استاندارد ها یکسری قوانین برای نحوه استریم ویدیو تعیین میکنن ، که تا حدودی مشابه هم هست ، تفاوت شون توی پشتیبانی و لاسینسینگ هست.
شما برای اینکه بخواهید ویدیویی رو تو مرورگر (یا هر پلتفرم دیگه ای مثل موبایل) استریم کنید ، نیازی نیست که خودتون تمام کارهایی که اون بالا گفتم رو انجام بدید ، کتابخانه های رایگان زیادی هستن برای اینکار مثل Hls.js, shakaPlayer, dash..js و ... پلیرهایی مثل Video.js و Jwplayer هم از همین کتابخونه های استفاده میکنن.
برای آماده سازی ویدیوها توی برای استریم هم ابزارهایی رایگان زیادی هست ، من استفاده از FFmpeg رو پیشنهاد میکنم.
-
تعداد تشکر ها از firebox به دلیل پست مفید
-
October 12th, 2019, 11:14
#3
عضو انجمن
پاسخ : تبدیل لینک ویدیو به لینک blob برای پلیر آنلاین
سلام
دلیلتون برای این تغییر لینک چی هست ؟
-
-
October 14th, 2019, 22:31
#4
عضو جدید
پاسخ : تبدیل لینک ویدیو به لینک blob برای پلیر آنلاین
نوشته اصلی توسط
firebox
blob یک ابجکت جاوااسکریپت هست ، که ازش برای نمایش داده های خام تو جاوا اسکریپت استفاده میشه ، داده هایی که یه صورت عادی تو جاوا اسکریپت پشتیبانی نمیشه ، مثل داده های باینری (نمونه داده هایی مثل تصویر یا ویدیو)
وقتی یک داده blob دارید ، به خودی خودش نمیتونید ازش استفاده کنید ، برای اینکه بتونید از اون داده های استفاده کنید ، باید از یک متد createobjecturl استفاده کنید ، این متد یک url برای ارائه داده ایجاد میکنه (طول عمرش بسته به اون داکیومنتی که داخلش ایجاد شده هست)
blob هیچ نقشی توی کد گذاری نداره ، برای استفاده از ویدیوهای کد گذاری شده باید از encrypted media extensions که یکی از api های مرورگر هست استفاده کنید.
برای نمایش ویدیو های به صورت blob از نظر فنی میتونید اینکار رو انجام بدید ، اول باید اون ویدیو رو کامل دانلود کنید ، بعد براش یک createobjecturl ایجاد کنید و در آخر هم توی سورس ویدیو قرارش بدید ، این روش برای ویدیوهای کوتاه جواب میده ، اما برای ویدیوهای بزرگ هم اینکه احمقانه هست ، و اینکه خود مرورگرها هم محدودیت هایی تو اندازه فایل های دانلودی دارن.
برای نمایش فایل های بزرگ شما اول باید فایل ویدیویی تون رو به قسمت های کوچیکتر تقسیم کنید (مثلا قسمت های ۱۰ ثانیه ای) ، بعد یک فایل نقشه برای تقسیم بندهای تون درست کنید (اینکه هر قسمت مربوط به کدوم بازه زمانی ویدیوتون هست) ، بعد از اون هنگام پخش ویدیو قسمت ها متناوب با پخش ویدیو دانلود کنید براش یک createobjecturl ایجاد کنید و اون رو جهت بخش به مرورگر بدیم (برای پخش ویدیوهای به اینصورت (استریم) باید از |media source extensions api استفاده کنید).
به روش بالا میگن استریم ، ۲ استاندارد پر طرفدار برای استریم ویدیوهای داریم یکی hls و یک هم mpeg dash ، هر دوی این استاندارد ها یکسری قوانین برای نحوه استریم ویدیو تعیین میکنن ، که تا حدودی مشابه هم هست ، تفاوت شون توی پشتیبانی و لاسینسینگ هست.
شما برای اینکه بخواهید ویدیویی رو تو مرورگر (یا هر پلتفرم دیگه ای مثل موبایل) استریم کنید ، نیازی نیست که خودتون تمام کارهایی که اون بالا گفتم رو انجام بدید ، کتابخانه های رایگان زیادی هستن برای اینکار مثل hls.js, shakaplayer, dash..js و ... پلیرهایی مثل video.js و jwplayer هم از همین کتابخونه های استفاده میکنن.
برای آماده سازی ویدیوها توی برای استریم هم ابزارهایی رایگان زیادی هست ، من استفاده از ffmpeg رو پیشنهاد میکنم.
سلام و وقت بخیر
راستش بنده میخوام یک سایت جهت پخش آنلاین ویدیو که به صورت دستی را اندازی کنم و میخوام لینک های دانلود مستقیم که تو سرورهام هستش رو تو پلیر پخش کنم ولی طوری که نشه دانلود کرد .
با پلیر html5 ساده میشه فرمت های mp4 و mkv رو آنلاین پخش کرد ولی اگر دانلود منجر روی سیستم نصب باشه به صورت خودکار لینک دانلود بالا میاد.
من میخوام یه سورس ساده فقط برای کدگذاری یا بستن لینک های دانلود داشته باشم.
ممنون میشم اگر راهنماییم کنید.
ممنون
- - - Updated - - -
نوشته اصلی توسط
lizard.tiny
سلام
دلیلتون برای این تغییر لینک چی هست ؟
سلام و وقت بخیر
راستش بنده میخوام یک سایت جهت پخش آنلاین ویدیو که به صورت دستی را اندازی کنم و میخوام لینک های دانلود مستقیم که تو سرورهام هستش رو تو پلیر پخش کنم ولی طوری که نشه دانلود کرد .
با پلیر html5 ساده میشه فرمت های mp4 و mkv رو آنلاین پخش کرد ولی اگر دانلود منجر روی سیستم نصب باشه به صورت خودکار لینک دانلود بالا میاد.
من میخوام یه سورس ساده فقط برای کدگذاری یا بستن لینک های دانلود داشته باشم.
ممنون میشم اگر راهنماییم کنید.
ممنون
-
-
October 14th, 2019, 22:40
#5
عضو انجمن
پاسخ : تبدیل لینک ویدیو به لینک blob برای پلیر آنلاین
واسه اینکه قابل دانلود نباشه باید Player اختصاصی نوشته بشه که البته نمیشه بطور 100 درصد جلوی دانلود رو گرفت اما در کل راه هایی برای سخت کردن پروسه دانلود وجود داره
-
-
October 15th, 2019, 00:19
#6
عضو انجمن
پاسخ : تبدیل لینک ویدیو به لینک blob برای پلیر آنلاین
بفرمایید ...
البته تستش نکردم
تست کردید اوکی بود یه دعا به جون ما بکنید
کد:
<video></video>
<br/>
<input type="file" name="file" id="fileItem" onchange="onChange()" >
<input type="submit" value="Play">
</form>
<script type="text/javascript">
var URL = window.URL || window.webkitURL;
var video = document.getElementsByTagName('video')[0];
function onChange() {
var fileItem = document.getElementById('fileItem');
var files = fileItem.files;
var file = files[0];
var url = URL.createObjectURL(file);
video.src = url;
video.load();
video.onloadeddata = function() {
video.play();
}
}
</script>
-
تعداد تشکر ها از PSW به دلیل پست مفید
-
October 15th, 2019, 01:43
#7
پاسخ : تبدیل لینک ویدیو به لینک blob برای پلیر آنلاین
نوشته اصلی توسط
blogparsi
سلام و وقت بخیر
راستش بنده میخوام یک سایت جهت پخش آنلاین ویدیو که به صورت دستی را اندازی کنم و میخوام لینک های دانلود مستقیم که تو سرورهام هستش رو تو پلیر پخش کنم ولی طوری که نشه دانلود کرد .
با پلیر html5 ساده میشه فرمت های mp4 و mkv رو آنلاین پخش کرد ولی اگر دانلود منجر روی سیستم نصب باشه به صورت خودکار لینک دانلود بالا میاد.
من میخوام یه سورس ساده فقط برای کدگذاری یا بستن لینک های دانلود داشته باشم.
ممنون میشم اگر راهنماییم کنید.
ممنون
گفتم باید ویدیوتون رو برای استریم شدن تبدیل کنید و براش یک playlist ایجاد کنید ، شما میتونید فایل ویدیویی تون رو تیکه تیکه کنید و یک پلی لیست M3U8 براش ایجاد کنید.
اطلاعات کاملش اینجا هست : https://developer.apple.com/document...live_streaming
این هم یک اسکریپت برای ایجاد پلی لیست M3U8 ، کافیه فایل ویدیوی تون رو بهش بدید ، خودش پلی لیست M3U8 رو به همراه فایل ویدیو بخش بندی شده بهتون تحویل میده.
https://github.com/bentasker/HLS-Stream-Creator
برای پخش ویدیو هم کافیه آدرس فایل پلی لیست رو بدید به یک پلیری مثل video.js
این نسخه اش : https://videojs.github.io/videojs-contrib-hls/
نوشته اصلی توسط
lizard.tiny
واسه اینکه قابل دانلود نباشه باید Player اختصاصی نوشته بشه که البته نمیشه بطور 100 درصد جلوی دانلود رو گرفت اما در کل راه هایی برای سخت کردن پروسه دانلود وجود داره
برای اینکه ۱۰۰ درصد جلوی دانلود رو بگیرید ،میتونید ویدیو های تون رو سمت سرور رمز گذاری کنید (مقداری از هر کی فریم رمزگذاری میشه) ، بعد توی مرورگر با استفاده از Media Source Extensions API رمزگشایی کنید ، سایت هایی مثل نتفلیکس از این روش استفاده میکنن ، هیچ راهی برای دانلود شون وجود نداره. (بالاتر هم این رو گفته بودم)
نوشته اصلی توسط
PSW
بفرمایید ...
البته تستش نکردم
تست کردید اوکی بود یه دعا به جون ما بکنید
کد:
<video></video>
<br/>
<input type="file" name="file" id="fileItem" onchange="onChange()" >
<input type="submit" value="Play">
</form>
<script type="text/javascript">
var URL = window.URL || window.webkitURL;
var video = document.getElementsByTagName('video')[0];
function onChange() {
var fileItem = document.getElementById('fileItem');
var files = fileItem.files;
var file = files[0];
var url = URL.createObjectURL(file);
video.src = url;
video.load();
video.onloadeddata = function() {
video.play();
}
}
</script>
این روش چند مشکل اساسی داره (بالاتر هم نوشتم)
اول اینکه کاربر باید کل ویدیو رو دانلود کنه ، بعد میتونه تماشاش کنه ! اصل پخش آنلاین اینکه همون لحظه بتونی پلی اش کنی.
بعدشم blob تو مرورگر یک محدودیت حجمی داره ، شما نمیتونید فایل های بزرگ رو توش ذخیره کنید (مگر اینکه از . IndexDB استفاده کنید) ،
اخر هم اینکه این فایل توی مموری ذخیره میشه ، اگر فایل بزرگ باشه باعث میشه مرورگر کرش کنه.
پ.ن: این کدی که گذاشتید ، فایل رو از Input مگیره ، هیچ فایلی رو دانلود نمیکنه.
ویرایش توسط firebox : October 15th, 2019 در ساعت 11:22
-
تعداد تشکر ها از firebox به دلیل پست مفید
-
October 19th, 2019, 00:34
#8
عضو جدید
پاسخ : تبدیل لینک ویدیو به لینک blob برای پلیر آنلاین
سلام و وقت بخیر
ممنون از همه اعضای محترم که بنده رو راهنمایی کردن.
-