欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)將MP4視頻轉(zhuǎn)化為GIF圖像

 更新時間:2023年06月07日 09:22:11   作者:夏天是冰紅茶  
與靜態(tài)圖像相比,動態(tài)的?GIF?圖片更能吸引各位讀者的注意力,還可以提供更生動、有趣和引人入勝的內(nèi)容,本文為大家介紹了Python將MP4視頻轉(zhuǎn)化為GIF圖像的方法,需要的可以參考下

前言

GIF圖片對于我來說是一個很好的展示方式,GIF 圖片能夠展示動態(tài)的圖像效果,對于展示計算機(jī)視覺算法或結(jié)果非常有用。例如,我可以使用 GIF 圖片來展示運動跟蹤、姿勢識別、圖像分割、目標(biāo)檢測等任務(wù)的結(jié)果,以更生動和直觀的方式向讀者展示算法的效果。

與靜態(tài)圖像相比,動態(tài)的 GIF 圖片更能吸引各位讀者的注意力,使用 GIF 圖片就可以提供更生動、有趣和引人入勝的內(nèi)容,幫助大家更好地理解和吸收相關(guān)的概念和技術(shù)。

不僅如此,通過在動態(tài)圖像中展示關(guān)鍵步驟和變化,我可以更清晰地傳達(dá)我想表達(dá)的信息。

MP4文件轉(zhuǎn)GIF圖片

安裝moviepy

正常使用pip install moviepy,但卻如下報錯。

解決方案:pip3 install moviepy -i http://pypi.douban.com/simple–trusted-host=pypi.douban.com

最后安裝成功。

import moviepy.editor as mpe

GIF = mpe.VideoFileClip("01.mp4")
print(GIF.fps)
new_clip = GIF.subclip(1, 6)
new_clip.write_gif("output.gif", fps=2)

我查到大家都說的是通過moviepy,三行就能進(jìn)行轉(zhuǎn)化,但我卻發(fā)現(xiàn)無論我怎么修改,保存的GIF圖片始終只有一幀的畫面。

如果有人知道問題所在,還望評論指正!

使用Opencv轉(zhuǎn)化為GIF圖

上面修改查詢了一點時間未能解決這個問題,我就手寫來實現(xiàn)MP4文件轉(zhuǎn)化為GIF圖片。

"""
author : Auorui(夏天是冰紅茶)
time : 2023-6-7
function: mp4——>GIF
"""
import cv2
import imageio

def Mp4toGif(mp4, name='result.gif', fps=10, start=None, end=None):
    cap = cv2.VideoCapture(mp4)
    all_images = []
    frame_count = 0

    while True:
        ret, img = cap.read()
        if ret is False:
            break
        if start is not None and frame_count < start:
            frame_count += 1
            continue
        if end is not None and frame_count >= end:
            break
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        all_images.append(img)
        frame_count += 1

    duration = int(1000 / fps)  # 將幀率轉(zhuǎn)換為每幀之間的延遲時間(毫秒)

    gif = imageio.mimsave(name, all_images, duration=duration)
    print("轉(zhuǎn)換完成!")

# 轉(zhuǎn)換整個視頻為 GIF
Mp4toGif(mp4="04.mp4", fps=10)

# 轉(zhuǎn)換指定幀范圍的視頻為 GIF
Mp4toGif(mp4="04.mp4", fps=10, start=0, end=75)

參數(shù)簡介:

  • mp4:要轉(zhuǎn)換為 GIF 的 MP4 視頻文件的路徑。
  • name:生成的 GIF 文件的名稱。默認(rèn)值為 “result.gif”。
  • fps:生成的 GIF 的幀率(每秒播放的幀數(shù))。默認(rèn)值為 10。
  • start:指定要轉(zhuǎn)換的起始幀索引。默認(rèn)值為 None,表示從視頻的第一幀開始轉(zhuǎn)換。
  • end:指定要轉(zhuǎn)換的結(jié)束幀索引。默認(rèn)值為 None,表示轉(zhuǎn)換到視頻的最后一幀。

實現(xiàn)思路:

(1)使用 OpenCV 的 cv2.VideoCapture 函數(shù)打開指定的 MP4 視頻文件,并創(chuàng)建一個視頻捕獲對象 cap。

(2)創(chuàng)建變量 all_images 來存儲所有的圖像幀,創(chuàng)建變量 frame_count 來記錄當(dāng)前幀的索引。

(3)通過一個循環(huán)不斷讀取視頻的幀,使用 cap.read() 函數(shù)讀取視頻的下一幀圖像。如果讀取失?。ㄒ曨l結(jié)束),則跳出循環(huán)。

(4)根據(jù)提供的 start 和 end 參數(shù)來控制要轉(zhuǎn)換的幀范圍。如果 start 不為 None,并且當(dāng)前幀索引小于 start,則跳過該幀。如果 end 不為 None,并且當(dāng)前幀索引大于等于 end,則跳出循環(huán)。

(5)使用 cv2.cvtColor 函數(shù)將讀取的圖像幀從 BGR 格式轉(zhuǎn)換為 RGB 格式,以便后續(xù)生成 GIF 圖片時顏色顯示正確。

(6)將轉(zhuǎn)換后的圖像幀添加到 all_images 列表中。

(7)根據(jù)提供的幀率 fps 計算每幀之間的延遲時間 duration,以便生成的 GIF 圖片播放時具有指定的幀率。

(8)使用 imageio.mimsave 函數(shù)將 all_images 列表中的幀保存為 GIF 圖片。指定參數(shù) duration 為幀間延遲時間。保存的 GIF 圖片文件名由提供的 name 參數(shù)決定。

(9)在轉(zhuǎn)換完成后,輸出提示信息表示轉(zhuǎn)換過程已完成。

以上就是Python實現(xiàn)將MP4視頻轉(zhuǎn)化為GIF圖像的詳細(xì)內(nèi)容,更多關(guān)于Python視頻轉(zhuǎn)GIF的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python基于pygame實現(xiàn)飛機(jī)大作戰(zhàn)小游戲

    python基于pygame實現(xiàn)飛機(jī)大作戰(zhàn)小游戲

    這篇文章主要為大家詳細(xì)介紹了python基于pygame實現(xiàn)飛機(jī)大作戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • python Popen 獲取輸出,等待運行完成示例

    python Popen 獲取輸出,等待運行完成示例

    今天小編就為大家分享一篇python Popen 獲取輸出,等待運行完成示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python?selenium模擬點擊問題解決方案

    python?selenium模擬點擊問題解決方案

    這篇文章主要介紹了python?selenium模擬點擊問題,涉及到安裝谷歌瀏覽器和瀏覽器驅(qū)動的相關(guān)知識介紹,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 圖文詳解寶塔centos7安裝Conda的步驟

    圖文詳解寶塔centos7安裝Conda的步驟

    在centos7上安裝anaconda碰到很多的坑,分享出來,也免得以后自己忘記,下面這篇文章主要給大家介紹了關(guān)于寶塔centos7安裝Conda的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • python簡單實現(xiàn)整數(shù)反轉(zhuǎn)的畫解算法

    python簡單實現(xiàn)整數(shù)反轉(zhuǎn)的畫解算法

    這篇文章主要介紹了python簡單實現(xiàn)整數(shù)反轉(zhuǎn)采用了一個有趣的畫解算法,通過示例的題目描述來對問題分析進(jìn)行方案的解決,有需要的朋友可以參考下
    2021-08-08
  • Python中schedule模塊關(guān)于定時任務(wù)使用方法

    Python中schedule模塊關(guān)于定時任務(wù)使用方法

    這篇文章主要介紹了Python中schedule模塊關(guān)于定時任務(wù)使用方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Python單個項目列表轉(zhuǎn)換為整數(shù)的實現(xiàn)

    Python單個項目列表轉(zhuǎn)換為整數(shù)的實現(xiàn)

    本文主要介紹了Python單個項目列表轉(zhuǎn)換為整數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 詳解Python中的List

    詳解Python中的List

    這篇文章主要為大家介紹了Python中的List,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 一文詳解Python中的行為驗證碼驗證功能

    一文詳解Python中的行為驗證碼驗證功能

    最近在開發(fā)行為驗證碼,經(jīng)常觸及到關(guān)于驗證類型的相關(guān)內(nèi)容。但使用起來不太熟練,所以本文就來總結(jié)一下對行為驗證碼驗證類型的理解
    2023-03-03
  • pytorch 兩個GPU同時訓(xùn)練的解決方案

    pytorch 兩個GPU同時訓(xùn)練的解決方案

    這篇文章主要介紹了pytorch 兩個GPU同時訓(xùn)練的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論