GeminiやChatGPTやGensparkなどに、動画を入力して処理を行う場合
動画のサイズを小さくするのが有効です。
場合によっては、音声を外したり。
圧縮するには、ffmpegが有効です
ChatGPT「動画の容量をffmpegを使って最小限の大きさにするには」
ffmpegで動画の容量を最小限にするための実践的な最適解だけをまとめます。
結論(まずこれ)
H.265(HEVC)+CRF指定+音声ビットレート削減
これが「画質を保ったまま最小化」する王道です。
最小容量・高圧縮(時間かかってOK)
|
1 2 3 4 5 6 7 |
ffmpeg -i input.mp4 \ -c:v libx265 -preset slow -crf 28 \ -pix_fmt yuv420p \ -c:a aac -b:a 64k \ -movflags +faststart \ output.mp4 |
ポイント
libx265:H.265(H.264より30〜50%小さくなる)crf 28:ほぼ実用最低ライン(27〜30で調整)preset slow:時間と引き換えに圧縮率最大- 音声
64k:会話用途なら十分 faststart:Web配信用(容量は変わらない)
さらに小さくしたい場合(見た目より容量優先)
|
1 2 3 4 5 6 |
ffmpeg -i input.mp4 \ -c:v libx265 -preset veryslow -crf 30 \ -vf "scale=1280:-2" \ -c:a aac -b:a 48k \ output.mp4 |
- 解像度を 1280幅 に落とす → 劇的にサイズ減少
crf 30:ギリギリ許容ライン
GPU(NVENC)で速く・そこそこ小さく
※ NVIDIA GPUありの場合
|
1 2 3 4 5 |
ffmpeg -i input.mp4 \ -c:v hevc_nvenc -preset p7 -rc vbr -cq 28 \ -c:a aac -b:a 64k \ output.mp4 |
- 圧縮率:CPU x265 < NVENC(少し大きい)
- 速度:NVENCが圧倒的に速い
音声が不要なら(最小)
|
1 2 3 4 |
ffmpeg -i input.mp4 \ -c:v libx265 -crf 28 -an \ output.mp4 |
容量に一番効く要素(重要度順)
- コーデック(H.265)
- CRF値
- 解像度
- フレームレート
- 音声ビットレート
目安
| 用途 | 設定 |
|---|---|
| Web/SNS | H.265 / CRF 28 / 1280幅 |
| アーカイブ | H.265 / CRF 26 / 原解像度 |
| 超最小 | H.265 / CRF 30 / 音声48k |
この設定は Ubuntu / Windows / Mac 共通で使えます。
余計な推測や代替案は省き、最小化に直結する内容のみ記載しました。
GPUの活用も重要、NotePCでも活用できました。
ChatGPT「ideapad s540 Radeon vega GRAPHICS ADM で、Ubuntuで利用していますが、ffmpegを高速化できますか」
はい、できます。IdeaPad S540 の Radeon Vega(AMD) なら、Ubuntuでは VAAPI を使うのが基本です。NVENC(CUDA)はNVIDIA専用なので今回の環境では使えません。
1) まず、VAAPIが使えるか確認
|
1 2 |
ls -l /dev/dri/renderD128 |
これが存在すれば次へ。
|
1 2 3 |
ffmpeg -hide_banner -hwaccels | grep -E 'vaapi' ffmpeg -hide_banner -encoders | grep -E 'vaapi|amf' |
h264_vaapi や hevc_vaapi が出ればOK。
2) AMD(Vega)で高速エンコード(VAAPI)
H.264(互換性重視・速い)
|
1 2 3 4 5 6 7 |
ffmpeg -i "input.mp4" \ -vaapi_device /dev/dri/renderD128 \ -vf "format=nv12,hwupload" \ -c:v h264_vaapi -qp 24 \ -c:a aac -b:a 64k \ "output_h264_vaapi.mp4" |
H.265(より小さく・速い)
|
1 2 3 4 5 6 7 |
ffmpeg -i "input.mp4" \ -vaapi_device /dev/dri/renderD128 \ -vf "format=nv12,hwupload" \ -c:v hevc_vaapi -qp 28 \ -c:a aac -b:a 64k \ "output_hevc_vaapi.mp4" |
3) AI分析用(音声なし・画質落として最小+高速)
|
1 2 3 4 5 6 7 |
ffmpeg -i "input.mp4" \ -an \ -vaapi_device /dev/dri/renderD128 \ -vf "fps=5,scale=640:-2,format=nv12,hwupload" \ -c:v hevc_vaapi -qp 32 \ "output_ai.mp4" |
重要(VAAPIの注意)
- VAAPIは
-crfが使えません(代わりに-qpを使う)- 目安:H.264
-qp 22〜28/ H.265-qp 26〜34
- 目安:H.264
- フィルタは
format=nv12,hwuploadが基本
これでUbuntu上のAMD Vegaでもffmpegをかなり高速化できます。
無事、設定ができました。