幫朋友做了一個(gè)小作業(yè),具體實(shí)現(xiàn)分為幾個(gè)過(guò)程:
- 將兩個(gè)mp4格式視頻融合到一起
- 為新視頻添加聲音
1.融合兩個(gè)視頻
其中一個(gè)視頻為背景。
p="E:/test"
import cv2
import os
#%%
cap = cv2.VideoCapture(os.path.join(p,"bkg.mp4"))
cap2 = cv2.VideoCapture(os.path.join(p,"fg.mp4"))
fourcc = cv2.VideoWriter_fourcc(*'MP4V')
fps = cap2.get(cv2.CAP_PROP_FPS)
width, height = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)-560)
out = cv2.VideoWriter('result2.mp4', fourcc, fps, (width, height))
width2, height2 = 270,480
while(True):
# 3.獲取每一幀圖像
ret, frame = cap.read()
ret2, frame2 = cap2.read()
if ret2 == True:
frame_new=frame[280:-280]
frame2 = cv2.resize(frame2, (width2,height2))
frame_new[160:600,160:410]=frame2[40:,:250]
out.write(frame_new)
else:
break
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cap.release()
out.release()
cv2.destroyAllWindows()
此時(shí)保存的視頻沒(méi)有聲音。
2.為視頻添加聲音
2.1 安裝ffmpy Python包
pip install ffmpy
2.2 下載ffmpeg
從官網(wǎng)下載安裝包,跳轉(zhuǎn)到鏈接:
我使用的是第一個(gè)壓縮包。剪切到自定義位置,并設(shè)置好系統(tǒng)路徑。
我這里的路徑是'D:/Program Files/ffmpeg/bin/ffmpeg.exe'
。
2.3 代碼實(shí)現(xiàn)
在這之前音頻文件要準(zhǔn)備好。
from ffmpy import FFmpeg
video_path=os.path.join(p,'result1.mp4')
audio_path=os.path.join(p,'audio.mp3')
_codec = 'aac'
result="res.mp4"
ff = FFmpeg(executable='D:/Program Files/ffmpeg/bin/ffmpeg.exe',inputs={video_path: None, audio_path: None},outputs={result: '-map 0:v -map 1:a -c:v copy -c:a {} -shortest'.format(_codec)})
ff.run()
3.效果
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-727880.html
參考文獻(xiàn)
[1] https://ffmpeg.org/download.html#build-windows
[2] csdn博客:【實(shí)操】python opencv將圖片合成視頻,并插入音頻
[3] csdn博客:Python 視頻添加音頻(附代碼) | Python工具
[4] csdn博客:OpenCV保存攝像頭視頻和視頻文件操作實(shí)戰(zhàn)(附Python源碼)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-727880.html
到了這里,關(guān)于使用opencv及FFmpeg編輯視頻的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!