FFmpeg是一套強(qiáng)大的音視頻處理程序,也是很多音視頻軟件的基礎(chǔ),事實(shí)上,F(xiàn)Fmpeg已經(jīng)成為業(yè)界音視頻處理的標(biāo)準(zhǔn)了。但命令行使用FFmpeg是有一定學(xué)習(xí)成本的,而ffmpeg-python庫則很好的解決了這個(gè)問題。
通過pip簡單安裝之后即可在python代碼中使用ffmpeg。
pip3installffmpeg-python
獲取視頻信息
path='main.mp4'probe=ffmpeg.probe(path)video_stream=next((streamforstreaminprobe['streams']ifstream['codec_type']=='video'),None)width=int(video_stream['width'])height=int(video_stream['height'])print(width,height)
我們可以通過stream來獲取視頻的一些基礎(chǔ)信息,比如尺寸、時(shí)長、幀率等。
鏡像處理
#左右鏡像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的左上角理解為原點(diǎn)(0,0)的位置,從原點(diǎn)向右和向下分別表示x軸和y軸。
當(dāng)然,如果把logo做的足夠大,比視頻還要大,然后換一下雙方的位置,那就會(huì)變成將視頻放到logo上了,其實(shí)相當(dāng)于給視頻加了一個(gè)背景圖。
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ù)即可。
以上內(nèi)容為大家介紹了Python小工具FFmpeg,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。