概要
PythonでMP4ファイルをトリミングする方法について、初心者にもわかりやすく解説します。moviepy
とeasygui
という2つのライブラリを使用して、ファイル選択やトリミング範囲の入力をGUIで行うプログラムを作成します。このブログでは、必要なライブラリのインストール方法から、実際にプログラムを動かす手順まで詳しく説明します。
使用例
動画編集は専門的なソフトウェアが必要とされることが多いですが、Pythonを使うことで簡単に動画のトリミングができます。例えば、撮影した動画の冒頭や終わりの不要な部分をカットして、SNSにアップロードするために使うことができます。
必要なPythonライブラリとインストール方法
このプログラムでは以下のPythonライブラリを使用します:
moviepy
: 動画編集のためのライブラリeasygui
: GUIダイアログを提供するライブラリ
これらのライブラリはpipを使ってインストールできます。以下のコマンドを実行してください:
pip install moviepy easygui
使用手順
- Pythonと必要なライブラリをインストールします。
- 下記のプログラムをメモ帳などに丸々コピーして、ファイル名を「trim_video.py」として保存します。
- コマンドラインやターミナルから
trim_video.py
を実行します。
プログラムを実行すると、編集前のファイルを選択するダイアログが表示されます。ファイルを選択すると、トリミング開始時間と終了時間を入力するダイアログが順に表示されます。時間を入力すると、編集後のファイル名を入力するダイアログが表示され、指定した名前でトリミングされた動画ファイルが保存されます。
注意点
- 時間は「時:分:秒」の形式で正確に入力してください。
- トリミング開始時間と終了時間が逆にならないように注意してください。
- ファイル名に使用できない文字が含まれていないか確認してください。
プログラム
以下のコードをメモ帳などに丸々コピーして、ファイル名を「trim_video.py」にして保存してください。
from moviepy.editor import VideoFileClip
import easygui
def trim_video():
# ユーザーに編集前のファイル名を尋ねる
input_file = easygui.fileopenbox(title="編集前のファイルを選択してください", filetypes=["*.mp4"])
if not input_file:
easygui.msgbox("ファイルが選択されませんでした。プログラムを終了します。", title="エラー")
return
# トリミング開始時間を尋ねる
start_time = easygui.enterbox("トリミング開始時間を「時:分:秒」の形式で入力してください(例:00:01:30)", title="開始時間")
# トリミング終了時間を尋ねる
end_time = easygui.enterbox("トリミング終了時間を「時:分:秒」の形式で入力してください(例:00:02:30)", title="終了時間")
if not start_time or not end_time:
easygui.msgbox("時間が正しく入力されませんでした。プログラムを終了します。", title="エラー")
return
# ビデオクリップを読み込む
video = VideoFileClip(input_file)
# トリミング
start_seconds = sum(x * int(t) for x, t in zip([3600, 60, 1], start_time.split(":")))
end_seconds = sum(x * int(t) for x, t in zip([3600, 60, 1], end_time.split(":")))
trimmed_clip = video.subclip(start_seconds, end_seconds)
# 編集後のファイル名を尋ねる
output_file = easygui.filesavebox(title="編集後のファイル名を入力してください", default="trimmed_video.mp4", filetypes=["*.mp4"])
if not output_file:
easygui.msgbox("ファイル名が入力されませんでした。プログラムを終了します。", title="エラー")
return
# ファイルを保存
trimmed_clip.write_videofile(output_file, codec="libx264")
# 完了メッセージ
easygui.msgbox("トリミングが完了しました。ファイル名: " + output_file, title="完了")
if __name__ == "__main__":
trim_video()
あるいは、下のテキストファイルをダウンロードし、「.txt」を「.py」に変えることでそのまま使えます。
mp4トリミングくん
まとめ
Pythonと簡単なプログラムを使うことで、MP4ファイルのトリミングが簡単に行えることがわかりました。moviepy
とeasygui
を使えば、GUIを用いた操作が可能になり、初心者でも直感的に使えるプログラムを作成できます。動画編集の第一歩として、ぜひこのプログラムを試してみてください。