使用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 https://ffmpeg.org/download.html#build-windows

2 csdn博客:【实操】python opencv将图片合成视频,并插入音频

3 csdn博客:Python 视频添加音频(附代码) | Python工具

4 csdn博客:OpenCV保存摄像头视频和视频文件操作实战(附Python源码)

相关推荐
企业数字化笔记37 分钟前
视觉智能体怎么选技术?目标检测、跟踪、分割、OpenCV和FFmpeg的职责划分
opencv·目标检测·ffmpeg
linux_cfan40 分钟前
videojs v10 源代码系列解读:35 · HLS 解析器:multivariant 与 media playlist
前端·javascript·音视频
硬件学长森哥11 小时前
成像技术实例-HDR视频技术基础
图像处理·音视频
美狐美颜SDK开放平台14 小时前
Android与iOS直播APP美颜有什么区别?视频美颜SDK开发详解
android·ios·音视频·视频美颜sdk
2601_9556624615 小时前
文本转语音(TTS)技术选型与工程实践
大数据·人工智能·音视频·语音识别·媒体
贾伟康16 小时前
【HarmonyOS 7新能力|066】弱网直播优化实战:从网络感知到码率、缓冲与恢复
音视频·harmonyos·arkts·网络优化·弱网直播
Android系统攻城狮17 小时前
Linux Gstreamer深度解析之gst_audio_decoder_get_parse_state调用流程与实战(四十九)
linux·音视频·gstreamer音视频·gstreamer音视频进阶
勤劳X码农18 小时前
2026年TTS工具音频质量量化评测:MOS评分、延迟与格式兼容性实测
音视频
AI天行健18 小时前
内容工作室 AI 视频量产选型:星宇智算无限画布能解决哪些生产卡点
人工智能·音视频
小猴子爱上树19 小时前
跨马翻译:批量图片翻译+视频字幕+智能抠图一站式工具
python·音视频