指定された出力ファイルサイズに収まるようにAVIファイルをレンコードします。

StackOverflow https://stackoverflow.com/questions/315488

  •  10-07-2019
  •  | 
  •  

質問

AVIファイルがあり、650 MBのサイズのCDに収まるように再エンコードしたい。ファイルサイズが指定されたサイズを超えないようにエンコードするにはどうすればよいですか?どのプログラムを使用できますか?

役に立ちましたか?

解決

AutoGK はこれを非常に効果的に行うことができます。主にDVD ****咳****バックアップ用に設計されていますが、ソースとしてAVIも受け入れます。これは、調整GUIを備えたオープンソースプログラムのコレクションであるため、インストーラーがいくつかのアイテムをインストールするときに心配する必要はありません。

他のヒント

プログラムでこれを行うことを想定しています:

Windowsの場合:

directshowを使用して、フィルターグラフを作成することにより、ビデオをトランスコードできます。

Windows用のプラットフォームSDKを入手します(まだお持ちでない場合)。次に、ここを参照して、トランスコーディング用のフィルターグラフを作成するdirectshowの例を確認してください。

ビルドするには、基本クラスが必要です。ここでビルドできます:

C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses

次に、例を確認してください:

C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow

フィルターグラフを手動で作成して、それらがどのように使用されているのかを把握し、これらがどのように意味を持っているかを確認することもできます(例で学習するエンコーダーの列挙など):

C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\graphedt.exe

ここまで進んで、directshowの仕組みを理解したら、数学を使用して、ビデオを必要なサイズに合うようにトランスコードする方法を理解できます。これを行うには、入力ビデオの1秒あたりのフレーム数と各フレームの大きさを確認する必要があります。

異なるエンコーダーはさまざまな方法で動作します:

aviファイルをより小さいまたは低い品質のaviファイルにトランスコードしていると仮定します。入力フレームサイズとfpsを見てファイルサイズ全体を決定し、代数を使用してフレームサイズを減らすか、1秒あたりのフレーム数(または両方の組み合わせ)を減らして目的のサイズ(入力変数)。

他のエンコーダーについては、それらがどのように機能するかを確認することができます。 mp4などの損失の多いエンコーダーは推定を実行して、フレームからフレームに変更されたビデオを見つけ、その情報をファイルに保存してフレームを再構築します。それらがどのように機能するかを読むか、詳細については特定のエンコーダの使用方法を確認する必要があります。

Linux(およびWindows)の場合:

ffmpeg を使用できます。これは、ビデオへのトランスコーディングやその他のものをオールインワンで提供します。メインページではホストされていません(ソースのみ)が、コマンドラインアプリケーションのビルド済みexeを見つけることもできます。このアプリケーションは、オープンソースのビデオライブラリを使用して、多くのビデオトランスコーディングや他の多くのことを行います。信頼できる適切なexeファイルを見つけることができれば、アプリケーションで使いやすいものが必要な場合は、おそらくこれをチェックアウトする必要があります。こちらのホームページをご覧ください。

これで開始できることを願っています。

特定のサイズに合わせるには、適切なビットレートを使用する必要があります。

固定ビットレートのビデオの場合、ターゲットビットレートを取得するには、ビット単位のターゲットサイズとソースの長さを秒単位で取得します。

target bit-rate = size / seconds

例:

seconds = (90mins * 60) = 5400
size = ((650MB * 1024) * 8) = 5324800
target bit-rate = ~986 kilobytes per second

可変ビットレートでは、事態はかなり複雑になります。出力ファイルを設定されたサイズに正確にする方法があるかどうかはわかりません。最も簡単な方法は、上記の方法を使用して最大ビットレートを計算することです

AVIの秒数を計算します。次に、ファイルサイズを取得し、長さで除算します。キロビット/秒に変換し、ビットレートの中央値として使用します。 (Googleを使用して、簡単に数学と変換を行います。)

ビデオとオーディオのビットレートを必要に応じて比較することができます。通常、AACでは96 kbpsで十分ですが、多少の差はありますが。実験。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top