我想從圖像製作視頻,每個圖像應該停留一秒鐘。 AVIWriter具有25幀的速率,所以我必須添加一個圖像25次,使其停留一秒鐘。AForge.NET - > AVIWriter將圖像作爲幀添加
我試圖改變幀率,但它不工作。
任何人都可以提出一種解決方法嗎?
以下是寫幀到視頻代碼:
private void writeVideo()
{
// instantiate AVI writer, use WMV3 codec
AVIWriter writer = new AVIWriter("wmv3");
// create new AVI file and open it
writer.Open(fileName, 320, 240);
// create frame image
Bitmap image = new Bitmap(320, 240);
var cubit = new AForge.Imaging.Filters.ResizeBilinear(320, 240);
string[] files = Directory.GetFiles(imagesFolder);
writer.FrameRate = 25;
int index = 0;
int failed = 0;
foreach (var item in files)
{
index++;
try
{
image = Image.FromFile(item) as Bitmap;
//image = cubit.Apply(image);
for (int i = 0; i < 25; i++)
{
writer.AddFrame(image);
}
}
catch
{
failed++;
}
this.Text = index + " of " + files.Length + ". Failed: " + failed;
}
writer.Close();
}
當您添加相同的框架25次時,您會得到什麼結果? – box86rowh
作爲容器格式的AVI對於1 fps幀速率以及空幀/丟幀均可。如果您可以找到一種方法爲幀添加時間戳(例如幀#0,然後幀#25)並將其通過此庫,則AVI API會自動將缺失幀添加爲空幀,並且結果文件將以1 fps進行回放。 –
發佈一些代碼。 – Amy