# Fusionner des mp4 avec mdat après recupération cdrecord

**URL:** <https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319>\
**Category:** Support Debian\
**Created:** [Juillet 8, 2025, 9:47 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319 "2025-07-08T09:47:33Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![crustyourmind](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crustyourmind/32/2955_2.png) [@crustyourmind](https://www.debian-fr.org/u/crustyourmind)\
**Post date:** [Juillet 8, 2025, 9:47 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/1 "2025-07-08T09:47:34Z")

</div>

Bonjour

Sur un disque dur HS, cdrecord m’a retrouvé plus de 500 videos mais splittées entre un fichier XXX\*\*.mp4\*\* et un fichierYYYY \_mdat\*\*.mov\*\*

Bien sûr aucun préfixe ne correspond pour re fusionner les 2 fichiers et avoir une video lisible

Pour avoir une idée, un extrait du ls du répertoire :

```
f18681856.mp4 f3326976.mp4 f64920576.mp4 f97948672.mp4
f18683904_mdat.mov f3329024_mdat.mov f64922624_mdat.mov f97950720_mdat.mov
f18757632.mp4 f33771520.mp4 f65760256.mp4 f98279424.mp4
f18759680_mdat.mov f33773568_mdat.mov f65762304_mdat.mov f98281472_mdat.mov
f18877440.mp4 f33924096.mp4 f66705408.mp4 f98377728.mp4
f18879488_mdat.mov f33926144_mdat.mov f66707456_mdat.mov f98379776_mdat.mov
f19036160.mp4 f34199552.mp4 f67406848.mp4 f99159040.mp4
f19038208_mdat.mov f34201600_mdat.mov f67408896_mdat.mov f99161088_mdat.mov
f19089408.mp4 f34348032.mp4 f68794368.mp4 f99284992.mp4
f19091456_mdat.mov f34350080_mdat.mov f68796416_mdat.mov f99287040_mdat.mov
f19225600.mp4 f34792448.mp4 f69074944.mp4 f9933824.mp4
f19227648_mdat.mov f34794496_mdat.mov f69076992_mdat.mov f9935872_mdat.mov
f19470336.mp4 f34864128.mp4 f6961152.mp4 f99417088.mp4
f19472384_mdat.mov f34866176_mdat.mov f69632000.mp4 f99419136_mdat.mov
f19555328.mp4 f3496960.mp4 f6963200_mdat.mov f99465216.mp4

```

J’ai donc cherché si des scripts existaient sur la toile. Ai bien trouvé celui ci ( [https://forum.cgsecurity.org/phpBB3/viewtopic.php?p=32812&sid=181c87db968abfa58949f1b4ba14f073#p32812](https://forum.cgsecurity.org/phpBB3/viewtopic.php?p=32812&sid=181c87db968abfa58949f1b4ba14f073#p32812) ), mais toutes les videos de l’output sont sans image et sans son…

Quelqu’un aurait il déjà été confronté à ce soucis et si oui, comment le résoudre ? Un lien ? Un script ? Tout est le bienvenue, merci de votre retour d’expérience

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Juillet 8, 2025, 10:36 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/2 "2025-07-08T10:36:26Z")

</div>

Salut,

Fait un test comme ça:

```auto
cat file1.mp4 file2_mdat.mov > test.mp4

```

Les fichiers on été enregistrés avec le mdat atom séparé. Le tout est de retrouver les deux fichiers à appairer

---

<div class="post-metadata">

**Author:** ![crustyourmind](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crustyourmind/32/2955_2.png) [@crustyourmind](https://www.debian-fr.org/u/crustyourmind)\
**Post date:** [Juillet 8, 2025, 11:03 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/3 "2025-07-08T11:03:45Z")

</div>

Yep un grand merci, ça a l’air de marcher

Je n’ai essayé que pour les 2 premiers, mais la fusion produit bien une video lisbible

Y a moyen d’automatiser cela car sinon je suis parti pour plus de 500 lignes de commande 😉

En tout cas merci 😉

---

<div class="post-metadata">

**Author:** ![crustyourmind](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crustyourmind/32/2955_2.png) [@crustyourmind](https://www.debian-fr.org/u/crustyourmind)\
**Post date:** [Juillet 8, 2025, 1:17 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/4 "2025-07-08T13:17:39Z")

</div>

Bon,  
J’avance,

ls -t me sort une liste «&nbsp;ordonnée&nbsp;» alternant les mp4 et les mdat.mov

Je l’ai mis dans un fichier , reste plus qu’à faire un script

```
tant que des lignes
     cat ligne1 line2 > output_X.mp4

```

Reste plus qu’à coder le tout…

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Juillet 8, 2025, 2:15 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/5 "2025-07-08T14:15:06Z")

</div>

Ben tu prend les lignes impaire.  
Fichier ligne impaire et ficher ligne paire qui suit

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Juillet 8, 2025, 2:19 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/6 "2025-07-08T14:19:04Z")

</div>

un truc pas très propre :

```auto
LOG="/tmp/machin.log"
no=100
fichmp4=""
ls |sort |while read fich ; do
if ["$fichmp4" == ""] ; then 
fichmp4="$fich";
else 
echo cat "$fichmp4" "$fich" "$no".mp4 >> "$LOG"
cat "$fichmp4" "$fich" > "$no".mp4
fichmp4=""
let no=$no+1
fi
done

```

tu obtiens 100.mp4 101.mp4 …

---

<div class="post-metadata">

**Author:** ![crustyourmind](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crustyourmind/32/2955_2.png) [@crustyourmind](https://www.debian-fr.org/u/crustyourmind)\
**Post date:** [Juillet 8, 2025, 2:23 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/7 "2025-07-08T14:23:46Z")

</div>

OK merci bien  
J’étais perso arrivé à ça

```
#!/bin/bash

j=0
i=1
while IFS= read -r line; do
  if (( i % 2 == 0 )); then
    echo "Ligne paire: $line"
    p1=$line	
    ((j++))
    echo $j

  else
    echo "Ligne impaire: $line"
    p2=$line
    ((j=0))
    echo $j
  fi
	
  if (( j == 0 )); then
  cat "$p1" "$p2" > "$i".mp4
  fi

  ((i++))

done < ls.txt

```

Je vais comparer la sortie des deux 😉

En tout cas un grand merci 😉

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Juillet 8, 2025, 2:28 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/8 "2025-07-08T14:28:33Z")

</div>

ton j est inutile  
si i n’est pas paire (else de i%2=0) alors `cat"$p1" "$line"`

---

<div class="post-metadata">

**Author:** ![crustyourmind](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crustyourmind/32/2955_2.png) [@crustyourmind](https://www.debian-fr.org/u/crustyourmind)\
**Post date:** [Juillet 8, 2025, 2:29 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/9 "2025-07-08T14:29:29Z")

</div>

Tout à fait !!! Je corrige mon script et teste le tien. Merci !

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Juillet 8, 2025, 2:30 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/10 "2025-07-08T14:30:32Z")

</div>

pour tester j’ai créé àa :  
`for i in $(seq 500 599);do echo "$i" > "$i".txt ; done`

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Juillet 8, 2025, 2:48 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/11 "2025-07-08T14:48:59Z")

</div>

Personnellement je mettrait les noms de fichiers dans un tableau.  
Ensuite faire une boucle sur le nombre de fichier divisé par deux (ils sont obligatoirement pairs), en commençant par zéro.  
Ensuite prendre le fichier du premier index_2, et de l’(index_2) +1.  
Et ainsi de suite.  
Un minimum d’opération, une seule boucle.

---

<div class="post-metadata">

**Author:** ![crustyourmind](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crustyourmind/32/2955_2.png) [@crustyourmind](https://www.debian-fr.org/u/crustyourmind)\
**Post date:** [Juillet 8, 2025, 2:51 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/12 "2025-07-08T14:51:34Z")

</div>

Merci grâce à votre aide, j’ai récupéré plus de 400 videos  
Un grand merci 😉

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Juillet 8, 2025, 2:52 UTC](https://www.debian-fr.org/t/fusionner-des-mp4-avec-mdat-apres-recuperation-cdrecord/91319/13 "2025-07-08T14:52:21Z")

</div>

Plus qu’à mettre le sujet en résolu en cochant le bon message 🙂
