Python小技巧:利用MoviePy库编辑音视频、添加字幕(附代码及导入导出注意事项)

文章目录

  • 前言
  • 一、Moviepy是什么?
  • 二、安装Moviepy
  • 三、使用Moviepy
  • 1. 导入Moviepy库
  • 2. 视频剪辑
  • 3. 音频剪辑
  • 4. 添加文字
  • 5. 将文字和音乐合成到视频中
  • 6. 导出视频
  • 四、完整代码示例
  • 总结

  • 前言

    使用Python编辑视频,各位有没有试过,我试过。虽然不如剪辑软件直观,但是各种剪辑软件需要手工操作每一步,一个小的操作不慎就需要挨个调节,那是考验耐心和费时费力的一件事儿。

    那么有没有可以使用程序进行视频编辑的方法?当然有!

    程序的好处是:设置好,一遍效果不好,重新设置下再运行一次就行,根本不用挨个操作。尤其是字幕!下面我们就简单介绍下如何利用Python通过MoviePy库编辑视频。

    一、Moviepy是什么?

    MoviePy是一个用于视频编辑的Python模块,它可被用于一些基本操作(如剪切、拼接、插入标题)、视频合成(即非线性编辑)、视频处理和创建高级特效。它可对大多数常见视频格式进行读写,包括GIF。

    二、安装Moviepy

    安装Moviepy很简单,使用如下命令即可安装:

    pip install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple 
    

    三、使用Moviepy

    1. 导入Moviepy库

    在使用Moviepy之前,我们需要使用以下代码先导入Moviepy

    from moviepy.editor import *
    

    2. 视频剪辑

    在进行视频剪辑之前,首先需要加载视频文件。使用以下代码可以加载视频文件:

    video = VideoFileClip("input.mp4") # 这里是相对路径,如果使用绝对路径,请注意路径。
    

    比如,我们要截取视频的某个时间段作为新的视频片,如用如下代码:

    # 定义剪辑的开始和结束时间,这里的时间以秒为单位
    start = 5
    end = 25
    # 对视频进行剪辑
    clip_video = video.subclip(start, end)
    

    使用如上方法后,subclip()方法可将第5秒剪切到第25秒,生成一个新的视频片段clip。

    3. 音频剪辑

    使用AudioFileClip即可载入音频文件,同时使用subclip方法即可截取对应时间音频,与上面视频剪辑方法效果一样。只是这里截取的是音频。

    clip_audio = AudioFileClip("input.mp3").subclip(5, 25)
    

    4. 添加文字

    使用TextClip可以创建一个文本片段对象,如下:

    text = TextClip("Moviepy太好用啦!", font='simhei.ttf', fontsize=80, color='white')# 设置文本内容,字体、大小以及颜色
    text = text.set_position('center').set_duration(5)# 设置文本位置为剧中,并持续5秒
    

    5. 将文字和音乐合成到视频中

    final_video = CompositeVideoClip([clip_video, text])
    final_video = final_video.set_audio(clip_audio)
    

    6. 导出视频

    视频剪辑完成后,我们使用write_videofile将最终的视频导出为文件。

    final_video.write_videofile("output.mp4", threads = 8, fps=24, codec='mpeg4')
    

    以上代码将使用8线程、每秒24帧,mpge4编码格式导出剪辑后的视频,并保存为output.mp4。

    有些人导出了视频,但使用Windows播放器只能听到声音看不到图像,就是codec没有设置好,导致视频无时长,只能播放音频。

    四、完整代码示例

    from moviepy.editor import *
    # 载入视频
    video = VideoFileClip("input.mp4") # 这里是相对路径,如果使用绝对路径,请注意路径。
    # 定义剪辑的开始和结束时间,这里的时间以秒为单位
    start = 5
    end = 25
    # 对视频进行剪辑
    clip_video = video.subclip(start, end)
    
    # 载入并剪辑音频
    clip_audio = AudioFileClip("input.mp3").subclip(5, 25)
    
    # 添加文字
    clip_text = TextClip("Moviepy太好用啦!", font='simhei.ttf', fontsize=80, color='white')# 设置文本内容,字体、大小以及颜色
    clip_text = clip_text.set_position('center').set_duration(5)# 设置文本位置为剧中,并持续5秒
    
    # 合成音视频及文字
    final_video = CompositeVideoClip([clip_video, clip_text])
    final_video = final_video.set_audio(clip_audio)
    
    # 导出编辑后的最终视频
    final_video.write_videofile("output.mp4", threads = 8, fps=24, codec='mpeg4')
    

    总结

    以上只是Moviepy库使用方法的一个简单示例。通过以上方法,我们可以方便地进行视频剪辑、音频剪辑、添加文字的操作。其实Moviepy的功能远不止于此,比如使用图片生成视频,还可以添加字幕等。关于字幕生成和添加,由于涉及内容较多,后期单独一篇进行介绍。

    更多使用说明详见:https://moviepy-cn.readthedocs.io/zh/latest/

    各位如有兴趣,我们一起探索Moviepy库的其他功能和特性!

    作者:IT里的交易员

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python小技巧:利用MoviePy库编辑音视频、添加字幕(附代码及导入导出注意事项)

    发表回复