目次
2014年現在、主流はコンテナはmp4、圧縮コーデックはH.264である。現状では最も互換性の高い形式で、現在の主なOSで再生可能である。ffmpegでもmp4を出力動画の拡張子に指定した場合、デフォルトのコーデックとしてH.264が選択される。
c:\>ffmpeg.exe ffmpeg version git-2019-12-19-99f505d Copyright (c) 2000-2019 the FFmpeg developers built with gcc 9.2.1 (GCC) 20191125 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf libavutil 56. 36.101 / 56. 36.101 libavcodec 58. 65.100 / 58. 65.100 libavformat 58. 35.101 / 58. 35.101 libavdevice 58. 9.101 / 58. 9.101 libavfilter 7. 69.101 / 7. 69.101 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Use -h to get full help or, even better, run 'man ffmpeg'
c:\>ffmpeg.exe -h
> more 30.txt file 30_1.mp4 file 30_2.mp4 > ffmpeg.exe -f concat -i 30.txt -c copy 30_output.mp4 または > ffmpeg.exe -f concat -i 30.txt -c:v copy -c:a copy -map 0:v -map 0:a 30_output.mp4 -c:v copy -c:a copy -map 0:v -map 0:a -c:v copy ビデオコーデックをコピーする(無劣化) -c:a copy オーディオコーデックをコピーする(無劣化) -map 0:v ビデオファイルが複数存在する場合は全てのものを同梱する -map 0:a オーディオファイルが複数存在する場合は、全てのものを同梱する
2ファイル ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "concat=n=2:v=1:a=1" output.mp4 3ファイル ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -filter_complex "concat=n=3:v=1:a=1" output.mp4 nは結合する動画ファイル数 vは映像を結合するかどうか(1が結合する) aはオーディオを結合するかどうか(1が結合する)
ffmpeg -i exapmle.avi -vcodec libx264 exapmle.mp4
ビデオカメラの.MTS形式から、一般的なmp4に変換する方法
# サイズは小さいが、画像は悪い。 ffmpeg -i FROM.MTS -b:v 8000k -strict experimental -threads 0 OUT.mp4 #なるべく劣化させない方法(元のサイズよりも大きいサイズになる) ffmpeg -i input.mts -vcodec libx264 -ar 48000 -ab 128k -r 30000/1001 -vsync 1 -deinterlace -f mp4 -bufsize 20000k -maxrate 25000k output.mp4
MacのquickTime Player独自形式の.MOVから、mp4に変換する方法です。
ffmpeg -i [INPUT_FILE].MOV -pix_fmt yuv420p [OUTPUT_FILE].mp4 ffmpeg -i sample_movie.MOV -pix_fmt yuv420p sample_movie.mp4
ffmpeg -i input.mp4 output.webm ffmpeg -i input.mp4 -strict -2 output.webm
ffmpeg -i [INPUT_FILE].mp4 -ab 128 [OUTPUT_FILE].mp3
ffmpeg -i "input.wav" -vn -ac 2 -ar 44100 -ab 256k -acodec libmp3lame -f mp3 "output.mp3"
#Twitter投稿用 ffmpeg -loop 1 -r 30000/1001 -i twitter.png -i "test.mp3" -vcodec libx264 -acodec aac -strict experimental -ab 320k -ac 2 -ar 48000 -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -shortest twitter.mp4 ffmpeg -loop 1 -i image.jpg -i input.mp3 -c:v copy -c:a copy -shortest output.mp4 <- このやり方だと、ファイルサイズがすごく大きくなった。
「-loop 1」で静止画image.jpgを全フレーム反復して映像の代わりとする。
「-shortest」で入力コンテンツのうち短い長さに合わせる(今回はmp3の長さ分のmp4を作る)。
「-c:v copy」で映像は入力のまま
「-c:a copy」で音声も入力のまま。
「-r 30000/1001」 フレームレートを指定します。29.97fpsにしています
「-vcodec libx264」 動画フォーマットを指定します。H.264にしています
「-acodec aac -strict experimental -ab 320k -ac 2 -ar 48000」 音声フォーマットを指定。AACで320kbps、2チャンネル、サンプリングレート48kHzとしています
「-pix_fmt yuv420p」 出力動画の画素フォーマットを指定します
「-shortest」 動画の長さを入力ソースが最短のもの(ここでは音声ファイル)に合わせます
「-vf “scale=trunc(iw/2)*2:trunc(ih/2)*2”」 ピクセル数を2の倍数に変換
ffmpeg -ss 1:04:20 -i input.mp4 -ss 0 -t 0:33:25 -c:v copy -c:a copy -async 1 -strict -2 part1.mp4; ffmpeg -ss 1:46:14 -i input.mp4 -ss 0 -t 0:35:08 -c:v copy -c:a copy -async 1 -strict -2 part2.mp4; ffmpeg -ss 2:39:17 -i input.mp4 -ss 0 -t 0:33:02 -c:v copy -c:a copy -async 1 -strict -2 part3.mp4; ffmpeg -ss 3:20:02 -i input.mp4 -ss 0 -t 0:51:18 -c:v copy -c:a copy -async 1 -strict -2 part4.mp4;
-ss {開始時間} 切り出しの開始時間を指定。-iより前に置くのがポイントらしいです -i input.mp4 元ファイル -ss 0 おまじないみたいな指定方法 -t {切り出す秒数} ここは切り出しの終了時間ではなく、-ssで指定した開始時間からの経過時間です -c:v copy ビデオコーデックをコピーする(無劣化) -c:a copy オーディオコーデックをコピーする(無劣化) -async 1 音声の同期方法。最初だけ同期して後続のサンプルはそのままといういみ -strict -2 バージョンによってexperimental(実験的実装)を許可する必要があるので一応付けとく
指定時間までカットし、最後まで出力する ffmpeg -ss [duration] -i input.mp4 -c copy output.mp4 #1秒後から最後まで ffmpeg -i input.mp4 -ss 1 output.mp4 #0.5秒後から最後まで ffmpeg -i input.mp4 -ss 0.5 output.mp4 #正確にカット (正確な時間は動画変数ソフトで確認できます。) ffmpeg.exe -i 29-00.00.29.480-00.00.34.663.mp4 -ss 00:00:00.480 tmp3.mp4
開始0秒から指定時間を出力する #最後の1秒をカット ffmpeg -i input.mp4 -t 1 output.mp4 #正確にカット (正確な時間は動画変数ソフトで確認できます。) ffmpeg.exe -i tmp.mp4 -t 00:00:01.859 tmp2.mp4
指定時間までカットし、指定した再生時間まで出力する。 ffmpeg -ss [duration] -to [hh:mm:ss] -i input.mp4 -c copy output.mp4 ffmpeg -ss 01:03 -to 2:23 -i vol_1.mp3 -c copy output.mp3 #エンコードあり(時間かかる) ffmpeg -i input.mp4 -ss 300 -t 60 output.mp4 input.mp4の5分(300秒)地点から1分間(60秒)の動画を切り出すことができます。
02:12 から、4秒 ffmpeg -ss 00:02:12 -i "input.mp4" -ss 0 -t 4 1.mp4
input.mp4 の 1分38秒 時点から 46秒間 切り取り、output.mp4 として出力(無劣化) ffmpeg -ss 00:01:38 -i input.mp4 -ss 0 -t 00:00:46 -c:v copy -c:a copy -async 1 output.mp4 -ss 開始時刻までシーク -i 元ファイル -ss 0 切り取り開始(==開始時刻) -t 切り取る秒数(開始時刻との差分) -c:v copy 映像無変換(無劣化) -c:a copy 音声無変換(無劣化) -async 1 音声同期を最初だけにして、後続のサンプルはそのまま
#エンコードなし(時間短縮) ffmpeg -i input.mp4 -ss 4500 -t 60 -vcodec copy -acodec copy 1a.mp4
ffmpeg -i input.mp4 -vn -af volumedetect -f null -
確認して、max_volume が 0dB くらいになるように合わせる。
ffmpeg -i input -af volume=10dB output
ffmpeg -i inp.mp4 -vcodec copy -af volume=2 out.mp4 相対倍率(0.5とか1.5とか2とか4とか言った値) volume=2 2倍にする
640 x 360 の動画で、下をカットする方法
ffmpeg -i "test.mp4" -vf crop=640:250:0:0 outtest.mp4
2倍速の場合 ffmpeg -i src.mp4 -vf setpts=PTS/2.0 -af atempo=2.0 dest.mp4 1.2倍速の場合 ffmpeg -i src.mp4 -vf setpts=PTS/1.2 -af atempo=1.2 dest.mp4 0.8倍速の場合 ffmpeg -i src.mp4 -vf setpts=PTS/0.8 -af atempo=0.8 dest.mp4
ffmpeg -i [ファイル名] -af atempo=2.0 [アウトプットファイル名]
一般向けサイト
ITエンジニア向けサイト
英語サイト
Portfolio
Copyright (c) 2025 インフラエンジニアのPC環境 All Rights Reserved.