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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: Nelliel در 10 خرداد 1395، 10:51 ب‌ظ

عنوان: جست و جو در زیرنویس و بریدن قسمت مربوط به ویدئو
ارسال شده توسط: Nelliel در 10 خرداد 1395، 10:51 ب‌ظ
سلام
یک دوستی دراینجا(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
عنوان: پاسخ : جست و جو در زیرنویس و بریدن قسمت مربوط به ویدئو
ارسال شده توسط: jackbil در 11 خرداد 1395، 10:38 ق‌ظ
دست شما درد نکنه واقعا زحمت کشیدید ولی فکر میکنم یه چیزی فراموش شد و اون اینه که.
این اسکریپت بیشتر جنبه آموزشی باید داشته باشه.
من یه آرشیو چند هزار تایی فیلم روی یه هارد 4 ترابایت دارم و هنوز هم خیلی از کلمات رو نمیتونم توی فیلمها پیدا کنم.
من اگر بخوام دونه دونه زینویس و فیلم رو به نرم افزار معرفی کنم ، برای هر فیلم کمه کمش باید یه 24 ساعتی وقت کنار بذارم.
آیا امکانش وجود نداشت که از دایرکتوریه فیلمها بگرده و هر فیلمی که فایل srt هم نام داشت یه لیست تهیه کنه و موقع سرچ اونا رو دونه دونه مورد بررسی قرار بده؟
همچنین اگر ممکنه بفرمایید که چه طور باید نرم افزار رو اجرا کنم.
در ضمن یه گزینه ی دیگه هم که میتونستید مد نظر قرار بدید میتونست این باشه که اصلا ویدئو ها رو کات نکنه. فقط بین فیلمه بگرده و کلمات رو پیدا کنه و مختصات رو ذخیره کنه و با اونها رو توی یه لیست نشون بده که با کلیک کردن روی هر کدون از اونها اون مختصات به یه پلیر مثل وی ال سی فرستاده بشه و ویدئو از اون قسمت های خاص نمایش داده بشه و اگر کسی خواست قسمتی از فیلم رو کات کنه خود وی ال سی این قابلیت رو داره.
باز هم تشکر میکنم بابت صبر و حوصله ای که به خرج دادید
عنوان: پاسخ : جست و جو در زیرنویس و بریدن قسمت مربوط به ویدئو
ارسال شده توسط: Nelliel در 11 خرداد 1395، 10:58 ق‌ظ
سلام

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

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

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

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

توی وبلاگم نوشتم برو بخون :)
عنوان: پاسخ : جست و جو در زیرنویس و بریدن قسمت مربوط به ویدئو
ارسال شده توسط: jackbil در 13 خرداد 1395، 09:27 ق‌ظ
با سلام
چون که امکانش خیلی زیاده که یه کلمه ی به خصوص توی همه فیلمها به کار نرفته باشه برای همین با این روش باید دونه دونه صدها فیلمروبه نظرم افزار معرفی کنم تا آخر بتونه اون کلمه به خصوص رو پیدا کنه
از این جهت گفتم
عنوان: پاسخ : جست و جو در زیرنویس و بریدن قسمت مربوط به ویدئو
ارسال شده توسط: Nelliel در 13 خرداد 1395، 10:29 ق‌ظ
با سلام
چون که امکانش خیلی زیاده که یه کلمه ی به خصوص توی همه فیلمها به کار نرفته باشه برای همین با این روش باید دونه دونه صدها فیلمروبه نظرم افزار معرفی کنم تا آخر بتونه اون کلمه به خصوص رو پیدا کنه
از این جهت گفتم

بازم متوجه نشدم, شما دقیقا می‌خواید چیکار کنید؟ یه کلمه را توی یه فیلم پیدا کنید؟ یه کلمه را وارد کنید خودش بگرده توی همه‌ی فیلم‌ها پیدا کنه؟ یا .... تا ندونم چه انتظاراتی دارید کاری از دست من بر نمیاد :)
عنوان: پاسخ : جست و جو در زیرنویس و بریدن قسمت مربوط به ویدئو
ارسال شده توسط: jackbil در 14 خرداد 1395، 08:25 ق‌ظ
بله دقیقا
مثلا بهش کلمه enemy رو میدم. بعد اون میره سراغ دایرکتوری فیلمها و از بین فیلمهایی که فایل srt دارن میگرده ببینه توی چند تا فیلم و چه قسمتهایی این کلمه وجود داره و از یکم قبلتر و یکم بعترش رو خروجی میگیره و توی یه پوشه با نام خود کلمه ی اصلی خروجی میگیره. الان کد شما کار خودش رو انجام میده. فقط باید اتوماتیک بشه. یعنی نخوات بهش فایل ویدئو و زیرنویس رو بشناسونی. فقط یه دایرکتوری بهش بدی و اون زیرنویس ها رو لیست کنه و بعد دونه به دونه توشون بگرده - پیدا کنه و خروجی بگیره و بره بعدی تا اینکه تموم بشه.
امیدوارم تونسته باشم این دفعه منظورم رو درست منتقل کنم.
مجددا بایت حسن نیت و همکاریتون تشکر میکنم
عنوان: پاسخ : جست و جو در زیرنویس و بریدن قسمت مربوط به ویدئو
ارسال شده توسط: 藤沼 در 14 خرداد 1395، 09:10 ق‌ظ
پایتون برای این کارها حیفه (: اسکریپت زیر فایل‌های زیرنویس SRT رو پیدا می‌کنه و بعد *فقط* نام فایلی که الگو در اون پیدا شده رو چاپ می‌کنه.
#!/usr/bin/env bash

find . -iname "*.srt" | while read -r "fn"; do
    grep -iH "enemy" "$fn"
done