メディア
画像・動画・音声
ffmpeg での変換・切り出し・圧縮、ImageMagick での画像加工、exiftool でのメタデータ操作、端末で画像を見る chafa。
ffmpeg動画・音声を変換する
Ubuntu には最初から入っていません。 で入れられます。
動画や音声の形式変換・圧縮・切り出し・結合など、ほとんど何でもできる定番のツールです。
ffmpeg [入力のオプション] -i <入力> [出力のオプション] <出力>$ ffmpeg -i input.mov output.mp4 # 形式を変える
$ ffmpeg -i in.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac out.mp4 # 画質を保って圧縮
$ ffmpeg -ss 00:01:00 -to 00:01:30 -i in.mp4 -c copy clip.mp4 # 1:00〜1:30 を切り出す(再エンコードなし)
$ ffmpeg -i in.mp4 -vf scale=1280:-2 out.mp4 # 横1280にする(高さは比率を保つ)
$ ffmpeg -i in.mp4 -vn -c:a libmp3lame -q:a 2 audio.mp3 # 音声だけ取り出す
$ ffmpeg -i in.mp4 -an out.mp4 # 音声を消す
$ ffmpeg -i in.mp4 -vf "fps=10,scale=480:-1" out.gif # GIF にする
$ ffmpeg -i in.mp4 -ss 5 -frames:v 1 thumb.jpg # 5秒目の静止画
$ ffmpeg -f concat -safe 0 -i list.txt -c copy joined.mp4 # 連結(list.txt に file 'a.mp4' と並べる)
$ ffprobe -hide_banner in.mp4 # 情報を表示| オプション | 意味 |
|---|---|
-c copy | 再エンコードせずにコピー(速い・画質が落ちない) |
-c:v / -c:a | 映像 / 音声のコーデック |
-crf N | 画質(小さいほど高画質。x264 なら 18〜28 が目安) |
-ss / -to / -t | 開始位置 / 終了位置 / 長さ |
-vf | 映像フィルター(scale・crop・fps など) |
-r | フレームレート |
-y | 確認せず上書き |
convert / magick画像を加工する(ImageMagick)
Ubuntu には最初から入っていません。 で入れられます。
画像の形式変換・リサイズ・画質変更などを行います(ImageMagick)。
$ convert photo.png photo.jpg # 形式を変える
$ convert photo.jpg -resize 50% small.jpg
$ convert photo.jpg -resize 1200x1200\> out.jpg # 1200px を超えるときだけ縮める
$ convert photo.jpg -quality 80 out.jpg
$ mogrify -resize 1600x -quality 85 *.jpg # まとめて上書き加工
$ identify photo.jpg # サイズや形式を表示
$ convert a.png b.png +append side.png # 横に並べる(-append で縦)exiftool画像のメタデータを見る・消す
Ubuntu には最初から入っていません。 で入れられます。
写真に含まれる撮影日時や位置情報などのメタデータを表示・削除・書き換えします。
$ exiftool photo.jpg
$ exiftool -gps:all photo.jpg # 位置情報だけ
$ exiftool -all= -overwrite_original photo.jpg # メタデータをすべて消す(SNSに上げる前に)
$ exiftool '-FileName<DateTimeOriginal' -d '%Y%m%d_%H%M%S.%%e' . # 撮影日時でファイル名を付け直すchafa端末の中で画像を見る
Ubuntu には最初から入っていません。 で入れられます。
画像を端末の中に文字で描いて表示します。
$ chafa photo.jpg
$ chafa --size 60x30 icon.png
$ chafa *.gif # アニメーションも再生feh軽い画像ビューア
Ubuntu には最初から入っていません。 で入れられます。
軽い画像ビューアです。
$ feh photo.jpg
$ feh -t . # サムネイル一覧
$ feh -Z -F . # 全画面でスライドショーffprobe動画・音声の情報を調べる
Ubuntu には最初から入っていません。 で入れられます。
動画や音声ファイルの長さ・解像度・コーデックなどを調べます。
$ ffprobe -hide_banner video.mp4
$ ffprobe -v error -show_entries format=duration -of csv=p=0 video.mp4 # 長さ(秒)
$ ffprobe -v error -select_streams v:0 -show_entries stream=width,height,r_frame_rate -of csv=p=0 video.mp4ffmpeg のよく使うレシピ
$ ffmpeg -i in.mp4 -vf "crop=1080:1080" square.mp4 # 正方形に切り抜く
$ ffmpeg -i in.mp4 -vf "transpose=1" rotated.mp4 # 90度回転
$ ffmpeg -i in.mp4 -filter:v "setpts=0.5*PTS" -an fast.mp4 # 2倍速(音声なし)
$ ffmpeg -i in.mp4 -i logo.png -filter_complex "overlay=W-w-20:20" out.mp4 # 右上にロゴ
$ ffmpeg -i in.mp4 -vf subtitles=sub.srt out.mp4 # 字幕を焼き込む
$ ffmpeg -i in.mp4 -af "loudnorm" out.mp4 # 音量を揃える
$ ffmpeg -framerate 30 -i img_%03d.png -c:v libx264 -pix_fmt yuv420p out.mp4 # 連番画像を動画に
$ ffmpeg -i in.mp4 -vf fps=1 frames/%04d.png # 1秒ごとに静止画
$ ffmpeg -f x11grab -s 1920x1080 -i :0.0 screen.mp4 # 画面を録画(X11)
$ ffmpeg -i in.wav -c:a libopus -b:a 96k out.opus # 音声を小さくpdftotext / pdfinfo / pdftoppmPDF を扱う
PDF から文字を取り出したり、ページを画像にしたり、結合・分割したりします。
$ pdfinfo doc.pdf # ページ数や作成日
$ pdftotext -layout doc.pdf doc.txt # 文字を取り出す(レイアウトを保つ)
$ pdftoppm -png -r 150 doc.pdf page # 各ページを PNG に(page-1.png…)
$ pdftoppm -jpeg -f 1 -l 1 doc.pdf cover # 1ページ目だけ
$ pdfunite a.pdf b.pdf merged.pdf # 結合
$ pdfseparate doc.pdf page-%d.pdf # 1ページずつに分割
$ pdfimages -all doc.pdf img # 埋め込まれた画像を取り出すgs (Ghostscript)PDF を圧縮・変換する
PDF のサイズを小さくしたり、画像に変換したりします。
$ gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH -dQUIET \
-sOutputFile=small.pdf big.pdf # PDF を小さくする(/screen はさらに小さい)
$ gs -sDEVICE=png16m -r150 -o page-%02d.png doc.pdf # PDF → 画像qpdfPDF のページ操作・パスワード
Ubuntu には最初から入っていません。 で入れられます。
PDF のページを抜き出す・並べ替える・回転する・パスワードを外すなどの操作をします。
$ qpdf --empty --pages a.pdf b.pdf 1-3 -- out.pdf # a 全部と b の1〜3ページ
$ qpdf --decrypt --password=secret locked.pdf unlocked.pdf
$ qpdf in.pdf --rotate=+90:1 out.pdf # 1ページ目を回転img2pdf画像をそのまま PDF にする
Ubuntu には最初から入っていません。 で入れられます。
画像を画質を落とさずに PDF にまとめます。
$ img2pdf *.jpg -o scans.pdf画像を軽くする — cwebp / pngquant / optipng / jpegoptim
cwebpWebP に変換する
Ubuntu には最初から入っていません。 で入れられます。
画像を軽い WebP 形式に変換します。
$ cwebp -q 80 photo.jpg -o photo.webp
$ dwebp photo.webp -o photo.pngpngquantPNG の色数を減らして軽くする
Ubuntu には最初から入っていません。 で入れられます。
PNG の色数を減らして大幅に軽くします。
$ pngquant --quality 65-80 --ext .png --force *.pngoptipngPNG を無劣化で最適化する
Ubuntu には最初から入っていません。 で入れられます。
PNG を画質を落とさずに小さくします。
$ optipng -o5 image.pngjpegoptimJPEG を最適化する
Ubuntu には最初から入っていません。 で入れられます。
JPEG を最適化して軽くします。
$ jpegoptim --max=85 --strip-all *.jpggifsicleGIF を最適化・加工する
Ubuntu には最初から入っていません。 で入れられます。
GIF アニメを最適化して軽くします。
$ gifsicle -O3 --lossy=80 anim.gif -o small.gifmontage / convert画像を並べる・文字を入れる・切り抜く
Ubuntu には最初から入っていません。 で入れられます。
画像を並べて1枚にしたり、文字を入れたり、切り抜いたりします(ImageMagick)。
$ montage *.jpg -tile 4x -geometry 300x300+4+4 contact.jpg # サムネイル一覧
$ convert in.png -gravity southeast -pointsize 24 -fill white -annotate +10+10 '© example' out.png # 文字入れ
$ convert in.png -crop 800x600+100+50 cropped.png # 切り抜き
$ convert in.png -rotate 90 out.png
$ convert -delay 10 -loop 0 frame*.png anim.gif # GIFアニメを作るtesseract画像から文字を読み取る(OCR)
Ubuntu には最初から入っていません。 で入れられます。
画像の中の文字を読み取ってテキストにします(OCR)。
$ tesseract scan.png out -l jpn+eng # out.txt に書き出す
$ tesseract scan.png - -l jpn # 画面に出すyt-dlp動画をダウンロードする
Ubuntu には最初から入っていません。 で入れられます。
apt 版は古いことが多いので、pipx で入れて pipx upgrade yt-dlp で更新するのがおすすめです。
$ yt-dlp URL
$ yt-dlp -F URL # 選べる形式の一覧
$ yt-dlp -f "bv*+ba/b" URL # 最高画質
$ yt-dlp -x --audio-format mp3 URL # 音声だけ
$ yt-dlp -o "%(upload_date)s_%(title)s.%(ext)s" URLsox音声を加工する
Ubuntu には最初から入っていません。 で入れられます。
音声ファイルの切り出し・音量調整・変換などを行います。
$ sox in.wav out.wav trim 0 30 # 最初の30秒
$ sox in.wav out.wav gain -n # 音量を最大に揃える
$ play song.mp3 # 再生(libsox-fmt-all が必要)mpv何でも再生できるプレーヤー
Ubuntu には最初から入っていません。 で入れられます。
ほとんどの形式を再生できる軽い動画・音楽プレーヤーです。
$ mpv video.mp4
$ mpv --no-video music.mp3
$ mpv --speed=1.5 lecture.mp4
$ mpv https://www.youtube.com/watch?v=... # yt-dlp と組み合わせてストリーミング