انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: جست و جو در زیرنویس و بریدن قسمت مربوط به ویدئو  (دفعات بازدید: 1992 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین Nelliel

  • High Hero Member
  • *
  • ارسال: 2151
  • جنسیت : پسر
  • Nelliel Tu Odelschwanck
سلام
یک دوستی دراینجا(http://forum.ubuntu.ir/index.php/topic,134806.0.html)از من درخواست کرد تا یه برنامه بنویسم که یه کلید از کاربر بگیره که اون کلید که یک کلمه هست توی سورس زیرنویس سرچ بشه و قسمت‌های مربوط به ویدئو در که از اون کلمه استفاده شده را جدا کنه.
لینک ساب وید (اسم اسکریپت ;D) در گیت‌هاب: https://github.com/hossein4heydari/subvid
لینکش در وبلاگ خودم: http://hosseinws.ir/?p=425
این سورس اسکریپت:

#!/bin/python3

#   This script has been written by Hossein Heydari
#   Follow writter on twitter: @hossein7heydari


# Import needed modules
import sys
import os

# clear Screen
os.system("clear")

# Get Video and Sub from Argument
subtitle = (sys.argv[1])
video = (sys.argv[2])
# Get key from user
key_ints = input("What is your Key? ")

# Saving line time in this variable
subLineNum = ''

# Write output
output = open("subLog.txt", "w")

# var counter
counter = 1

# open file and read it
with open(subtitle, 'r') as open_read:
for line in open_read:
if "<--" in line[0:17] or "-->" in line[0:17]:
subLineNum = line
else:
if key_ints in line:
number = print(subLineNum)
second = (subLineNum[17:25])
first = (subLineNum[:8])
print(line)
print(first, second)
output.write(first + " " + second + "\n" + line + "\n")
cut1 = first[3:5]
finall_cut1 = int(cut1) - 2
cut2 = second[3:5]
finall_cut2 = finall_cut1 - int(cut2)
finall_value = abs(int(finall_cut2) * 60)
os.system("ffmpeg -i " + video + " -ss " + str(finall_cut1) + " -t " + str(finall_value)  + " -c:a copy -c:v copy out" + str(counter) + ".mp4")
counter = counter +1
output.close()

برای اجرا کردن باید دوتا آرگمان بدید که اولی زیرنویس و دومی فیلم هست!
راستی FFmpeg باید نصب باشه :D
« آخرین ویرایش: 11 خرداد 1395، 12:16 ق‌ظ توسط حسین حیدری »
طرفدار انیمه و مانگا - کاربر آرچ لینوکس

آفلاین jackbil

  • Jr. Member
  • *
  • ارسال: 71
دست شما درد نکنه واقعا زحمت کشیدید ولی فکر میکنم یه چیزی فراموش شد و اون اینه که.
این اسکریپت بیشتر جنبه آموزشی باید داشته باشه.
من یه آرشیو چند هزار تایی فیلم روی یه هارد 4 ترابایت دارم و هنوز هم خیلی از کلمات رو نمیتونم توی فیلمها پیدا کنم.
من اگر بخوام دونه دونه زینویس و فیلم رو به نرم افزار معرفی کنم ، برای هر فیلم کمه کمش باید یه 24 ساعتی وقت کنار بذارم.
آیا امکانش وجود نداشت که از دایرکتوریه فیلمها بگرده و هر فیلمی که فایل srt هم نام داشت یه لیست تهیه کنه و موقع سرچ اونا رو دونه دونه مورد بررسی قرار بده؟
همچنین اگر ممکنه بفرمایید که چه طور باید نرم افزار رو اجرا کنم.
در ضمن یه گزینه ی دیگه هم که میتونستید مد نظر قرار بدید میتونست این باشه که اصلا ویدئو ها رو کات نکنه. فقط بین فیلمه بگرده و کلمات رو پیدا کنه و مختصات رو ذخیره کنه و با اونها رو توی یه لیست نشون بده که با کلیک کردن روی هر کدون از اونها اون مختصات به یه پلیر مثل وی ال سی فرستاده بشه و ویدئو از اون قسمت های خاص نمایش داده بشه و اگر کسی خواست قسمتی از فیلم رو کات کنه خود وی ال سی این قابلیت رو داره.
باز هم تشکر میکنم بابت صبر و حوصله ای که به خرج دادید

آفلاین Nelliel

  • High Hero Member
  • *
  • ارسال: 2151
  • جنسیت : پسر
  • Nelliel Tu Odelschwanck
سلام

خب این درخواست‌ها را از اول می‌گفتی ;D
نقل‌قول
من اگر بخوام دونه دونه زینویس و فیلم رو به نرم افزار معرفی کنم ، برای هر فیلم کمه کمش باید یه 24 ساعتی وقت کنار بذارم.
این قسمت را متوجه نشدم! شما می‌خواید یه کلمه را توی یه فیلم سرچ کنید و اون قسمت فیلم بریده باشه! ولی متوجه 24 ساعت نشدم! یعنی هر جمله‌ی فیلم را می‌خواید ببره؟ :o

نقل‌قول
آیا امکانش وجود نداشت که از دایرکتوریه فیلمها بگرده و هر فیلمی که فایل srt هم نام داشت یه لیست تهیه کنه و موقع سرچ اونا رو دونه دونه مورد بررسی قرار بده؟

بله اگر از اول گفته بودید اضافه می‌کردم :)

نقل‌قول
همچنین اگر ممکنه بفرمایید که چه طور باید نرم افزار رو اجرا کنم.

توی وبلاگم نوشتم برو بخون :)
طرفدار انیمه و مانگا - کاربر آرچ لینوکس

آفلاین jackbil

  • Jr. Member
  • *
  • ارسال: 71
با سلام
چون که امکانش خیلی زیاده که یه کلمه ی به خصوص توی همه فیلمها به کار نرفته باشه برای همین با این روش باید دونه دونه صدها فیلمروبه نظرم افزار معرفی کنم تا آخر بتونه اون کلمه به خصوص رو پیدا کنه
از این جهت گفتم

آفلاین Nelliel

  • High Hero Member
  • *
  • ارسال: 2151
  • جنسیت : پسر
  • Nelliel Tu Odelschwanck
با سلام
چون که امکانش خیلی زیاده که یه کلمه ی به خصوص توی همه فیلمها به کار نرفته باشه برای همین با این روش باید دونه دونه صدها فیلمروبه نظرم افزار معرفی کنم تا آخر بتونه اون کلمه به خصوص رو پیدا کنه
از این جهت گفتم

بازم متوجه نشدم, شما دقیقا می‌خواید چیکار کنید؟ یه کلمه را توی یه فیلم پیدا کنید؟ یه کلمه را وارد کنید خودش بگرده توی همه‌ی فیلم‌ها پیدا کنه؟ یا .... تا ندونم چه انتظاراتی دارید کاری از دست من بر نمیاد :)
طرفدار انیمه و مانگا - کاربر آرچ لینوکس

آفلاین jackbil

  • Jr. Member
  • *
  • ارسال: 71
بله دقیقا
مثلا بهش کلمه enemy رو میدم. بعد اون میره سراغ دایرکتوری فیلمها و از بین فیلمهایی که فایل srt دارن میگرده ببینه توی چند تا فیلم و چه قسمتهایی این کلمه وجود داره و از یکم قبلتر و یکم بعترش رو خروجی میگیره و توی یه پوشه با نام خود کلمه ی اصلی خروجی میگیره. الان کد شما کار خودش رو انجام میده. فقط باید اتوماتیک بشه. یعنی نخوات بهش فایل ویدئو و زیرنویس رو بشناسونی. فقط یه دایرکتوری بهش بدی و اون زیرنویس ها رو لیست کنه و بعد دونه به دونه توشون بگرده - پیدا کنه و خروجی بگیره و بره بعدی تا اینکه تموم بشه.
امیدوارم تونسته باشم این دفعه منظورم رو درست منتقل کنم.
مجددا بایت حسن نیت و همکاریتون تشکر میکنم

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پایتون برای این کارها حیفه (: اسکریپت زیر فایل‌های زیرنویس SRT رو پیدا می‌کنه و بعد *فقط* نام فایلی که الگو در اون پیدا شده رو چاپ می‌کنه.
#!/usr/bin/env bash

find . -iname "*.srt" | while read -r "fn"; do
    grep -iH "enemy" "$fn"
done
« آخرین ویرایش: 14 خرداد 1395، 09:14 ق‌ظ توسط b|ackwolf »