Video dosyalarını (avi,mpg,wmv) flv formatına çevirmek

26.08.2008

Video dosyalarını flash video (flv) formatına çevirebilmenin şu an için en kolay ve kullanışlı yolu açık kaynaklı bir program olan ffmpeg'i kullanmak.

 

ffmpeg'in windows binary'lerini http://ffdshow.faireal.net/mirror/ffmpeg/ adresinden çekip içeriğini( pthreadGC2.dll , ffmpeg.exe, ffplay.exe dosyalarını ) websitenizin bulunduğu dizine kopyalayın.

asp.net'ten çevirme işlemini yapmak için;

using System;

using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Diagnostics;
protected void convert_Click(object sender, EventArgs e)
{
Process ffmpeg;
string video;
 
string flv;
video = Page.MapPath("1.avi"); //Kaynak dosya yolu
flv = Page.MapPath("") + "\\video.flv"; //Hedef dosya yoluffmpeg = new Process();
ffmpeg.StartInfo.Arguments = " -i \"" + video + "\" --s 320x240 -b 240kb -ab 56kb -ar 22050 -ac 1 -g 240 \"" + flv+ "\"";
//Programa gönderilen parametreler youtube'un görüntü ve ses sıkıştırma oranına en yakın oranı sağlamaya yönelik parametreler, programın dökümantasyonunu inceleyerek daha farklı şekilde optimize edebilirsiniz
ffmpeg.StartInfo.FileName = Page.MapPath("ffmpeg.exe");
ffmpeg.Start();
}

klasik asp ile şu şekilde yapabilirsiniz;

<%
Mpg="1.avi"
Flv="video.flv"
Set WScript = Server.CreateObject("WSCRIPT.SHELL")
WScript.Run(Server.Mappath("ffmpeg.exe") & " -i " & server.MapPath(Mpg) &" -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 "& server.MapPath(Flv))
%>

 

Ancak klasik asp'de bu işlemi yaparken IUSR_Bilgisayarinizin_Adi ve IWAM_Bilgisayarinizin_Adi kullanıcılarına ffmpeg.exe dosyasını çalıştırma hakkını atadığınızdan emin olun.

Bunlar dışında ffmpeg programına gönderilen parametrede kaynak ve hedef dosyaları arasına -s 320*240 -vframes 10 -f mjpeg parametresini gönderirseniz hedef dosyayı da örneğin preview.jpg olarak tanımlarsanız videodan bir sahneyi yakalamış olur ve onu da video için giriş görseli olarak kullanabilirsiniz.