【发布时间】:2013-01-06 02:08:11
【问题描述】:
我希望在我用 C# 编写的应用程序中使用 VLC 作为视频播放器的基础(因为 VLC 是少数可以正确解码我正在使用的格式的播放器之一),但主要任务是我需要它执行的是:
- 能够在视频文件中的不同帧之间浏览,两者 前进后退。
- 为每一帧显示精确的时间戳,直到 毫秒,以及将时间戳中继到 申请。
现在我正在通过 VLC 扩展 LUA 脚本执行此操作,但是 VLC 通过 vlc.var.get(input, “time”) 返回的时间缺乏精度,并且可能因跨多个文件读取的同一视频文件中的同一帧。框架浏览也不太可靠。另外,以这种方式接收的值不能自动中继到另一个应用程序。
我尝试使用 libVLC 的 LibVLC.NET 包装器,但我仍然无法在帧之间浏览,并且返回的毫秒计数值相当奇怪。这几乎就像 VLC (libVLC) 在播放期间不返回实际时间值,而是返回某种舍入值,当读取精度低至毫秒时,该值具有相当大的延迟。标准的 VLC 界面既不能显示精确到毫秒的时间值,也不能在帧之间浏览。
是否有任何可行的方法通过从使用 .NET 编写的应用程序以某种方式运行 VLC 来使用 VLC 执行上述两项任务?还是我应该考虑其他选择?
【问题讨论】: