如何使用FFmpeg和Python进行视频的拆分和合成

Hello, 欢迎登录 or 注册!

/ 2评 / 0

本文作者:  本文分类:音视频剪辑  浏览:1509
阅读时间:966字, 约1-1.5分钟

这次的劳技课,由于视频和音乐的长度严重不符,且我这里没有合适的视频处理软件,我只能上网查找。再偶然间,我发现可以用FFmpeg进行对视频的拆分。方法如下:

1、安装FFmpeg。这个因该不要我多说。大家应该能很快装好。

2、$ ffmpeg -f image2 -i %4d.png -r 25 Video.mp4 #其中%4d.png意思是输出的图片被存储在当前目录,命名为0001.png、0002.png,以此类推,-r 后面是帧率,Video.mp4是要拆分的视频。

部分摘自 (https://www.jianshu.com/p/98e9e6ffe8f8

其中帧率可以自行选择,总图片数可以用帧率x时长(秒)进行计算,图片名称最好大于计算的个数(自行理解)。最后生成的图片总大小我这边是4800多张图片,总共2GB多,所以硬盘容量小的就不要尝试了。

3、按回车,等运行完毕即可。

我前面说了我是要更改视频长度的所以自然要把他复原。方法如下:

1、再文件夹下新建一个.py文件(默认已安装Python)

2、pip安装OpenCV

3、输入以下内容(我忘记出处了)

import os
import cv2
import numpy as np

path = 'D:/Online_Homework/Labor_and_Technology/Homework7/Pictures/'
filelist = os.listdir(path)

fps = 20 #视频每秒20帧
size = (1024, 576) #需要转为视频的图片的尺寸
#可以使用cv2.resize()进行修改

video = cv2.VideoWriter("Video.mp4v", cv2.VideoWriter_fourcc('X', 'v', 'i', 'D'), fps, size)
#视频保存在当前目录下

for item in filelist:
    if item.endswith('.png'): 
    #找到路径中所有后缀名为.png的文件,可以更换为.jpg或其它
        item = path + item
        img = cv2.imread(item)
        video.write(img)
        print(item)

video.release()
cv2.destroyAllWindows()

对于视频长度的问题请自己修改,上文已经讲的很清楚了。这就是我的代码。

4、运行即可(即完成)

关于作者

  1. EricNTH说道:

    哦哦哦真有趣哦。我网站上所有录的视频全部都是用ffmpeg变速拼合加水印的。贼爽。

  2. qyh说道:

    主题操作记录
    2020.5.3 13:08 审核通过

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注