Aaja Meri Gaadi Me 💞 old Hindi songs music
Umesh Kushwaha
0:00 / 0:00
Aaja Meri Gaadi Me 💞 old Hindi songs music
20 просмотров · 5 дней назад
Umesh Kushwaha
6 подписчиков
20 просмотров · 5 дней назад
Aaja Meri Gaadi Me 💞 old Hindi songs music
#hindi #song #djremix #popular #sadabaharpuranegane
from PIL import Image, ImageDraw, ImageFont
import cv2, numpy as np, os
screen_path="/mnt/data/1000018429.jpg"
portrait_path="/mnt/data/1000018204.jpg"
out_path="/mnt/data/adsense_fix_youtube_video.mp4"
W,H=720,1280
fps=24
screen=Image.open(screen_path).convert("RGB")
portrait=Image.open(portrait_path).convert("RGB")
font_path="/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf"
dev_path="/usr/share/fonts/truetype/noto/NotoSansDevanagari-Bold.ttf"
if not os.path.exists(dev_path):
dev_path=font_path
def F(n, hindi=False):
return ImageFont.truetype(dev_path if hindi else font_path,n)
def fit(im,mw,mh):
s=min(mw/im.width,mh/im.height)
return im.resize((int(im.width*s),int(im.height*s)),Image.Resampling.LANCZOS)
Precompute images once
portrait_fit=fit(portrait,W,H)
screen_fit=fit(screen,620,920)
def frame_intro():
bg=portrait_fit.resize((W,H))
darken
a=np.array(bg).astype(np.float32)*0.62
bg=Image.fromarray(a.clip(0,255).astype(np.uint8))
d=ImageDraw.Draw(bg)
d.rounded_rectangle((35,390,685,820),30,fill=(0,0,0,175))
d.text((60,445),"YOUTUBE ADSENSE",font=F(48),fill="white")
d.text((60,520),"PROBLEM?",font=F(76),fill=(255,210,20))
d.text((60,625),"अब ऐसे करें ठीक",font=F(54,True),fill="white")
d.rounded_rectangle((60,710,660,790),22,fill=(220,30,40))
d.text((175,725),"STEP BY STEP GUIDE",font=F(35),fill="white")
return np.array(bg)
def frame_problem():
bg=Image.new("RGB",(W,H),(10,13,18))
d=ImageDraw.Draw(bg)
d.rectangle((0,0,W,170),fill=(225,25,35))
d.text((35,45),"FIX YOUR ADSENSE",font=F(45),fill="white")
d.text((35,105),"FOR YOUTUBE ACCOUNT",font=F(30),fill=(255,220,30))
x=(W-screen_fit.width)//2; y=205
bg.paste(screen_fit,(x,y))
d=ImageDraw.Draw(bg)
d.rounded_rectangle((35,1135,685,1235),25,fill=(225,25,35))
d.text((72,1160),"Invalid Click / Policy Issue",font=F(33),fill="white")
return np.array(bg)
def frame_solution():
bg=Image.new("RGB",(W,H),(10,13,18))
d=ImageDraw.Draw(bg)
d.rectangle((0,0,W,180),fill=(225,25,35))
d.text((35,42),"ADSENSE PROBLEM",font=F(48),fill="white")
d.text((35,105),"क्या करें?",font=F(52,True),fill=(255,215,25))
steps=[
"1. AdSense email पढ़ें",
"2. वजह समझें और गलती रोकें",
"3. YouTube policies follow करें",
"4. Review / appeal करें",
]
y=275
for s in steps:
d.ellipse((35,y,95,y+60),fill=(40,180,85))
d.text((53,y+8),s[0],font=F(34),fill="white")
d.text((115,y+5),s[3:],font=F(31),fill="white")
y+=125
d.rounded_rectangle((45,790,675,890),25,fill=(225,25,35))
d.text((83,815),"गलती दोबारा न करें • पूरा वीडियो देखें",font=F(29),fill="white")
p=fit(portrait,430,330)
bg.paste(p,((W-p.width)//2,915))
d=ImageDraw.Draw(bg)
d.text((165,1240),"LIKE • SHARE • SUBSCRIBE",font=F(27),fill="white")
return np.array(bg)
Cache 3 key frames and encode them with timing
frames=[frame_intro(),frame_problem(),frame_solution()]
fourcc=cv2.VideoWriter_fourcc(*"mp4v")
writer=cv2.VideoWriter(out_path,fourcc,fps,(W,H))
3.5s intro, 4.5s problem, 4s solution
counts=[84,108,96]
for fr,count in zip(frames,counts):
bgr=cv2.cvtColor(fr,cv2.COLOR_RGB2BGR)
for _ in range(count):
writer.write(bgr)
writer.release()
print(f"वीडियो तैयार है: {out_path}")