マジックナンバーなどの認識可能な署名を持つファイルがある場合、それらは接尾辞に関係なく、Nautilusでドキュメント、ビデオ、またはオーディオとして認識されます。
エンコードされたファイル自体がエンコードされていると認識されずにそれらをエンコードしたい場合、1つの簡単な戦略は、ファイルの内容をブロックで並べ替えることです。
たとえば、ファイルが10個の同じサイズのブロックに分割されている場合(残りは可変サイズの11番目のブロックとして残すことができますK
)ABCDEFGHIJK
、単純なエンコードによってブロックの順序が再配置されます。たとえば
block_encode input_file output_file
、出力ファイルは次のように編成されますBADCFEHGJIK
。(もちろん、「後半」と「前半」を入れ替えて、ファイルの最後に1バイトを移動しないようにすることもできます)。
この場合、デコードは、エンコードを再度適用するだけで実現されます。
結果のファイルは、有効なドキュメント、ビデオ、オーディオなどとして認識されない可能性があります。
私の質問は次のとおりです。標準ツール(例dd
)を使用して、これをbashに実装するためのきちんとした(簡単な)方法はありますか?(必要に応じて、Cプログラムを作成できます)。
フォローアップは次のようになります。ファイルがメディアファイルの場合、最初にデコードされたストリームをファイルとして保存せずに、「デコードされた」コンテンツをたとえばVLCにストリーミングするにはどうすればよいですか。