Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -1118,25 +1118,15 @@ async def process_single_video(task, redis_client):
|
|
| 1118 |
raw_video_path = await clone_client.download_media(msg)
|
| 1119 |
print(f"▶️ [WM] Original Video Downloaded: {raw_video_path}")
|
| 1120 |
|
| 1121 |
-
await clone_client.edit_message_text(owner_id, status_msg.id, "⏳ <b>
|
| 1122 |
-
|
| 1123 |
-
raw_sent = await bot.send_video(
|
| 1124 |
-
chat_id=STORAGE_CHANNEL_ID,
|
| 1125 |
-
video=raw_video_path,
|
| 1126 |
-
caption=f"Original Backup for Clone Owner {owner_id}"
|
| 1127 |
-
)
|
| 1128 |
-
raw_storage_id = raw_sent.id
|
| 1129 |
-
stream_link = f"{BACKEND_URL}/stream/{raw_storage_id}"
|
| 1130 |
-
download_link = f"{BACKEND_URL}/download/{raw_storage_id}"
|
| 1131 |
-
|
| 1132 |
-
await clone_client.edit_message_text(owner_id, status_msg.id, "⏳ <b>ওয়াটারমার্ক যুক্ত করা হচ্ছে... (কিছুক্ষণ সময় লাগতে পারে)</b>", parse_mode=enums.ParseMode.HTML)
|
| 1133 |
|
| 1134 |
watermarked_path = f"wm_{task_id}.mp4"
|
| 1135 |
|
|
|
|
| 1136 |
cmd = [
|
| 1137 |
"ffmpeg", "-y", "-i", raw_video_path,
|
| 1138 |
"-vf", f"drawtext=text='{wm_text}':x=W-tw-20:y=H-th-20:fontsize=22:fontcolor=white@0.7:shadowcolor=black@0.8:shadowx=2:shadowy=2:enable='gte(t,5)'",
|
| 1139 |
-
"-c:v", "libx264", "-preset", "
|
| 1140 |
"-c:a", "copy", "-movflags", "+faststart", watermarked_path
|
| 1141 |
]
|
| 1142 |
|
|
@@ -1154,15 +1144,28 @@ async def process_single_video(task, redis_client):
|
|
| 1154 |
if not os.path.exists(thumb_path) or os.path.getsize(thumb_path) == 0:
|
| 1155 |
thumb_path = None
|
| 1156 |
|
| 1157 |
-
await clone_client.edit_message_text(owner_id, status_msg.id, "⏳ <b>ফাইনাল ভিডিও আপলোড হচ্ছে...</b>", parse_mode=enums.ParseMode.HTML)
|
| 1158 |
|
| 1159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1160 |
chat_id=STORAGE_CHANNEL_ID,
|
| 1161 |
video=watermarked_path,
|
| 1162 |
caption=f"Watermarked Backup for Clone Owner {owner_id}",
|
| 1163 |
thumb=thumb_path
|
| 1164 |
)
|
| 1165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1166 |
final_caption = (
|
| 1167 |
f"✅ <b>Watermark Successfully Added!</b>\n\n"
|
| 1168 |
f"🎬 <b>Stream/Watch Online Link:</b>\n<code>{stream_link}</code>\n\n"
|
|
|
|
| 1118 |
raw_video_path = await clone_client.download_media(msg)
|
| 1119 |
print(f"▶️ [WM] Original Video Downloaded: {raw_video_path}")
|
| 1120 |
|
| 1121 |
+
await clone_client.edit_message_text(owner_id, status_msg.id, "⏳ <b>ওয়াটারমার্ক যুক্ত করা হচ্ছে... (High Speed CPU Mode)</b>", parse_mode=enums.ParseMode.HTML)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1122 |
|
| 1123 |
watermarked_path = f"wm_{task_id}.mp4"
|
| 1124 |
|
| 1125 |
+
# Hugging Face এ দ্রুত প্রসেস করার জন্য ultrafast, threads 4 এবং crf 26 ব্যবহার করা হলো
|
| 1126 |
cmd = [
|
| 1127 |
"ffmpeg", "-y", "-i", raw_video_path,
|
| 1128 |
"-vf", f"drawtext=text='{wm_text}':x=W-tw-20:y=H-th-20:fontsize=22:fontcolor=white@0.7:shadowcolor=black@0.8:shadowx=2:shadowy=2:enable='gte(t,5)'",
|
| 1129 |
+
"-c:v", "libx264", "-preset", "ultrafast", "-crf", "26", "-threads", "4",
|
| 1130 |
"-c:a", "copy", "-movflags", "+faststart", watermarked_path
|
| 1131 |
]
|
| 1132 |
|
|
|
|
| 1144 |
if not os.path.exists(thumb_path) or os.path.getsize(thumb_path) == 0:
|
| 1145 |
thumb_path = None
|
| 1146 |
|
| 1147 |
+
await clone_client.edit_message_text(owner_id, status_msg.id, "⏳ <b>ফাইনাল ভিডিও স্টোরেজে আপলোড হচ্ছে...</b>", parse_mode=enums.ParseMode.HTML)
|
| 1148 |
|
| 1149 |
+
# Background এ অরিজিনাল ভিডিও স্টোরেজে পাঠানো হচ্ছে, যাতে ইউজারকে ওয়েট করতে না হয়
|
| 1150 |
+
async def backup_raw_video():
|
| 1151 |
+
try:
|
| 1152 |
+
await bot.send_video(chat_id=STORAGE_CHANNEL_ID, video=raw_video_path, caption=f"Original Backup for Clone Owner {owner_id}")
|
| 1153 |
+
except Exception: pass
|
| 1154 |
+
asyncio.create_task(backup_raw_video())
|
| 1155 |
+
|
| 1156 |
+
# ওয়াটারমার্ক করা ভিডিওটি আপলোড হচ্ছে (সঠিক Stream Link বানানোর জন্য)
|
| 1157 |
+
wm_sent = await bot.send_video(
|
| 1158 |
chat_id=STORAGE_CHANNEL_ID,
|
| 1159 |
video=watermarked_path,
|
| 1160 |
caption=f"Watermarked Backup for Clone Owner {owner_id}",
|
| 1161 |
thumb=thumb_path
|
| 1162 |
)
|
| 1163 |
|
| 1164 |
+
# FIX: এখন লিংকগুলো অরিজিনালের বদলে ওয়াটারমার্ক ভিডিও পয়েন্ট করবে
|
| 1165 |
+
wm_storage_id = wm_sent.id
|
| 1166 |
+
stream_link = f"{BACKEND_URL}/stream/{wm_storage_id}"
|
| 1167 |
+
download_link = f"{BACKEND_URL}/download/{wm_storage_id}"
|
| 1168 |
+
|
| 1169 |
final_caption = (
|
| 1170 |
f"✅ <b>Watermark Successfully Added!</b>\n\n"
|
| 1171 |
f"🎬 <b>Stream/Watch Online Link:</b>\n<code>{stream_link}</code>\n\n"
|