web-dev-qa-db-ja.com

16:9の映画を4:3のレターボックスバージョンに変換するにはどうすればよいですか?

アスペクト比16:9のワイドフォーマットムービーファイルがあり、4:3デバイスでの再生に最適なバージョンを作成するとします。画像を切り取ったり、画像を歪めたりしたくないので、レターボックスバージョンを作成します。

つまり、動画の長方形を囲む上部と下部に黒いバーがあり、真の16:9の寸法を持つ4:3のムービーが必要です。

無料のコマンドラインまたはGUIツールを使用して、WindowsまたはLinuxでこれを行う方法を教えてください。

11
dggoldst

これはffmpegで行うことができます。始める前に、数学を理解するためのこの素晴らしいリソースを読んでください: http://www.Doom9.org/index.html?/aspectratios.htm

まず、上部と下部のパディング値を計算します。

long=width of original,
skinny=height of orginal
totalPadding = .75*long - skinny
top padding = bottom padding = totalPadding / 2

注:上部と下部のパディングが偶数でない場合は、合計がtotalPaddingになるように強制します(たとえば、47と53ではなく、48と52で100を取得します)

次に、レターボックスバーを追加し、outfileが4x3として認識されるようにします。パディングが上部と下部の両方で58ピクセルであることが判明したとします。

ffmpeg -i Infile.avi -padtop 58 -padbottom 58 -padcolor 000000 -aspect 4:3 Outfile_letterbox.mpg
7
dggoldst

新しいバージョンのffmpegは、「padtop」および「padbottom」オプションを廃止しました。新しいバージョンでそれを行うには、上記と同じ基本ロジックを使用します。私の場合、元のビデオは720x404でしたが、720x480をエンコードしたかったのです。上下にパディングを入れました。だから上記ごとに:

(480-404) / 2 = 38

つまり、上部と下部の両方に38ピクセルをパッドします。 「pad」コマンドは、エンコードするビデオのサイズと、オリジナルを移動する左右の距離を必要とします。そう:

-vf pad=720:480:0:38

出力解像度は720x480ではなく720:480として記述する必要があることに注意してください

11
Brad

ダウンロードしてインストール Avisynth 。メモ帳を開き、次のように入力します。

AviSource("c:\movies\somemovie.avi")
BicubicResize(720,266,0,0.5)
AddBorders(0, 106, 0, 108)

Mymovie.avsとして保存し、エンコーダーに入れます。

サイズ変更と境界線を微調整する必要があるかもしれませんが、通常はここで何が起こっているかを確認できます。また、ビデオがAviSourceでロードされない場合は、DirectShowSourceに置き換えてください。

2
Breakthrough

「理想的」とは、あなたの再生デバイスがビデオを伸ばしていると思いますか?

理想的な状況は、ビデオに黒いバーを追加するのではなく、黒いバーでビデオを表示することです。ビデオを再エンコードしてバーを追加すると、「一度エンコードする」というルールに違反するだけでなく、ビットあたりの全体的な品質も低下します。余分な、役に立たない情報を追加することによって。

解決しようとしている問題についてさらに説明していただけますか?

1
salmonmoose

Linux用のDeVeDe(およびWindowsポートも)と呼ばれる無料のオープンソースプログラムがこれを自動的かつ適切に処理します http://www.rastersoft.com/programas/devede.html

0
dggoldst

Windowsムービーメーカーには次の機能があります: http://windowshelp.Microsoft.com/Windows/en-US/Help/d7783074-18d6-4f9a-8dfb-e0b1ab6c45e11033.mspx

0
whs