Taille finale incorrecte (AVI - XViD - MP3/AC3)

Modérateur : Modérateurs

Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Taille finale incorrecte (AVI - XViD - MP3/AC3)

Message par Asterix »

Bonjour :did:

Ayant appris récemment la sortie de la v3, je voulais revenir sur un problème que j'arrive à contourner depuis des années, mais qui est quand même gênant et pourrait profiter de la v3 pour être solutionné.

Lors d'un encodage (AVI - XViD - MP3/AC3), je me retrouve systématiquement avec un fichier final qui fait ~3 Mo de plus que ce que j'ai demandé (ça varie entre 2.5 et 4 Mo en général suivant la durée du film).
Je me suis alors aperçu que la taille cumulée des fichiers audio et vidéo temporaires avant muxage correspondait à la taille demandée, c'est la que j'ai pensé à l'interleave.
Et effectivement, après un petit calcul, il s'avère que si j'ajoute la sur-taille due à l'interleave (3.09 Mo pour un film de 1h30 à 25fps et un interleave toutes les 40ms (chaque image)) à la taille du fichier audio et celle du fichier vidéo, j'obtiens exactement la taille du fichier final (qui diffère très légèrement de la taille demandée, mais ça c'est plus ou moins normal).
Donc m4ng va-t-il gérer cet interleave dans la v3 ? :hop:
Tibo

Taille finale incorrecte

Message par Tibo »

Bonjour ! Bonne Année !

J'ai aussi remarqué cela sur d'autres profils, s'il y a juste un petit calcul à faire, je pense que la team devrai le faire.

à+
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

et ce calcul ressemble à quoi?
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Et bien le pire dans l'histoire, c'est que c'est très simple ! :yeap:

Soit Tsec le nombre de secondes du film, fps le nombre d'images par secondes et Tint le temps d'interleave.
Tint=1/fps par défaut (on interleave à chaque image), mais il peut aussi valoir 1s, 500ms ... si on souhaite le configurer de la sorte.
On calcule ensuite le nombre d'échantillons : chks = Tsec/Tint, puis on obtient l'overhead en multipliant le tout par 24 (valeur normalisée, 24 bytes par échantillon) : Ovhd = 24*chks

Si on prend l'exemple d'un film de 1h30 (5400s) à 25fps avec un temps d'interleave de 100ms (la valeur par défaut serait de 1/25=40ms, mais c'est juste pour l'exemple), l'overhead dû à l'interleave serait de :
24 * 5400 / 0.1 = 1296000 bytes (soit 1.236 Mo en divisant pas 1024²).
Modifié en dernier par Asterix le mer. 19 janv., 2011 16:10, modifié 1 fois.
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

ok, le tout étant de savoit quel interleave met VDM par défaut, il me semble que c'est 500 mais je n'arrive pas à la retrouver dans ses paramètres.
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Non, comme je le dis dans mon post précédent, l'interleave par défaut vaut 1/fps :yeap:
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

j'ai adapté ton calcul dans m4ng et les résultats sont étranges.
pour une vidéo 25 fps d'1h48, j'obtiens 0.03731 d'overhead, ça me semble bizarre...
(24 * 6520 * 0.1 ) /1024²
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Effectivement j'ai fait une faute de frappe dans mon calcul, c'est 24 * Tsec / Tint

Donc (24 * 6520 / 0.1) / 1024² = 1.492 Mo

Mais avec les réglages par défaut, il faut prendre 1/25=0.04 et non 0.1, ce qui donne 3.731 Mo
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

ouaip, cette fois on est d'accord ... sauf que moi c'est un débit qu'il me faut retrancher, pas une taille :D
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Un débit ? Je ne te suis pas ...

On a taille audio = longueur * débit = 5400s * 128kbits = 5400 * 128*125 = 86400000 bytes = 82.397 Mo
taille video = longueur * débit = 5400s * 750kbits = 5400 * 750*125 = 506250000 bytes = 482.798 Mo
taille interleave = 24 * longueur * fps = 24 * 5400s * 25 = 3240000 bytes = 3.09 Mo
D'où taille finale = taille audio + taille vidéo + taille interleave = 82.397 + 482.798 + 3.09 = 568.285 Mo
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

un codec ne raisonne pas en taille mais en débit, c'est le débit qu'il faut que je fasse varier pour respecter la taille voulue au final.
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Oui, donc dans ce cas il faut raisonner à l'inverse :
Taille vidéo = Taille finale - Taille interleave - Taille audio
et Débit video = Taille vidéo / longueur
D'où Débit vidéo = (Taille finale * 1024² - 24 * longueur * fps - longueur * débit audio * 125) / longueur / 125
(avec débit vidéo en kbit, taille finale en Mo, longueur en secondes et débit audio en kbit)

Non ?
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

j'ai toujours beaucoup de mal à calculer ces histoires de débits ... J'ai besoin du calcul de la valeur exacte à retrancher du débit vidéo "normal".
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Je ne comprend pas pourquoi vouloir retrancher un débit fictif au débit erroné (quitte à introduire des erreurs d'arrondi) plutôt que de calculer directement le bon débit avec la formule précédente ? :gy:
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

... parce que c'est plus simple pour moi et moins dangereux en bugs.
m4ng ne fait pas qu'un seul et unique calcul de débit, il y en a toute une collection selon les cas, encodage par portion, par parties, coupûres de pubs etc etc ... retrancher ce fameux débit en trop est de loin le plus simple.
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Ok, bah pour calculer le débit fictif à soustraire, rien de plus simple, c'est :
taille interleave (en bytes) / longueur (en secondes) / 125 (pour obtenir le débit en kbit)
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

pourquoi 125? (j'ai trouvé, 1000/8 ... )
Modifié en dernier par pepsilite le mer. 19 janv., 2011 19:11, modifié 1 fois.
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

Asterix a écrit :Ok, bah pour calculer le débit fictif à soustraire, rien de plus simple, c'est :
taille interleave (en bytes) / longueur (en secondes) / 125 (pour obtenir le débit en kbit)
Si ta taille interleave = 24 * longeur * fps

Ce que tu dis pour trouver le débit à retrancher reviendrait à faire :
24 * longeur * fps / longeur / 125 !!! on peut simplifier car faire *longueur pour ensuite faire /longueur!!!!!

le débit à retrancher est donc 24*fps/125
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Oui c'est sûr, c'était pour le montrer sous la forme calcul de débit (taille/longueur), mais pour aller encore plus loin, ça fait aussi fps*0.192 :vc:
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

Bien vu... ça m'apprendra à jouer au prof de math :mrgreen:
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

fps*0.192, voilà un calcul qui me plait bien :D
En float, il ne devrait pas y avoir de perte à cause des arrondis...
J'aimerais demander au petit gaulois s'il sait si l'interleave en MKV et MP4 est aussi à 1/fps?
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Avatar du membre
Underground78
Administrateur
Administrateur
Messages : 11272
Enregistré le : mar. 06 févr., 2007 21:54
Localisation : France
Contact :

Message par Underground78 »

Je peux vous donnez l'overhead des différents conteneurs (enfin les plus courants), j'ai déjà vu passer l'info sur Doom9 mais bon souvent le décalage est réellement minime.
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

ce que je ne comprends pas c'est en quoi ce truc prend de la place ... Je ne comprends pas ce qu'il est "physiquement".
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Avatar du membre
Underground78
Administrateur
Administrateur
Messages : 11272
Enregistré le : mar. 06 févr., 2007 21:54
Localisation : France
Contact :

Message par Underground78 »

pepsilite a écrit :ce que je ne comprends pas c'est en quoi ce truc prend de la place ... Je ne comprends pas ce qu'il est "physiquement".
Bah tout conteneur ajoute des infos supplémentaires lors du mux en particulier pour pouvoir naviguer dans le fichier et ça prend un peu de place.
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

ah, c'est donc une sorte d'index quoi ...
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Verrouillé