Taille finale incorrecte (AVI - XViD - MP3/AC3)
Modérateur : Modérateurs
Taille finale incorrecte (AVI - XViD - MP3/AC3)
Bonjour
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 ?
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 ?
Taille finale incorrecte
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.
à+
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.
à+
Et bien le pire dans l'histoire, c'est que c'est très simple !
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²).
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.
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
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
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
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²
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
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
ouaip, cette fois on est d'accord ... sauf que moi c'est un débit qu'il me faut retrancher, pas une taille
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
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
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
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
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
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 ?
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 ?
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
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
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
... 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.
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
- Subbat
- Administrateur
- Messages : 8836
- Enregistré le : jeu. 11 déc., 2008 20:12
- Localisation : Quelque part... dans le centre de la France...
Si ta taille interleave = 24 * longeur * fpsAsterix 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)
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
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
fps*0.192, voilà un calcul qui me plait bien
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?
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
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
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
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :