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

Python 如何利用ffmpeg 處理視頻素材

 更新時間:2021年11月26日 14:59:48   作者:一行玩python  
ffmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機(jī)程序,使用這個神器,便可以處理各種視頻素材內(nèi)容,極度舒適。本文將介紹如何利用ffmpeg對視頻素材進(jìn)行處理,感興趣的可以了解一下

前言

第一次處理視頻素材可以手動用剪映來處理,然后再用代碼進(jìn)行自動化處理,不然連朝哪個方向自動化處理可能都不知道

那清楚處理流程之后,怎么用Python來處理視頻素材呢?

ffmpeg!

ffmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機(jī)程序

使用這個神器,便可以處理各種視頻素材內(nèi)容,極度舒適

下面一行來分享一下如何使用這個神器

一、安裝

首先需要在ffmpeg的官網(wǎng)下載最新版本,不然可能會出現(xiàn)各種奇怪的問題

因為ffmpeg是個命令行工具,所以安裝時需要注意將ffmpeg加入環(huán)境變量中,安裝完之后,可以在終端里輸入下面命令查看是否安裝成功

ffmpeg -version

二、subprocess調(diào)用

因為ffmpeg是命令行工具,可以通過subprocess的調(diào)用來使用

先查看使用文檔,例如拆分視頻文件的命令是:

ffmpeg -i [filename] -ss [starttime] -t [length] -c copy [newfilename]
  • i 為需要裁剪的文件
  • ss 為裁剪開始時間
  • t 為裁剪結(jié)束時間或者長度
  • c 為裁剪好的文件存放

好了,用 Python 寫一個調(diào)用:

import subprocess as sp

def cut_video(filename, outfile, start, length=90):
    cmd = "ffmpeg -i %s -ss %d -t %d -c copy %s" % (filename, start, length, outfile)
    p = sp.Popen(cmd, shell=True)
    p.wait()
    return
  • 定義了一個函數(shù),通過參數(shù)傳入 ffmpeg 需要的信息
  • 將裁剪命令寫成一個字符串模板,將參數(shù)替換到其中
  • 用 subprocess 的 Popen 執(zhí)行命令,其中參數(shù) shell=True 表示將命令作為一個整體執(zhí)行
  • p.wait() 很重要,因為裁剪需要一會兒,而且是另起進(jìn)程執(zhí)行的,所以需要等待執(zhí)行完成再繼續(xù)執(zhí)行后面工作,不然可能找不到文件

三、ffmpy3

ffmpy3是ffmpeg的python包裝器,以可以用這個包來進(jìn)行處理視頻

需要先用pip進(jìn)行安裝

pip install ffmpy3

例如修改文件格式這種操作就可以使用ffmpy3直接輸出

import ffmpy3
ff = ffmpy3.FFmpeg(
     inputs={'input.mp4': None},
     outputs={'output.avi': None}
     )
ff.run()

轉(zhuǎn)碼

如果同時我們想使用不同的編解碼器重新編碼視頻和音頻,在輸出文件同時必須指定額外的輸出選項:

ff = FFmpeg(
    inputs={'input.ts': None},
    outputs={'output.mp4': '-c:a mp2 -mpeg2video'}
)
ff.cmd
ff.run()

解復(fù)用

還可以將文件的音頻和視頻輸出成兩個mp4格式的文件

ff = FFmpeg(
    inputs={'input.ts': None},
    outputs={
         'video.mp4': ['-map', '0:0', '-c:a', 'copy', '-f', 'mp4'],
         'audio.mp4': ['-map', '0:1', '-c:a', 'copy', '-f', 'mp4']
     }
 )
ff.cmd
ff.run()

復(fù)用

復(fù)用就是將輸入的mp4文件和mp3文件合成同一個視頻文件

這里使用 OrderedDict 來保留輸入的順序,以便它們與輸出選項中的流的順序相匹配:

from collections import OrderedDict
inputs = OrderedDict([('video.mp4', None), ('audio_1.mp3', None), ('audio_2.mp3', None)])
outputs = {'output.ts', '-map 0 -c:v h264 -map 1 -c:a:0 ac3 -map 2 -c:a:1 mp2'}
ff = FFmpeg(inputs=inputs, outputs=outputs)
ff.cmd
ff.run()

拆分成圖片

處理視頻素材內(nèi)容還需要將視頻拆成一張張圖片,對圖片進(jìn)行處理,然后再合并成視頻

在輸出的文件類型改成.png結(jié)尾即可

import ffmpy3
ff = ffmpy3.FFmpeg(
     inputs={'data.MP4': None},
     outputs={'1/%d.png': None}
     )
ff.run()

四、最后

通過ffmpeg處理視頻主要還是要了解它的命令用法,可以在官方文檔里進(jìn)行查看

然后再去了解各種熱門視頻的模版,自動化生成自己想要的視頻指日可待?

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

相關(guān)文章

  • python getopt模塊使用實例解析

    python getopt模塊使用實例解析

    這篇文章主要介紹了python getopt模塊使用實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • python庫pycryptodom加密技術(shù)探索(公鑰加密私鑰加密)

    python庫pycryptodom加密技術(shù)探索(公鑰加密私鑰加密)

    這篇文章主要為大家介紹了python庫pycryptodom加密技術(shù)探索(公鑰加密私鑰加密),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python判斷列表字典字符串元組是否存在某個值或者空值(多種方法)

    python判斷列表字典字符串元組是否存在某個值或者空值(多種方法)

    這篇文章主要介紹了python判斷列表字典字符串元組是否存在某個值或者空值,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-02-02
  • 如何利用python web框架做文件流下載的實現(xiàn)示例

    如何利用python web框架做文件流下載的實現(xiàn)示例

    這篇文章主要介紹了如何利用python web框架做文件流下載的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 最小二乘法及其python實現(xiàn)詳解

    最小二乘法及其python實現(xiàn)詳解

    今天小編就為大家分享一篇最小二乘法及其python實現(xiàn)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python整型運算之布爾型、標(biāo)準(zhǔn)整型、長整型操作示例

    Python整型運算之布爾型、標(biāo)準(zhǔn)整型、長整型操作示例

    這篇文章主要介紹了Python整型運算之布爾型、標(biāo)準(zhǔn)整型、長整型操作,結(jié)合具體實例形式分析了Python中布爾型、標(biāo)準(zhǔn)整型、長整型等相關(guān)運算技巧,代碼備有詳盡注釋,需要的朋友可以參考下
    2017-07-07
  • python與json數(shù)據(jù)的交互詳情

    python與json數(shù)據(jù)的交互詳情

    這篇文章主要介紹了python與json數(shù)據(jù)的交互詳情,json是一種獨立于編程語言和平臺的輕量級數(shù)據(jù)交換方式,更多相關(guān)內(nèi)容介紹,需要的朋友可以參考一下
    2022-07-07
  • 詳解python中的hashlib模塊的使用

    詳解python中的hashlib模塊的使用

    這篇文章主要介紹了python中的hashlib模塊的使用,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-04-04
  • 利用Python復(fù)制文件的9種方法總結(jié)

    利用Python復(fù)制文件的9種方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于利用Python復(fù)制文件的9種方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python實現(xiàn)將Excel內(nèi)容插入到Word模版中

    Python實現(xiàn)將Excel內(nèi)容插入到Word模版中

    前段時間因為需要處理一大堆驗收單,都是一些簡單的復(fù)制粘貼替換工作,于是就想到用python進(jìn)行處理。本文分享了用python將excel文件單元格內(nèi)容插入到word模版中并保存為新文件的辦法,希望對大家有所幫助
    2023-03-03

最新評論