0

(私の英語の言い訳は、私はLA出身のフリークです)私はVB6.0でトランスコーディングプロセスを完了しようとしています。私はプロジェクトを完了するために、非常に優れたトランスコーダーであるffmpegを使用しています。プログレスバーが必要ですトランスコーディング プロセスですが、非常に難しいです。まず、入力がある場合にプログラムがプロセスの残り時間を計算する方法を理解する必要があります。

  • 平均ビットレート
  • フレームレート
  • 開始ファイル サイズ。

私は試しています:ファイルサイズ(KB)/平均ビットレートKb / s。

理論的にはこれは機能するはずですが、計算された時間は実際に処理された時間よりも非常に小さいです。誰かがこれについて何らかの考えを持っています.trascodingプロセスの残り時間を計算するための式(抜粋)は何ですか. この素晴らしいウェブで、私のプロジェクトに対する多くの答えを見つけました..

4

2 に答える 2

1

ビットレートは、進捗状況の計算には役立ちません。

ファイルの長さ(秒)とフレームレートがあり、ffmpegが現在処理しているフレームを出力する場合は、おおよその時間を計算できます。

于 2010-01-18T21:10:35.900 に答える
0

「残り時間」の一般的な解決策は次のとおりです。

  • 処理するサイズ、ユニット数などを表すtotal_unitsの数
  • これまでに処理されたMの数を表すunits_processedの数
  • 操作が開始されてからの時間を秒単位で示すstart_secondsの数値

は:

seconds_elapsed = current time - start time
seconds_per_unit = seconds_elapsed / units_processed
units_left = total_units - units_processed
seconds_remaining = unit_left / seconds_per_unit

このアルゴリズムは、各ユニットを処理する時間がほぼ同じである場合、または少なくとも時間/ユニットが経過時間とほとんど相関関係がない場合に最適です。時間/単位が経過時間によって変化する場合、それは氷上で悪臭を放ちます。

于 2010-01-18T21:12:43.227 に答える