繁体   English   中英

如何在vlcj中获取/设置框架位置?

[英]how to get/set frame position in vlcj?

如何-1.获取音频/视频轨道的当前帧位置? 2.如何去一个轨道的特定帧位置? 使用vlcj sdk。 任何代码片段将不胜感激!

实际上,您可以通过一些数学来做到这一点。 这不是最干净的方法,但很容易理解。

VLCj允许您使用.getLength()获得媒体的长度。 但是,请注意,这将返回媒体的长度(以毫秒为单位)。 此外,您可以使用.getFPS()获得媒体的帧数/秒。

因此,现在您可以得到的总帧数为:

total_frames = .getFPS * .getLength() /1000;

然后,您可以使用.getPosition()以毫秒为单位找出当前位置 ,然后将其转换为帧。 这将以百分比形式返回。

current_frame = .getPosition() * total_frames;

现在,如果您要转到特定的帧,我们将其称为desired_frame 您可以使用.setPosition()来获取百分比。 因此,您需要确定代表要跳转到的帧的总数的百分比。

.setPosition((float)desired_frame/total_frames);

VLCJ并不是真正针对这种逐帧访问而直接设置的-您可以在mediaplayer对象上使用setTime()getTime() ,但这将从毫秒开始而不是从帧开始返回时间。 当然,如果您知道帧速率,那么从一个帧转换到另一个帧就不那么容易了。

如果您需要比VLCJ提供的操作低的操作,那么您可能需要看看Xuggler。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM