[Arşiv][Çözüldü]Cd ' ye yazdırma..

Başlatan lseker, 27 Mayıs 2008 - 22:50:48

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

munirekinci

Bu şekilde VCD oynatıcınız doğru biçimde çalıştırdı mı?

lseker

sure isimleri 001-002-003- şeklinde cd'ye yazdırıncada aynı şekilde sıralanmış olarak yazıldı. VCD player da da 001 isimli sure başlıyor ve bitince ardısık olarak devam ediyor.. evet.. :D
Dünya Güneş'in yardımı ile yaratıldı...Olduğu gibi kalmalı.
Toprak yaratıldığında üzerinde sınır çizgileri yoktu, onu bölmek insanlara düşmez.

lseker

#27
@erginemr ,
cd ~/Kuran/$a    satırından sonra

Alıntı Yap# Bütün dosyaları wma'dan mp3'e çevir
    for b in *.wma; do mv "$b"
   ffmpeg -i $b.wma -ab 32 $b.mp3
yazarak klasöre girdikten sonra oradaki tüm dosyaları .mp3 yapmak mümküm olurmu ?
Not: neden soruyo diyorsanız indirdiğim orjinal klasördeki dosyalar .wma olarak indirmiş windows'ta mp3 ' e çevirmiştim. Yukarıdaki satır çalışırsa direk önce ayetleri .mp3 yapacak sonra birleştirecek ve yeniden isimlendirerek en son /son dizinine taşıyacak ..
Dünya Güneş'in yardımı ile yaratıldı...Olduğu gibi kalmalı.
Toprak yaratıldığında üzerinde sınır çizgileri yoktu, onu bölmek insanlara düşmez.

erginemr

#28
Rica ederim, sağolun. Anneniz de mutlu olmuştur umarım.

Sorunuza gelirsek;
Bence de doğru yolda gidiyorsunuz, sizden iyi programcı olur. ;)

Program ilk döngü içine girdiği zaman:

for b in *.wma; do
   mv "$b"
   ffmpeg -i $b -ab 32k $b.mp3
done

şeklinde ikinci bir döngü (nested loop) oluşturarak, önce bütün dosyaları wma'dan mp3'e çevirmek iyi bir fikir.

Yalnız
   mv "$b"
nin ne iş yaptığını çözemedim. Sanki o satırı ffmpeg dönüşümünün hemen arkasına atsak ve aynı satıra;
&&   rm $b
şeklinde yazsak, artık gereksiz olan *.wma dosyalarını silecek ve daha işlevsel olacak. Buradaki && bağlacının anlamı ilk komut, yani ffmpeg dönüşümü başarılı olursa ikinci komutu işlet, yani dosyayı sil, yoksa silme demek.

Bir de Adbüssamed'in tilaveti/zikri (?) aşağıdaki sayfada;
http://zekr.org/resources.html
64 kbps olarak gözüküyor. Bu durumda;
   ffmpeg -i $b -ab 64k $b.mp3
yazmak, ses kalitesi daha yüksek olan dosyalar oluşturacaktır.

Bu komut neticesinde $b değişkeni ile ifade edilen farz-ı mahal "001.wma" dosyası, "001.wma.mp3" olarak çevrilecek ve isimlendirilecek, başka bir deyişle dosya ismi içinde fazladan ".wma." ibaresi olacak. Bu durum, betiğin devamının işleyişini bozacağından ötürü, fazladan aşağıdaki isim değiştirme satırına ihtiyacımız var:
rename "s/(.*).wma.mp3/\1.mp3/" * 2>/dev/null

Burada (.*).wma.mp3 ifadesi, *.wma.mp3 ile biten dosyaları bul, () vasıtasıyla bu ismi \1 değişkenine kaydet ve "s/bul/değiştir/" şeklindeki regex (düzenli ifadeler) ifadesinin ikinci kısmında *.mp3 olarak yeniden adlandır demek. Bu arada, rename komutunun genel olarak yazılış şekli de:
rename "Düzenli ifade (regex)" Dosyalar

Sondaki
... 2>/dev/null
kısmı ise işlemin sonucunda hata/uyarı vb. alınırsa (ki $1 yerine \1 kullandığım için uyarı veriyor) bu uyarıyı /dev/null sanal aygıtına, bir anlamda hiçliğe, uzayın derinliklerine yolluyor.

(".wma." Bash'te "mv" ile başka bir şekilde de ayıklanıyordu, ama şu an nasıl olduğunu hatırlayamadım.)

Her neyse; sonuç olarak, betiğimizi yukarıdaki şekilde güncellersek;

...
for a in {1..114}; do         
   cd ~/Kuran/$a               

# Eklenen satırların başlangıcı
   for b in *.wma; do
      ffmpeg -i $b -ab 64k $b.mp3 && rm $b
   done
   rename "s/(.*).wma.mp3/\1.mp3/" * 2>/dev/null
# Eklenen satırların sonu

   rename "s/(^\d{1})\.mp3/00\1.mp3/" * 2>/dev/null
   rename "s/(^\d{2})\.mp3/0\1.mp3/" * 2>/dev/null
   mp3wrap sure-$a *.mp3
   mv sure-$a\_MP3WRAP.mp3 sure-$a.mp3
   mv sure-$a.mp3 ~/Kuran/Son
done
...

ve oluşabilecek hataları gözden geçirerek ayıklarsak, istediğiniz gibi çalışır hale getirmiş oluruz.

(Not: "&& rm $b" kısmını hiç kullanmasanız ve *.wma dosyaları klasörden silmeseniz de olur.)

lseker

Süpper... teşekkür ederim. :)
Dünya Güneş'in yardımı ile yaratıldı...Olduğu gibi kalmalı.
Toprak yaratıldığında üzerinde sınır çizgileri yoktu, onu bölmek insanlara düşmez.