رسانه و آرشیو
LocalStream
لوکالاستریم
کتابخانهٔ فیلم و انیمهات را روی وایفای خانه پخش کن
یک سرور رسانهٔ سبک که فایلهای ویدیویی روی کامپیوتر را برای گوشی و تبلت پخش میکند. بدون حساب، بدون ورود به ابر و بدون نیاز به اینترنت. مصرف حافظه در حالت بیکاری نزدیک به صفر است.
- وضعیت
- پایدار
- پلتفرم
- ویندوز
- فناوری
- Go 1.23+
- پورت پیشفرض
- 8787
چرا ساخته شده
مشکلی که حل میکند
سرورهای رسانهٔ معمول برای فهرستکردن کتابخانه، تمام فایلها را اسکن و ایندکس میکنند و صدها مگابایت حافظه میگیرند. روی یک لپتاپ معمولی این یعنی کندی مداوم.
برای چه کسی
کسی که فیلم و انیمهاش را روی هارد کامپیوتر دارد و میخواهد در تخت یا پذیرایی روی گوشی تماشا کند.
قابلیتها
9 قابلیت، هر کدام با توضیح کوتاه و مشخص.
- 01
مصرف حافظهٔ بسیار کم
در حالت بیکاری حافظهٔ مصرفی در حد چند مگابایت است و پردازنده عملاً بیکار میماند.
- 02
فهرستکردن تنبل
پوشهها یک سطح در هر بار خوانده میشوند، پس هیچ ایندکس سنگینی ساخته نمیشود.
- 03
پیشنمایش روی نوار زمان
با کشیدن نشانگر روی نوار پخش، قابهای واقعی ویدیو نمایش داده میشود.
- 04
زیرنویس داخلی MKV
زیرنویسهای داخلی فایل بهصورت زنده استخراج و به فرمت قابل نمایش تبدیل میشوند.
- 05
تنظیم زیرنویس و صدا
تغییر اندازهٔ زیرنویس و تنظیم دقیق همزمانی آن، بههمراه جابهجایی بین صداهای دوبله و زیرنویس.
- 06
ادامه از همانجا
یک ویدیو را روی کامپیوتر متوقف کن و روی گوشی از همان ثانیه ادامه بده.
- 07
پخش پشتسرهم
پایان هر قسمت، شمارش معکوس کوتاهی نشان میدهد و قسمت بعد را پخش میکند.
- 08
خوانندهٔ کمیک و PDF
علاوه بر ویدیو، فایلهای تصویری و PDF هم داخل مرورگر خوانده میشوند.
- 09
دریافت فایل دوطرفه
میتوانی از گوشی فایل روی کامپیوتر بفرستی، با نوار پیشرفت و امکان لغو.
رابط در عمل
این تصاویر از اجرای واقعی خود برنامه گرفته شدهاند، نه ماکت طراحیشده.
موبایل همان رابط روی صفحهٔ کوچک
-
داشبورد روی موبایل -
همان کتابخانه روی موبایل -
نمای جاسازیشده روی موبایل
راهاندازی
دستورها همانهایی هستند که در خود پروژه اجرا میشوند. هر بلوک یک دکمهٔ کپی دارد.
پیشنیازها
- Go 1.23 یا بالاتر برای ساخت از سورس
- FFmpeg فقط برای تبدیل و ساخت پیشنمایش (اختیاری)
- کامپیوتر و گوشی روی یک شبکهٔ محلی
-
برنامه را اجرا کن
textLocalStream.exe -
پوشهٔ رسانه را اضافه کن
روی دکمهٔ افزودن پوشه بزن و پوشهای که فیلمها در آن است را انتخاب کن.
-
سرور را روشن کن
بعد از زدن دکمهٔ شروع، آدرس اتصال و کد QR نمایش داده میشود.
-
از گوشی وصل شو
کد QR را با دوربین گوشی اسکن کن یا آدرس را در مرورگر باز کن.
texthttp://<PC-LAN-IP>:8787
نشانهٔ موفقیت: بعد از باز شدن آدرس، صفحهٔ داشبورد با فهرست پوشههای اشتراکی میآید.
پیشنیاز این روش: Go 1.23+
-
تستها را اجرا کن
bashgo test -v ./... -
نسخهٔ گرافیکی ویندوز را بساز
پرچم windowsgui باعث میشود پنجرهٔ کنسول اضافه باز نشود.
bashgo build -ldflags "-H windowsgui" -o LocalStream.exe ./cmd/localstream -
حالت بدون رابط گرافیکی
برای سرور خانگی یا اجرای خودکار، برنامه را با فایل تنظیمات اجرا کن.
bashLocalStream.exe -headless -config config.json -
فایل تنظیمات
مسیر پوشههای رسانه و پورت سرور در همین فایل تعیین میشود.
json{ "server": { "bind": "0.0.0.0", "port": 8787 }, "library": { "roots": [ "./media" ] } }
نشانهٔ موفقیت: خروجی go test باید همهٔ بستهها را ok نشان دهد.
در عمل
میانبرهای صفحهکلید
روی کامپیوتر میتوانی با کلیدها پخش را کنترل کنی: فاصله برای پخش و توقف، کلیدهای جهت برای جلو و عقب، M برای قطع صدا و F برای تمامصفحه.
نصب FFmpeg برای پیشنمایش
اگر FFmpeg کنار فایل برنامه یا در مسیر سیستم باشد، برنامه خودش پیدایش میکند. پخش مستقیم فایلهای معمول بدون آن هم کار میکند.
winget install Gyan.FFmpeg محدودیتها و عیبیابی
این بخش عمداً صریح است؛ محدودیتها پنهان نشدهاند.
- پخش مستقیم به فرمت فایل وابسته است؛ برای فرمتهای سنگین به FFmpeg نیاز میشود.
- روی این سرور ساخت، نسخهٔ ویندوزی قابل اجرا نیست، پس رابط روی لینوکس و در مرورگر بررسی شده است.
- مخزن عمومی برای این پروژه وجود ندارد.
مشکلهای واقعی و راهحلشان
پوشه خالی نشان داده میشود در حالی که فایل داخلش هست
علت برنامه پیوندهای نمادین را دنبال نمیکند و فقط فایلهای واقعی داخل پوشه را میبیند.
راهحل فایلها را واقعاً داخل پوشهٔ کتابخانه کپی کن، یا پوشهٔ اصلی را بهعنوان ریشه اضافه کن.
پیشنمایش قابها ساخته نمیشود
علت FFmpeg در دسترس نیست.
راهحل FFmpeg را کنار فایل برنامه بگذار یا از مسیر سیستم نصب کن.
ارتباط با ابزارهای دیگر
فقط ارتباطهایی که در خود پروژهها قابل اثباتاند.
منابع این اطلاعات
- README و CHANGELOG پروژهٔ LocalStream
- go.mod و اسناد معماری
- فایل config.example.json
- اجرای واقعی سرور و رندر کتابخانه با فایلهای واقعی
این پروژه مخزن عمومی ندارد، پس هیچ لینک مخزن یا دانلودی برای آن ساخته نشده است.