J'ai un ensemble de morceaux de fichiers binaires à partir d'un fichier vidéo. Ils se chevauchent en partie.
Pour illustrer cela, disons que les données binaires du fichier vidéo peuvent être représentées comme ceci:
---ABCDEFGHIJKLMNOPQRSTUVXYZ
où
---
est un en-tête.
Les morceaux peuvent être représentés comme ceci (simplifié car il y a quelques différences dans la partie en-tête pour chaque morceau):
chunk 1: "---ABCD"
chunk 2: "---DEFG"
chunk 3: "---GHIJ"
chunk 4: "---JKLM"
...
J'ai besoin d'un outil de ligne de commande qui fusionne ces fichiers. Il doit prendre la partie finale du morceau 1, rechercher le motif dans le morceau 2, joindre le morceau 1 à la partie du morceau 2 du motif pour terminer (en ignorant toutes les données du morceau 2 avant le début du motif).
Répétez ensuite l'opération pour tous les morceaux restants jusqu'à ce que nous ayons le fichier vidéo complet.
la source
Je voudrais juste utiliser un bon éditeur binaire et le faire à la main.
la source
Si vous connaissez la longueur de l' en- tête (---) et la longueur de chaque segment (A, B, C, etc.) , vous pouvez utiliser
head
ettail
commandes. Si ces longueurs varient d'un fichier à l'autre, vous êtes alors confronté à un problème de recherche de sous-chaîne (recherchez la plus grande sous-chaîne de l'élément 2 qui apparaît dans l'élément 1). Vous pourrez peut-être l'automatiser avec awk ou avec Python.Pour obtenir une réponse à cette question, vous pouvez demander à stackoverflow. Néanmoins, si vous ne souhaitez rejoindre qu'un seul flux vidéo, je suis d'accord avec Brian Fenton.
la source