簡體   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