私は何年も前の古いコードを使ってMPEG-2ビデオの長さを計算しています。 49秒のビデオでは1時間49秒ということで何か変わったようです。MPEG-2タイムコードを読む
最後のGOPヘッダーがファイルにあり、4バイトのTimeCodeが "040E2AC0"で抽出されます。 32ビットのLongWordでは、リトルエンディアンで3223981572を読み込みます。
次に、アセンブラ関数bswap eaxを使用してエンディアンをスワップします。結果は1 68037312.いくつかのパスカル・コードは、その後...このよう
Hours := (TimeCode shr 26) and $1F;
Minutes := (TimeCode shr 20) and $3F;
Seconds := (TimeCode shr 13) and $3F;
時間を所要時間を抽出されているが、0分でなければなりません0秒で正確である私が「49
で正しいです問題をデバッグするためにビット操作でうまくいかない。これに何か問題はありますか?それが助けになるなら、私はビデオへのリンクを手配することができました。
多くのおかげで、 ロス。
ファイルに含まれる実際の値、 2)*エンディアンが逆転するコード*; 3)その逆転後の値(「TimeCode」)。また、ほとんどの場合、コードが機能しない理由を尋ねるときに、使用している特定の言語のタグを含めることがほとんど役に立ちます。ビデオへのリンクは無関係です。そのリンクが将来消える場合は、その質問には何の価値もありません。 –
OK。私があなたに提供するように頼んだ情報を含めることを[編集]していないことに留意してください。 :-) –
あなたのコメントをしたときに編集していました。それは終わった。あなたの考えを教えてください。 – Ross