using MediaToolkit.Model;
using MediaToolkit.Options;
using MediaToolkit;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection.Emit;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;
namespace VideoCompressionRev1._1
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
try
{
string uploadsFolderPath = Server.MapPath("~/Uploads");
// Check if the Uploads directory exists, if not, create it
if (!Directory.Exists(uploadsFolderPath))
{
Directory.CreateDirectory(uploadsFolderPath);
}
string filePath = Path.Combine(uploadsFolderPath, FileUpload1.FileName);
FileUpload1.SaveAs(filePath);
string compressedFilePath = Path.Combine(uploadsFolderPath, "compressed_" + FileUpload1.FileName);
CompressVideo(filePath, compressedFilePath, VideoSize.Vga);
Label1.Text = "Video uploaded and compressed successfully. <a href='Uploads/" + Path.GetFileName(compressedFilePath) + "'>Download here</a>";
}
catch (Exception ex)
{
Label1.Text = "Error: " + ex.Message;
}
}
else
{
Label1.Text = "Please upload a video file.";
}
}
private void CompressVideo(string inputFilePath, string outputFilePath, VideoSize targetVideoSize)
{
var inputMediaFile = new MediaFile { Filename = inputFilePath };
var outputMediaFile = new MediaFile { Filename = outputFilePath };
using (var engine = new Engine())
{
engine.GetMetadata(inputMediaFile);
var frameSizeWidth = Convert.ToInt32(inputMediaFile.Metadata.VideoData.FrameSize.Split('x')[0]);
var frameSizeHeight = Convert.ToInt32(inputMediaFile.Metadata.VideoData.FrameSize.Split('x')[1]);
// Eğer orijinal video zaten hedef VideoSize veya daha küçükse sıkıştırma yapma
if (frameSizeWidth <= GetWidth(targetVideoSize) && frameSizeHeight <= GetHeight(targetVideoSize))
{
// Dosyayı doğrudan kopyala, sıkıştırma yok
File.Copy(inputFilePath, outputFilePath, overwrite: true);
return;
}
var options = new ConversionOptions
{
VideoSize = targetVideoSize
};
engine.Convert(inputMediaFile, outputMediaFile, options);
}
}
private int GetWidth(VideoSize videoSize)
{
switch (videoSize)
{
case VideoSize._16Cif:
return 1408;
// Diğer çözünürlükler için benzer case'ler ekleyin
case VideoSize.Hd1080:
return 1920;
case VideoSize.Hd720:
return 1280;
case VideoSize.Vga:
return 640;
case VideoSize._2K:
return 2048;
// ...
default:
throw new ArgumentOutOfRangeException(nameof(videoSize), videoSize, null);
}
}
private int GetHeight(VideoSize videoSize)
{
switch (videoSize)
{
case VideoSize._16Cif:
return 1152;
// Diğer çözünürlükler için benzer case'ler ekleyin
case VideoSize.Hd1080:
return 1080;
case VideoSize.Hd720:
return 720;
case VideoSize.Vga:
return 480;
case VideoSize._2K:
return 1080;
// ...
default:
throw new ArgumentOutOfRangeException(nameof(videoSize), videoSize, null);
}
}
}
}
The purpose of the video compression code is to reduce the video size, but this code has increased the video size. How can I fix this, reduce video compression, video size, please support me.
1