91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么利用ffmpeg處理視頻素材

發布時間:2021-11-26 16:25:29 來源:億速云 閱讀:375 作者:iii 欄目:開發技術

這篇文章主要介紹“Python怎么利用ffmpeg處理視頻素材”,在日常操作中,相信很多人在Python怎么利用ffmpeg處理視頻素材問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python怎么利用ffmpeg處理視頻素材”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    一、安裝

    首先需要在ffmpeg的官網下載最新版本,不然可能會出現各種奇怪的問題

    Python怎么利用ffmpeg處理視頻素材

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

    ffmpeg -version

    二、subprocess調用

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

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

    ffmpeg -i [filename] -ss [starttime] -t [length] -c copy [newfilename]
    • i 為需要裁剪的文件

    • ss 為裁剪開始時間

    • t 為裁剪結束時間或者長度

    • c 為裁剪好的文件存放

    好了,用 Python 寫一個調用:

    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
    • 定義了一個函數,通過參數傳入 ffmpeg 需要的信息

    • 將裁剪命令寫成一個字符串模板,將參數替換到其中

    • 用 subprocess 的 Popen 執行命令,其中參數 shell=True 表示將命令作為一個整體執行

    • p.wait() 很重要,因為裁剪需要一會兒,而且是另起進程執行的,所以需要等待執行完成再繼續執行后面工作,不然可能找不到文件

    三、ffmpy3

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

    需要先用pip進行安裝

    pip install ffmpy3

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

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

    轉碼

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

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

    解復用

    還可以將文件的音頻和視頻輸出成兩個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()

    復用

    復用就是將輸入的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 h364 -map 1 -c:a:0 ac3 -map 2 -c:a:1 mp2'}
    ff = FFmpeg(inputs=inputs, outputs=outputs)
    ff.cmd
    ff.run()

    拆分成圖片

    處理視頻素材內容還需要將視頻拆成一張張圖片,對圖片進行處理,然后再合并成視頻

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

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

    到此,關于“Python怎么利用ffmpeg處理視頻素材”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    育儿| 伊通| 简阳市| 五原县| 博罗县| 曲阜市| 内江市| 四子王旗| 福贡县| 东乌珠穆沁旗| 内乡县| 南投县| 武威市| 吉隆县| 娱乐| 霍林郭勒市| 准格尔旗| 民乐县| 清苑县| 佛山市| 多伦县| 常熟市| 锡林浩特市| 明溪县| 如东县| 台安县| 翼城县| 固阳县| 普安县| 金湖县| 东乡族自治县| 永安市| 五峰| 浦东新区| 柯坪县| 浠水县| 策勒县| 章丘市| 房产| 永康市| 湄潭县|