ホームページ >バックエンド開発 >Golang >SDT の CRC-32 を ts に生成します。書類

SDT の CRC-32 を ts に生成します。書類

PHPz
PHPz転載
2024-02-10 20:20:071120ブラウズ

为 SDT 到 ts 生成 CRC-32。文件

php Xiaobian Yuzai は、ファイルの整合性を検証するために SDT を介して CRC-32 を ts に生成する方法を紹介します。 CRC-32 は、ファイルのバイナリ データを計算して 32 ビットのチェック値を生成する、一般的に使用されるチェックサム アルゴリズムです。このチェック値を使用して、ファイルの転送または保存中にエラーや破損が発生したかどうかを確認できます。この方法を使用すると、ファイルの整合性が確保され、データ転送の信頼性が向上します。

質問内容

私のタスクは、サーバーからビデオ ストリームをキャプチャして ts に書き込むことです。書類。 SDT パッケージを ts に書き込もうとすると問題が発生します。パケットをバイト単位で手動で形成していますが、SDT の最後の 4 バイトの CRC-32 を計算する方法がわかりません。 (golang を使用)

SDT パケットに書き込まれたデータのチェックサムに基づいて CRC を取得しようとしましたが、機能しません。バイトごとに解析された SDT では、CRC が私が計算したものと異なります。

回避策

mpeg-2 について話している場合、crc は次のように定義されます:

リーリー

rfc 4326 に例があります:

リーリー

ここで、最後の 4 バイトは、その前のすべてのバイトの crc-32/mpeg-2 (ビッグエンディアン順) です。

以下は crc を計算する C コードの例です:

リーリー

(memnull と等しい場合、初期 crc 値が返されます。)

以上がSDT の CRC-32 を ts に生成します。書類の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。