3GB から 10GB までの非常に大きなビデオ ファイル (.ts) がたくさんあります。それらの多くには特定のエラーがあり、私の解決策は、エラーを含む部分を単純に切り取ることです. 保持したい部分の開始オフセットと終了オフセットを知っていたので、メイン ファイルを読み込んで、start_offset から end_offset までを同じフォルダー内の新しいファイルにコピーしたいと考えていました。
たとえば、5.5GB のメイン ビデオ MAIN.ts があります。これらのエラーが2つあるとしましょう。0 ~ 1174698823 (エラーが始まる前のバイト) のオフセット (16 進数ではなく 10 進数) を保持し、それを新しいファイル PART1.ts に保存します。次に、オフセット 1257553244 (エラー終了後のバイト) からオフセット 4126897791 (2 回目のエラー開始) までを維持し、それを PART2.ts として保存します。次に、オフセット 4207333028 からファイルの末尾までを PART3.ts として保存する必要があります。基本的に、約 155MB のファイルを切り取り、3 つの部分に分割しました。複数の新しいファイルを作成せずに実際にカットを行い、代わりにそれらを相互に追加してから、新しいファイル全体を書き込むことができれば、それはボーナスになります (または、後で使用することもできます)copy /b
。
私はファイルストリームとバイト配列を調べていて、2GB の制限について知っています。これを回避するにはどうすればよいですか? また、保持しようとしているチャンクの長さが 2GB を超える場合、どのように書き込むのですか? これを行うために長さが制限されたバッファーを使用する方法がわかりません。可能であれば、どれだけ書かれたかを示す進行状況バーも表示したいと思います。
どんな助けでも大歓迎です。