フォーマット変換
basic動画をあるフォーマットから別のフォーマットに変換します
ffmpeg -i input.avi output.mp4出力フォーマットはファイル拡張子で決定され、FFmpegは自動的に適切なエンコーダを選択します。
完全なFFmpeg使用ガイド。様々な常用コマンド、パラメータ説明、実際の適用シナリオ例を含みます
最強のマルチメディア処理フレームワーク
Linux、macOS、Windowsなどに対応
LGPLまたはGPLライセンスで無料利用可能
ほぼすべてのオーディオ・ビデオ形式に対応
コマンドラインインターフェースで自動化に最適
初心者向けクイックスタートガイド
動画をあるフォーマットから別のフォーマットに変換します
ffmpeg -i input.avi output.mp4出力フォーマットはファイル拡張子で決定され、FFmpegは自動的に適切なエンコーダを選択します。
動画ファイルから音声トラックを抽出します
ffmpeg -i video.mp4 -vn -c:a libmp3lame audio.mp3このコマンドは動画から音声を抽出し、MP3フォーマットで保存し、オリジナル音声品質を保持します。
動画から指定時間の画面をキャプチャします
ffmpeg -i video.mp4 -ss 00:01:30 -vframes 1 screenshot.jpg動画の1分30秒で1枚の画像をキャプチャし、動画サムネイルの作成に適しています。
動画または音声ファイルの詳細情報を表示します
ffmpeg -i input.mp4出力ファイルを指定しない場合、FFmpegはファイルの詳細情報(エンコード、再生時間、解像度など)を表示します。
動画をGIFアニメーションに変換します
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif動画を10fps、幅320ピクセルのGIFアニメーションに変換し、スタンプや短いアニメーションの作成に適しています。
フォルダ内のすべての動画を指定フォーマットに変換します
for %i in (*.mov) do ffmpeg -i "%i" -c:v libx264 -crf 23 -c:a aac "%~ni.mp4"Windowsバッチ処理で全てのMOVファイルをMP4フォーマットに変換。カメラからインポートした動画の処理に適しています。
動画をフレームごとに画像シーケンスとして抽出します
ffmpeg -i video.mp4 frame_%04d.jpg動画をフレームごとにJPEG画像として抽出。ファイル名形式はframe_0001.jpg、frame_0002.jpgなどです。
長い動画から指定時間帯を抽出します
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:15:30 -c copy clip.mp4ストリームコピーを使用して10分から15分30秒の動画クリップを高速に抽出し、オリジナル品質を保持します。
複数の動画ファイルを1つに結合します
ffmpeg -f concat -i filelist.txt -c copy output.mp4ファイルリストを通じて複数の動画を1つに結合。filelist.txtには結合するファイルパスが含まれます。
動画の再生速度を速くまたは遅くします
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" -an output.mp4動画の再生速度を2倍に速くします(setpts=0.5*PTS)。半分に遅くするにはsetpts=2*PTSを使用します。
動画の解像度を変更します
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4動画の解像度を1280x720ピクセルに調整し、オリジナルのアスペクト比を維持します。
動画ファイルサイズを削減します
ffmpeg -i input.mp4 -c:v libx264 -crf 23 compressed.mp4H.264エンコードを使用して動画を圧縮。CRF値が小さいほど品質が高い(18-28が常用範囲)。
動画上に画像または文字のウォーターマークを重ねます
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4動画の左上(10,10)位置にPNGウォーターマーク画像を追加します。
動画の特定領域をトリミングします
ffmpeg -i input.mp4 -vf "crop=640:360:100:100" output.mp4動画の(100,100)位置から始まり、640x360ピクセルの領域をトリミングします。
動画を90度、180度、270度回転させます
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4transposeパラメータ:0=反時計回りに90度回転し垂直反転、1=時計回りに90度回転、2=反時計回りに90度回転、3=時計回りに90度回転し垂直反転。
vid.stabプラグインを使用して手ぶれ動画を安定化します
ffmpeg -i shaky.mp4 -vf vidstabdetect=shakiness=5:accuracy=15:result="transform_vectors.trf" -f null -ステップ1:動画の手ぶれを分析し、変換ベクトルファイルを生成します。
動画安定化効果を適用します
ffmpeg -i shaky.mp4 -vf vidstabtransform=smoothing=10:input="transform_vectors.trf" stable.mp4ステップ2:安定化効果を適用します。smoothingパラメータは滑らかさを制御します。
動画のインターレース走査線を除去します
ffmpeg -i input.mp4 -vf yadif output.mp4インターレース動画のインターレース線を除去し、プログレッシブスキャンデバイスでの再生に適します。
インターレース動画をプログレッシブ動画に変換します
ffmpeg -i interlaced.mp4 -vf bwdif=0:-1:0 deinterlaced.mp4bwdifフィルターを使用してインターレース動画をプログレッシブ動画に変換し、視聴体験を向上させます。
動画内のノイズを軽減します
ffmpeg -i noisy.mp4 -vf hqdn3d denoised.mp4hqdn3dフィルターを使用して動画内のノイズを軽減し、画質を向上させます。
音声の音量を増減させます
ffmpeg -i input.mp3 -af "volume=1.5" output.mp3このコマンドは音声音量を50%増加させます。1より小さい値に設定して音量を下げることもできます。
音声をあるフォーマットから別のフォーマットに変換します
ffmpeg -i input.wav -c:a libmp3lame -b:a 192k output.mp3WAVフォーマット音声を192kbpsのMP3フォーマットに変換し、ネットワーク伝送に適しています。
音声から指定時間帯を抽出します
ffmpeg -i input.mp3 -ss 00:01:30 -to 00:03:45 -c copy clip.mp31分30秒から3分45秒までの音声クリップを抽出し、再エンコードせずオリジナル品質を保持します。
音声にフェードイン・フェードアウト効果を追加します
ffmpeg -i input.mp3 -af "afade=t=in:st=0:d=3,afade=t=out:st=10:d=3" output.mp3音声に3秒のフェードイン効果(0秒から開始)と3秒のフェードアウト効果(10秒から開始)を追加します。
音声内の背景ノイズを軽減します
ffmpeg -i input.wav -af "afftdn=nf=-20" output.wavFFTノイズ除去アルゴリズムを使用して音声内の背景ノイズを軽減。nfパラメータはノイズ除去強度を制御します。
複数の音声ファイルを1つに結合します
ffmpeg -i "concat:input1.mp3|input2.mp3" -c copy output.mp3複数の音声ファイルを順番に1つのファイルに結合し、再エンコードせずオリジナル品質を保持します。
音声のサンプリングレートを調整します
ffmpeg -i input.wav -ar 44100 output.wav音声サンプリングレートを44.1kHzに調整。これはCD品質のサンプリングレートです。
ステレオをモノラルに、またはその逆に変換します
ffmpeg -i input.wav -ac 1 output.wavステレオ音声をモノラルに変換します。2に設定するとモノラルをステレオに変換できます。
音声の周波数応答を調整します
ffmpeg -i input.wav -af "equalizer=f=1000:width_type=o:width=2:g=5" output.wav1000Hz周波数で5dBのゲインを増加させ、音声の周波数バランスを調整します。
ダイナミックレンジを圧縮します
ffmpeg -i input.wav -af "acompressor=threshold=0.1:ratio=9:attack=200:release=1000" output.wavダイナミックレンジ圧縮を適用し、音声のダイナミックレンジを減少させ、静かな部分をより大きくします。
動画上に文字ウォーターマークを追加します
ffmpeg -i input.mp4 -vf "drawtext=text='Sample Text':x=10:y=10:fontsize=24:fontcolor=white" output.mp4動画の(10,10)位置に白色文字ウォーターマークを追加し、フォントサイズは24です。
動画にぼかし効果を追加します
ffmpeg -i input.mp4 -vf "boxblur=5:1" output.mp4動画にぼかし効果を追加。最初のパラメータはぼかし強度、2番目のパラメータはぼかしアルゴリズムの品質を制御します。
動画の明るさ、コントラスト、彩度を調整します
ffmpeg -i input.mp4 -vf "eq=brightness=0.1:contrast=1.2:saturation=1.5" output.mp4動画の明るさ(+0.1)、コントラスト(1.2倍)、彩度(1.5倍)を調整します。
動画のミラー効果を作成します
ffmpeg -i input.mp4 -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" output.mp4動画の垂直ミラー効果を作成し、下半分は上半分のミラー画像です。
動画に古い映画効果を追加します
ffmpeg -i input.mp4 -vf "noise=alls=20:allf=t+u, curves=vintage" output.mp4動画にノイズとビンテージカラーカーブを追加し、古い映画効果をシミュレートします。
動画のディテールと鮮明さを強化します
ffmpeg -i input.mp4 -vf "unsharp=5:5:1.0" output.mp4unsharp maskアルゴリズムを使用して動画をシャープ化し、ディテールと鮮明さを強化します。
動画内のエッジを検出し強調表示します
ffmpeg -i input.mp4 -vf "edgedetect=low=0.1:high=0.4" output.mp4動画内のエッジを検出し強調表示します。コンピュータビジョンアプリケーションに適しています。
動画の色空間を変換します
ffmpeg -i input.mp4 -vf "colorspace=bt709:iall=bt601-6-625:fast=1" output.mp4動画をBT.601色空間からBT.709色空間に変換します。
カラー動画をグレースケール動画に変換します
ffmpeg -i input.mp4 -vf "hue=s=0" output.mp4カラー動画をグレースケール動画に変換します。彩度を0に設定することで実現します。
動画の色反転効果を作成します
ffmpeg -i input.mp4 -vf "negate" output.mp4動画の色反転効果を作成し、全ての色値を反転させます。
RTMPライブストリームを録画し、ローカルファイルとして保存します
ffmpeg -i rtmp://server/live/stream -c copy -f flv recording.flvRTMPライブストリームを録画し、FLVフォーマットで保存します。-c copyパラメータは再エンコードを避け、CPUリソースを節約します。
動画ファイルをHLSストリームフォーマットに変換します
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls -hls_time 10 -hls_list_size 0 output.m3u8MP4動画をHLSストリームに変換。各セグメントは10秒で、ウェブ動画再生に適しています。
ローカル動画をRTMPサーバーに配信します
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://server/live/streamローカル動画ファイルをライブストリーム形式でRTMPサーバーに配信します。ライブ配信シーンに適しています。
コンピューター画面を録画し、動画として保存します
ffmpeg -f gdigrab -i desktop output.mp4Windowsシステムで画面全体を録画します。Linuxシステムではx11grabが使用できます。
カメラの動画ストリームを録画します
ffmpeg -f dshow -i video="Integrated Camera" output.mp4Windowsシステムでカメラ動画を録画します。正しいデバイス名を指定する必要があります。
音声入力デバイスを録画します
ffmpeg -f alsa -i default output.wavLinuxシステムでデフォルトの音声入力デバイスを録画し、WAVフォーマットで保存します。
異なる帯域幅に対応するマルチ解像度HLSストリームを生成します
ffmpeg -i input.mp4 -map 0 -c:v libx264 -b:v:0 800k -s:v:0 640x360 -c:v:1 libx264 -b:v:1 1500k -s:v:1 854x480 -c:a aac -f hls -var_stream_map "v:0,a:0 v:1,a:0" -hls_segment_filename stream_%v/data%02d.ts -master_pl_name master.m3u8 stream_%v.m3u82つの解像度(640x360と854x480)のHLSストリームを生成し、異なるネットワーク条件に対応します。
動画ファイルをDASHストリームフォーマットに変換します
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f dash -window_size 5 -extra_window_size 5 -remove_at_exit 1 output.mpdMP4動画をDASHストリームに変換。適応ビットレートストリーミング再生に適しています。
RTSP動画ストリームを録画します
ffmpeg -i rtsp://server/stream -c copy output.mp4RTSP動画ストリームを録画し、MP4フォーマットで保存します。監視カメラなどのシーンに適用されます。
動画をHTTPサーバーに配信します
ffmpeg -i input.mp4 -c copy -f mp4 http://server/upload動画ファイルをHTTP POSTリクエストを通じてサーバーに配信します。ファイルアップロードシーンに適しています。
ピクチャーインピクチャー効果を作成し、小さい動画を大きい動画の上に重ねます
ffmpeg -i main.mp4 -i pip.mp4 -filter_complex "[1:v]scale=iw/4:ih/4 [pip]; [0:v][pip] overlay=W-w-10:10" output.mp4ピクチャーインピクチャー効果を作成し、小さい動画を1/4サイズに縮小してメイン動画の右上に配置します。
GPUを使用して動画変換プロセスを加速します
ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc output.mp4NVIDIA GPUを使用してH.264エンコードを加速し、変換速度を大幅に向上させます。
複数の動画ストリームを同時に処理します
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v][1:v]hstack=inputs=2" output.mp42つの動画を横に並べて1つの動画に結合します。vstackで垂直に積み重ねることもできます。
動画上にタイムコード情報を重ねます
ffmpeg -i input.mp4 -vf "drawtext=fontfile=/path/to/font.ttf:text='%{pts\:hms}':x=10:y=10:fontsize=24:fontcolor=white" output.mp4動画の左上にタイムコード情報を重ね、時間:分:秒形式で表示します。
動画のメタデータ情報を変更します
ffmpeg -i input.mp4 -metadata title="My Video" -metadata year="2023" output.mp4動画のメタデータ情報(タイトル、年、作者など)を変更します。
PSNRを使用して動画品質を評価します
ffmpeg -i compressed.mp4 -i original.mp4 -lavfi psnr -f null -圧縮動画とオリジナル動画の品質を比較し、PSNR値を出力して品質劣化を評価します。
CRFモードを使用して動画ビットレートを制御します
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -maxrate 2M -bufsize 4M output.mp4CRFモードを使用して動画品質を制御し、同時に最大ビットレートを制限してファイルが大きくなりすぎないようにします。
プログレッシブ動画をインターレース動画に変換します
ffmpeg -i progressive.mp4 -vf "fieldorder=tff" interlaced.mp4プログレッシブ動画をトップフィールドファーストのインターレース動画に変換します。テレビ放送に適用されます。
動画のフレームレートを変更します
ffmpeg -i input.mp4 -vf "fps=30" output.mp4動画フレームレートを30fpsに変換します。フレーム補間またはドロップフレーム方法を使用して新しいフレームレートに適応させます。
動画圧縮で生じたブロックノイズを軽減します
ffmpeg -i blocky.mp4 -vf "deblock" debocked.mp4高圧縮率によって生じたブロックノイズを軽減し、動画の視覚的品質を向上させます。
フォルダ内のすべての動画に同じウォーターマークを追加します
for %i in (*.mp4) do ffmpeg -i "%i" -i watermark.png -filter_complex "overlay=10:10" "watermarked_%~ni.mp4"フォルダ内のすべてのMP4ファイルを一括処理し、左上にウォーターマークを追加します。
フォルダ内のすべての動画を統一解像度に調整します
for %i in (*.mp4) do ffmpeg -i "%i" -vf scale=1280:720 "resized_%~ni.mp4"すべてのMP4ファイルを1280x720解像度に一括調整し、動画仕様を統一するのに適しています。
フォルダ内のすべての動画から音声を抽出します
for %i in (*.mp4) do ffmpeg -i "%i" -vn -c:a libmp3lame "%~ni.mp3"すべてのMP4ファイルから音声を一括抽出し、MP3フォーマットで保存します。音声ライブラリ整理に適しています。
フォルダ内のすべての動画にサムネイルを生成します
for %i in (*.mp4) do ffmpeg -i "%i" -ss 00:00:05 -vframes 1 "%~ni_thumb.jpg"各動画の5秒目で1枚のサムネイルを生成します。
フォルダ内のすべての動画を圧縮してファイルサイズを削減します
for %i in (*.mp4) do ffmpeg -i "%i" -c:v libx264 -crf 23 -c:a aac -b:a 128k "compressed_%~ni.mp4"すべてのMP4ファイルを一括圧縮。CRF 23と128kbps音声を使用し、品質とファイルサイズのバランスを取ります。
フォルダ内のすべての動画の合計再生時間を統計します
for %i in (*.mp4) do ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "%i"ffprobeを使用して各動画の再生時間を統計し、合計再生時間の計算に使用できます。
動画情報をテキストファイルにエクスポートします
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4 > video_info.json動画の詳細なフォーマットとストリーム情報をJSONファイルにエクスポートし、分析に便利です。
動画のフレームタイプとタイムスタンプを分析します
ffprobe -show_frames input.mp4動画の各フレーム情報(フレームタイプ(I/P/B)、タイムスタンプなど)を表示します。
動画のビットレート変化を分析します
ffmpeg -i input.mp4 -vf "showinfo" -f null -動画のビットレート変化を分析し、各フレームの詳細情報を表示します。
動画ファイルの完全性と互換性を検証します
ffmpeg -v error -i input.mp4 -f null -動画ファイルの完全性と互換性を検証し、エラー情報のみを出力します。
実際のシナリオにおけるFFmpegの強力な活用方法を探索
フォルダ内のすべてのMOVファイルをMP4フォーマットに変換し、オリジナル品質を保持します
for %i in (*.mov) do ffmpeg -i "%i" -c:v libx264 -crf 18 -c:a aac "%~ni.mp4"Windowsバッチ処理でループを使用して全てのMOVファイルを変換。カメラからインポートした動画の処理に適しています。
動画から一定間隔でフレームを抽出し、サムネイルコレクションを作成します
ffmpeg -i video.mp4 -vf "fps=1/60,scale=320:-1" thumbnails/thumb%03d.jpg1分ごとに1フレームを抽出し、幅を320ピクセルに縮小(高さは自動計算)、シーケンス画像として保存します。
長い動画からクリップを抽出するか、複数の動画を結合します
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:15:30 -c copy clip.mp4ストリームコピー(再エンコードなし)を使用して10分から15分30秒の動画クリップを高速に抽出し、オリジナル品質を保持します。
動画を90度、180度、270度回転させます
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4transposeパラメータ:0=反時計回りに90度回転し垂直反転、1=時計回りに90度回転、2=反時計回りに90度回転、3=時計回りに90度回転し垂直反転。
最適な品質と体積比を得るために動画圧縮パラメータを最適化します
ffmpeg -i input.mp4 -c:v libx264 -preset slower -crf 18 -c:a aac -b:a 128k output.mp4slowerプリセットを使用して圧縮効率を向上させ、CRF 18で高品質を提供し、音声ビットレートは128kbpsです。
FFmpegの使い方や動画処理に関するよくある質問
動画フォーマットを変換するには、次のコマンドを使用します:ffmpeg -i input.mp4 output.avi。FFmpegは入力ファイルと出力ファイルの拡張子からフォーマットを自動認識するため、MP4、AVI、MKV、MOVなど様々な動画形式へ簡単に変換できます。
動画を圧縮してファイルサイズを小さくするには、ffmpeg -i input.mp4 -crf 23 output.mp4 を使用します。CRF(Constant Rate Factor)は画質と圧縮率を調整する値で、0〜51の範囲があります。数値が小さいほど高画質・大容量、数値が大きいほど低画質・小容量になります。一般的なデフォルト値は23です。
動画ファイルから音声だけを抽出するには、ffmpeg -i video.mp4 -vn -acodec copy audio.aac を使用します。-vnは動画ストリームを無効化し、-acodec copyは再エンコードせずに音声データをそのまま抽出するオプションです。
複数の動画を結合する場合は、まずfilelist.txtのようなファイルリストを作成し、その後 ffmpeg -f concat -i filelist.txt -c copy output.mp4 を実行します。この方法では再エンコードを行わないため、画質を劣化させずに動画を結合できます。