H.264 ビットストリーム データを選択的に削除して、ビデオのデータ損失をシミュレートしようとしています。データは、本質的にバイナリ ファイルである生の H.264 ファイルです。私の計画は、2% の損失を達成するために、100 バイトごとに 2 バイトを削除することです。最終的には、いくつかのモーション ベクトル エラー隠蔽アルゴリズムの有効性をテストする予定です。
Unix環境でこれができるといいですね。これまでのところ、コマンド xxd を少し調べたところ、バイナリ ファイルから 16 進ダンプの特定の部分を保存できました。たとえば、バイナリ ビットストリームの最初の 50 バイトをスキップして、後続の 100 バイトを保存するには、次のようにします。
xxd -s 50 -l 100 inputBinaryFile | xxd -r > outputBinaryFile
100 バイトごとに最後の 2 バイトを自動的に削除するようなものを bash スクリプトに組み込むことを望んでいます。さらに、シーケンスが 2 回目に発生する前00 00 01 06 05
(最初の P フレーム SEI 開始コード) のすべてをスクリプトでスキップするようにしたいと考えています。
これが C ベースの言語でどれほど簡単かはわかりませんが、私のプログラミング スキルは非常に限られているので、できれば今のところ Linux プログラミングだけを扱いたいと思っています。
ありがとう。