Charger un fichier
  1. base64hub
  2. Outils fichiers
  3. Base64 en MP4

Base64 en MP4

Collez un MP4 encodé en Base64 pour le lire sur cette page et l’enregistrer dans un fichier .mp4. Si la vidéo est en réalité un MOV, un M4A ou un téléchargement tronqué, l’outil vous le dit.

Gratuit sans inscription, sans limites Local rien n'est envoyé Détecte MP4, MOV, M4A et 3GP d'après leur marque Mis à jour 27 oct. 2026
Entrée –Sortie –Taille –

Traité dans votre navigateur. Cette page ne peut envoyer vos données nulle part – comment le savons-nous

Comment décoder du Base64 en MP4

  1. Collez le Base64 dans Base64 ou data URI. Un préfixe data:video/mp4;base64, peut rester. Pour les chaînes longues, utilisez Ouvrir un fichier .txt ; au-delà de 4 Mo, la chaîne est décodée sans être affichée dans la zone de texte.
  2. Le lecteur charge la vidéo. Durée et Dimensions apparaissent quand le navigateur a lu l’index, par exemple 0:02.0 et 96 × 64 px pour l’exemple.
  3. Regardez la zone des notes : elle reste vide pour un vrai MP4 et nomme le format dans le cas contraire.
  4. Appuyez sur Télécharger le fichier.

Le décodage et la lecture restent dans votre navigateur ; la page n’a le droit d’effectuer aucune requête réseau hormis le comptage des pages vues de Cloudflare.

MP4, MOV, M4A : une structure, plusieurs formats

Les fichiers MP4 sont construits à partir de boîtes, et la première boîte, ftyp, contient une marque qui indique quelle variante du format suit le fichier. L’outil lit cette marque :

Marque dans ftypDétecté commeNote sur cette page
isom, mp41, mp42, avc1, iso6 et la plupart des autresMP4Aucune
qtMOV (QuickTime)« Cela ressemble à MOV, pas à un fichier MP4. » avec Télécharger en .mov
M4AM4A« Cela ressemble à M4A, pas à un fichier MP4. » : audio uniquement
3gp4, 3gp5 et les autres marques 3g3GP, ancienne vidéo de téléphone« Cela ressemble à 3GP, pas à un fichier MP4. »
heic, mif1, avifHEIC, AVIF« Cela ressemble à HEIC, pas à un fichier MP4. » : des images fixes dans la même structure de boîtes

Une vidéo dont la marque indique MP4 peut quand même ne contenir que du son. Elle se lit, et Dimensions affiche audio uniquement. Un fichier WebM envoyé comme « MP4 » est signalé par « Cela ressemble à WebM, pas à un fichier MP4. »

Où se trouve l’index, et pourquoi c’est important pour les fichiers cassés

Chaque MP4 a une boîte moov, l’index qui indique au lecteur où se trouve chaque image. Beaucoup d’encodeurs, dont ffmpeg, l’écrivent par défaut à la fin du fichier, après les données multimédias de mdat. Avec -movflags +faststart, ffmpeg le déplace au début pour que la lecture en streaming puisse commencer avant l’arrivée du fichier complet.

Sur cette page, le fichier entier est en mémoire : la position n’a donc pas d’importance pour une vidéo complète. Elle en a quand le Base64 a été tronqué, par une limite de taille dans un log, une colonne de base de données ou une file de messages :

  • Index à la fin : la coupure supprime l’index, et rien ne se lit. L’outil indique quand même MP4, car les premiers octets sont intacts, et le lecteur signale qu’il ne peut pas lire le fichier, avec Durée à n/d.
  • Index au début : le navigateur lit l’index, affiche la durée complète et lit jusqu’à ce que les données s’épuisent.

Quand une longue vidéo échoue alors qu’une courte fonctionne, comparez donc la taille décodée avec celle de l’original avant d’accuser le codec.

Inspecter les boîtes en Python

La structure des boîtes est assez simple pour être parcourue sans bibliothèque : quatre octets de taille, quatre octets de type, puis le contenu. Ce code liste les boîtes de premier niveau et les marques :

import base64, struct

def mp4_boxes(data):
    pos = 0
    while pos + 8 <= len(data):
        size, kind = struct.unpack(">I4s", data[pos:pos + 8])
        if size == 1:
            size = struct.unpack(">Q", data[pos + 8:pos + 16])[0]
        elif size == 0:
            size = len(data) - pos
        yield kind.decode("latin-1"), pos, size
        if size < 8:
            break
        pos += size

with open("clip.b64") as f:
    data = base64.b64decode(f.read())

for kind, pos, size in mp4_boxes(data):
    print(kind, pos, size)
    if kind == "ftyp":
        body = data[pos + 8:pos + size]
        brands = [body[i:i + 4].decode("latin-1") for i in range(8, len(body), 4)]
        print("  major:", body[:4].decode("latin-1"), "compatible:", brands)

Pour une vidéo H.264 produite par ffmpeg, il affiche ftyp 0 32 avec la marque principale isom, puis free, mdat et moov en dernier. Un moov avant mdat signifie faststart ; des boîtes moof signalent un MP4 fragmenté, tel qu’on en produit pour le streaming et comme l’exemple de cette page. Si moov est absent de la liste, le fichier est incomplet.

Pour la prise en charge des codecs selon les navigateurs, voir Base64 en vidéo. Pour encoder une vidéo, utilisez MP4 en Base64 ; Base64 en Python traite le décodage des entrées volumineuses.

FAQ

Comment convertir du Base64 en fichier MP4 ?

Collez la chaîne ci-dessus, vérifiez la vidéo dans le lecteur et appuyez sur Télécharger le fichier. La vidéo est enregistrée sous le nom decoded.mp4, octet pour octet telle qu’elle a été encodée.

Pourquoi mon MP4 indique-t-il qu'il ne peut pas être lu alors que c'est bien un MP4 ?

Soit il contient un codec que votre navigateur ne gère pas, le plus souvent HEVC, soit le fichier est incomplet et son index manque. ffprobe sur le fichier téléchargé distingue les deux cas : il nomme le codec, ou signale que l’atome moov est introuvable.

Faut-il enregistrer un MOV en .mp4 ?

Utilisez Télécharger en .mov, l’extension qui correspond au contenu. MOV et MP4 partagent l’essentiel de leur structure, si bien que renommer fonctionne souvent en pratique, mais certains lecteurs vérifient la marque et refusent une incohérence.