ソフトエンジニアのブログ、制作ノウハウ等を配信

【効率化】Pythonとffmpegで動画無音カットツール(Mac版)を作ってみました

どうもこんにちは、InomaCreateです。
動画編集の無音区間のカットが非常に面倒でなんとか効率化したいと思い、無音カットツールを作ってみましたので紹介します。

スポンサーリンク

無音削除ツールについて

本ツールは、Pythonでffmpegを動作させて無音カットしますので、ツールを使うには、事前にffmpegのインストールが必要です。

FFmpeg(エフエフエムペグ)は動画と音声を記録・変換・再生するためのフリーソフトウェアである
参考:ウィキペディアより

※本当は、python実行プログラムにffmpegを同梱したかったですが、うまくいきませんでした。。今後改善を検討してきます。
また、Mac版なので多分Windowsでは動作しませんのでご了承ください。(Windows版もそのうち作ろうと思います)

事前準備:ffmpegをインストール

作成したツールは、ffmpegがインストールされていることを前提に動作しますので、まずはffmpegのインストールが必要です。
以下コマンドでインストールしましょう。

$ brew install ffmpeg

※HomeBrewが入っていない方は、以下でHomeBrewをインストールしてください。

$ sh -c “$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)”

ツールの使い方

ツール(muon_cut)をダウンロードしたら、以下のようにテキストファイルとして認識されてしまいますので、実行権限を与えます。

Terminalを開き、ダウンロードしたディレクトリへ移動します。そして、以下のコマンドを入力します。

$ chmod +x muon_cut

これで、Unix実行ファイルとして認識されました。

muon_cutをダブルクリックして実行してみましょう。
以下のように、開発元が未確認のため開けません という表示がでます。

MACのシステム環境設定を開き、「セキュリティとプライバシー」を開きます。

一般設定の「ダウンロードしたアプリケーションの実行許可」で「このまま開く」をクリックします。

以下のように開いてもよろしいですか?表示がでるので、「開く」をクリックします。

暫く待つと、以下のように「無音削除ツール」が開きます。

無音削除ツールの設定パラメータを説明します。
音レベル(dB)長さ(sec)は、無音を判定するためのしきい値です。
デフォルトは、-33dB、長さが1.6secにしています。
要は、-33dB以下の音が1.6秒以上続いたら、無音と判定されます。
このパラメータは私が収録した動画の場合のパラメータですので、個別に設定、調整が必要です。

その他、オプションとして以下2つがあります。
・最後の無音部分はカットしない
・カットしたファイルを結合する(非推奨)

「最後の無音部分はカットしない」にチェックを入れると、動画の最後の部分は無音カットしません。
これは、動画の最後は、エンディング画像等を入れたりしたいので、削除しないようなオプションを設けました。

「カットしたファイルを結合する」にチェックを入れると、
カットされた動画を結合します。
ただし、動画を結合した場合、映像と音がズレることがあります。
原因がまだわかっておらず、ツール内でズレの対処ができておりませんので非推奨とします。
できれば、無音がカットされたバラバラの動画を編集ソフトで読み込み編集していただければと思います。

なお、私が作成した動画の場合、音ズレが発生した結合ファイルをiMovieで読み込み、再度書き出すと音ズレが解消されました。
ただし色んなパターンの動画で試せていないので、確実にズレが改善されるかどうかは不明です。ご了承ください。

今回は、2つともチェックをいれて、
開くボタンを押して、無音カットしたい動画ファイルを選択します。

動画ファイルは、*mov形式と*mp4形式のみ対応しています。
また、動画ファイル名に日本語は設定しないでください。

動画ファイルを選択したら、開始するボタンをクリックします。

開始されたらしばらくお待ち下さい。
※キャンセルボタンでキャンセルできますが、無音区間検知中は、即時キャンセルができません。キャンセルが終わるまでしばらくお待ち下さい。

Status画面に
「動画ファイルの結合完了」表示がでれば、終了です。
※ファイルを結合しない場合は、「無音区間のカットが完了しました」と表示されます。

指定した動画ファイルと同じ場所に xxxx_output.movファイルが生成されています。こちらが結合されたファイルです。
(注意)先程も書きましたが、結合ファイルは音ズレが発生する可能性が高いので、できれば、tempフォルダ内に入っている個別にカットされた動画を使ったほうがよいです。

また、tempフォルダ内には、カットされた動画が格納されています。

実際に、tempフォルダ内に出来上がった無音がカットされた動画をPremiereProに読み込んでみます。
以下のように、無音カット前のファイルと比べると、3分ぐらい動作が短くなっています。

最後に

以上、動画無音カットツールの紹介でした。
今後は、さらに自分なりに使いやすくカスタマイズしていこうと考えています。
またその際は紹介します!

最後にツールを利用する際の注意点を明記しておきます。

※本ツールは、Mac版です。
※以下MacOSでのみ動作確認しております。以下以外のMacでは動作未確認ですので、ご了承ください。
・macOS Catalina(10.15.7)
※無料配布のため、不具合、ご要望等に対応できない場合もございますのでご了承ください。
※本ツールを使用することによる、アプリケーションの不具合やファイルの破損についての責任は負いませんのでご了承ください。
※オプションでカットしたファイルを結合する機能がありますが、映像と音声のズレが発生することがあります。

それでは!!

スポンサーリンク

いいね!を押すと、
最新記事をお届けします。

Twitter で
関連記事(一部広告含む)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ページトップボタン