web-dev-qa-db-ja.com

切り抜きとサイズ変更により、ビデオを固定画面サイズに変換します

私は自分でこれを理解しようとしましたが、無数のオプションが私を困惑させます。

理想的にはffmpegまたはmencoder(または他の何かですが、私が動作していることを知っているこれら2つ)を使用して、着信ビデオを固定画面サイズに変換します。

ビデオが幅が広いか短すぎる場合は、ビデオを中央で切り抜きます。サイズが適切でない場合は、画面サイズを正確に固定するためにサイズを変更します。

最後に必要なのは、MP3オーディオトラックを備えたXVid AVIの720x480です。

最大解像度にサイズ変更する方法を示すページをたくさん見つけましたが、ビデオを正確にその解像度にする必要があります(余分な部分が切り取られ、黒いバーがありません)。

実行するコマンドラインを誰にでも教えてもらえますか?複数のコマンドラインが必要な場合(Xを実行して解像度を取得し、この計算を実行してから、その計算の出力でYを実行します)、スクリプトを作成できます。

13
Andy Jeffries

このような何かは、それぞれの場合に適切なパラメーターで動作するはずです:

注:元の回答はこのリンクに投稿されました: どうすればffmpegでビデオをトリミングできますか? もともと私が投稿し、最新バージョンの最新オプションに更新するために数回編集しましたffmpegの。 slhckJonathan。 、Anton RudeshkoLordNeckbeard および将来のメンテナーに感謝します。


FFmpegの最近のバージョンでは、 crop filter を使用します。

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

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

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

元の画像

original image
元の320x240の画像

例1

80x60

位置(200、100)から始めて80×60セクションをトリミングするには:

ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4

例2

bottom right quarter

右下の四分の一をトリミングするには:

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=240:120:240:120" -c:a copy out.mp4
  • この最初の例に示すように、in_wおよびin_hを使用して入力画像サイズを参照できます。出力の幅と高さは、out_wおよびout_hでも使用できます。

例3

20 pixels from the top, and 20 from the bottom

上から20ピクセル、下から20ピクセルをトリミングします。

 ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
  • この例のようにxyが省略されている場合、フィルターは自動的にトリミングを中央に配置します。

プレビュー

作物を採取して(heh heh)、ffplayでライブプレビューできます:

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

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

ノート

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

  • MP4のデフォルトのエンコーダーは、ffmpegビルドに応じて、libx264(H.264ビデオ)またはmpeg4(MPEG-4 Part 2ビデオ)です。詳細については、 FFmpeg Wiki:H.264 Video Encoding Guide を参照してください。

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

  • 以前のffmpegビルドでは、cropフィルターの代わりに-croptop-cropbottom-cropleft-croprightオプションが使用されていました。これがあなたに当てはまる場合は、 最新のffmpeg を取得します。開発は非常に活発であり、アンティークを使用する理由はありません。

21