ffmpeg
「動画」は基本.mp4 / .mov / .webm / .mkvファイルを指す
汎用ファイル変換
code:input.fileをoutput.fileに変換
ffmpeg -i input.file output.file
code:input.mp4をその(100,100)x,y位置を始点に960×540サイズにクロップしたoutput.mp4に変換
ffmpeg -i input.mp4 -vf crop=w=960:h=540:x=100:y=100 output.mp4
汎用動画変換 (再エンコードせず品質そのまま)
code:input.movをoutput.mp4に変換
ffmpeg -i input.mov -c copy output.mp4
動画の時間切り抜き
code:30秒までカットし、1分30秒までを出力
ffmpeg -i input.mp4 -ss 00:30 -to 01:30 -c copy output.mp4
動画の音声コーデックとサンプルレートを表示する
code:input.webmの音声コーデックとサンプルレートを表示
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name,sample_rate -of csv=p=0 input.webm
動画の音声を抽出
code:input.webm(opusコーデック)の音声を抽出して.opusに変換
ffmpeg -i input.webm -vn -c:a copy output.opus
H.264の動画をH.265にエンコードする
※.webmはMPEG-4非対応なので不可
code:input.mp4をoutput.mp4にH.265エンコード
ffmpeg -i input.mp4 -c:a copy -c:v libx265 -crf 22 -tag:v hvc1 output.mp4
code:多少の綺麗さを犠牲にしてサイズの小さいGIFに変換
ffmpeg -i input.mp4 -r 10 -f gif output.gif
code:手軽に綺麗なGIFに変換
ffmpeg -i input.mp4 -filter_complex "0:v split ab;a palettegen p;bp paletteuse" output.gif code:画像容量は無視してとにかく綺麗なGIFに変換
ffmpeg -i input.mp4 -filter_complex "0:v split ab;a palettegen=stats_mode=single p;bp paletteuse=new=1" output.gif code:sample001.png, sample002.png, sample003.png...からoutput.gifを作成
ffmpeg -i sample%03d.png -vf palettegen palette.png
ffmpeg -f image2 -r 10 -i sample%03d.png -i palette.png -filter_complex paletteuse output.gif
/icons/alert.icon実際に使用する際は、C:**/ffmpeg.exeの部分を使用するffmpeg.exeのパスに書き換える
code:mp4一括変換.bat
@echo off
setlocal enabledelayedexpansion
set "folderPath=%~1"
cd /d "%folderPath%"
for /r "%folderPath%" %%I in (*.*) do (
if /I "%%~xI"==".mp4" (
echo Skipping: %%~nxI
) else (
set "output_file=%%~dpnI.mp4"
C:**/ffmpeg.exe -i "%%I" -c:a copy -c:v h264_nvenc -rc:v vbr_hq -cq:v 20 -movflags +faststart "!output_file!"
echo Converted: %%~nxI
)
)
pause