8 votes

VLC peut-il lire des fichiers MP4 non terminés ?

Sur este Dans un fil de discussion, un développeur de VLC affirme que VLC ne peut pas lire les fichiers mp4 partiellement téléchargés car les informations sont stockées à la fin du fichier. Mais récemment, lorsque j'ai fait le même test, en ajoutant une tâche mp4 dans Chrome et en transmettant le fichier .crdownload partiel à VLC, cela a fonctionné. VLC a lu le fichier mp4 sans problème. Je n'ai pas laissé le téléchargement se terminer et j'ai arrêté le lecteur au milieu pour économiser de la bande passante, mais je pense qu'il aurait lu l'intégralité du média pendant que Chrome le téléchargeait encore. J'ai également pu chercher dans la vidéo, ce que certains formats vidéo non terminés ne permettent pas. Que faire de tout cela ? Je fais un streamer de média comme projet personnel et je veux vraiment savoir si je peux initier le téléchargement et passer le média à vlc via la ligne de commande après qu'une certaine quantité d'octets soit téléchargée.

11voto

James Mertz Points 390

Les fichiers MP4 peuvent avoir le morceau de métadonnées au début. ou à la fin. Il se trouve généralement à la fin pour les fichiers fraîchement encodés, car l'encodeur peut ne pas savoir quelles valeurs écrire tant qu'il n'a pas fini d'encoder toute la vidéo (en particulier les parties nécessaires à la recherche).

Mais lors de la préparation de fichiers MP4 pour la diffusion en ligne, il est courant de déplacer les métadonnées au début, par exemple comme décrit ci-dessous dans cet article de blog . (En d'autres termes, vous n'êtes pas le premier à vouloir faire cela - c'est le quotidien des navigateurs web).

Note : Bien que le post montre un ré-encodage complet, je ne suis pas sûr que cela soit vraiment nécessaire - il devrait être suffisant de remuxer avec -codec copy -movflags faststart et éviter la perte de qualité.


Il existe des outils que vous pouvez utiliser pour voir la structure réelle d'un fichier MP4 donné, par exemple :

$ AtomicParsley test.m4a -T
Atom ftyp @ 0 of size: 24, ends @ 24
Atom free @ 24 of size: 8, ends @ 32
**Atom mdat @ 32 of size: 4038152, ends @ 4038184
Atom moov @ 4038184 of size: 58035, ends @ 4096219**
     Atom mvhd @ 4038192 of size: 108, ends @ 4038300
     Atom trak @ 4038300 of size: 57386, ends @ 4095686
         Atom tkhd @ 4038308 of size: 92, ends @ 4038400
         ...
     Atom udta @ 4095686 of size: 533, ends @ 4096219
         Atom meta @ 4095694 of size: 525, ends @ 4096219
             Atom hdlr @ 4095706 of size: 33, ends @ 4095739
             Atom ilst @ 4095739 of size: 279, ends @ 4096018
                 Atom ©nam @ 4095747 of size: 31, ends @ 4095778
                 ...
Segmentation fault (core dumped)

こちら mdat contient les données audio/vidéo réelles (un seul flux audio dans ce cas) et moov contient les métadonnées (par ex. moov.udta.meta.ilst.©nam est le titre de la piste).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X