偶爾會為了DEMO用途,需要將影片轉換為GIF的形式,便於穿插在文章裡頭,但我不想為了這小小的需求安裝什麼軟體。
而線上服務就是圖個方便打到很多使用者的痛點,但你必須將圖片上傳,這對某些使用者而言可能有疑慮...雖然我見到的線上轉檔服務使用者都是莫名安心地上傳的(?)
Python是非常美好的程式語言,自己寫段程式碼來處理就行了😎 我們只需要先在電腦安裝FFmpeg,然後引入moviepy這個套件就行了,作者zulko在他的個人網站有詳細的教學。
範例程式:
設置參數可更換影片輸入格式、是否加入浮水印以及生成的GIF和浮水印的縮放倍率。
python
#!/usr/bin/env python3
from glob import glob
import moviepy.editor as mp
# setting
filetype = '.mov'
watermark = './devilcat.png'
scale_gif = 0.3
scale_mark = 0.3
videos = glob('./*' + filetype)
videos.sort()
for video in videos:
output = video.replace(filetype, '.gif')
with mp.VideoFileClip(video).resize(scale_gif) as clip:
if watermark == '': # no watermark
clip.write_gif(output, fps=5)
else:
mark_image = (mp.ImageClip(watermark)
.resize(scale_mark)
.set_duration(clip.duration)
.set_pos(("left", "top")))
# add watermark to video
mark_video = mp.CompositeVideoClip([clip, mark_image])
mark_video.write_gif(output, fps=5)
*關於resize的錯誤參考:stackoverflow — Moviepy does not recognize resize function
我使用YT頻道哈哈台訪問浪漫Duke經典片段當範例,實際執行將影片轉換為GIF動圖並加上浮水印。
首先來畫一個浮水印...惡魔貓男!你今晚的惡夢!(激動 ⬇︎
接著準備幾個要轉成GIF的片段,開始轉換⬇︎
轉檔結果,可以看到GIF左上角出現剛剛畫的浮水印🤣 ⬇︎
世界要有愛! | 雞肉飯❤️ |
---|---|
好看! | 浪漫Duke❤️ |