首頁  >  文章  >  後端開發  >  Python小工具:五分鐘處理完一天的工作量,真香

Python小工具:五分鐘處理完一天的工作量,真香

王林
王林轉載
2023-05-23 16:43:061471瀏覽

Python小工具:五分鐘處理完一天的工作量,真香

簡介

FFmpeg 是一套強大的音視頻處理程序,也是許多音視頻軟體的基礎,事實上,FFmpeg 已成為業界音視訊處理的標準了。但命令列使用 FFmpeg 是有一定學習成本的,而 ffmpeg-python 函式庫則很好的解決了這個問題。

透過 pip 簡單安裝之後即可在 python 程式碼中使用 ffmpeg。

pip3 install ffmpeg-python

獲取視訊資訊

path = 'main.mp4'
probe = ffmpeg.probe(path)
video_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None)
width = int(video_stream['width'])
height = int(video_stream['height'])
print(width, height)

我們可以透過 stream 來獲取影片的一些基礎訊息,例如尺寸、長度、幀率等。

鏡像處理

# 左右镜像
ffmpeg.input(path).hflip().output('output.mp4').run()
# 上下镜像
ffmpeg.input(path).vflip().output('output.mp4').run()

可以簡單的理解為英文單字橫向(horizo​​ntal)和縱向(vertical)的縮寫。

新增浮水印

main = ffmpeg.input(path)
logo = ffmpeg.input('logo.png')
ffmpeg.filter([main, logo], 'overlay', 0, 500).output('out.mp4').run()

這條指令的意思是,將 logo 浮水印圖片放置在 main 影片的上方,座標為(0,500)。可以把影片的左上角理解為原點(0,0)的位置,從原點向右和向下分別表示 x 軸和 y 軸。

當然,如果把logo 做的足夠大,比視頻還要大,然後換一下雙方的位置,那就會變成將視頻放到logo 上了,其實相當於給視頻加了一個背景圖。

ffmpeg.filter([logo, main], 'overlay', 0, 500).output('out.mp4').run()

影片截取

ffmpeg.input(path).trim(start_frame=10,end_frame=20).output('out3.mp4').run()

這條指令看起來就很容理解,start_frame 和 end_frame 分別代表起始結束訊框。

影片拼接

base = ffmpeg.input(path)
ffmpeg.concat(
base.trim(start_frame=10, end_frame=20),
base.trim(start_frame=30, end_frame=40),
base.trim(start_frame=50, end_frame=60)
).output('out3.mp4').run()

影片拼接使用 concat 函數即可。

總結

今天給大家分享了一個 python 處理影片的不錯的函式庫,希望可以為大家的工作/副業帶來一些效率上的提升。

以上是Python小工具:五分鐘處理完一天的工作量,真香的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除