libvlcsharp - 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)));
}
}
解决方案
您可以使用 TakeSnapshot 方法。但是请注意:
- 快照将被写入磁盘,无法在 VLC 3 中获取内存中的帧(VLC4 中可能会出现一个新的 API)
- 这并不是要抓取每一帧,仅将其用于快照。
如果您需要更多帧,请查看 Thumbnailer 示例。它们也不意味着要抓取所有帧。
推荐阅读
- javascript - 错误:绝对路径://fileName/ 在量角器 nodejs 中解压缩文件夹
- ruby-on-rails - 从配置继承 Rails 引擎模型
- sql - Postgresql唯一约束无效
- deep-learning - 如何在 PyTorch 中聚合梯度?
- c - 将链接列表(包含动态字符串)保存(和读取)到 C 中的二进制文件中
- jenkins - 增加 Kubernetes Jenkins slave 的磁盘空间
- python - 我们可以使用 python 的类型提示来支持二进制运算符中的类型不匹配检测吗?
- javascript - “只读”类型上不存在属性“路由器”
> - angular - 如何在更新到 Angular 10 时安装 @ng-select?
- knockout.js - knockoutJs 两种方式绑定在 foreach 中不起作用