lynx   »   [go: up one dir, main page]

ラベル FFmpeg の投稿を表示しています。 すべての投稿を表示
ラベル FFmpeg の投稿を表示しています。 すべての投稿を表示

2023年1月4日水曜日

Ubuntu22.04にffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する

ffmpeg-pythonでFFmpegを操作して動画形式の変換などを行うことが出来ます。Ubuntu22.04にffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換するには以下の手順を実行します。

インストール方法 1.pipenvのインストール
pipenvをインストールしていない場合は、以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install python3-pip python3-distutils python3-dev

python3 -m pip install --user pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.profile

echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.profile

source ~/.profile

2. ffmpeg-python用の仮想環境作成
pipenvを使用する場合は以下のコマンドで、ffmpeg-python用の仮想環境を作成します。
sudo apt-get -y install ffmpeg

mkdir -p ~/ffmpeg-python

cd ~/ffmpeg-python

pipenv --python 3

pipenv install ffmpeg-python

pipenv shell

3. mp4ファイル形式からWebM形式に変換するサンプルプログラムの実行
以下のサンプルプログラムでriceplant.mp4ファイルをriceplant.webmに変換します。

conv_mp4_to_webm.py
import ffmpeg

input = ffmpeg.input('./riceplant.mp4')
ffmpeg.output(input, './riceplant.webm').run()

・実行コマンド
python conv_mp4_to_webm.py

〇変換後画像

関連情報 ・ffmpeg-pythonに関する他の記事はこちらを参照してください。

・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年10月19日火曜日

FFmpegとpythonで指定範囲の動画を切り取る

FFmpegとpythonで指定時間範囲の動画を切り取るには、以下のサンプルプログラムのようにvideo/audioでそれぞれtrim/atrimしてsetpts/asetptsを実行します。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。
以下の例では動画の10秒目から1秒間の動画を切り取ります。

ffmpeg_trim.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
video = (
    input
    .trim(start=10, end=11)
    .setpts('PTS-STARTPTS')
)
audio = (
    input
    .filter('atrim', start=10, end=11)
    .filter('asetpts', 'PTS-STARTPTS')
)
ffmpeg.output(video, audio, './lake_1sec.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_trim.py

2021年10月18日月曜日

FFmpegとpythonでオーディオストリームの情報を取得する

FFmpegとpythonでオーディオストリームの情報を取得するには、以下のサンプルプログラムのようにprobe情報のstreams下の各ストリームのcodec_typeでaudioの情報を取得します。
codec_name/codec_long_nameでコーデック名・コーデックロング名が取得でき、sample_rateでサンプルレートが取得できます。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

probe_audiostreams.py
import ffmpeg
import pprint

probe = ffmpeg.probe('./lake.mp4')
#pprint.pprint(probe)

for stream in probe['streams']:
    if stream['codec_type'] == 'audio':
        print("コーデック名: {}".format(stream['codec_name']))
        print("コーデックロング名: {}".format(stream['codec_long_name']))
        print("サンプルレート: {}".format(stream['sample_rate']))

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python probe_audiostreams.py

・実行結果例
以下の様な形式で出力されます。
コーデック名: aac
コーデックロング名: AAC (Advanced Audio Coding)
サンプルレート: 44100

2021年10月17日日曜日

FFmpegとpythonでビデオストリームの情報を取得する

FFmpegとpythonでビデオストリームの情報を取得するには、以下のサンプルプログラムのようにstreams下の各ストリームのcodec_typeでvideoの情報を取得します。
codec_name/codec_long_nameでコーデック名・コーデックロング名が取得でき、width/heightで幅・高さが取得できます。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

probe_videostreams.py
import ffmpeg
import pprint

probe = ffmpeg.probe('./lake.mp4')
#pprint.pprint(probe)

for stream in probe['streams']:
    if stream['codec_type'] == 'video':
        print("コーデック名: {}".format(stream['codec_name']))
        print("コーデックロング名: {}".format(stream['codec_long_name']))
        print("幅: {}".format(stream['width']))
        print("高さ: {}".format(stream['height']))

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python probe_videostreams.py

・実行結果例
以下の様な形式で出力されます。
コーデック名: h264
コーデックロング名: H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
幅: 1920
高さ: 1080

2021年10月16日土曜日

FFmpegとpythonでストリーム数を取得する

FFmpegとpythonでストリーム数を取得するには、以下のサンプルプログラムのようにprobeメソッドで返されるJSONデータからformat -> nb_streamsで取得します。streams下の各ストリームのcodec_typeでvideo/audioのストリーム数をカウントすることが出来ます。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_probe_streams.py
import ffmpeg
import pprint

probe = ffmpeg.probe('./lake.mp4')
#pprint.pprint(probe)
print("ストリーム数:{}".format(probe['format']['nb_streams']))

video_streams=0
audio_streams=0
for stream in probe['streams']:
    if stream['codec_type'] == 'video':
        video_streams = video_streams+1
    if stream['codec_type'] == 'audio':
        audio_streams = audio_streams+1

print("videoストリーム数: {}".format(video_streams))
print("audioストリーム数: {}".format(audio_streams))

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_probe_streams.py

・実行結果例
以下の様な形式で出力されます。
ストリーム数:2
videoストリーム数: 1
audioストリーム数: 1

2021年10月15日金曜日

FFmpegとpythonで動画フォーマットを取得する

FFmpegとpythonで動画フォーマットを取得するには、以下のサンプルプログラムのようにprobeメソッドで返されるJSONデータからformat -> format_nameまたはformat_long_nameの値を取得します。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_probe_format.py
import ffmpeg
import pprint

probe = ffmpeg.probe('./lake.mp4')
#pprint.pprint(probe)
print("ロングフォーマット:{}".format(probe['format']['format_long_name']))
print("フォーマット:{}".format(probe['format']['format_name']))

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_probe_format.py

・実行結果例
以下の様な形式で出力されます。
ロングフォーマット:QuickTime / MO
フォーマット:mov,mp4,m4a,3gp,3g2,mj2

2021年10月14日木曜日

FFmpegとpythonで動画の長さを取得する

FFmpegとpythonで動画の長さを取得するには、以下のサンプルプログラムのようにprobeメソッドで返されるJSONデータからformat -> durationの値を取得します。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_probe_duration.py
import ffmpeg
import pprint

probe = ffmpeg.probe('./lake.mp4')
#pprint.pprint(probe)
print("長さ:{}s".format(probe['format']['duration']))

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_probe_duration.py

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年10月11日月曜日

ffmpeg-ptyhonでvignetteフィルタを使用して画面の周りを暗くする

ffmpeg-ptyhonでvignetteフィルタを使用して画面の周りを暗くするには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"vignette"と以下のパラメータを指定します。
・angle: ラジアンで角度を指定します
・x: 中心X座標。デフォルトはw/2です。
・y: 中心Y座標。デフォルトはh/2です。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_vignette.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("vignette",angle="PI/4",x0="w/2",y0="h/2")
ffmpeg.output(processed, input.audio, './lake_vignette.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_vignette.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年10月10日日曜日

ffmpeg-ptyhonでvibranceフィルタを使用して彩度を強調する

ffmpeg-ptyhonでvibranceフィルタを使用して彩度を強調するには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"rgbashift"と以下のパラメータを指定します。
・intensity: 効果の激しさ・強さ。デフォルトは0で、-2~2の範囲です。
・rb: 赤のバランス。デフォルトは1、-10~10の範囲です。
・gb: 緑のバランス。デフォルトは1、-10~10の範囲です。
・bb: 青のバランス。デフォルトは1、-10~10の範囲です。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_vibrance.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("vibrance",intensity=0.5,rbal=1,gbal=1,bbal=3)
ffmpeg.output(processed, input.audio, './lake_vibrance.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_vibrance.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年10月7日木曜日

ffmpeg-ptyhonでrotateフィルタを使用して画像を回転する

ffmpeg-ptyhonでrotateフィルタを使用して画像を回転するには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"rotate"と以下のパラメータを指定します。
angle: 回転角度をラジアンで指定します。PI定数を使用することが出来ます。tでフレームの秒数を指定することも出来ます。
fillcolor: 回転の結果発生する余白の色を指定します。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。
以下のサンプルでは1秒に1度のゆっくりとした速度で画像が回転します。

ffmpeg_rotate.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("rotate",angle="t*PI/180",fillcolor="#ffffff")
ffmpeg.output(processed, input.audio, './lake_rotate2.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_rotate.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年10月6日水曜日

ffmpeg-ptyhonでrobertsフィルタを使用して輪郭抽出する

ffmpeg-ptyhonでrobertsフィルタを使用して輪郭抽出するには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"roberts"と以下のパラメータを指定します。
scale: フィルターの結果に掛け合わされる数値を指定します。
delta: フィルターの結果に足される数値を指定します。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_roberts.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("roberts",scale=10,delta=6)
ffmpeg.output(processed, input.audio, './lake_roberts.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_roberts.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年10月5日火曜日

ffmpeg-ptyhonでrgbashiftフィルタを使用してプレーン別に画像をずらす

ffmpeg-ptyhonでrgbashiftフィルタを使用してプレーン別に画像をずらすには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"rgbashift"と以下のパラメータを指定します。
rh: 赤プレーンを水平方向にシフトする
rv: 赤プレーンを垂直方向にシフトする
gh: 緑プレーンを水平方向にシフトする
gv: 緑プレーンを垂直方向にシフトする
bh: 青プレーンを水平方向にシフトする
bv: 青プレーンを垂直方向にシフトする
ah: アルファプレーンを水平方向にシフトする
av: アルファプレーンを垂直方向にシフトする

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_rgbashift.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("rgbashift",rh=-50,rv=-50,bh=50,bv=50)
ffmpeg.output(processed, input.audio, './lake_rgbashift.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_rgbashift.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年10月4日月曜日

ffmpeg-ptyhonでpadフィルタを使用して動画に余白を追加する

ffmpeg-ptyhonでpadフィルタを使用して動画に余白を追加するには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"pad"とパラメータを指定します。
width: 余白付きの動画サイズの幅。iwで入力動画サイズの幅を表します。
height: 余白付きの動画サイズの高さ。ihで入力動画サイズの高さを表します。
x: 入力画像を配置する左端オフセット。
y: 入力画像を配置する上端オフセット。
color: 余白の色。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_pad.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("pad",width="(iw+100)",height="(ih+200)",x=50,y=100,color='#7799dd')
ffmpeg.output(processed, input.audio, './lake_pad.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_pad.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年10月1日金曜日

ffmpeg-ptyhonでnormalizeフィルタを使用して動画をノーマライズ(正規化)する

ffmpeg-ptyhonでnormalizeフィルタを使用して動画をノーマライズ(正規化)するには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"normalize"と以下のパラメータを指定します。
blackpt: 最小入力値に対応する色
whitept: 最大入力値に対応する色
smoothing: スムージングのために使用される前のフレーム数。デフォルト0。
independence: 色の独立性。デフォルト1(完全に独立)
strength: フィルターの強さ。デフォルト1(最大)。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_normalize.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("normalize",blackpt='black',whitept='white',smoothing=0,independence=0,strength=1.0)
ffmpeg.output(processed, input.audio, './lake_normalize.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_normalize.py

〇変換前動画

〇変換後動画

whiteptパラメータを変えた例 whiteptにyellowを指定すると、黄色のセロファンから透かして見たような動画になります。

ffmpeg_normalize_yellow.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("normalize",blackpt='black',whitept='yellow',smoothing=0,independence=0,strength=1.0)
ffmpeg.output(processed, input.audio, './lake_normalize_yellow.mp4').run()

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年9月30日木曜日

ffmpeg-ptyhonでnoiseフィルタを使用して動画にノイズをつける

ffmpeg-ptyhonでnoiseフィルタを使用して動画にノイズをつけるには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"noise"とパラメータを指定します。
本サンプルでは、すべてのプレーンでシード値321、強さ50、ノイズパターンをフレーム間で変更しています('t'フラグ)。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_noise.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("noise",all_seed=321,all_strength=50,all_flags='t')
ffmpeg.output(processed, input.audio, './lake_noise.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_noise.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

ffmpeg-ptyhonでnegateフィルタを使用して画像を反転する

ffmpeg-ptyhonでnegateフィルタを使用して画像を反転するには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"negate"を指定します。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_negate.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("negate",negate_alpha=0)
ffmpeg.output(processed, input.audio, './lake_negate.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_negate.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

ffmpeg-ptyhonでloopフィルタを使用して、指定個所をループする

ffmpeg-ptyhonでloopフィルタを使用して、指定個所をループするには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"loop"と以下のパラメータを指定します。
・loopパラメータ: ループ回数
・startパラメータ: ループが開始するフレーム数
・sizeパラメータ: ループ部分の長さ(フレーム数)

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_loop.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("loop",loop=5,start=0,size=60)
ffmpeg.output(processed, input.audio, './lake_loop.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_loop.py

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年9月28日火曜日

ffmpeg-ptyhonでlimiterフィルタを使用して、プレーン値の最小値・最大値を指定する

ffmpeg-ptyhonでlimiterフィルタを使用して、プレーン値の最小値・最大値を指定するには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"limiter"とパラメータを指定します。minパラメータで最小値・maxパラメータで最大値を指定します。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_limiter.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("limiter",min=64,max=128)
ffmpeg.output(processed, input.audio, './lake_limiter.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_limiter.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年9月27日月曜日

ffmpeg-ptyhonでlenscorrectionフィルタを使用して、レンズ補正する

ffmpeg-ptyhonでlenscorrectionフィルタを使用して、レンズ補正するには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"lenscorrection"とパラメータを指定します。

〇サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_lenscorrection.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("lenscorrection",k1=0.1,k2=0.2)
ffmpeg.output(processed, input.audio, './lake_lescorrection.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_lenscorrection.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

ffmpeg-ptyhonでhueフィルタを使用して、色相・彩度・輝度を設定する

ffmpeg-ptyhonでhueフィルタを使用して、色相・彩度・輝度を設定するには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"hue"とパラメータを指定します。
hパラメータで色相の角度(デフォルト0)、sパラメータで彩度(デフォルト1、-10~10)、bパラメータで輝度(デフォルト0、-10~10)を指定します。

サンプルプログラム ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

ffmpeg_hue.py
import ffmpeg

input = ffmpeg.input('./lake.mp4')
processed = input.video.filter("hue",h=30,s=2,b=1)
ffmpeg.output(processed, input.audio, './lake_hue.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_hue.py

〇変換前動画

〇変換後動画

関連情報 ・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

Лучший частный хостинг