c# – 是否可以从VLC获取视频文件中的帧的精确时间戳?

我正在寻找使用VLC作为在C#中编写的应用程序中的视频播放器的基础(因为VLC是可以正确解码我正在使用的格式的少数几个播放器之一),但是我需要的主要任务表演是:

>能够在视频文件中的不同帧之间浏览
向前和向后
>显示每个帧的精确时间戳记
毫秒,以及将时间戳转发到的能力
应用.

现在我通过VLC扩展LUA脚本来做这个,但是VLC通过vlc.var.get(input,“time”)返回的时间缺少精度,并且对于同一个视频文件中的同一帧在多个时间内可能会有所不同文件读数框架浏览也不太可靠.此外,以这种方式接收的值不能自动转发到另一个应用程序.

我尝试使用libVLC的LibVLC.NET包装器,但我仍然无法浏览帧之间,并且返回的毫秒计数值是相当奇怪的.几乎像VLC(libVLC)在播放期间不返回实际的时间值,而是返回一些舍入的值,当精确读取到毫秒时读取值大大延迟.标准VLC接口既不能将精确的时间值显示为毫秒,也不能在帧之间浏览.

使用VLC编写的应用程序以VLC方式运行VLC,是否有任何可行的方式来执行上述任务?或者我应该研究其他选项?

解决方法

我不知道你可以用VLC来做到这一点.但是您可以使用 this example,它使用非常好的框架,称为 ffmpeg
我几乎可以肯定,你将能够播放你的流并浏览.另外还有另外一个 solution你可以使用,我不得不说,我不熟悉它,但它值得检查.

基本上尝试找到视频播放器的.Net实现,而不是工作VLC

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString("x2"));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include "WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...