This project is read-only.

How to take a snapshot from a video

Feb 17, 2016 at 4:57 PM

How can I take a snapshot of the currently playing video? I see an event call "SnapshotTaken", but no function to actually take the snapshot.

Thanks you
Feb 17, 2016 at 7:52 PM
I found it!


Add this:
private delegate int libvlc_video_take_snapshot_signature(IntPtr p_mi, uint num, string psz_filepath, uint i_width, uint i_height);

private readonly libvlc_video_take_snapshot_signature m_libvlc_video_take_snapshot;
public int libvlc_video_take_snapshot(IntPtr p_mi, string psz_filepath, uint i_width, uint i_height)

    return m_libvlc_video_take_snapshot(p_mi, 0, psz_filepath, i_width, i_height);
In\libvlclibrary.cs, constructor LibVLCLibrary

Add this:
m_libvlc_video_take_snapshot = (libvlc_video_take_snapshot_signature)LoadDelegate<libvlc_video_take_snapshot_signature>("libvlc_video_take_snapshot");

Add this:
    public int TakeSnapshot(string filepath, uint i_width = 0, uint i_height = 0)
        return m_Library.libvlc_video_take_snapshot(m_MediaPlayerHandle, filepath, i_width, i_height);
And finally call it from a button like this:
    private void TakeSnapShotButton_Click(object sender, RoutedEventArgs e)
Marked as answer by Pascal77 on 2/17/2016 at 11:52 AM