切り抜く必要のある画面記録のMP4ファイルがあります。 AdobePremierやFinalCutなどの高価なツールを使用せずにこれを実現するにはどうすればよいですか?以前に使用したことがあるので、ffmpegが好きです。

回答

cropフィルター

ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4 

場所オプションは次のとおりです。

  • out_wは出力長方形の幅です
  • out_hは出力長方形の高さです
  • xおよびyは、の左上隅を指定します出力長方形

元の画像

元の画像
元の320×240画像

例1

80x60

位置(200、 100):

ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4 
  • この例では、音声はストリームコピーされています。そのため、再エンコードは回避されます。

例2

右下の四半期

右下の四半期をトリミングするには:

ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4 

これは次と同じです:

ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4 

これは次と同じです:

ffmpeg -i in.mp4 -filter:v "crop=160:120:160:120" -c:a copy out.mp4 
  • 入力された画像サイズはin_win_h。出力の幅と高さは、out_wおよびout_hでも使用できます。

例3

上から20ピクセル、下から20ピクセル

上から20ピクセル、下から20ピクセルを切り抜きます:

 ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4 
  • xおよびyは、この例のように省略されています。

プレビュー

作物を取り(heh heh)、:

ffplay -i input -vf "crop=in_w:in_h-40" 

このようにして、エンコード、表示、繰り返しを行うことなく、トリミングを実験および調整できます。

メモ

  • cropフィルターのドキュメント

  • MP4のデフォルトのエンコーダーはlibx264(H.264ビデオ)またはmpeg4(MPEG- 4パート2ビデオ)ビルド。詳細については、 FFmpeg Wiki:H.264ビデオエンコーディングガイドを参照してください。

  • トリミングと再作成の代わりにエンコード、再生時にトリミングを検討してください。これは、使用する価値のあるすべてのプレーヤーで可能です。

  • 古代のffmpegビルドは-croptopを使用しました、-cropbottom-cropleft、iv id = “a9d7407552″の代わりに、-croprightオプション>

フィルター。これが当てはまる場合は、最新のffmpeg を入手してください。開発は非常に活発で、アンティークを使用する理由はありません。

コメント

  • これは

avconv '今。

  • この手法について言及する価値があります(crop filter)は、動画を再エンコードします。再エンコードする場合は、 stackoverflow.com/questions/33378548/ … を参照してください。エンコーディングはあなたにとって重要です
  • 古い-filter:vをより最新で簡単に入力できるように編集しました-vf 。乾杯!
  • '動画の周りの黒いバー(piallarbox、letterbox、windowboxなど)を削除しようとしている場合は、cropdetect最初にffmpegの印刷トリミングパラメータを用意します:ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4
  • このトリミングフィルタはうまく機能します!ビデオをトリミングするために必要なバウンディングボックスを決定するために、ffmpegを使用してビデオフレームを画像にエクスポートしました。次に、GIMPで画像を開きます。ここで、ビデオをトリミングしたい領域の境界ボックスを描画できます。次に、ポインターウィンドウからX、Y、W、Hの情報を取得できます。これが十分に明確でないかどうかを尋ねます。
  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です