UltKit

影片轉 GIF 教學:尺寸、影格率與循環技巧 | UltKit

要把影片做成 GIF,先挑出兩到六秒的片段,縮放到 320–640 px 寬,把影格率降到 10–15 fps,再讓轉換器依這段片段建立 256 色調色盤。這四個選擇決定你得到的是清晰的 2 MB 循環動圖,還是任何聊天軟體都不收的 30 MB 檔案。

Mina SatoMina Sato音訊與影片編輯
更新於 11 分鐘閱讀
昏暗房間裡,木箱上的復古電影放映機穿過薄霧投射出明亮光束

GIF 檔案實際上儲存了什麼

GIF 的歷史比網際網路還久。CompuServe 在 1987 年發表第一版 GIF87a,用來透過撥接連線傳送靜態圖片;1989 年的修訂版 GIF89a 加入了讓動畫成真的兩項功能:每個影格各自的延遲時間,以及一個透明色。循環播放則在 1995 年才出現,當時 Netscape Navigator 2.0 開始讀取一個小型應用程式擴充區塊,其中指定重複播放的次數。現今所有動態 GIF 仍是內含這個區塊的 GIF89a 檔案,所以幾乎所有瀏覽器和郵件軟體都能播放。

GIF 內部是一疊索引色圖片。每個影格指向一張最多 256 項的色彩表,因此一個影格最多只能顯示 256 種顏色,即使原本的影片有數百萬種顏色。像素接著以 LZW 壓縮,這是一種無損的字典式方法,對單一顏色的平坦區域效果很好,對照片的雜訊、顆粒和漸層則效果很差。LZW 本身不會丟失任何資訊;品質損失發生得更早,也就是數百萬種顏色被壓進色盤的時候。

GIF 還有兩樣東西無法容納。第一,它完全沒有音軌,影片中的聲音會直接消失。第二,它的時間精度很粗:延遲以百分之一秒為單位儲存,而多數瀏覽器會把 0 或 1 百分之一秒的延遲當成 10 百分之一秒,所以以 50 fps 或更高製作的 GIF 只會播得更慢,而不是更流暢。實際上,10 到 25 fps 才是有用的範圍。

GIF89a 加入動畫功能
1989
每個影格最多的顏色數
256
最小延遲單位
1/100 秒
音軌數量
0

GIF 為什麼會暴增,以及縮小的先後順序

H.264 等現代影片編碼只會偶爾儲存完整畫面,大部分影格只記錄與前一格的細微差異。GIF 也能做到一點,只更新前一格中的某個矩形區域,但完全沒有動態預測。鏡頭一移動,幾乎每個像素都會改變,每個影格幾乎都得完整儲存。所以 2 MB 的手機影片可能變成 15 MB 的 GIF,而滑鼠在靜止視窗上移動的螢幕錄影則依然很小。

GIF 的大小大致等於寬度乘以高度再乘以影格數,並依影格之間靜止的程度打折。如此一來,各項調整的效果就很容易排序。長度與影格數成一比一:4 秒而不是 8 秒,檔案就減半。寬度以平方比例減少像素:從 640 px 降到 320 px,每個影格只剩四分之一的像素。影格率同樣線性減少影格,而 12 fps 對手勢和人臉的表現出奇地好。減少顏色的效果比一般人預期的小,通常只有 10% 到 30%,因為 LZW 在意的是重複的圖樣,而不是色盤大小。

混色是最讓人困惑的取捨。它會散布鄰近色盤顏色的小點,來模擬色盤中缺少的色階,能掩飾天空和膚色的色帶,卻會加入 LZW 壓縮效果很差的細緻雜訊。螢幕錄影、卡通和介面示範本來就是平坦的色塊,請關閉混色;實拍畫面則建議開啟。裁切是最後一個手段:去掉靜止的邊框或黑色的上下黑邊,就能在不影響主體的情況下減少像素。

  1. 第 1 步縮短片段每刪掉一秒,那一秒的影格也一併消失;2–6 秒足以涵蓋大多數反應畫面。
  2. 第 2 步降低寬度寬度減半,像素只剩四分之一;320–480 px 適合聊天視窗。
  3. 第 3 步降低影格率10–15 fps 可讓動作清楚易讀;緩慢的螢幕錄影可用 8 fps。
  4. 第 4 步減少顏色並調整混色圖形類用 64–128 色且不混色;實拍畫面用 256 色並開啟混色。

如何選擇片段的起點與終點

大多數被分享的 GIF 都只有一個瞬間:一個反應、一次進球、一次按鈕點擊以及接著出現的畫面。先看一遍影片,在腦中計時,記下這個瞬間開始的秒數,以及明確結束的秒數,然後在前後各多留幾個影格,讓循環不會顯得被截斷。如果來源影片很長,請先用影片剪輯工具剪出需要的範圍,再處理短檔案。在轉換器中,直接在開始時間和結束時間輸入秒數或分:秒,也能做到同樣的事,不需要另外一個步驟。

也要想想 GIF 從哪裡開始播放。許多聊天軟體和郵件軟體在檔案載入時會顯示第一個影格,而 2007 到 2016 年的 Windows 版 Outlook 只顯示第一個影格,完全不會播放動畫。請從一個作為靜態圖片也合理的影格開始,不要停在平移途中的模糊畫面。如果 GIF 想表達的是一段字幕或一個結果,可以延長結束時間,把最後的畫面多停留半秒,讓觀看者在循環重新開始前讀完。

Tip拍攝來源影片時就想著要做成 GIF:手機拿穩、讓主體填滿畫面,並避免變焦。同樣的設定下,固定機位的畫面可能只有手持畫面的一半大小。

兩隻手拿著場記板,上面手寫著場次與拍攝次數,背景是沙漠天空
照片:Unsplash

Discord、Slack、GIPHY、X 與 Reddit 的 GIF 大小限制

GIF 要放到哪裡,比任何設定更早決定了檔案大小的預算。Discord 在 2024 年把免費帳號的上傳上限降到每個檔案 10 MB,這也是多數人最先碰到的數字;Nitro Basic 提高到 50 MB,Nitro 則是 500 MB。GIPHY 接受最長 15 秒、100 MB 的上傳。X 接受最大 15 MB 的 GIF,並在上傳時轉成循環影片;Reddit 接受最大 100 MB 的 GIF,但同樣以影片方式提供播放。Slack 可接受最大 1 GB 的檔案,但自訂表情符號必須小於 128 KB,這表示寬度要很小、循環要很短、顏色要很少。

電子郵件比較特殊。Gmail 每封郵件允許 25 MB 的附件,Outlook.com 則是 20 MB,但嵌在電子報或簽名檔本文中的 GIF 應遠小於 1 MB,這樣郵件在行動數據下才能快速開啟。在聊天中,建議抓上限的一半,而不是剛好壓在上限之下,因為接收的人可能網路很慢。下表的數字是 2025 年的資料;檔案剛好落在邊緣時,請查看該服務的說明頁面。

2025 年 GIF 上傳限制
用途限制GIF 的處理方式
Discord 免費帳號每個檔案 10 MB直接在訊息中播放並循環
Discord Nitro Basic / Nitro50 MB / 500 MB直接在訊息中播放並循環
Slack 訊息 / 自訂表情符號1 GB / 128 KB直接播放動畫,除非觀看者關閉了動畫
GIPHY 上傳15 秒、100 MB以 GIF、MP4 和 WebP 版本提供
X (Twitter)15 MB轉成無聲的循環 MP4
Reddit100 MB轉成影片播放
電子郵件內嵌建議小於 1 MBWindows 版 Outlook 2007–2016 只顯示第一個影格

什麼時候 MP4、WebM、WebP 或 APNG 比 GIF 更好

X 從 2014 年起就把每個上傳的 GIF 轉成 MP4,原因是頻寬。同樣的 5 秒,做成 GIF 有 4 MB,用 H.264 通常只要幾百 KB,而且是全彩而不是 256 色,也沒有混色雜訊。GIPHY 和 Tenor 也是如此:鍵盤上的 GIF 按鈕通常抓取的是小型 MP4 或 WebP。所以真正的問題不是怎麼做出最好的 GIF,而是你要發佈的地方到底需不需要 GIF。

當目的地能顯示圖片但不能顯示影片時,就保留真正的 GIF:電子郵件本文、GitHub 的 README 或 issue、Jira 工單、wiki、老舊論壇,或必須在所有檢視器中都能正常運作的簡報。凡是影片能內嵌並靜音播放的地方,包括大多數社群網站和現代聊天軟體,MP4 或 WebM 循環看起來更好,載入也更快。在你能掌控的網頁上,<video autoplay muted loop playsinline> 元素的行為就像 GIF,而位元組數只要一小部分。

還有兩種圖片格式介於兩者之間。Google 的動態 WebP 支援數百萬種顏色和有損壓縮,Safari 從 2020 年的 14 版開始支援,所以現在所有最新的瀏覽器都能播放,不過瀏覽器以外的許多應用程式仍不接受。APNG 是為 PNG 加上影格的擴充,保留全彩和真正的 Alpha 透明度,Apple 和 LINE 的動態貼圖就是用它。如果已經有一個 GIF,只是想讓它在支援影片的網站上變小,把 GIF 轉回 MP4 通常是單一步驟中省下最多的方法。

到處都能播

GIF

256 色、沒有聲音、檔案很大,但到處都能當成圖片顯示。

  • 電子郵件本文、README、工單和 wiki
  • 自動循環,沒有播放按鈕
  • 四種格式中,大小與品質的比例最差
Best for: 能顯示圖片但不能顯示影片的地方。
最小

MP4 或 WebM

全彩並有動態壓縮,檔案大小通常只有十分之一。

  • 可以保留聲音
  • 在大多數社群網站上會靜音自動播放
  • 大多數郵件軟體不會內嵌顯示
Best for: 社群貼文、聊天軟體和你能掌控的網頁。
圖片格式

動態 WebP 或 APNG

全彩的動態圖片;APNG 另有平滑的透明效果。

  • 所有最新的瀏覽器都能播放
  • 桌面應用程式和郵件的支援不一致
  • APNG 常用於貼圖
Best for: 網站和貼圖包。

影片轉 GIF 的六種方法

手機不需要額外的應用程式就能做到。在 iPhone 上,捷徑 App 有一個製作 GIF動作,可接受影片或 Live Photo,而套用「循環」或「來回」效果的 Live Photo 是拍攝來源的快速方法。Samsung 的相簿 App 在播放影片時會顯示 GIF 按鈕,可把畫面上的片段錄成 GIF。GIPHY App 與其網頁版 GIF Maker 可在同一處剪輯、加字幕並上傳,但除非你只儲存,否則成果會公開。在 Photoshop 中,檔案 > 匯入 > 將視訊影格轉換為圖層最多可匯入 500 個影格,匯出 > 儲存為網頁用(舊版)則能在輸出 GIF 時控制色盤和混色。

若要完整控制或批次處理,ffmpeg 的兩階段色盤方法能得到最乾淨的結果:第一個濾鏡掃描片段,依實際顏色建立 256 色色盤,第二個則把每個影格對應到這個色盤。下面這行指令會從 0:02 開始剪出 5 秒、縮放到寬度 480 px、取樣 12 fps 並無限循環。在瀏覽器中,影片轉 GIF 轉換器以相同的色盤步驟處理,並提供寬度、影格率、顏色和混色控制項,而 MP4 轉 GIF 頁面開啟時已預先選好 MP4。手機拍的 MOV 影片做法相同;如果某個 App 不接受,請先閱讀將 MOV 轉成 MP4。

iPhone

  1. 01在捷徑中建立選取照片 → 製作 GIF → 儲存到相簿。
  2. 02執行並選擇影片或 Live Photo;較長的影片請先在照片 App 中剪短。
  3. 03從照片 App 的動畫相簿分享 GIF。

Android

  1. 01在 Samsung 相簿中開啟影片,播放時點選 GIF。
  2. 02拖曳控制點到想要的片段。
  3. 03點選儲存;其他手機請在 Chrome 中使用網頁轉換器。

桌面電腦

  1. 01在 Photoshop 中選擇檔案 > 匯入 > 將視訊影格轉換為圖層。
  2. 02在時間軸面板中設定影格延遲與永遠循環。
  3. 03用儲存為網頁用(舊版)輸出為 GIF,128–256 色。
ffmpeg:從 0:02 開始 5 秒、寬度 480 px、12 fps、循環播放
ffmpeg -ss 2 -t 5 -i 影片.mp4 -vf "fps=12,scale=480:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse" -loop 0 輸出.gif

做出流暢循環與最後的品質檢查

GIF 預設會無限循環播放,因為 Netscape 擴充區塊中寫入的重複次數為零,代表無限次。把次數設為一次,GIF 就只會播放一遍並停在最後一格,適合結尾是一段文字訊息的 GIF。比較困難的是讓循環看不出接縫。可以找出開頭與結尾畫面幾乎相同的片段,例如揮手後回到原位的動作,或是用來回播放先正向再倒著播放,這樣就不會有跳格,代價是影格數會變成兩倍。

傳送之前,請在瀏覽器分頁中以實際大小開啟 GIF,而不是看縮圖,並完整觀看三次循環。確認畫面中的文字在所選寬度下看得清楚、人臉沒有變成色塊斑駁的樣子,而且節奏與原影片一致。接著把檔案大小與上方表格中的限制比對;如果很接近,就回頭依長度、寬度、影格率、顏色數的順序再縮減。若是較長的片段或含有聲音的內容,壓縮影片以便在 Discord 和電子郵件分享會是更好的做法。

  • 天空、陰影和膚色出現色帶

    調色盤的色階不夠用了。請保持 256 色,並將混色切換為 Sierra 或 Floyd–Steinberg;漸層很多的畫面則建議改傳 MP4。

  • GIF 播放速度比影片快或慢

    延遲時間是以百分之一秒為單位儲存的。10、20 和 25 fps 可以整除;超過 50 fps 的話,瀏覽器會把速度放慢。

  • 畫面中的文字看不清楚

    把寬度提高到 640 px,並降低影格率來補償,或是在轉換前先裁切到有文字的區域。

  • 循環重新開始時有明顯的跳格

    把開始時間和結束時間移到畫面相符的影格,或開啟來回播放並將範圍縮短一半。

重點整理

  • GIF 每一格最多 256 色,沒有聲音,影格延遲以百分之一秒為單位。
  • 檔案大小取決於長度、寬度和影格率;在動顏色之前,請依這個順序縮減。
  • 建議 2–6 秒、320–640 px、10–15 fps;螢幕錄影可關閉混色。
  • Discord 免費版上限 10 MB,X 為 15 MB,GIPHY 為 15 秒和 100 MB,Slack 表情符號為 128 KB。
  • 在可以直接播放影片的地方,MP4 或 WebM 循環檔比任何 GIF 都更小、畫質更好。
分享XFacebookWhatsAppTelegram

常見問題

影片轉 GIF 最適合的影格率是多少?

大多數片段使用 10 到 15 fps 即可。快速的運動或遊戲畫面可以用 20 fps;緩慢的螢幕錄影用 8 fps 就很流暢,檔案也小得多。

GIF 應該做幾秒?

兩到六秒幾乎涵蓋所有的反應圖、操作示範和精華片段。超過十秒 GIF 會迅速變大,分享短 MP4 通常是更好的選擇。

GIF 是無損格式嗎?

GIF 內部的 LZW 壓縮是無損的,但轉換過程並非如此,因為影片中數百萬種顏色會被縮減成每格 256 色的調色盤。色帶和顆粒感就是由這個縮減造成的。

為什麼 X 會把我的 GIF 轉成影片?

自 2014 年起,X 會把上傳的 GIF 轉成循環播放的 MP4,因為影片小得多,而且能保留完整色彩。貼文仍會像 GIF 一樣無聲循環播放。

可以把 YouTube 影片做成 GIF 嗎?

只能使用你裝置上的檔案,且你有權使用。請從 YouTube Studio 下載自己上傳的影片,或使用原始錄影檔,再進行剪輯和轉換。

GIF 和動態 WebP 有什麼不同?

動態 WebP 支援數百萬色、有損壓縮和平滑的透明效果,所以通常小得多。GIF 的支援範圍更廣,包括電子郵件軟體和不支援 WebP 的舊版應用程式。

延伸閱讀