Jump to content
Sign in to follow this  
thitgaluoc

Get first frame of Video

Recommended Posts

thitgaluoc

How to get first frame of Video file after save to file jpg?

Thank you :unsure:

I'm Vietnamese so my E not good, sory ^^

Share this post


Link to post
Share on other sites
wakillon

Welcome to the forums !

Look at this ! Posted Image


AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
thitgaluoc

But i don't want a software :unsure:

I need What is func to do that ? :>

Thank you.

Share this post


Link to post
Share on other sites
wakillon

You need an external tool !

See FFMPEG command line tool ! Posted Image

You can extract images from a video, or create a video from many images:

For extracting images from a video:

ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg

This will extract one video frame per second from the video and will output them in files named `foo-001.jpeg', `foo-002.jpeg', etc. Images will be rescaled to fit the new WxH values.

If you want to extract just a limited number of frames, you can use the above command in combination with the -vframes or -t option, or in combination with -ss to start extracting from a certain point in time.

Edited by wakillon

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
wakillon

I modify it for get only the first frame ! Posted Image

#include <WindowsConstants.au3>
#include <GdiPlus.au3>
#include <Misc.au3>
#include <Date.au3>

If Not _Singleton ( @ScriptName, 1 ) Then Exit
Global $_JpegPath

_GDIPlus_Startup ( )
DirRemove ( @ScriptDir & "\FFMpegThumbTemp", 1 )
DirCreate ( @ScriptDir & "\FFMpegThumbTemp" )
$sMovieFile = FileOpenDialog ( '', @DesktopDir & "\", "Videos (*.avi;*.flv;*.mp4)", 1 + 4 )
_CreateThumbnails ( $sMovieFile )
_GDIPlus_Shutdown ( )
ShellExecute ( $_JpegPath )
Exit

Func _CreateThumbnails ( $sMovieFile )
    Local $tempGraph = _GDIPlus_GraphicsCreateFromHWND ( _WinAPI_GetDesktopWindow ( ) )
    Local $hBitmap = _GDIPlus_BitmapCreateFromGraphics ( 520, 400, $tempGraph )
    _GDIPlus_GraphicsDispose ( $tempGraph )
    Local $hGraphics = _GDIPlus_ImageGetGraphicsContext ( $hBitmap ), $hImage
    _GDIPlus_GraphicsClear ( $hGraphics, 0xFFFFFFFF )
    RunWait ( '"' & @ScriptDir & '\ffmpeg.exe" -vframes 1 -ss 00:00:01 -i "' & $sMovieFile & '" -s 500×380 -an -y "' & @ScriptDir & '\FFMpegThumbTemp\1.jpg"', @ScriptDir, @SW_HIDE )
    $hImage = _GDIPlus_ImageLoadFromFile ( @ScriptDir & "\FFMpegThumbTemp\1.jpg" )
    _GDIPlus_GraphicsDrawImage ( $hGraphics, $hImage, 10, 10 )
    _GDIPlus_ImageDispose ( $hImage )
    $_JpegPath = StringLeft ( $sMovieFile, StringInStr ( $sMovieFile, ".", 0, -1 ) ) & 'jpg'
    _GDIPlus_ImageSaveToFile ( $hBitmap, $_JpegPath )
    _GDIPlus_BitmapDispose ( $hBitmap )
    _GDIPlus_GraphicsDispose ( $hGraphics )
EndFunc ;==> _CreateThumbnails ( )
Edited by wakillon

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.