C# Video Üzerine Yazı Yazma

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S1b3r_HasTa
    S1b3r_HasTa's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    Geliştirmekte olduğum bir yazılım var, c# windows forms application olarak amacı karşı tarafın bilgisayarına kurduğumda kişinin ekranda ne yapıyor ne ediyor diye ekran görüntüsünü .wmv, .avi formatlarınıda destekler biçimde ister standart olarak kaydetme ister sıkıştırıp kaydetme olanağı tanıyan bir program. 

    ScreenCaptureVideoProfile.Quality ayarlaması

    ScreenCaptureVideoProfile.FrameRate ayarlaması ile uğraşıyorum sistemin temelinde bu gibi kodlarım yatmakta (merak edenler için)

    using Microsoft.Expression.Encoder;

    using Microsoft.Expression.Encoder.ScreenCapture;

    using Microsoft.Expression.Encoder.Live;

     

    gibi kütüphaneler ile çalışıyorum geliştirdiğim yazılımın başka spesifik özellikleride mevcut detaya girmeyeceğim

     

    Müridler esas mesele sizlerin görüşene başvurmamın nedeni gayet güzel kaydetmiş olduğum videonun içine bir de Label olarak yazı eklemek istiyorum video kaydedilirken, ne tür parametreler geçirebilirim nasıl bir class yazmalıyım ne gibi eventlere/triggerlara ihtiyacım olacak bilemedim o labeli o videonun içine nasıl gömerim program kullanıcının ekranında yaptıklarını kayıt altına alması esnasında, video kaydetmeye başladığı esnada (record butonuna basıldığı anda) ? Bu olayı tarih için istiyorum videonun sağ alt köşedinde tarih yazdırıp ona göre arşivleme yapacağım. 

    Ciddi anlamda .net teknolojilerine hakim olup c# bilenlerin yanı sıra tüm müritlerden fikir almak isterim. İngilizce dahil olmak üzere kaynaklardan araştırdım fakat elle tutulur birşey bulamadım.

    Şimdiden teşekkürler.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    işine yararsa watermark özelliği var,

    http://splicer.codeplex.com/

    http://stackoverflow.com/questions/3359789/video-capturing-uploading-processing-streaming-back-net-c-sharp

    SharpShooter tarafından 20/Eyl/12 13:41 tarihinde düzenlenmiştir

    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    bu konudaki en kapsamlı yazılım directshow .net in librarysi dir http://directshownet.sourceforge.net/


    Aydınlık sabahı düşün ve durgun karanlık geceyi. Rabb'in seni ne unuttu ne de darıldı. Öteki dünya senin için (hayatının) bu ilk bölümünden mutlaka daha iyi olacak! Ve zamanı geldiğinde Rabb'in sana (kalbinden geçeni) bağışlayacak ve seni hoşnut kılacak. O seni yetim olarak bulup bir sığınak vermedi mi? Ve yolunu kaybetmiş görüp seni doğru yola ulaştırmadı mı? İhtiyaç içinde bulup seni tatmin etmedi mi? Öyleyse yetime haksızlık yapma, yardım isteyeni asla geri çevirme, ve (her zaman) Rabb'ini(n) nimetlerini an.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S1b3r_HasTa
    S1b3r_HasTa's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    inceliyorum Sharp, eyvallah

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S1b3r_HasTa
    S1b3r_HasTa's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    Sharp, senin önerdiğin watermarking olayı bana uymuyor çünkü orda 

    "Adding the image we want to use as a watermark to the second track (we use a gif image with a transparent background)"

    şeklinde yapıyor yani gif olarak hazırlayıp gömmüş ben tarih girceğim için otomatik bilgisayarın tarihini alıp videonun içine gömen bir sistem olsun istiyorum, oda olmadı en kötü kodlama ile tek tek videoların içine gömerim o günün tarihi neyse manual olarak, yeterki bir yol yöntem bulabileyim örnek hiçbirşey bulamadım ScreenCaptureJob, videoprofillerinin içinde kayboldum; onun için watermarking olayı yattı. Bu tip videonun içine birşeyler işleme ile ilgili daha önce herhangi bir tecrübem yok özel sektörde asp.net, c# ile web applicationlar geliştiren bir firmada çalışıyorum, kendimi bu işin içinde buldum. 

     

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    aliyk
    aliyk's avatar
    Kayıt Tarihi: 07/Mayıs/2007
    Erkek

    hocam programı tamamladığında paylaşcanmı, pazarlıyacanmı ?

     


    Lekum Dinikum Veliye Din ...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S1b3r_HasTa
    S1b3r_HasTa's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    programı tamamladığımda kendime keylogger yapacağım :) , çalıştığım şirket başka maksat ile kullanacak ; program hazır sadece bu dediğim özelliğin tarihin video üstüne eklenmesi ve birkaç özellik daha kodluyorum şu an, iki farklı versiyonunu yazdım 1. cisinde resim olarak işleyip ard arda resimleri getiriyor kendine göre artıları eksileri olduğu için 2.versiyonunda direk .avi , .wmv, . mpeg olarak kaydediyorum istediğim bir klasöre sonra o klasöre kaydedilmiş bilgisayarda olan biten ekran görüntüsü videosunu otomatik klasörde gizleme kodunu yazıcam, 1 dakika ekran görüntüsünü kaydeden videonun kapladığı alan şu an 127 kb çift sıkıştırma işlemi yapılarak ekran görüntü kalitesi düşük ama okunabilcek düzeyde, aynı şekilde bu yazdığım programın mantığında external disklerde film arşiviniz var ise 500 gb 1tb nız dolu komple diyelim benim program onları süzgeçten geçircek 500 gb film kalitelerinin biraz düşmesini göz önüne aldığın taktirde rahat 370 gb lara kadar geriler...

    1.versiyonumun iskelet kodları aşağıdaki gibi, güzelde bir user-interface zamanım olduğu müddetçe yapıcam

    namespace KullaniciEkranKaydiAlma

    {

        public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

            }

            private void button1_Click(object sender, EventArgs e)

            {

                timer1.Enabled = true;

                timer1.Interval = 25;

            }

            private void button2_Click(object sender, EventArgs e)

            {

                timer1.Enabled = false;

            }

            private void button3_Click(object sender, EventArgs e)

            {

                timer2.Enabled = true;

                timer2.Interval = 25;  

            }

            int resimNo;

            private void timer1_Tick_1(object sender, EventArgs e)

            {

                Bitmap ekran = new Bitmap(1024, 768, PixelFormat.Format24bppRgb);

                Rectangle ekranParcasi = Screen.AllScreens[0].Bounds;

                Graphics grafik = Graphics.FromImage(ekran);

                grafik.CopyFromScreen(ekranParcasi.Left, ekranParcasi.Top, 0, 0, ekranParcasi.Size);

                ekran.Save(@"x:\ekran\resim" + resimNo + ".jpg", ImageFormat.Jpeg);

                resimNo++;

            }

     

            int resimNo2;

            private void timer2_Tick(object sender, EventArgs e)

            {

                try

                {

                    pictureBox1.Image = Image.FromFile(@"x:\ekran\resim" + resimNo2 + ".jpg");

                    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

                    resimNo2++;

                }

                catch

                {

                    timer2.Enabled = false;

                    MessageBox.Show("KAYIT KAYDETME TAMAMLANDI!");

                }

            }

    private void pictureBox1_Click(object sender, EventArgs e){}

     private void Form1_Load(object sender, EventArgs e){}

            {

     

            }

     

        }

    }

     

     

    S1b3r_HasTa tarafından 20/Eyl/12 14:18 tarihinde düzenlenmiştir
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S1b3r_HasTa
    S1b3r_HasTa's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    unbalanced hocam, dediğin library'yi inceledim baya spesifik şeyleri kapsıyor bir tarafından tutulabilir eyvallah

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S1b3r_HasTa
    S1b3r_HasTa's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    aslında şu anda kullanmış olduğum using Microsoft.Expression.Encoder; kütüphanesinin böyle bir özelliği olsa çok işime yarayacak fakat araştırmalarım dahilinde rastlayabilmiş değilim veya Expression blend aynı şekilde nasıl kullanılabilir acaba...

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    2. versiyonu paylaşabilirsen yardımcı olmaya çalışalım,

    araştırdğım kadarıyla yapan eden yok


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    amacın sadece bir bitmap e yazı yazdırmaksa şu şekilde yapabilirsin.. ortada ses olmadığı için kolay yazıyı eklemek.

     

            private void timer1_Tick_1(object sender, EventArgs e)
    
    
            {
    
    
                Bitmap ekran = new Bitmap(1024, 768, PixelFormat.Format24bppRgb);
    
    
                Rectangle ekranParcasi = Screen.AllScreens[0].Bounds;
    
    
                Graphics grafik = Graphics.FromImage(ekran);
                
               grafik.DrawString("Deneme ....", new Font("Tahoma", 40), Brushes.White, new PointF(0, 0));
    
                grafik.CopyFromScreen(ekranParcasi.Left, ekranParcasi.Top, 0, 0, ekranParcasi.Size);
    
    
                ekran.Save(@"x:\ekran\resim" + resimNo + ".jpg", ImageFormat.Jpeg);
    
    
                resimNo++;
    
    
            }
    
    
     

     

    sanırm grafik.drawstring  işine yarar

     

     

    unbalanced tarafından 20/Eyl/12 16:49 tarihinde düzenlenmiştir

    Aydınlık sabahı düşün ve durgun karanlık geceyi. Rabb'in seni ne unuttu ne de darıldı. Öteki dünya senin için (hayatının) bu ilk bölümünden mutlaka daha iyi olacak! Ve zamanı geldiğinde Rabb'in sana (kalbinden geçeni) bağışlayacak ve seni hoşnut kılacak. O seni yetim olarak bulup bir sığınak vermedi mi? Ve yolunu kaybetmiş görüp seni doğru yola ulaştırmadı mı? İhtiyaç içinde bulup seni tatmin etmedi mi? Öyleyse yetime haksızlık yapma, yardım isteyeni asla geri çevirme, ve (her zaman) Rabb'ini(n) nimetlerini an.
Toplam Hit: 2155 Toplam Mesaj: 13