見出し画像

動画編集

 FFmpeg を使った動画編集の備忘録です。日々進化する奥の深い無料の万能変換プログラムですが、トリミング・クロップ・静止画 のような基本操作だけでも重宝します。


前提

OS

Windows11 home 23H2 (Intel Core i5-1035G1 1GHz 8GB)

FFmpeg

version 7.0.2-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers

FFmpeg インストール

 FFmpegの公式ページ https://ffmpeg.org/ の Download → Windows EXE Files → Windows builds from gyan.dev から 現時点で最新の「ffmpeg-7.0.2-full_build.7z」を ダウンロード・展開します。次のように配置した場合

C:\
└─Program Files
    └─ffmpeg
        └─ffmpeg-7.0.2-full_build
            ├─binffmpeg.exeffplay.exeffprobe.exe
            ├─doc
            └─presets

コマンドプロンプトで

> set PATH="C:\Program Files\ffmpeg\ffmpeg-7.0.2-full_build\bin";%PATH%

とすれば 「ffmpeg」だけで実行できます。
 アンインストールは、展開したフォルダごと削除するだけです。

動画

 編集対象の動画は、Win + Alt + R キーでキャプチャした全画面表示のカレントウィンドウです。こちらで紹介した Android Studio の エミュレーターの様子です。ファイル名「org.mp4」で保存した場合 次のコマンドで詳細情報を確認できます。

> ffprobe -i org.mp4
ffprobe version 7.0.2-full_build-www.gyan.dev Copyright (c) 2007-2024 the FFmpeg developers
  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'org.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp41isom
    creation_time   : 2024-10-26T20:49:29.000000Z
    artist          : Microsoft Game DVR
    title           : Running Devices - Flappy Crow Free
★★★
  Duration: 00:02:10.93, start: 0.000000, bitrate: 8678 kb/s
  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1920x1040 [SAR 1:1 DAR 24:13], 8486 kb/s, 25.71 fps, 60 tbr, 30k tbn (default)
★★★
      Metadata:
        creation_time   : 2024-10-26T20:49:29.000000Z
        handler_name    : VideoHandler
        vendor_id       : [0][0][0][0]
        encoder         : AVC Coding
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
      Metadata:
        creation_time   : 2024-10-26T20:49:29.000000Z
        handler_name    : SoundHandler
        vendor_id       : [0][0][0][0]

 ログを見る習慣が無いと映画マトリックスかと思うかもしれませんが、見るところは★★★の辺りです。
Duration: 00:02:10.93
が時間の長さです。

時系列

Stream: ・・・ 1920x1040
がサイズです。

サイズ

 最初に次の処理をお勧めします。多くの場合 サイズが小さくなります。

> ffmpeg -i org.mp4 out.mp4

「ffmpeg」:ffmpegコマンド
「-i org.mp4」:対象の入力ファイル名
「out.mp4」:処理後の出力ファイル名

加工例

指定位置までトリミング

> ffmpeg -i org.mp4 -to 45 out.mp4

45秒から末尾を除去

指定位置からトリミング

> ffmpeg -i org.mp4 -ss 15 out.mp4

先頭から15秒まで除去

> ffmpeg -i org.mp4 -ss 15 -to 45 out.mp4

上記を同時に処理し 30秒間

> ffmpeg -i org.mp4 -ss 15 -t 30 out.mp4

これも同じに

クロップ

W 776 : H 653 : X 571 : Y 146
> ffmpeg -i org.mp4 -vf crop=776:653:571:146 out.mp4

XY座標 571,146 から 幅W 776 高さH 653 を切り取り

動画 → 静止画

> ffmpeg -ss 0 -i org.mp4 -vframes 1 out.png

0秒(先頭)から 1フレームを pngファイルに保存

> ffmpeg -ss 3 -i org.mp4 -vframes 9 -r 1 out%05d.png

3秒後から1秒ごとに9フレームを png連番ファイルに保存
「-r 1」:フレームレート1[fps]

動画 → アニメーションgif

> ffmpeg -i org.mp4 -vf scale=.300:-1 out.gif

拡張子gifだけでアニメーションになりますが、ファイルサイズが大きくなるので縦横比維持(-1)して幅300に縮小しています。

終わり

 ホームページ等へ公開する例です。HTML5なら

<video src="./out.mp4" controls autoplay muted loop></video>

ここから先は

0字

¥ 100

この記事が気に入ったらチップで応援してみませんか?