LoginSignup
29
25

More than 3 years have passed since last update.

ffmpeg-pythonで動画分割

Last updated at Posted at 2019-06-12

はじめに

pythonからffmpegを使って動画の加工を行うのが目的です。
動画にフィルターをかけたら音声は消えてしまい、別々に処理する必要があったため備忘録として残します。
ffmpegを直接使えばいいのでは?

対象

pythonを使ってプログラミングができる人
pythonのコードだけで完結させたい人

環境

テスト環境
OS: Windows 10, 64bit
python:3.6 (Anaconda)

ffmpeg: 4.1.3(ffmpeg-20190610-80e68ce-win64-static.zip)
ffmpeg-python: 0.1.18

準備

1. ffmpegのダウンロードとPath設定

 ・リンク先のDownload Buildをクリックしてzipファイルをダウンロードする。
 ・適当な場所で展開する。
 ・binフォルダのpathを環境変数pathに設定する。

2. ffmpeg-pythonのインストール

ffmpeg-pythonインストール
pip install ffmpeg-python

Code

動画にフィルター適用

import ffmpeg

fname = 'in.mp4'

#動画全体の時間を調べる
video_info = ffmpeg.probe(fname)
duration = float(video_info['streams'][0]['duration'])

#後半の半分だけ取り出し
divide_sec = duration / 2

stream = ffmpeg.input(fname, ss=divide_sec, t=divide_sec)

#音声取り出し
audio_stream = stream.audio

#開始から5秒かけてフェードイン
stream = stream.filter('fade', type='in', start_time=0, duration=5)
audio_stream = audio_stream.filter('afade', type='in', start_time=0, duration=5)


stream = ffmpeg.output(stream, audio_stream, 'out.mp4')

ffmpeg.run(stream)

フェードアウトはtypeにoutを入れるとできます。

追記 200405

ノイズ除去の場合
パラメータは参考サイト参照

audio_stream = audio_stream.filter('afftdn')

参考・資料サイト

29
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
25