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

这次的劳技课,由于视频和音乐的长度严重不符,且我这里没有合适的视频处理软件,我只能上网查找。再偶然间,我发现可以用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、运行即可(即完成)

5 1 vote
Article Rating
Subscribe
提醒
2 评论
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
qyh

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

EricNTH

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

2
0
Would love your thoughts, please comment.x
()
x