最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python視頻編輯庫MoviePy的使用

 更新時間:2020年04月01日 15:22:26   作者:程序員阿牛  
這篇文章主要介紹了Python視頻編輯庫MoviePy的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

moviepy官網(wǎng):

https://pypi.org/project/moviepy/

是一個用于視頻編輯的Python庫:切割、連接、標題插入、視頻合成、非線性編輯,視頻處理和定制效果的創(chuàng)建。

Github:

https://github.com/Zulko/moviepy

MoviePy

MoviePy是一個關(guān)于視頻編輯的python庫,主要包括:剪輯,嵌入拼接,標題插入,視頻合成(又名非線性編輯),視頻處理,和自定制效果??梢钥磄allery中的一些實例來了解用法。MoviePy可以讀寫所有的音頻和視頻格式,包括GIF,通過python2.7+和python3可以跨平臺運行于window/Mac/Linux,下面是一個在IPython notebook的運行實例。


實例

在這個例子中,我們打開一個視頻文件,在t = 50s的時刻和t = 60s的時刻之間選擇子剪輯,在屏幕中心添加一個標題,并將結(jié)果寫入一個新文件:

from moviepy.editor import *
video = VideoFileClip("myHolidays.mp4").subclip(50,60)
# Make the text. Many more options are available.
txt_clip = ( TextClip("My Holidays 2013",fontsize=70,color='white')
       .set_position('center')
       .set_duration(10) )
result = CompositeVideoClip([video, txt_clip]) # Overlay text on video
result.write_videofile("myHolidays_edited.webm",fps=25) # Many options...

安裝

MoviePy依賴于python的模塊:numpy,imageio,Decorator和tqdm,隨著MoviePy的安裝都會自動安裝,F(xiàn)FMPEG軟件 應(yīng)該在第一次使用MoviePy的時候被自動安裝(下載將會花幾秒鐘)。如果你想用FFMPEG的特定版本,請查看config_default.py的說明,在出現(xiàn)問題的時候,可以及時反饋。
手動安裝:下載源代碼,既可以通過PyPI,或者如果你想要一個開發(fā)版本,可以通過github下載,解壓到一個文件夾,打開終端,然后輸入:

$ (sudo) python setup.py install

通過pip進行安裝:如果你安裝了pip,僅僅在終端中輸入:

$ (sudo) pip install moviepy

如果你setuptools和ez_setup兩個都沒安裝,上面的命令會失效,在這種情況下請先在終端下輸入:

$ (sudo) pip install ez_setup

輸入代碼

import imageio
imageio.plugins.ffmpeg.download()
import win_unicode_console
win_unicode_console.enable()
import sys,os
from PyQt5.QtCore import *
from PyQt5.QtWidgets import (QWidget, QPushButton, QLineEdit,QLabel,
               QApplication,QFileDialog)
from moviepy.video.io.VideoFileClip import VideoFileClip


class login(QWidget):
  def __init__(self):
    super(login,self).__init__()
    self.initUI()

  def initUI(self):
    #源文件選擇按鈕和選擇編輯框
    self.source_btn = QPushButton('源文件', self)
    self.source_btn.move(30, 30)
    self.source_btn.resize(60,30)
    self.source_btn.clicked.connect(self.select_source)
    self.source_le = QLineEdit(self)
    self.source_le.move(120, 30)
    self.source_le.resize(250,30)

    # 存儲文件選擇按鈕和選擇編輯框
    self.target_btn = QPushButton('目標路徑', self)
    self.target_btn.move(30, 90)
    self.target_btn.resize(60, 30)
    self.target_btn.clicked.connect(self.select_target)
    self.target_le = QLineEdit(self)
    self.target_le.move(120, 90)
    self.target_le.resize(250, 30)

    #截切開始時間輸入框和提示
    self.startLabel = QLabel(self)
    self.startLabel.move(30, 150)
    self.startLabel.resize(60,30)
    self.startLabel.setText("開始秒")
    self.start_le = QLineEdit(self)
    self.start_le.move(120,150)
    self.start_le.resize(50,30)

    # 截切結(jié)束時間輸入框和提示
    self.stopLabel = QLabel(self)
    self.stopLabel.move(230, 150)
    self.stopLabel.resize(60,30)
    self.stopLabel.setText("結(jié)束秒")
    self.stop_le = QLineEdit(self)
    self.stop_le.move(320,150)
    self.stop_le.resize(50,30)

    #保存按鈕,調(diào)取數(shù)據(jù)增加函數(shù)等
    self.save_btn = QPushButton('開始',self)
    self.save_btn.move(30, 210)
    self.save_btn.resize(140, 30)
    self.save_btn.clicked.connect(self.addNum)

 

    #執(zhí)行成功返回值顯示位置設(shè)置
    self.result_le = QLabel(self)
    self.result_le.move(30, 270)
    self.result_le.resize(340, 30)


    #整體界面設(shè)置
    self.setGeometry(400, 400, 400, 400)
    self.setWindowTitle('視頻剪切')#設(shè)置界面標題名
    self.show()

  # 打開的視頻文件名稱
  def select_source(self):
    target,fileType = QFileDialog.getOpenFileName(self, "選擇源文件", "C:/")
    self.source_le.setText(str(target))
  #保存的視頻文件名稱,要寫上后綴名
  def select_target(self):
    target,fileType = QFileDialog.getSaveFileName(self, "選擇保存路徑", "C:/")
    self.target_le.setText(str(target))


  def addNum(self):
    source = self.source_le.text().strip()#獲取需要剪切的文件
    target = self.target_le.text().strip()#獲取剪切后視頻保存的文件
    start_time = self.start_le.text().strip()#獲取開始剪切時間
    stop_time = self.stop_le.text().strip()#獲取剪切的結(jié)束時間
    video = VideoFileClip(source)#視頻文件加載
    video = video.subclip(int(start_time), int(stop_time))#執(zhí)行剪切操作
    video.to_videofile(target, fps=20, remove_temp=True)#輸出文件
    self.result_le.setText("ok!")#輸出文件后界面返回OK
    self.result_le.setStyleSheet("color:red;font-size:40px")#設(shè)置OK顏色為紅色,大小為四十像素
    self.result_le.setAlignment(Qt.AlignCenter)#OK在指定框內(nèi)居中

if __name__=="__main__":
  app = QApplication(sys.argv)
  ex = login()
  sys.exit(app.exec_())

效果

選擇要分割的視頻以及目標路徑(帶后綴),然后設(shè)置開始與結(jié)束時間,單位為秒。

點擊開始

到此這篇關(guān)于Python視頻編輯庫MoviePy的使用的文章就介紹到這了,更多相關(guān)Python MoviePy內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析python,PyCharm,Anaconda三者之間的關(guān)系

    淺析python,PyCharm,Anaconda三者之間的關(guān)系

    Python是一種跨平臺的計算機程序設(shè)計語言,簡單來說,python就是類似于C,Java,C++等,一種編程語言。這篇文章主要介紹了淺析python,PyCharm,Anaconda三者之間的關(guān)系,需要的朋友可以參考下
    2019-11-11
  • python?pip無法使用該怎么解決詳析

    python?pip無法使用該怎么解決詳析

    在python程序的開發(fā)過程中,pip是一個用來下載第三方庫非常好用的工具,下面這篇文章主要介紹了python?pip無法使用該怎么解決的相關(guān)資料,需要的朋友可以參考下
    2024-09-09
  • Python實現(xiàn)語音識別vosk的示例代碼

    Python實現(xiàn)語音識別vosk的示例代碼

    Vosk是一個功能強大且易于使用的語音識別工具包,它提供了Python綁定,使得在Python中使用Vosk變得非常方便,本文主要介紹了Python實現(xiàn)語音識別vosk的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Python應(yīng)用03 使用PyQT制作視頻播放器實例

    Python應(yīng)用03 使用PyQT制作視頻播放器實例

    本篇文章主要介紹了Python使用PyQT制作視頻播放器實例,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12
  • python多線程比單線程效率低的原因及其解決方案

    python多線程比單線程效率低的原因及其解決方案

    這篇文章主要介紹了python多線程比單線程效率低的原因及其解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python 如何調(diào)用 dubbo 接口

    python 如何調(diào)用 dubbo 接口

    這篇文章主要介紹了python 如何調(diào)用 dubbo 接口,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-09-09
  • Python+pyftpdlib實現(xiàn)局域網(wǎng)文件互傳

    Python+pyftpdlib實現(xiàn)局域網(wǎng)文件互傳

    這篇文章主要介紹了Python+pyftpdlib實現(xiàn)局域網(wǎng)文件互傳,需要的朋友可以參考下
    2020-08-08
  • Python天氣預(yù)報采集器實現(xiàn)代碼(網(wǎng)頁爬蟲)

    Python天氣預(yù)報采集器實現(xiàn)代碼(網(wǎng)頁爬蟲)

    這個天氣預(yù)報采集是從中國天氣網(wǎng)提取廣東省內(nèi)主要城市的天氣并回顯。本來是打算采集騰訊天氣的,但是貌似它的數(shù)據(jù)是用js寫上去還是什么的,得到的html文本中不包含數(shù)據(jù),所以就算了
    2012-10-10
  • 一文帶你探索Python中的eventlet通信機制

    一文帶你探索Python中的eventlet通信機制

    這篇文章主要為大家詳細介紹了Python中的eventlet通信機制的相關(guān)知識,文中的示例代碼講解詳細,對我們深入了解Python有一定幫助,需要的可以參考一下
    2023-06-06
  • Python?sns.distplot()方法的使用方法

    Python?sns.distplot()方法的使用方法

    機器學習中經(jīng)常會用到圖形進行可視化,如在網(wǎng)格搜索(GridSearch)后對特征的重要性進行排序時,用到sns.barplot()函數(shù)按照重要程度輸出特征,這篇文章主要給大家介紹了關(guān)于Python?sns.distplot()方法的使用方法,需要的朋友可以參考下
    2022-03-03

最新評論

富宁县| 松桃| 尤溪县| 增城市| 无棣县| 资兴市| 罗定市| 博乐市| 宁化县| 扶沟县| 新巴尔虎右旗| 大渡口区| 油尖旺区| 丹江口市| 黔江区| 喀什市| 海阳市| 桂平市| 巴彦淖尔市| 鹤壁市| 富顺县| 噶尔县| 建平县| 黔南| 永德县| 库尔勒市| 启东市| 皮山县| 昆山市| 思南县| 陆川县| 鲜城| 章丘市| 正镶白旗| 南和县| 芒康县| 鹤山市| 白城市| 永胜县| 剑川县| 吐鲁番市|