글
원문 : http://osskorea.tistory.com/133
FFMPEG(http://www.ffmpeg.org/)를 사용하여 ASP.NET에서 썸네일을 만든다거나 클래스를 만들고 해당 동영상이 들어오면 영상파일을 다른 포맷으로 압축하여 저장한다던지 할 때 필요한 예제이다.
예외처리나 안전하게 활용할 수 있는 코드처리는 안되어 있고 아래 첨부한 출처와 파일에서 좀 더 활용 가능한 전체 클래스 소스를 소개하였다. (테스트에 사용한 프레임워크 : 닷넷 프레임워크 4.0)
예외처리나 안전하게 활용할 수 있는 코드처리는 안되어 있고 아래 첨부한 출처와 파일에서 좀 더 활용 가능한 전체 클래스 소스를 소개하였다. (테스트에 사용한 프레임워크 : 닷넷 프레임워크 4.0)
1. 필요한 파일은 ffmpeg.ext pthreadGC2.dll SDL.dll 이다.
2. 웹프로젝트를 만들고 다음과 같이 코딩하여 테스트 하여 본다.
2. 웹프로젝트를 만들고 다음과 같이 코딩하여 테스트 하여 본다.
protected void Button1_Click(object sender, EventArgs e)
{
// 프레임 미리보기 (쎰네일)
var video = Page.MapPath("test1.mpg"); //source
var thumb = Page.MapPath("") + "\\frame.jpg"; //target
var ffmpeg = new Process
{
StartInfo =
{
Arguments = " -i \"" + video + "\" -s 108*80 -vframes 1 -f image2 -vcodec mjpeg \"" + thumb + "\"", FileName = Page.MapPath("ffmpeg.exe")
}
};
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.StartInfo.RedirectStandardOutput = false;
ffmpeg.Start(); //return true/false
}
protected void Button2_Click(object sender, EventArgs e)
{
//파일변환
var video = Page.MapPath("test1.mpg"); //source
var mpg = Page.MapPath("") + "\\video.mpg"; //target
var ffmpeg = new Process
{
StartInfo =
{
Arguments = " -i \"" + video + "\" -target vcd \"" + mpg + "\"",
FileName = Page.MapPath("ffmpeg.exe")
}
};
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.StartInfo.RedirectStandardOutput = false;
ffmpeg.Start(); //return true/false
}
//함수로 만들어서 사용하는 예
public void Convert(string sourcevideo)
{
var formatedvideo = DateTime.Now.Ticks + ".flv";
// video = Page.MapPath("test.wmv");
var mpg = Page.MapPath("~/Videos/") + formatedvideo;
var ffmpeg = new Process
{
StartInfo =
{
Arguments = " -i \"" + sourcevideo + "\" -target vcd \"" + mpg + "\"",
FileName = Page.MapPath("~/ffmpeg/ffmpeg.exe"),
CreateNoWindow = true,
UseShellExecute = false
}
};
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.StartInfo.RedirectStandardOutput = false;
ffmpeg.Start();
'IT > .NET' 카테고리의 다른 글
IIS 6.0에서 .Net 4.0 실행하기 (0) | 2012.06.26 |
---|---|
How To Add HTML Alternative Content (0) | 2012.06.08 |
How to create thumbnail image in ASP.Net/C# OR resize the image before upload in ASP.Net/C# (0) | 2012.05.24 |
HTTP 처리기 및 HTTP 모듈 개요 (0) | 2012.05.21 |
Error executing child request for ChartImg.axd. (0) | 2012.04.13 |
RECENT COMMENT