ffmpegを使用して.mp4ビデオの上下の黒いバーを削除する


22

私はffmpegが初めてで、黒用のフィルターがあると聞きました。ビデオの上下の黒いバーを削除して、ビデオが黒いバーのない残りのビデオにトリミングされるようにします。ありがとう:)

ffmpeg  mp4 

ウィンドウズ?WinFFをインストールします。それは...あなたはGUIでトリミングしたい値を入力することができます
Kinnectus

回答:


38

FFmpeg cropdetectおよびクロップフィルター

1.切り抜きパラメータを取得する

cropdetectは、クロップフィルターのパラメーターを提供するために使用できます。この例では、最初の90秒がスキップされ、10フレームが処理されます。

$ ffmpeg -ss 90 -i input.mp4 -vframes 10 -vf cropdetect -f null -
...
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:215 t:0.215000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:257 t:0.257000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:299 t:0.299000 crop=1280:720:0:0

したがって、cropdetectに従って使用できますcrop=1280:720:0:0

2.プレビュー ffplay

$ ffplay -vf crop=1280:720:0:0 input.mp4

3.クロップフィルターを使用して再エンコードする

$ ffmpeg -i input.mp4 -vf crop=1280:720:0:0 -c:a copy output.mp4

この例では、おそらく再エンコードする必要がないため、オーディオはストリームコピー(再多重化)されます。

こちらもご覧ください


再生中に切り抜く

上記のffplay例で見たように、一部のプレーヤーでは、再生時にトリミングすることができます。これには次の利点があります。

  • すぐに得られる喜び; 再エンコードする必要はありません
  • 品質は保持されます

申し訳ありませんが、私はffmpegを初めて使用します。上下の黒いバーを削除し、黒いバーのない残りのサイズにビデオのサイズを変更する部分がわかりません。

1
黒いバーを削除する自動化方法はありますか、または常に手動で値をトリミングする必要がありますか?

1
@rexhin cropdetectを実行すると、上記のようにコンソール出力に大量の情報がダンプされます。文字通り、使用する必要がある実際のクロップパラメーターを提供します。スクリプトで自動化できます。
llogan

本当にすごかった。しかし、黒のフィルターはどこに配置しましたか?crop = 1280:720:0:24

上部の黒いバーは削除されましたが、下部に小さな黒いバーが残っています。なぜこれが起こったのですか?

1

@LordNeckbeardの答えは素晴らしい。私はほとんどの場合それをお勧めします。

ffplayはうまく機能し、プレビューもうまくいきましたが、私が使っていたffmpegのバージョンは、私が使っていたこのビデオのオーディオに苦労していました。

st:1 error, non monotone timestamps 

-c:aは実行中のバージョンでサポートされていないことと、使用しているビデオのビットレート変換の問題の両方で、提案された答えに問題がありました。

注:-c:aに置き換えることができます:-acodec

私が見つけた最も簡単な代替無料ソリューションは、ハンドブレーキを使用することでした。

オートクロップは、黒いバーをほとんど問題なく削除しました。

お役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.