【ffmpegで、pdfをjpgにするには】
ffmpeg で PDF を JPG に変換する基本方法だけを示します。
基本(1ページ=1枚の JPG)
|
1 2 |
ffmpeg -i input.pdf output_%03d.jpg |
input.pdf:元のPDFoutput_001.jpgなど、ページごとに画像が生成される
解像度を指定する(重要)
PDFはそのままだと低解像度になりやすいので、dpi指定をします。
|
1 2 |
ffmpeg -density 300 -i input.pdf output_%03d.jpg |
-density 300:高品質(印刷・スライド向き)- Web用なら
200でも十分
JPEGの画質を指定する
|
1 2 |
ffmpeg -density 300 -i input.pdf -q:v 2 output_%03d.jpg |
-q:v 2:高画質(1〜31、数値が小さいほど高画質)- 目安
- 高品質:
2 - 標準:
4〜5
- 高品質:
サイズを指定する(例:横1920px)
|
1 2 |
ffmpeg -density 300 -i input.pdf -vf "scale=1920:-1" -q:v 2 output_%03d.jpg |
-1:縦横比を維持
特定ページだけ変換(例:1〜5ページ)
|
1 2 |
ffmpeg -density 300 -i input.pdf -vf "select=between(n\,0\,4)" -vsync 0 output_%03d.jpg |
※ ページ番号は 0始まり。
よくある注意点
- ffmpeg は 内部で Ghostscript / Poppler を使うため
環境によっては PDF 読み込みに失敗することがある - その場合は
pdftoppmの方が安定する
参考(より安定):
|
1 2 |
pdftoppm -jpeg -r 300 input.pdf output |
まとめ(おすすめ)
高品質・安定重視(Ubuntu)
|
1 2 |
ffmpeg -density 300 -i input.pdf -q:v 2 output_%03d.jpg |
これで スライド・動画素材用として十分な品質になります。
【ffmpegで、再度、動画作成を行うので、GPUなどを使って処理しやすい横幅は】
結論から書きます。
ffmpegで「GPUを使って動画化」する場合の
処理しやすい横幅(最適解)
基本の最適値
1920 px(フルHD)
|
1 2 |
1920 × 1080 |
これが NVENC / VAAPI / AMF すべてで最も安定します。
なぜ 1920px が最適か
GPUエンコーダは次の条件を強く要求します。
① 横幅・縦幅が 偶数(できれば16の倍数)
- NVENC / VAAPI / AMF は 16px単位で内部処理
- 1920 ÷ 16 = 120(完全一致)
② ハードウェアエンコーダのプリセットが最適化済み
- フルHDは 想定解像度
- 余計なスケーリングが入らない
- VRAM転送が最小
横幅別おすすめ一覧(用途別)
| 横幅 | 解像度 | GPU負荷 | 用途 |
|---|---|---|---|
| 1920 | 1920×1080 | ◎ 最適 | YouTube / TikTok横 / 講座動画 |
| 1280 | 1280×720 | ◎ 非常に軽い | 高速量産・プレビュー |
| 2560 | 2560×1440 | △ やや重い | 高画質用途 |
| 3840 | 3840×2160 | ✕ 重い | 4K(非推奨) |
PDF→JPG→動画 の場合の ベスト設計
PDF → JPG
|
1 2 |
横幅:1920px |
JPG → MP4(GPU使用)
|
1 2 3 4 5 6 |
ffmpeg -hwaccel auto \ -framerate 30 -i img_%03d.jpg \ -c:v h264_nvenc \ -pix_fmt yuv420p \ -r 30 out.mp4 |
※ VAAPIの場合:
|
1 2 |
-c:v h264_vaapi -vf 'format=nv12,hwupload' |
重要な注意(ここを外すとGPUが使われない)
❌ NG例
- 横幅が奇数(1919など)
- PDF→JPGで変なサイズ(A4比率のまま)
- 縦横比がGPU制約に合わない
✅ OK
- 1920 / 1280 / 2560 のいずれか
- 高さは
-1指定でOK(自動調整)
最終結論
🎯 最も安全・高速・安定
|
1 2 |
横幅:1920px |
次点で「大量生成・速度重視」なら:
|
1 2 |
横幅:1280px |
この2択で迷わなければ、
GPUエンコードで詰まることはほぼありません。
【効率良い形で、pdf->jpgのコマンドは】
|
1 2 |
ffmpeg -density 300 -i input.pdf -vf "scale=1920:-1" -q:v 2 output_%03d.jpg |
input.pdf:元PDF1920:GPU処理しやすい横幅-q:v 2:高画質- ページごとに
output_001.jpg形式で出力
エラーになった。
-density
が、NGのよう
ffmpeg -r 300 -i input.pdf -vf “scale=1920:-1” -q:v 2 output_%03d.jpg
でもやはり、エラー
pdftoppm -jpeg -r 300 -scale-to-x 1920 -scale-to-y -1 input.pdf output