影片转档
这篇文章会介绍使用 Python 的 moviepy 第三方函数库,读取影片并转换成不同格式的影片 ( 例如 mp4、mov、wmv、avi...等常见格式 ),最后还会透过循环的方式,实现影片批次转档的功能。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
安装 moviepy
输入下列指令安装 moviepy,根据个人环境使用 pip 或 pip3。
!pip install moviepy
由于影片转档会使用 ffmpeg,因此也要安装 ffmpeg ( 影片存档常见错误“TypeError: must be real number, not NoneType”往往都是 ffmpeg 没有安装导致 ),根据个人环境使用 pip 或 pip3,Anaconda Jupyter 可以使用 conda install。
!pip install ffmpeg
读取影片,转换成不同格式
加载 moviepy 读取影片后,使用 write_videofile 方法,设定好储存影片的副档名,就能转换成指定格式的影片。
如果有遇到转档后无法播放的状况,通常是影片 codec 有问题,可以尝试更换影片播放器,或参考 moviepy 的说明更换程序码中的 codec ( 参考:write_videofile )
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from moviepy.editor import *
video = VideoFileClip("oxxostudio.mp4") # 讀取影片
format_list = ['avi','mov','wmv','flv','asf', 'mkv'] # 要轉換的格式清單
# 使用 for 迴圈轉換成所有格式
for i in format_list:
output = video.copy()
output.write_videofile(f"output.{i}",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
print('ok')
批次影片转档
使用 for 循环,就能一次读取多支影片,进行批次转档的功能。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from moviepy.editor import *
format_list = ['avi','mov','wmv','flv','asf', 'mkv']
for n in range(3):
video = VideoFileClip(f"oxxo_{n}.mp4") # 使用 for 迴圈讀取影片
for i in format_list:
output = video.copy()
output.write_videofile(f"output_{n}.{i}",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
print('ok')
微信扫码关注
抖音扫码关注