开发者

C# Extract Specific Frame from WMV

This example on Code Project is almost exactly what I need... except the saveFrameFro开发者_如何学运维mVideo takes a percentage instead of a frame number...

How can I use this to extract frame X from a WMV file?

I've also tried FFmpeg.NET... but there weren't any downloadable builds, and I couldn't get the source to build...


You can also try AsfMojo for this task, it allows you to extract an image by time offset:

Bitmap bitmap = AsfImage.FromFile(videoFileName)
                        .AtOffset(17.34);

Internally the Media SDK and some custom stream manipulation is used to get frame accurate still frames (up to a 100 millisecond tolerance), so if you know the frame rate of your media file (i.e. 25) you can calculate the time offset of the nearest frame:

int frameX = 400; //get 400th frame
double frameRate = 25.0;
double timeOffset = frameX / frameRate;

Bitmap bitmap = AsfImage.FromFile(videoFileName)
                        .AtOffset(timeOffset);


The magic is in this line:

mediaDet.WriteBitmapBits(streamLength * percentagePosition, 
                    target.Width, target.Height, outputBitmapFile);

It's calculating the frame number from the percentage and the length of the stream. Since you already know the frame number, use that instead.


I have been working on extracting frames from webcam videos and video files- for both, i used the AForge library- (you need to add references to AForge.Video, AForge.Imaging , AForge.Video.Directshow and AForge.Video.FFMPEG). For live videos, I added a videoSourcePlayer_NewFrame(object sender, ref Bitmap image) to get the frame- Bitmap image contains the required frame in type Bitmap. This is basically the event handler for the videosource player i added in the windows form. For video from a file, i used: videoSource=new FileVideoSoource(fileName); videoSource.Start(); videoSource.NewFrame += new AForge.Video.NewFrameEventHandler(videoSource_NewFrame);

videoSource_NewFrame is the event handler in case there is a new frame.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜