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 コードの例です:
リーリー (mem
が null
と等しい場合、初期 crc 値が返されます。)
以上がSDT の CRC-32 を ts に生成します。書類の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。