iOS視訊轉Gif(附example code)
阿新 • • 發佈:2018-12-19
前言
這篇部落格源於公司中的一個專案需求,實現也比較簡單,程式碼附在文章的最後。
思路
視訊轉Gif的思路非常簡單:
- 從視訊中抽幀
- 將抽出來的幀資料拼接成Gif
這兩個步驟都是用的iOS API,所以實現起來也不復雜。
之前搜尋到網上一個實現版本,但是其中有一些坑,只能提取整數秒的視訊內容,例如一個視訊長度是4.9s,則抽幀的時候只抽取前4s的內容,後面0.9s的內容就被忽略了,這個版本對此做了修復。
涉及到的關鍵技術
AVAssetImageGenerator
抽幀就是用這個系統類來完成,通過呼叫方法copyCGImage(at requestedTime: CMTime, actualTime: UnsafeMutablePointer<CMTime>?) throws -> CGImage
生成Gif
CGImageDestinationCreateWithURL
建立Gif的儲存路徑CGImageDestinationSetProperties
設定Gif的屬性CGImageDestinationAddImage
迴圈add幀資料CGImageDestinationFinalize
完成GIF,生成,儲存
Source Code
如需交流,請掃面下方二維碼(新增時備註:csdn)