2014-08-29 37 views
1

有可能知道一個AVFrame有多少個AVPackets?有可能知道一個AVFrame有多少個AVPackets?

我想實現一個功能,用戶可以以相反的方式播放視頻。

我不想將temp數據放在本地文件中,所以我想直接通過AVPacket實現它。

我發現在Audio中,AVPacket的每個點都等於AVPacket的dts。

,我可以扭轉AVPacket,把AVPacket從最後一個到第一個進行解碼,

,然後我得到了AVFrame。

但在視頻是不同的,不知道如何實現它。

是否有可能爲一個AVFrame準確計算AVPacket?

回答

0

我不知道AVPacket,但編碼的MPEG幀有內部順序和分組。簡而言之,MPEG壓縮包括圖片內編碼和圖片間編碼。這意味着一些幀具有對前一幀的引用。

此幀分組稱爲GOP(圖片組)。
在GOP中,幀順序不能改變。

對於反向視頻播放,原始視頻必須進行相應的編碼(例如I幀編碼)。

+0

是否可以計算GOP來知道有多少包正好是幀? – PatrickSCLin 2014-08-29 10:56:36

+0

我不明白什麼是數據包。 GOP是編碼選項之一。 https://www.ffmpeg.org/ffmpeg-all.html#Video-Options在某些模式下可能會變化。通常它不存儲在編碼的電影文件中。 – 9dan 2014-08-29 11:30:52

+0

只是爲了想法,你可以完全解碼單個GOP的所有圖片,然後以相反的順序渲染每張圖片。 – 9dan 2014-08-29 11:34:09

相關問題