亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

試圖了解CMTime和CMTimeMake

試圖了解CMTime和CMTimeMake

iOS
子衿沉夜 2019-12-13 10:12:46
1)CMTimeMake(1,10)表示持續時間為1秒,時標為10或每秒10幀。這意味著1秒的視頻持續時間為10幀?2)CMTime lastTime=CMTimeMake(1,10);CMTime frameTime=CMTimeMake(1, 10);CMTime currentTime=CMTimeAdd(lastTime, frameTime)=(2,10)?2秒的視頻和當前時間每秒10幀?
查看完整描述

3 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

1)CMTimeMake(1,10)實際上表示值1和時標10。它們是分子和分母,所以它是1/10秒,而不是1秒。

2)結果將類似于CMTimeMake(2, 10),即2/10秒。


查看完整回答
反對 回復 2019-12-13
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

以下代碼使概念更清晰:


1)


Float64 seconds = 5;?

int32_t preferredTimeScale = 600;

CMTime inTime = CMTimeMakeWithSeconds(seconds, preferredTimeScale);

CMTimeShow(inTime);

上面的代碼給出:{3000/600 = 5.000}


這意味著總持續時間為5秒,具有3000幀,時標為每秒600幀。


2)


int64_t value = 10000;

int32_t preferredTimeScale = 600;

CMTime inTime = CMTimeMake(value, preferredTimeScale);

CMTimeShow(inTime);

這給了{10000/600 = 16.667}


這意味著總持續時間為16.667秒,其中10000幀的時標為每秒600幀。


注意CMTimeMake(int64_t值,int32_t時間標度)和CMTimeMakeWithSeconds(Float64秒,int32_t preferredTimeScale)之間的差異


希望這種解釋有所幫助。如需進一步的說明,請不要猶豫,在此職位上發表其他問題。


查看完整回答
反對 回復 2019-12-13
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

隨著CMTimeMake(A, B)你存儲一個有理數,一個確切的分數A / B

  • CMTimeMake(1, 4) ->時間間隔0.25秒

隨著CMTimeMakeWithSeconds(A, B)您存儲A 秒數以達到B步驟分辨率

  • CMTimeMakeWithSeconds(0.25, ...) ->時間間隔0.25秒

您通常會看到CMTimeMakeWithSeconds(time, NSEC_PER_SEC)。在NSEC_PER_SEC實際上意味著“ 最高分辨率 ”。


查看完整回答
反對 回復 2019-12-13
  • 3 回答
  • 0 關注
  • 1050 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號