日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】ffmpeg模块处理视频、音频信息

發布時間:2025/3/15 python 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】ffmpeg模块处理视频、音频信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多媒體視頻處理工具FFmpeg有非常強大的功能包括視頻采集功能、視頻格式轉換、視頻抓圖、給視頻加水印等。
這里主要介紹一下FFmpeg的一些常用參數,并且主要功能:截取視頻、視頻格式轉換、視頻分辨率轉換、視頻合并、提取視頻、提取音頻、提取圖片、視頻水印處理等。

ffmpeg參數:

一、公共參數:
-i 設定輸入流?
-y 表示如果輸出文件已存在則覆蓋
-f 設定輸出格式??指定文件格式(ffmpeg -formats可以列舉支持的format)
-b 指定視頻和音頻加起來的碼率
-q:v表示存儲jpeg的圖像質量,一般2是高質量。 格式:-q:v 2?-f image2
-ss 開始時間?????????????????????????????????????????????????????????格式:00:00:02或者2.00
-t 表示截取多長的時間(持續時間)
-to 截到視頻的哪個時間點結束(時間點)
-async 多少楨同步
-max_muxing_queue_size??增大容器封裝隊列大小(視頻處理出現報錯時) 格式:-max_muxing_queue_size 1024

二、視頻參數
-re 根據文件真實的幀率來讀取文件,生成實時刷新的直播流 ?格式:-re
-r 設定幀速率,單位為Hz,默認為25??????????????????格式:-r 29(表示每一秒幾幀)
-s 設定畫面的寬與高(幀尺寸)? ? ? ? ? ? ? ? ? ? ? ? 格式:-s 720x1280

"coded_height":1280,?"coded_width":720,

–b:v 表示視頻平均碼率(更改碼率的速度最慢) ? ? ? 格式:–b:v 1500k
-bufsize 用于設置碼率控制緩沖器的大小?????????????格式:-bufsize 1500k?
-maxrate 碼率波動,不要超過一個閾值???????????????格式:-maxrate 1800k
-minrate 碼率波動,不要低于一個閾值 ? ? ? ? ? ? ? 格式:-minrate 1300k
-aspect 設定畫面的比例? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 格式:-aspect 16:9?或者-aspect 1.7777

"display_aspect_ratio":"16:9"

-sar 設定畫面的比例? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 格式:-sar 1:1

"sample_aspect_ratio":"1:1"

-vf scale=iw*0.9:ih*0.9或者-vf scale=720:1280或者scale=720:-1 ? ? -vf是調用video filter,這里用了scale filter來改變分辨率進行轉碼

-vf是-filter:v的簡寫,-filter指定過濾器,:v是流選擇器,表示對視頻流應用過濾器。scale=后面的參數是w:h
格式:-vf scale=320:240 ? ? ? ?設置具體的寬度和高度
格式:-vf scale=360:-1 ? ? ? ? 固定高度
格式:-vf scale=-2:720 ? ? ? ? 固定寬度
格式:-vf scale=iw*0.9:ih*0.9 ?原來寬的0.9倍,高的0.9倍
-vf crop=width:height:x:y ? ? ?視頻裁剪(其中 width和height表示裁剪后的尺寸,x:y 表示裁剪區域的左上角坐標)
-vf transpose=2 ? ? ? ? ? ? ? ?旋轉視頻(transpose默認0-逆時針和垂直翻轉,1-順時針旋轉90度,2-逆時針旋轉90度,3-順時針和垂直翻轉)
-filter_complex [0][1]hstack ? 水平拼接兩個視頻
-filter_complex [0][1]vstack ? 垂直拼接兩個視頻
-qp 23 ? ? ? ? ? ? ? ? ? ? ? ? 編碼質量(值越大,壓縮率越大,質量越低)
-crf 23 ? ? ? ? ? ? ? ? ? ? ? ?編碼質量(0-無損編碼,可用值是0~51;x264默認值是23(推薦 17~ 28))
-strict -2 ? ? ? ? ? ? ? ? ? ? 之前是實驗參數表示aac音頻編碼(使用FFmpeg自帶的aac音頻編碼要帶上-strict -2 參數就可以了)
-- 圖片+音頻合并成視頻
ffmpeg -r 15 -f image2 -loop 1 -i 輸入圖片.png -i 輸入音頻.mp3 -s 1920x1080 -pix_fmt yuvj420p -t 278 -vcodec libx264 輸出.mp4
-pix_fmt:指定圖片輸入格式(有yuv420,yuv444等各種格式)
-loop 1 :因為只有一張圖片所以必須加入這個參數
-t:這個是圖片轉換成視頻后持續的時間長度,必須指定,單位為秒,不然會無限制生成視頻時間長度;

-metadata:s:v:0 rotate=90

-vn 不處理視頻?
-vcodec 設定視頻編解碼器,未設定時則使用與輸入流相同的編解碼器 ?-c:v效果一樣
-vcodec copy 表示使用跟原視頻一樣的視頻編解碼器。
-c:v libx264 表示對原視頻進行libx264重新編碼
-pass n 選擇處理遍數(1或者2)。兩遍編碼非常有用。第一遍生成統計信息,第二遍生成精確的請求的碼率 ?格式:-pass 1
-bsf:v h264_mp4toannexb=-vbsf h264_mp4toannexb ? 把mp4格式轉換為ts格式

三、音頻參數
–ar 表示音頻采樣率,單位為Hz; ??????????????格式:–ar 44100
–ab 音頻數據流量 位速???????????????????????格式:–ab 128k
-ac 設定聲音的Channel數?
-acodec 設定聲音編解碼器,未設定時則使用與輸入流相同的編解碼器 ?-c:a效果一樣
-acodec copy表示使用跟原視頻一樣的音頻編解碼器。
-an 不處理音頻
-vol 200%的音量 ? ? ? ? ? ? ?格式:-vol 200

注意一個問題,ffmpeg 在切割視頻的時候無法做到時間絕對準確,因為視頻編碼中關鍵幀(I幀)和跟隨它的B幀、P幀是無法分割開的,否則就需要進行重新幀內編碼,會讓視頻體積增大。所以,如果切割的位置剛好在兩個關鍵幀中間,那么 ffmpeg 會向前/向后切割,所以最后切割出的 chunk 長度總是會大于等于應有的長度。

總結

以上是生活随笔為你收集整理的【Python】ffmpeg模块处理视频、音频信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。