1. 程式人生 > >iOS視訊轉Gif(附example code)

iOS視訊轉Gif(附example code)

前言

這篇部落格源於公司中的一個專案需求,實現也比較簡單,程式碼附在文章的最後。

思路

視訊轉Gif的思路非常簡單:

  1. 從視訊中抽幀
  2. 將抽出來的幀資料拼接成Gif

這兩個步驟都是用的iOS API,所以實現起來也不復雜。

之前搜尋到網上一個實現版本,但是其中有一些坑,只能提取整數秒的視訊內容,例如一個視訊長度是4.9s,則抽幀的時候只抽取前4s的內容,後面0.9s的內容就被忽略了,這個版本對此做了修復。

涉及到的關鍵技術

AVAssetImageGenerator 抽幀就是用這個系統類來完成,通過呼叫方法copyCGImage(at requestedTime: CMTime, actualTime: UnsafeMutablePointer<CMTime>?) throws -> CGImage

獲取指定時間戳的CGImage

生成Gif

  1. CGImageDestinationCreateWithURL建立Gif的儲存路徑
  2. CGImageDestinationSetProperties設定Gif的屬性
  3. CGImageDestinationAddImage迴圈add幀資料
  4. CGImageDestinationFinalize完成GIF,生成,儲存

Source Code

如需交流,請掃面下方二維碼(新增時備註:csdn) 新增時請註明:csdn