三行代碼使用Python將視頻轉Gif
一、前言
很多網(wǎng)站提供視頻轉GIF的功能,但要么收費要么有廣告
實際上我們通過python,幾行代碼就能夠實現(xiàn)視頻轉gif
(PS:最近發(fā)現(xiàn)了一個不錯的人工智能學習網(wǎng)站:,覺得不錯請三連支持一下)
二、教程
1. 安裝必備庫moviepy
pip install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple
2. 寫入代碼
from moviepy.editor import *
clip = (VideoFileClip("movie.mp4")) # 需要轉為GIF的視頻文件路徑
clip.write_gif("movie.gif")
3. 轉換效果
剛剛的GIF圖雖然只有幾秒,但大小卻有9M之多!(還是已經(jīng)縮放了分辨率的情況下)
如果需要轉換的視頻有幾十秒,那文件大小就得上百兆甚至更多!
那該怎么解決呢?
4. GIF很大的解決方案
我們除了設置縮放分辨率resize外,還可以通過設置fps參數(shù)抽幀來減少大小
from moviepy.editor import *
clip = (VideoFileClip("movie.mp4").resize((488,225)))
clip.write_gif("movie.gif",fps=15) #設置為每秒15幀
設置為每秒15幀后,文件大小只有2m多,一下縮小了4倍之多!
而且視覺效果也沒有多大的區(qū)別 
4. 截取視頻長度轉換
我們還可以通過設置subclip參數(shù)來指定轉換的視頻范圍:
subclip:截取原視頻中的自t_start至t_end間的視頻片段
將視頻1-2秒片段轉化為Gif
from moviepy.editor import *
clip = (VideoFileClip("movie.mp4").subclip(t_start=1, t_end=2).resize((488, 225)))
clip.write_gif("movie.gif", fps=15)
5. 指定轉換后的圖片大?。ǚ直媛剩?/span>
resize參數(shù)可指定轉換后的圖片大小
接受的參數(shù)為:
-
以像素或浮點表示的(width,height)1. 縮放百分比,如 0.5示例
1.設置轉換后的圖片為600*400
clip = (VideoFileClip("movie.mp4").resize((600, 400)))
2.原視頻縮放50%
clip = (VideoFileClip("movie.mp4").resize(0.5))


Python“寶藏級”公眾號【Python之王】專注于Python領域,會爬蟲,數(shù)分,C++,tensorflow和Pytorch等等。
近 2年共原創(chuàng) 100+ 篇技術文章。創(chuàng)作的精品文章系列有:
日常收集整理了一批不錯的 Python 學習資料,有需要的小伙可以自行免費領取。
獲取方式如下:公眾號回復資料。領取Python等系列筆記,項目,書籍,直接套上模板就可以用了。資料包含算法、python、算法小抄、力扣刷題手冊和 C++ 等學習資料!
