首页 > 解决方案 > libvlcsharp播放视频时如何获取当前视频帧?

问题描述

libvlcsharp播放视频时如何获取当前视频帧?我可以通过以下代码使用 libvlcsharp 播放视频:

public void OnAppearing()
        {


            LibVLC = new LibVLC();
            var media = new LibVLCSharp.Shared.Media(LibVLC, new Uri("http://live.cgtn.com/1000/prog_index.m3u8"));


            MediaPlayer = new MediaPlayer(LibVLC)
            {
                Media = media
            };

            media.Dispose();

            Play();
        }
private void Play()
        {
            
            if (m_url != string.Empty)
            {
                MediaPlayer.Play(new LibVLCSharp.Shared.Media(LibVLC, new Uri(m_url)));
            }
            
           
        }

标签: libvlcsharp

解决方案


您可以使用 TakeSnapshot 方法。但是请注意:

  • 快照将被写入磁盘,无法在 VLC 3 中获取内存中的帧(VLC4 中可能会出现一个新的 API)
  • 这并不是要抓取每一帧,仅将其用于快照。

如果您需要更多帧,请查看 Thumbnailer 示例。它们也不意味着要抓取所有帧。


推荐阅读