Skip to content

FFmpeg

動画圧縮する場合、ffmpegはパワフルなツールの一つです。

FFmpegとは?

  • 公式サイト:https://ffmpeg.org/
  • FFmpegは、ビデオ圧縮するオープンソースのツール
  • FFmpegは、コマンドラインで操作できる動画変換ツール

alt text

テスト作動環境

  • PC: MacBook Pro(16-inch,2019)
  • OS: Sonoma 14.7.2
  • Terminal: zsh

インストール

ターミナルを開き、パッケージマネーシャーのHomebrewを使用してffmpegをインストール

brew install ffmpeg

バージョン確認

ffmpeg -version

使い方

ターミナルで圧縮したいフォルダに移動し、コマンドを入力して使用します。

ffmpeg  -i [入力ファイル] [出力オプション] [出力ファイル]

「FabAcademyで紹介されたNeil教授のencoding」は以下の通りです。これらのコマンドは、特にWeb上で効率的にビデオを配信するために、ビデオや音声の圧縮、トリミング、合成、品質設定などの操作を簡単に行うために使用されます。

Niel's encoding

  • HTML5 MP4 ffmpeg encoding

  • codecs

    • H.264: good compression, widely supported
    • H.265: better compression, less widely supported
  • ~megabytes/minute compression for Web

variable bit rate 1080p MP3:

ffmpeg -i input_video -vcodec libx264 -crf 25 -preset medium -vf scale=-2:1080 -acodec libmp3lame -q:a 4 -ar 48000 -ac 2 output_video.mp4

fixed bit rate 1080p MP2:

ffmpeg -i input_video -vcodec libx264 -b:v 1000k -vf scale=-2:1080 -acodec mp2 -b:a 256k -ar 48000 -ac 2 output_video.mp4

no audio:

ffmpeg -i input_video -vcodec libx264 -b:v 1000k -vf scale=-2:1080 -an output_video.mp4

crop size (width:height:xoffset:yoffset):

ffmpeg -i input_video -vf crop=1500:800:200:100 -vcodec libx264 -b:v 1000k -an output_video.mp4

trim time (-ss start time, -t duration):

ffmpeg -i input_video -vcodec libx264 -b:v 1000k -an -ss 00:00:10 -t 00:00:10 output_video.mp4

mix audio and video:

ffmpeg -i input_video -vcodec libx264 -b:v 1000k -vf crop=1120:876:0:100 -i input_audio -acodec mp2 -b:a 256k -ar 48000 -ac 2 -ss 00:00:20 -t 00:00:20 output_video.mp4

crop, pan, composite:

ffmpeg -i input_video_1 -i input_video_2 -filter_complex '[1:v]crop=175:95:930:860[cropout];[cropout]scale=350:190[scaleout];[0:v][scaleout]overlay=10:10[outv]' -map '[outv]' -vcodec libx264 -b:v 1000k -map 0:a -acodec mp2 -b:a 256k -ac 2 -t 00:00:05 output_video.mp4

numbered images to video:

ffmpeg -r 30 -i %04d.jpg -vcodec libx264 -b:v 1000k -vf scale=-2:1080 -an output_video.mp4