Forumlar > Atölye > Yazılım Geliştirme (V-edit video edit programı)
sedataym kullanıcısının resmi

sedataym

Kayıt: 27/07/2007

V-edit video edit programı

python ile ffmpeg komutlarını işleten ve bir kaç formatta video, mp3 ve ogg ses dosyalarının dönüşümünü yapabilen bir program yazdım ve adını V-edit koydum...

programın şuanki görünümü bu şekilde, video kesme ve çözünürlük işleminin yanında görüntü birleştirme işlemi ve birkaç video formatını daha desteklemeyi hedefliyorum...
programın kodlarıda şunlar:

#!/usr/bin/env python
# -*- coding: utf-8 -*

from __future__ import division
import os
from Tkinter import *
import tkFileDialog,tkMessageBox
import codecs,time
# V-edit bir audio ve video converter programıdır.
# project by sedataym
# bu proje hala beta aşamasında olup çeşitli hatalar barındırmaktadır.
# v-edit ffmpeg programının son kullanıcı için daha kolay ve hatasız kullanımını hedeflemektedir..
pencere=Tk()
pencere.geometry("490x350+15+100")
pencere.title("  V-edit")
metin =Text(bg="white", height=5, width=50, font="Arialblack 12 bold", fg="black")
metin.place(relx = 0.025, rely = 0.70)
b = IntVar()
b.set(0)
Vkes = Checkbutton(text="Video Kes:", variable=b)
Vkes.place(relx = 0.01, rely = 0.15)
girisy = Entry(width=3, bg="white")
girisy.place(relx = 0.01, rely = 0.25)
girisy.insert(END, "sa")
girisy1 = Entry(width=3, bg="white")
girisy1.place(relx = 0.09, rely = 0.25)
girisy1.insert(END, "dk")
girisy2 = Entry(width=3, bg="white")
girisy2.place(relx = 0.17, rely = 0.25)
girisy2.insert(END, "sn")
kelime = Label(text=":", fg="black")
kelime.place(relx = 0.070, rely = 0.25)
kelime1 = Label(text=":", fg="black")
kelime1.place(relx = 0.15, rely = 0.25)
cikis = Entry(width=3, bg="white")
cikis.place(relx = 0.01, rely = 0.37)
cikis.insert(END, "sa")
cikis1 = Entry(width=3, bg="white")
cikis1.place(relx = 0.09, rely = 0.37)
cikis1.insert(END, "dk")
cikis2 = Entry(width=3, bg="white")
cikis2.place(relx = 0.17, rely = 0.37)
cikis2.insert(END, "sn")

kelimex = Label(text=":", fg="black")
kelimex.place(relx = 0.070, rely = 0.37)
kelimex1 = Label(text=":", fg="black")
kelimex1.place(relx = 0.15, rely = 0.37)
kelimex3 = Label(text=u"başlama süresi")
kelimex3.place(relx = 0.01, rely = 0.2)
kelimex4 = Label(text=u"bitiş süresi")
kelimex4.place(relx = 0.01, rely = 0.315)
                 # bu fonsiyon video kesme başlangıç ve bitiş zamanlarını hesaplamaktadır.
def kesx():
	global sure
	global bas
	bas1 = int(girisy.get())
	bas2 = int(girisy1.get())
	bas3 = int(girisy2.get())
	bit1 = int(cikis.get())
	bit2 = int(cikis1.get())
	bit3 = int(cikis2.get())
	bas = ((bas1*3600)+(bas2*60)+bas3)
	bit = ((bit1*3600)+(bit2*60)+bit3)
	sure = "%s" %(bit-bas)
	sec()
	time.sleep(1)
	dondur()
def sec():           #kesme işlemi yapılıp yapılamayacağı konrol ediliyor
	global kes
	if b.get() == 1:
		kes = "-ss "+"%s" %(bas)+" -t "+"%s" %(sure)+" "
	else:
		kes= " "
def kaydet():
	if b.get() == 1:
		kesx()
	else:
		sec()
		time.sleep(1)
		dondur()
menu = Menu(pencere)
pencere.config(menu=menu)

def default():
	global coz        #video çözünürlüğü ayarlanıyor..
	coz = " "
def c128x96():
	global coz
	coz = " -s 128x96"
def c2560x2048():
	global coz
	coz = " -s 2560x2048"
def c176x144():
	global coz
	coz = " -s 176x144"
def c352x288():
	global coz
	coz = " -s 352x288"
def c704x576():
	global coz
	coz = " -s 704x576"
def c800x600():
	global coz
	coz = " -s 800x600"
def c1024x768():
	global coz
	coz = " -s 1024x768"
def c1600x1200():
	global coz
	coz = " -s 1600x1200"
def c2048x1536():
	global coz
	coz = " -s 2048x1536"
def dvdmpg():
	global uzan
	uzan = "dvd.mpg"
def dvdavi():
	global uzan
	uzan = "dvd.avi"
def vcdmpg():
	global uzan
	uzan = "vcd.mpg"
def vcdavi():
	global uzan
	uzan = "vcd.avi"
def mp3():
	global uzan
	uzan = "mp3"
def ogg():
	global uzan
	uzan = "ogg"
def ucgp():
	global uzan
	uzan = "ucgp"
def flv():
	global uzan
	uzan = "flv"
def ac():
	global giris1
	giris = tkFileDialog.askopenfilename()
	giris1 = giris
def vcd():
	os.system("vcdxrip -C /dev/cdrom -p -v --filename-encoding=iso-8859-9")	#VCD filmleri mpg formatında bilgisayara kaydediyor...
def dondur():          #ffmpeg formül ve parametreleri...
	metin.delete(1.0, END)
	time.sleep(2)	
	try:	
		if uzan == "dvd.mpg":
			trk=os.system("ffmpeg -i"+" " + '"%s"' %(giris1) +" "+"-target ntsc-dvd"+coz+kes+"default"+"."+uzan)
		elif uzan == "ucgp":
			trk=os.system("ffmpeg -i"+" "+'"%s"' %(giris1) +coz+kes+"-vcodec h263 -acodec mp3 -ac 1 -ar 8000 -ab 32 -y default.3gp")
		elif uzan == "mp3":
			trk=os.system("ffmpeg -i"+" "+'"%s"' %(giris1)+" "+"-f mp3 -vn -acodec copy "+kes+"default.mp3")
		elif uzan == "flv":
			trk=os.system("ffmpeg -i"+" "+'"%s"' %(giris1)+" "+"-ar 22050 -ab 32 -f flv"+coz+kes+"default.flv")
		elif uzan == "dvd.avi":
			trk=os.system("ffmpeg -i"+" " + '"%s"' %(giris1) +" "+"-target ntsc-dvd"+coz+kes+"default"+"."+uzan)
		elif uzan == "vcd.avi":
			trk=os.system("ffmpeg -i"+" " + '"%s"' %(giris1) +" "+"-f avi -vcodec mpeg4 -acodec copy"+coz+kes+"default"+"."+uzan)
		elif uzan == "vcd.mpg":
			trk=os.system("ffmpeg -i"+" " + '"%s"' %(giris1) +" "+"-target ntsc-vcd"+coz+kes+"default"+"."+uzan)
		elif uzan == "ogg":
			trk=os.system("ffmpeg -i"+" "+'"%s"' %(giris1)+" "+"-acodec vorbis -aq 20 -ar 22050 -ab 128k "+kes+"default.ogg")
	except NameError:
		metin.delete(1.0, END)
		metin.insert(END, u"lütfen bir kayıt uzantısı ve çözünürlük seçiniz...")

donbtn = Button(text="dosya ac", command=ac)
donbtn.place(relx = 0.01, rely = 0.01)
acbtn = Button(text="kaydet", command=kaydet)
acbtn.place(relx = 0.18, rely = 0.01)
vcdbtn = Button(text="VCD'den al", command=vcd)
vcdbtn.place(relx = 0.32, rely = 0.01)
dosya = Menu(menu, tearoff=0)
menu.add_cascade(label="Dosya",menu=dosya)
dosya.add_command(label="Aç", command = ac)
dosya.add_command(label="Çıkış",command = pencere.quit)

dosya2 = Menu(menu,tearoff=0)
menu.add_cascade(label="Kaydet",menu=dosya2)
dosya2.add_command(label="Kaydet", command = dondur)

dosya3 = Menu(menu,tearoff=0)
menu.add_cascade(label=u"kayıt uzantısı",menu=dosya3)
dosya3.add_command(label="flv", command=flv)
dosya3.add_command(label="rm")
dosya3.add_command(label="mp3", command=mp3)
dosya3.add_command(label="ogg", command=ogg)
dosya3.add_command(label="3gp", command=ucgp)

mpg = Menu(dosya3,tearoff=0)
dosya3.add_cascade(label="mpg",menu=mpg)
mpg.add_command(label="DVD mpg", command = dvdmpg)
mpg.add_command(label="VCD mpg", command = vcdmpg)

avi = Menu(dosya3,tearoff=0)
dosya3.add_cascade(label="avi",menu=avi)
avi.add_command(label="DVD avi", command = dvdavi)
avi.add_command(label="VCD avi", command = vcdavi)


dosya4 = Menu(menu,tearoff=0)
menu.add_cascade(label=u"çözünürlük",menu=dosya4)
dosya4.add_command(label="default", command=default)
dosya4.add_command(label="128x96", command=c128x96)
dosya4.add_command(label="176x144", command=c176x144)
dosya4.add_command(label="352x288", command=c352x288)
dosya4.add_command(label="704x576", command=c704x576)
dosya4.add_command(label="800x600", command=c800x600)
dosya4.add_command(label="1024x768", command=c1024x768)
dosya4.add_command(label="1600x1200", command=c1600x1200)
dosya4.add_command(label="2048x1536", command=c2048x1536)
dosya4.add_command(label="2560x2048",command=c2560x2048)
mainloop()

dosyanın orjinalide ektedir.

Top
istihza kullanıcısının resmi

istihza

Kayıt: 26/12/2006

Re: V-edit video edit programı

linuxcu wrote:
Sagol arkadasim,denecegim emegine saglik. Smile

Linuxcu, eğer Pardus-2008 kullanıyorsan bu programı 2008 altında kullanamazsın. Çünkü depolarda tkinter paketi yok!... O yüzden çalışmazsa şaşırma... Smile

Top
istihza kullanıcısının resmi

istihza

Kayıt: 26/12/2006

Re: V-edit video edit programı

Sedataym, eline sağlık. Henüz denemeyemedim, ama denedikten sonra eğer bir problemi yoksa bunu pardus-2007 depomuza alalım mı?

Top
sedataym kullanıcısının resmi

sedataym

Kayıt: 27/07/2007

Re: V-edit video edit programı

istihza wrote:
Sedataym, eline sağlık. Henüz denemeyemedim, ama denedikten sonra eğer bir problemi yoksa bunu pardus-2007 depomuza alalım mı?

pardus deposuna katkıda bulunmak beni çok mutlu eder... Laughing out loud

Top
istihza kullanıcısının resmi

istihza

Kayıt: 26/12/2006

Re: V-edit video edit programı

sedataym wrote:
istihza wrote:
Sedataym, eline sağlık. Henüz denemeyemedim, ama denedikten sonra eğer bir problemi yoksa bunu pardus-2007 depomuza alalım mı?

pardus deposuna katkıda bulunmak beni çok mutlu eder... Laughing out loud

"pardus-2007" nereden çıktı yahu!... "users-2007" diyecektim... Smile

Top
enki kullanıcısının resmi

enki

Kayıt: 05/07/2005

Re: V-edit video edit programı

V-edit yerine V - düzelt değiştir yap kes vsr gibi bir isim daha sıcak gelirdi bana Smile

Top
sedataym kullanıcısının resmi

sedataym

Kayıt: 27/07/2007

Re: V-edit video edit programı

Haklısın enki türkçe bir isim daha güzel olabilir bencede... Burada kulağa hoş gelen türkçe bir ismi hep birlikte tartışabiliriz. Laughing out loud (ben bir isim bulana kadar V-edit demeye devam edeceğim)
V-edit programını birkaç gündür test ediyorum ve genel hatlarıyla şuan desteklediği medya dosyaları arasında en az kayıpla çevrim ve kesme işlemi yapabiliyor...
desteklediği formatlar ise ilk etapta şunlar

--> avi,mpg,mwv,3gp gibi formatlardan flv formatına dönüşüm
-->avi,mpg,mwv,flv den 3gp ye dönüşüm(nokia telefonlarda denemedim ama bilgisayarda gayet iyi sonuç veriyor.
--> avi,mpg,mwv,flv den mov formatına dönüşüm
--> avi,mpg,mwv,flv,wma videolarını mp3 formatına dönüştürebiliyor (yani videodan sadece sesi alıyoruz.)
-->wma,mp3 formatlarını ogg formatına seste kayıp olmadan dönüştürme(ogg ye dönüşen ses dosyalarının boyutuda hatrı sayılır oranda düşüyor ve ses kalitesinde hissedilir bir değişim olmuyor Wink )
-->flv,mpg,3gp,mov formatlarını avi formatına dönüştürme
-->flv,avi,3gp,mov formatlarını vcd ve dvd olmak üzere iki kalitede dönüştürebilme imkanı ve PAL, NTSC görüntü seçeneklerini ayarlayabilme
ayrıca dönüştüreceğimiz video dosyalarında 10 farklı seçenek ile çözünürlüğünü ayarlayabilme imkanı sunuyor.
programdaki video kes bölümü ile videomuzun istediğimiz bir bölümünü rahatlıkla kesip kırpabiliyoruz.
VCD'den al özelliği ile vcd filmlerimizi bilgisayara mpg formatında tek tuş ile kaydedebiliyoruz.
kısa zaman içinde video birleştirme özelliğinide V-edit'e kazandırmayı ve desteklediği formatları arttırmayı planlıyorum...
Fakat program şu hali ilede gayet kullanışlı bir hal aldı...
programın kullanımı gayet basit :
dosya ac'tan veya dosya>aç yollarını takip ederek dönüşüm yapacağımız medya dosyamızı seçiyoruz..
sonrasında dönüşüm yapmak istediğimiz kayıt uzantısını seçiyoruz.
eğer dönüşüm yapacağımız dosya bir görüntü dosyası ise bir çözünürlük seçiyoruz.
mpg formatına döüşüm yapacaksak görüntü sekmesinden NTSC veya PAL seçeneklerinden birini seçiyoruz ( diyer uzantılar için gerekli değil)
eğer videonun sadece belli bir bölümünü almak istiyorsak video kes bölümünü seçiyoruz, başlangıç ve bitiş sürelerini saat, dakika ve saniye olarak giriyoruz ve en son kaydet butonuna basıp arkamıza yaslanıyoruz Wink
programın şuanki en bariz sorunu kaydet butonuna bastıktan sonra program dönüşüme başladığında dönüşüm bitene kadar programı kapatamıyoruz. bütün butonlar işlevsizleşiyor dönüşüm bittiğinde herşey eski haline dönüyor.
programın son hali ektedir pardus'ta python-tk paketinin olmaması büyük bir sorun ama deneyip sonuçları bildiren arkadaşlar olursa çok sevinirim...

Top
istihza kullanıcısının resmi

istihza

Kayıt: 26/12/2006

Re: V-edit video edit programı

Sedataym,

Donma sorunu için öncelikle thread modülünü içe aktar.

Daha sonra şöyle bir fonksiyon tanımla:

def katman():
	thread.start_new(kaydet,())
	basla = 1
	while basla:
		break

Ondan sonra acbtn'yi şöyle yap:

acbtn = Button(text="kaydet", command=katman)

Yani "command=kaydet" yerine "command="katman" olacak.

Dosyanın son hali ekte.

Top
sedataym kullanıcısının resmi

sedataym

Kayıt: 27/07/2007

Re: V-edit video edit programı

V-edit ses ve görüntü işleme programındaki son gelişmeler:

V-edit'in gün geçtikçe daha işlevsel bir hal alabilmesi için program üzerinde çalışmaya devam ediyorum.
son olarak programın arayüzünde düzenlemeye gittim ve yeni özellikler kazandırabilmek için çalıştım.
yeni eklenen özellikler şunlar:
En yeni ve önemli özellik ses ve video dosyalarını birleştirme özelliği (yanlızca mpg ve mp3 dosyalarını ard arda ekleyebiliyor)
seçilen özellikleri text aracına yazıyor.
wmv ve XvİD formatları yeni eklendi.
istihza hocamın yardımıyla donma sorunu çözülmüş oldu ve bu programa aynı anda birbirinden bağımsız birçok işlem yapabilme özelliğini getirdi.
programın son arayüzü şu şekilde:

Top
istihza kullanıcısının resmi

istihza

Kayıt: 26/12/2006

Re: V-edit video edit programı

Selamlar,

Güzel olmuş, yalnız görüntü olarak Pardus'ta düğmeler birbirine çok yakın görünüyor. Ayrıca üst menüdeki "görüntü" menüsü aşağıya kaymış.

Top
istihza kullanıcısının resmi

istihza

Kayıt: 26/12/2006

Re: V-edit video edit programı

Bu arada, tabii program içinde bazı uyarılar da versen iyi olur bence. Örneğin:

"çözünürlük/uzantı/vb.." seçmediniz!
"İşlem başladı"
"İşlem başarıyla tamamlandı"
"İşlem başarısız oldu"

Top