這個頁面的程式碼沒跑起來。

直接從資料夾裡開啟 index.html,瀏覽器會攔下 JavaScript 模組,於是你選好影片之後,頁面不會有任何反應。改用 http 把這個資料夾提供出去:

powershell -ExecutionPolicy Bypass -File serve.ps1

然後開啟 http://localhost:8080/。

影片轉 GIF 把影片做成動圖

挑好段落、尺寸和幀率。

語言: 繁體中文
檢視原始碼
你的影片不會上傳。這裡根本沒有伺服器。

每一幀的讀取、縮放、量化和寫出,都是你自己的瀏覽器用你自己的硬體做的。這裡沒有任何東西能取資料或者發資料,這個工具壓根沒有聯網功能。就算真有,這個頁面的另一頭也沒有伺服器能接住一段影片。

即時檢查: 檢查中…

離線: 檢查中…

別信我們嘴上說的。開啟開發者工具,盯著「網路」面板,做一張 GIF 試試。沒有一條請求帶著畫面幀、檔名,或者你選中內容裡的任何一個位元組。或者乾脆拔掉網線照做,一個把影片送出去轉換的工具,這時候就該停了。

1 選一段影片

2 挑出那一段

放起來,把要的那一段標出來。I 把開始點定在播放頭這裡,O 定結束點,條上那兩個手柄也能直接拖。

0:00.000 —

3 尺寸和幀率

寬度 高度跟著走,比例不會變。GIF 的花銷就在寬度上:寬度砍一半,畫素少四分之三。

精確寬度 單位畫素,16 到 1920 之間。

每秒幀數 這不是影片自己的幀率,幀是從裡面抽出來的。十二幀就讀得出是在動;過了二十,檔案漲得比順滑看得出來的部分快。

抖動 配色板裡缺哪個顏色,就拿兩個湊。用的是有序抖動,所以靜止的背景不會滿屏爬。

一直循環 關掉就只放一遍,然後停住。

段落
—
輸出
—
幀數
—
大致體積
—

以 Markdown 檢視

影片怎麼做成 GIF

  1. 選一段影片。把 MP4、MOV、M4V 或者 WebM 拖到下面的方框裡,或者點開自己挑。瀏覽器直接從你的硬碟上讀,這期間沒有東西發出去。
  2. 標出那一段。放起來,該開始的地方按 I,該結束的地方按 O,也可以直接拖條上那兩個手柄。GIF 就該是幾秒鐘的東西。檔案是小是大,這個設定說了算,另外兩個加起來都沒它要緊。
  3. 挑寬度和幀率。寬 480 畫素、每秒 12 幀,GIF 的常見用途基本都夠。寬度砍一半,畫素少四分之三;每秒十二幀已經讀得出是在動,再多的那些幀誰也看不出來,白花錢。
  4. 做出來,然後下載。幀讀進來,整段動畫共用一份 256 色的配色板,每一幀只寫畫面裡變了的那一塊。做完就在頁面上放給你看,那張圖跟你下載到的是同一個檔案。

說得更細的版本

怎麼把影片做成 GIF 該挑哪一段、多寬、每秒幾幀,影片做成 GIF 為什麼會大出十倍,以及什麼時候壓根不該用 GIF。

常見問題

我的影片會傳到什麼地方去嗎?

不會。讀取、取幀、轉換,全由你自己的瀏覽器在你自己的硬體上完成。這個工具沒有伺服器那一半,頁面的 Content-Security-Policy 把它可能聯的地址全列了出來,沒有一個是本站的。與其聽我們說,不如拔掉網線,照做一張試試。

能轉哪些格式?

MP4、M4V 和 MOV 直接讀,裡面裝的是 H.264、HEVC、AV1 還是 VP9 都行,只要你的瀏覽器解得了那個編碼。其他瀏覽器能播的格式,最典型的是 WebM,改成把播放器逐個時間點跳過去取幀,慢一些,落在哪一幀上也沒那麼精確。瀏覽器既讀不了也播不了的檔案,實際上就是 AVI、WMV、FLV 和大多數 MKV,會被直接拒收並說明原因,不會做到一半才崩。

我的 GIF 怎麼這麼大?

因為 GIF 是 1987 年的格式,它存的是一張張完整的圖,不是運動。一段五秒的片子,做成 GIF 不可能跟它自己那個五秒的 MP4 一樣小,影片轉出來的 GIF 通常是原影片的十倍。真正決定大小的是三個設定,按要緊程度排:這一段多長、畫面多寬、每秒幾幀。寬度砍一半,畫素就少四分之三,而花錢的正是畫素。

為什麼只有 256 種顏色?

格式就是這麼定的:一張 GIF 帶一張最多 256 色的顏色表,每個畫素存的是表裡的編號。這個工具的做法是把你選中那一段裡每一幀的顏色都數一遍,再分成 256 組,用的是中位切分法,業界標準做法,所以配色板是貼著你這段片子長出來的,不是一套固定顏色。缺了某個顏色的地方,抖動會把最接近的兩種混在一起,讓漸變還是漸變,而不是一道道色帶。

抖動那個設定是做什麼的?

拿一點雜訊,換掉一大片色帶。開著的時候,一片本來會變成四道平色的天空還是漸變,代價是有點細微的紋理,檔案也大一點。關掉則畫面更平、檔案更小,適合螢幕錄影、線稿,以及本來就由大片純色構成的東西。這裡用的是有序抖動,不是誤差擴散那種,所以沒變化的背景在幀之間穩穩當當,不會滿屏爬。

長度和體積有限制嗎?

受限的是你標的那一段,而且卡住它的是記憶體,不是什麼規矩:選好配色板之前,這一段的每一幀都得同時留在手上。所以頁面會先算出你這套設定要花多少記憶體,提前告訴你,超了就直接拒絕,而不是讓分頁耗盡記憶體憑空消失。段落短一點、寬度小一點、幀率低一點,都能把這個數降下來。

聲音能保住嗎?

GIF 裝不了聲音。這個格式壓根沒有帶音訊的版本,這也正是後來網上大多改用無聲循環影片的主要原因。聲音要緊的話,那就別轉,留著影片,影片剪輯能從裡面剪出一段,而且一幀都不重編。

免費嗎?要註冊嗎?

免費,沒有帳號,不用登入,沒有試用期,也沒有水印。本站帶廣告,經費就是這麼來的,廣告拿不到關於你影片的任何資訊。