Shotit هو محرك بحث لتحويل لقطة الشاشة إلى فيديو، مصمم خصيصًا للتلفزيون والأفلام، وهو سريع للغاية وفعال في مجال الحوسبة.
مطلوب Docker Compose، يرجى تثبيته أولاً.
الحد الأدنى لحجم العمل: 2v16G، ويفضل 4v32G.
git clone https://github.com/shotit/shotit.git
cd shotit
.env.example
إلى .env
.env
بما يتناسب مع الإعداد الخاص بك، كما هو الحال لأول مرة.milvus.yaml.example
إلى milvus.yaml
milvus.yaml
بالشكل المناسب لإعدادك، كما هو الحال لأول مرة.قم بإنشاء هذه المجلدات الضرورية.
mkdir -p volumes/shotit-hash
mkdir -p volumes/shotit-incoming
mkdir -p volumes/shotit-media
mkdir -p volumes/mycores
mkdir -p volumes/mysql
اضبط معلومات المستخدم والمجموعة الخاصة بـ mycores
على 8983، المطلوبة بواسطة liresolr
.
sudo chown 8983:8983 volumes/mycores
ثم، خدمات إنشاء عامل الإرساء.
(Windows or Mac):
docker compose up -d
(Linux):
docker-compose up -d
ملاحظة: يقوم ملف docker-compose.yml بجلب صور عامل الإرساء من GitHub. إذا كنت تفضل dockerhub، فاستخدم الأوامر التالية بدلاً من ذلك.
(Windows or Mac):
docker compose -f docker-hub-compose.yml up -d
(Linux):
docker-compose -f docker-hub-compose.yml up -d
بمجرد أن تصبح المجموعة جاهزة، يمكنك إضافة ملفات الفيديو الخاصة بك إلى المجلد الوارد. خذ Big Buck Bunny من Blender كمثال، وعلامة imdb الخاصة به هي tt1254207، يجب أن يكون المسار:
./volumes/shotit-incoming/tt1254207/Big_Buck_Bunny.mp4
أعد تشغيل shotit-worker-watcher
، في حالة عدم اكتشاف التغيير في ملفاتك.
docker restart shotit-worker-watcher
عندما يكتشف shotit-worker-watcher
وجود ملفات فيديو في المجلد الوارد، فإنه سيبدأ في تحميل مقاطع الفيديو إلى shotit-media
التي تعمل بنظام تخزين الكائنات. بعد التحميل، سيتم حذف مقاطع الفيديو، ثم يقوم shotit-worker-hasher
بإنشاء التجزئة ويقوم shotit-worker-loader
بتحميل التجزئة إلى قاعدة بيانات المتجهات. استخدم الأمر التالي لمعرفة ما إذا كانت عملية الفهرس قد اكتملت:
docker logs -f -n 100 shotit-worker-loader
عند اكتمال عملية الفهرس، ستلاحظ وجود سجل Loaded tt1254207/Big_Buck_Bunny.mp4
ويمكنك البحث في مقاطع الفيديو عن طريق لقطة الشاشة مباشرةً من عنوان URL أدناه.
GET http://127.0.0.1:3311/search?url=https://i.ibb.co/KGwVkqy/big-buck-bunny-10.png
إجابة:
{
"frameCount": 0,
"error": "",
"result": [
{
"imdb": "tt1254207",
"filename": "Big_Buck_Bunny.mp4",
"episode": null,
"duration": 596.4169921875,
"from": 473.75,
"to": 479.17,
"similarity": 0.9992420673370361,
"video": "http://127.0.0.1:3312/video/tt1254207/Big%20Buck%20Bunny.mp4?t=476.46000000000004&now=1682985600&token=kc64vEWHPMsvu54Fpl1BrR7wz8",
"image": "http://127.0.0.1:3312/image/tt1254207/Big%20Buck%20Bunny.mp4.jpg?t=476.46000000000004&now=1682985600&token=K0qxDPHhoviiexOyEvS9qHRim4"
}
]
}
تهانينا! لقد قمت shotit
محرك البحث الخاص بك بنجاح.
ملاحظة: يجب أن تكون المرة الأولى لاستدعاء واجهة برمجة التطبيقات أطول حيث يجب أن تقوم الصورة بتحميل التجزئة بالكامل في ذاكرة الوصول العشوائي أولاً.
وونغ، ل. (2024). Shotit: محرك بحث الصور إلى الفيديو ذو الكفاءة الحسابية للسحابة. أركايف. /abs/2404.12169
يرجى الاطلاع هنا للحصول على الوثائق الكاملة حول:
يتكون Shotit
من صور عامل الإرساء هذه.
صورة عامل الميناء | بناء دوكر CI | حجم الصورة |
---|---|---|
shotit-api | ||
shotit-media | ||
shotit عامل مراقب | ||
shotit-worker-hasher | ||
shotit-عامل محمل | ||
shotit-عامل-باحث | ||
shotit فارز | ||
com.liresolr | ||
minio | ||
إلخ | ||
mariadb | ||
مشرف | ||
redis | ||
milvus مستقل |
مجموعة البيانات | رقم الحلقة | حجم المتجهات | وقت البحث |
---|---|---|---|
فيلم خلاط مفتوح | 15 | 55,677 | في غضون 5S |
مجموعة بيانات النوع الخاصة | 3,734 | 53,339,309 | في غضون 5S |
https://shotit.github.io/shotit-frontend/demo
يعتمد Shotit
بشكل كبير نمط تصميم النظام الخاص به من Trace.moe. تتمثل رؤية Shotit
في جعل محرك بحث لقطة الشاشة إلى الفيديو محايدًا وسهل الاستخدام وفعالاً في الحوسبة وسريعًا للغاية.
راجع دليل المساهمة.
أباتشي-2.0