Mar
15

Asp.Net’ de Video Dosyalarını Flv formatına dönüştürmek

Facebook, youtube gibi sitelerde video formatındaki dosyaları flv formatına çevrilip, son kullanıcılara flash playerlar sayesinde bu videolar izletilebilmektedir.

Bizde bu sistemi Asp.net projelerinde yapmak için öncelikle açık kaynak kodlu olan ffmpeg exe dosyasına ihityacımız olacaktır. İndirmemiz gereken dosyalar ffmpeg.exe, ffplay.exe ve pthreadGC2.dll dir. İlgili dosyaları indirmek için buraya tıklayınız.

Şimdi yapmamız gerekenleri anlatmadan önce şunuda söylememiz gerekmektedir. İlgili dönüştürme işlemini yapmak için sunucunun exe dosyalarını çalıştırma izni vermesi gerekmektedir. Yoksa haliyle çalışmayacaktır.

Yapılması gerekenler;

İlgili aspx sayfasının kod kısmına aşağıdaki kütüphane eklenmelidir.


using System.Diagnostics;

Örnek projemde video dosyayı flv ye çevirmenin dışında videonun ilk karesinin (frame) görüntüsünü de önizleme olarak kaydetmekteyim.

Aşağıdaki Bconverter_Click fonsiyonu ile video dosyasını flvye dönüştürmekteyim. Bpreview_Click fonksiyonu ilede video dosyasının ilk karesini alarak onu önizleme resimi yapmaktayım. “320*250” ‘ de genişlik ve yüksekliğini ayarladım .

protected void Bconverter_Click(object sender, EventArgs e)
{
string video = string.Format("{0}Folders\\Video\\{1}", Request.PhysicalApplicationPath, "yontem.avi");
string flv = string.Format("{0}Folders\\Flv\\{1}.flv", Request.PhysicalApplicationPath, "yontem_flv");

Process ffmpeg = new Process();
ffmpeg.StartInfo.Arguments = string.Format(" -i \"{0}\" -ar 22050 -acodec mp3 \"{1}\"", video, flv);
ffmpeg.StartInfo.FileName = string.Format("{0}AddOns\\FFmpeg\\ffmpeg.exe", Request.PhysicalApplicationPath);
ffmpeg.Start();
ffmpeg.WaitForExit();

this.Ltext.Text = "Başarıyla flv dosyası oluşturuldu";
}

protected void Bpreview_Click(object sender, EventArgs e)
{
string video = string.Format("{0}Folders\\Video\\{1}", Request.PhysicalApplicationPath, "yontem.avi");
string preview = string.Format("{0}Folders\\Preview\\{1}.jpg", Request.PhysicalApplicationPath, "yontem_preview");

Process ffmpeg = new Process();
ffmpeg.StartInfo.Arguments = string.Format(" -i \"{0}\" -s 320*250  -vframes 1 -f image2 -vcodec mjpeg \"{1}\"", video, preview);
ffmpeg.StartInfo.FileName = string.Format("{0}AddOns\\FFmpeg\\ffmpeg.exe", Request.PhysicalApplicationPath);
ffmpeg.Start();
ffmpeg.WaitForExit();

this.Ltext.Text = "Başarıyla önizleme resmi oluşturuldu";
}

Örnek projeyi indirmek için tıklayın.

Bu yazımın sizlere faydalı olması dileğiyle…

8 yorum bulunmaktadır - “Asp.Net’ de Video Dosyalarını Flv formatına dönüştürmek”

  • Özgür 01 Nisan 2011, 08:25

    Güzel paylaşım, bende denedim wmv lerde bir sıkıntı oldu. Acaba size ile alakalı mı? Siz böyle bir sorun yaşadınız mı?

  • Özgür 01 Nisan 2011, 08:26

    Size derken video boyutunu kastettim. 🙂

  • Enes Pekkaya 01 Nisan 2011, 08:32

    🙂 Yanlış hatırlamıyor isem wmv formatında bir sorun yaşamamıştım. Flv ye başarılı şekilde dönüştürebiliyordum.

    Aklıma gelen tek şey varsayılan .net max fileupload size 4 mbdı. Eğer siz 4 mb dan fazla yüklemeye çalıştığınızda haliyle o dosyayı yüklemez. Onun için web configden yüklenecek dosya boyutunu artırmanız gerekir. Tabi bu işlemi yapmadı iseniz 🙂

  • yahya Güdüoğlu 06 Mayıs 2011, 21:51

    hocam merhaba makalenizi okudum güzel.. Bir şey soracaktım.. avi formatını dönüştürüyorum onda bi sıkıntı yok fakat diğer formatları (wmv, mp4, mpeg,) Formatlarını dönüştüremiyorum, nasıl dönüştereceğim.. Bu formatlar için hangi parametreleri göndermemiz gerekiyor bi bilgi verebilirmisiniz….

  • mehmet 14 Mart 2012, 15:45

    merhabalar avi veya flv formatını mov formatına dönüştürme kodlarına sahip misiniz? Bu kodları dönüştürmek istesek nasıl değişikliklere ihtiyacımız var? Dönüştürülen dosya formatının flv olduğu sadece verilen isimlerden mi belirleniyor?

  • Enes Pekkaya 17 Mart 2012, 15:04

    Merhaba,

    Aşağıda bazı convert işlemlerinin olduğu kod parçacığını yazdım. Tek yapmanız gereken yüklediğiniz video dosyasının yolunu belirtmek birde convert edilen dosyanın yolu. 🙂


    switch(type){
    case "webm":kod= file +" -vpre libvpx-720p -b 500k -pass 2 -acodec libvorbis -ab 100k -f webm -y " + dest +".webm";break;
    case "webm":kod=file+" -acodec libvorbis -ac 2 -ab 96k -ar 44100 -b 345k -s 640x360 "+dest+".webm";break;
    case "ogv":kod=file +" -b 600k -vcodec libtheora -ar 22050 -g 30 -f ogg -s 480x360 -y "+dest+".ogv";break;
    case "mp4":kod=file +" -acodec libfaac -ar 44100 -ab 96k -coder ac -me_range 16 -subq 5 -sc_threshold 40 -vcodec libx264 -b 400k -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -i_qfactor 0.71 -keyint_min 25 -b_strategy 1 -g 250 -r 20 -vpre hq " + dest +".mp4";break;
    case "flv": kod= file+" -ab 64k -ar 22050 -b 500 -r 29 -nr 1000 -g 500 -qmin 2 -qmax 6 "+ dest +".flv";break;
    default:kod=null;
    }

  • Berk Çetin 07 Aralık 2012, 10:07

    Hocam avi donusturuyor ancak mp4 cevıremıyorum yardımcı olrumusunuz

  • Berk Çetin 07 Aralık 2012, 11:51

    bir degısıklık yapıp mp4 u cevırmeyı basardım anca goruntu kalıtesı dustu bu konu hakkında bır fıkrınız varmı ?

Yorum Yapın

 

Twitter'dan Takip Et! Twitter'dan Takip Et!

Etiketler

Son Yazılar

Son Yorumlar

Haftanın Özlü Sözü

Akıllı bir adam yalnız kendi tecrübelerinden, çok akıllı bir adam başkalarının da tecrübelerinden yararlanır. (Çin Atasözü)

Bağlantılar

Arşivler