//Loop through all frame without saving
using (var videoFrameReader = new VideoFrameReader(@"C:\Video.mp4"))
{
var frameIndex = 0;
while (videoFrameReader.Read())
{
Console.WriteLine("Coded Frame Number: " + videoFrameReader.CurrentFrameNumber);
Console.WriteLine("Frame Index: " + frameIndex);
frameIndex++;
}
}
'Loop through all frame without saving
Using videoFrameReader = New VideoFrameReader("C:\Video.mp4")
Dim frameIndex = 0
While videoFrameReader.Read()
Console.WriteLine("Coded Frame Number: " + videoFrameReader.CurrentFrameNumber)
Console.WriteLine("Frame Index: " + frameIndex)
frameIndex += 1
End While
End Using
//Save every frame
using (var videoFrameReader = new VideoFrameReader(@"C:\Video.mp4"))
{
var frameIndex = 0;
foreach (var frame in videoFrameReader)
{
using (frame)
frame.Save(string.Format(@"C:\Frame{0}.jpg", frameIndex), ImageFormat.Jpg);
frameIndex++;
}
}
'Save every frame
Using videoFrameReader = New VideoFrameReader("C:\Video.mp4")
Dim frameIndex = 0
For Each frame As Object In videoFrameReader
Using frame
frame.Save(String.Format("C:\Frame{0}.jpg", frameIndex), ImageFormat.Jpg)
End Using
frameIndex += 1
Next
End Using
//Save every 100th frame
using (var videoFrameReader = new VideoFrameReader(@"C:\Video.mp4"))
{
var frameIndex = 0;
while (videoFrameReader.Read())
{
if (frameIndex % 100 == 0)
using (var frame = videoFrameReader.GetFrame())
frame.Save(string.Format(@"C:\Frame{0}.jpg", frameIndex), ImageFormat.Jpg);
frameIndex++;
}
}
'Save every 100th frame
Using videoFrameReader = New VideoFrameReader("C:\Video.mp4")
Dim frameIndex = 0
While videoFrameReader.Read()
If frameIndex Mod 100 = 0 Then
Using frame = videoFrameReader.GetFrame()
frame.Save(String.Format("C:\Frame{0}.jpg", frameIndex), ImageFormat.Jpg)
End Using
End If
frameIndex += 1
End While
End Using
using (var videoFrameReader = new VideoFrameReader(@"C:\Video.mp4"))
{
videoFrameReader.Seek(videoFrameReader.Duration.TotalSeconds / 2);
if (videoFrameReader.Read())
Console.WriteLine("Seeked Frame Number: " + videoFrameReader.CurrentFrameNumber);
else
Console.WriteLine("Frame read failed!");
}
Using videoFrameReader = New VideoFrameReader("C:\Video.mp4")
videoFrameReader.Seek(videoFrameReader.Duration.TotalSeconds / 2)
If videoFrameReader.Read() Then
Console.WriteLine("Seeked Frame Number: " + videoFrameReader.CurrentFrameNumber)
Else
Console.WriteLine("Frame read failed!")
End If
End Using
using (var videoThumbnailer = new VideoThumbnailer(@"C:\Video.mp4"))
{
//Get the thumbnail with 100x100 maximum size and overlay video duration
//on the bottom-right of the thumbnail (like youtube does).
using (var thumbnail = videoThumbnailer.GenerateThumbnail(100, true))
thumbnail.Save(@"C:\Thumbnail100WithDuration.jpg", ImageFormat.Jpg);
//Get the same thumbnail this time with 300x300 maximum size.
//Thumbnail frame is already generated on the first call above so you can
//get different sizes of the thumbnail many times very fast
using (var thumbnail = videoThumbnailer.GenerateThumbnail(300))
thumbnail.Save(@"C:\Thumbnail300WithoutDuration.jpg", ImageFormat.Jpg);
}
Using videoThumbnailer = New VideoThumbnailer("C:\Video.mp4")
'Get the thumbnail with 100x100 maximum size and overlay video duration
'on the bottom-right of the thumbnail (like youtube does).
Using thumbnail = videoThumbnailer.GenerateThumbnail(100, True)
thumbnail.Save("C:\Thumbnail100WithDuration.jpg", ImageFormat.Jpg)
End Using
'Get the same thumbnail this time with 300x300 maximum size.
'Thumbnail frame is already generated on the first call above so you can
'get different sizes of the thumbnail many times very fast
Using thumbnail = videoThumbnailer.GenerateThumbnail(300)
thumbnail.Save("C:\Thumbnail300WithoutDuration.jpg", ImageFormat.Jpg)
End Using
End Using
using (var videoFrameReader = new VideoFrameReader(@"C:\Video.mp4"))
{
Console.WriteLine("Info:");
Console.WriteLine("----------------------------");
Console.WriteLine("Duration: " + videoFrameReader.Duration);
Console.WriteLine("Width: " + videoFrameReader.Width);
Console.WriteLine("Height: " + videoFrameReader.Height);
Console.WriteLine("CodecName: " + videoFrameReader.CodecName);
Console.WriteLine("CodecDescription: " + videoFrameReader.CodecDescription);
Console.WriteLine("CodecTag: " + videoFrameReader.CodecTag);
Console.WriteLine("BitRate: " + videoFrameReader.BitRate);
Console.WriteLine("FrameRate: " + videoFrameReader.FrameRate);
Console.WriteLine();
Console.WriteLine("Metadata:");
Console.WriteLine("----------------------------");
foreach (var entry in videoFrameReader.Metadata)
{
Console.WriteLine("Key: " + entry.Key);
Console.WriteLine("Value: " + entry.Value);
Console.WriteLine();
}
}
Using videoFrameReader = New VideoFrameReader("C:\Video.mp4")
Console.WriteLine("Info:")
Console.WriteLine("----------------------------")
Console.WriteLine("Duration: " + videoFrameReader.Duration.ToString())
Console.WriteLine("Width: " + videoFrameReader.Width)
Console.WriteLine("Height: " + videoFrameReader.Height)
Console.WriteLine("CodecName: " + videoFrameReader.CodecName)
Console.WriteLine("CodecDescription: " + videoFrameReader.CodecDescription)
Console.WriteLine("CodecTag: " + videoFrameReader.CodecTag)
Console.WriteLine("BitRate: " + videoFrameReader.BitRate)
Console.WriteLine("FrameRate: " + videoFrameReader.FrameRate)
Console.WriteLine()
Console.WriteLine("Metadata:")
Console.WriteLine("----------------------------")
For Each entry As Object In videoFrameReader.Metadata
Console.WriteLine("Key: " + entry.Key)
Console.WriteLine("Value: " + entry.Value)
Console.WriteLine()
Next
End Using