# [FFmpeg] 將影片轉動態圖片 ## 基本選項 * 使用 `fps` 篩選器指定較低的 FPS 以避免出現出現龐大的檔案。 * 使用 `scale` 篩選器指定所需解析度與 `lanczos` 演算法來獲得較好的縮放結果。 > 當目標寬度或高度其中之一設定值為 -1 時,FFmpeg 將自動決定合適寬度或高度以維持寬高比。 例如,解析度 640xH,15 fps。篩選器流程圖: ```powershell fps=15,scale=640:-1:flags=lanczos ``` * 使用 `-ss` 選項以及 `-t` 或`-to` 選項指定開始時間與持續時間,以防止輸出太龐大或太長時。 > 時間格式秒數或 HH:mm:ss.f...。例如 15 分 20 秒 12 為 `00:15:20.12` 或 `920.12`。 例如,從 00:15:20.12 開始並持續 10 秒。選項組: ```powershell -ss 00:15:20.12 -t 10 ``` 以上也等同於: ```powershell -ss 00:15:20.12 -to 00:15:30.12 ``` ## WEBP 格式 * 使用 `-c:v webp` 指定影像格式為 WebP。 * 使用 `-q:v` 選項指定輸出目標品質。範圍 0 - 100,預設為 75。 輸出為 WebP,品質為 80: ```powershell ffmpeg -i input.mp4 -c:v webp -q:v 80 output.webp ``` 承上,從 00:15:20.12 開始並持續 10 秒,15 fps,lanczos 縮放至 640xH: ```powershell ffmpeg -i input.mp4 -ss 00:15:20.12 -t 10 -vf "fps=15,scale=640:-1:flags=lanczos" -c:v webp -q:v 80 output.webp ``` ## GIF 格式 * 使用 `-c:v gif` 指定影像格式為 GIF。 * 使用 `split` 篩選器建立一個複製視訊用於建立 GIF 所需的調色盤。 * 使用 `palettegen` 與 `paletteuse` 篩選器建立與應用 GIF 所需的調色盤。 為所有畫格 (frame) 產生一個調色盤並應用。篩選器流程圖: ```powershell split[s0][s1],[s0]palettegen[p],[s1][p]paletteuse ``` 輸出為 GIF。完整命令: ```powershell ffmpeg -i input.mp4 -vf "split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -c:v gif output.gif ``` 承上,從 00:15:20.12 開始並持續 10 秒,15 fps,lanczos 縮放至 640xH: ```powershell ffmpeg -i input.mp4 -ss 00:15:20.12 -t 10 -vf "fps=15,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -c:v gif output.gif ``` ###### tags: `ffmpeg`