簡體   English   中英

如何找到給定幀號的呈現時間戳以進行FFMPEG解碼?

[英]How to find the presentation time stamp of a given frame number for FFMPEG decoding?

我正在使用ffmpeg的C API進行某些視頻處理。 我的目的是提取給定幀號的屏幕快照。 我知道ffmpeg具有av_seek_frame函數以尋求給定的時間戳(以視頻流的適當基本單位表示)。 我假設我將必須轉到給定幀的最新I幀(使用AVSEEK_FLAG_BACKWARD標志),然后繼續閱讀,直到達到所需幀為止。 為此,我需要為av_seek_frame函數提供查找時間戳。 我的主要問題是,給定幀號,我如何找到要尋找的相關演示時間戳?

只是給你一個想法,以我的經驗,每幀pkt.pts增加了pkt.duration時間,並且如果幀速率恆定,它就是恆定的。

檢查每幀增加pkt.durationpkt.pts 如果確認增加是恆定的。 其余是容易通過分割或乘以計算PTS /幀號duration

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM