新聞中心
簡介
FFmpeg 是一套強大的音視頻處理程序,也是很多音視頻軟件的基礎(chǔ),事實上,F(xiàn)Fmpeg 已經(jīng)成為業(yè)界音視頻處理的標(biāo)準(zhǔn)了。但命令行使用 FFmpeg 是有一定學(xué)習(xí)成本的,而 ffmpeg-python 庫則很好的解決了這個問題。

創(chuàng)新互聯(lián)建站擁有10余年的建站服務(wù)經(jīng)驗,在此期間,我們發(fā)現(xiàn)較多的客戶在挑選建站服務(wù)商前都非常的猶豫。主要問題集中:在無法預(yù)知自己的網(wǎng)站呈現(xiàn)的效果是什么樣的?也無法判斷選擇的服務(wù)商設(shè)計出來的網(wǎng)頁效果自己是否會滿意?創(chuàng)新互聯(lián)建站業(yè)務(wù)涵蓋了互聯(lián)網(wǎng)平臺網(wǎng)站建設(shè)、移動平臺網(wǎng)站制作、網(wǎng)絡(luò)推廣、按需定制等服務(wù)。創(chuàng)新互聯(lián)建站網(wǎng)站開發(fā)公司本著不拘一格的網(wǎng)站視覺設(shè)計和網(wǎng)站開發(fā)技術(shù)相結(jié)合,為企業(yè)做網(wǎng)站提供成熟的網(wǎng)站設(shè)計方案。
通過 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 來獲取視頻的一些基礎(chǔ)信息,比如尺寸、時長、幀率等。
鏡像處理
# 左右鏡像
ffmpeg.input(path).hflip().output('output.mp4').run()
# 上下鏡像
ffmpeg.input(path).vflip().output('output.mp4').run()
可以簡單的理解為英文單詞橫向(horizontal)和縱向(vertical)的首字母縮寫。
添加水印
main = ffmpeg.input(path)
logo = ffmpeg.input('logo.png')
ffmpeg.filter([main, logo], 'overlay', 0, 500).output('out.mp4').run()
這條命令的意思是,將 logo 水印圖片放置在 main 視頻的上方,坐標(biāo)為(0,500)??梢园岩曨l的左上角理解為原點(0,0)的位置,從原點向右和向下分別表示 x 軸和 y 軸。
當(dāng)然,如果把 logo 做的足夠大,比視頻還要大,然后換一下雙方的位置,那就會變成將視頻放到 logo 上了,其實相當(dāng)于給視頻加了一個背景圖。
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 分別代表起始結(jié)束幀。
視頻拼接
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 函數(shù)即可。
總結(jié)
今天給大家分享了一個 python 處理視頻的不錯的庫,希望可以給大家的工作/副業(yè)帶來一些效率上的提升。
當(dāng)前標(biāo)題:Python小工具:五分鐘處理完一天的工作量,真香
網(wǎng)站地址:http://m.fisionsoft.com.cn/article/dhsgsdp.html


咨詢
建站咨詢
