Ericnth的小站

  • 你可能还想了解...
  • 首页
  • 编程学习笔记
  • 系统与软件
  • 摄影
  • 随笔
  • 论坛
  • 公告

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

  • Yuqi Huang
  • 2020-05-02
  • 0

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

你可能还想了解...

  • Final Cut Pro X 入门技巧
  • 会声会影第三弹——完结
  • 会声会影第二弹——过渡与加封面标题
  • 会声会影基础介绍
© 2023 Ericnth的小站
Theme by Wing
沪ICP备2020025694号 沪公网安备31011202012861号
  • {{ item.name }}
  • {{ item.name }}