使用opencv及FFmpeg编辑视频

使用opencv及FFmpeg编辑视频

帮朋友做了一个小作业,具体实现分为几个过程:

  • 将两个mp4格式视频融合到一起
  • 为新视频添加声音

1.融合两个视频

其中一个视频为背景。

python 复制代码
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()

此时保存的视频没有声音。

2.为视频添加声音

2.1 安装ffmpy Python包

python 复制代码
pip install ffmpy

2.2 下载ffmpeg

官网下载安装包,跳转到链接

我使用的是第一个压缩包。剪切到自定义位置,并设置好系统路径。

我这里的路径是'D:/Program Files/ffmpeg/bin/ffmpeg.exe'

2.3 代码实现

在这之前音频文件要准备好。

python 复制代码
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.效果

参考文献

1\] \[2\] [csdn博客:【实操】python opencv将图片合成视频,并插入音频](https://blog.csdn.net/lr94V587/article/details/127629669) \[3\] [csdn博客:Python 视频添加音频(附代码) \| Python工具](https://blog.csdn.net/zhiweihongyan1/article/details/121735158?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-0-121735158-blog-123845165.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3) \[4\] [csdn博客:OpenCV保存摄像头视频和视频文件操作实战(附Python源码)](https://blog.csdn.net/jiebaoshayebuhui/article/details/128756782)

相关推荐
EasyDSS2 小时前
私有化视频会议平台/智能会议管理系统EasyDSS一站式视频云平台重构企业数字化协作底座
重构·音视频
AI2512248 小时前
AI视频生成工具技术解析:从文生视频到分镜脚本全流程
人工智能·音视频
好家伙VCC8 小时前
**发散创新:基于FFmpeg的视频编码优化实践与实战代码解析**在现代多媒体系统中,
java·python·ffmpeg·音视频
Ai搬运工110 小时前
【保姆级教程】B站缓存视频如何转为正常MP4格式?
缓存·音视频·bilibili
y小花10 小时前
安卓音频接口从APP到Hal的调用流程
android·音视频
无垠的广袤10 小时前
【“星睿O6”AI PC开发套件评测】基于 OpenClaw 的物体识别
linux·人工智能·opencv·摄像头·openclaw
byte轻骑兵12 小时前
【HFP】规范精讲[24]: 蓝牙HFP术语宝典
音视频·车机·hfp·耳机·蓝牙通话
EasyGBS12 小时前
国标GB28181视频分析平台EasyGBS视频质量诊断为平安社区视频监控筑牢安全防线
人工智能·安全·音视频
XiaoLeisj12 小时前
Android 短视频播放详情页实战:从播放器模块拆分、Media3 与 FlowHelper 接入,到 ViewPager 高度适配和详情数据联动
android·okhttp·音视频·架构设计·flowhelper
螺丝钉的扭矩一瞬间产生高能蛋白13 小时前
opencv基础用法
人工智能·opencv·计算机视觉