私はZXing.Netライブラリを使用して、RSエンコーダを使用してビデオファイルをエンコードおよびデコードしています。これは、それぞれエンコーディングとデコード後にパリティを追加して削除することでうまく動作します。しかし、デコードされたファイルを書き込むときには、 "?"元のファイルの一部ではない別の場所にあるファイル内の文字。ファイルを書き込むときにこの問題がなぜ発生しているのかわかりません。 はここに私のコードデコードされたファイルを書き戻した後の異常な文字の追加
using ZXing.Common.ReedSolomon;
namespace zxingtest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
string inputFileName = @"D:\JM\bin\baseline_30.264";
string outputFileName = @"D:\JM\bin\baseline_encoded.264";
string Content = File.ReadAllText(inputFileName, ASCIIEncoding.Default);
//File.WriteAllText(outputFileName, Content, ASCIIEncoding.Default);
ReedSolomonEncoder enc = new ReedSolomonEncoder(GenericGF.AZTEC_DATA_12);
ReedSolomonDecoder dec = new ReedSolomonDecoder(GenericGF.AZTEC_DATA_12);
//string s = "1,2,4,6,1,7,4,0,0";
//int[] array = s.Split(',').Select(str => int.Parse(str)).ToArray();
int parity = 10;
List<byte> toBytes = ASCIIEncoding.Default.GetBytes(Content.Substring(0, 500)).ToList();
for (int index = 0; index < parity; index++)
{
toBytes.Add(0);
}
int[] bytesAsInts = Array.ConvertAll(toBytes.ToArray(), c => (int)c);
enc.encode(bytesAsInts, parity);
bytesAsInts[1] = 3;
dec.decode(bytesAsInts, parity);
string st = new string(Array.ConvertAll(bytesAsInts.ToArray(), z => (char)z));
File.WriteAllText(outputFileName, st, ASCIIEncoding.Default);
}
}
}
であり、ここでH.264のビットストリームのHEXファイル図である