横長画面のクロップ(補足:メタデータ全コピ)
640×480(4:3)の動画中央に16:9の動画が入っていて上下が黒帯の場合
16:9の動画の縦横サイズは640×360になります。また上下の帯幅はそれぞれ60です。
ffmpeg -i video43.mp4 -vf crop=640:360:0:60 video169.mp4
参考:ffmpeg クロップ (トリミングみたいな)の方法 -vf crop|ffmpeg 使い方 ⇐ Linux. リナックス. ヒト ノ タメ ノ.
おまけ:某45分番組をクロップさせた結果
time cpulimit -l 200 -- ffmpeg -i input.mp4 -vf crop=640:360:0:60 output.mp4 ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers built with Apple LLVM version 7.0.2 (clang-700.1.81) configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libvorbis --enable-librtmp --enable-openssl --enable-nonfree --enable-vda libavutil 55. 17.103 / 55. 17.103 libavcodec 57. 24.102 / 57. 24.102 libavformat 57. 25.100 / 57. 25.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 31.100 / 6. 31.100 libavresample 3. 0. 0 / 3. 0. 0 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 : real 39m22.622s user 76m41.637s sys 1m33.234s
user のほうが多い…?
Real time < User CPU time となるケース
マルチスレッドプログラムや fork しているプログラムで表示される CPU タイムは、マルチスレッドで言えば、スレッド全体、fork であれば親子の CPU time を合算したものが利用されます。
例えば、マルチコアなマシーンで、マルチスレッドプログラムを実行すると、 Real time < user CPU time となることもあります。real time/user CPU time/system CPU timeの違いをメモ | Siguniang's Blog
ああ200%で働いていたと言うことはほぼほぼ2 CPU フル稼働だから、実稼働時間のほぼ倍が user time になってるってことですね。
(それにしても変換に時間かかったなあ…)
おまけ2:300%にした場合
real 30m2.981s user 81m2.881s sys 1m31.915s
実時間でも30分か…。
メタデータ全コピ
-map_metadata 0
を使います。入力ファイル指定の後ろであればどこに入れても良いと思います。
ffmpeg -i video43.mp4 -map_metadata 0 -vf crop=640:360:0:60 video169.mp4
参考: