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

Modérateur : Modérateurs

Avatar du membre
Underground78
Administrateur
Administrateur
Messages : 11272
Enregistré le : mar. 06 févr., 2007 21:54
Localisation : France
Contact :

Message par Underground78 »

Voui, on doit pouvoir voir ça comme ça.
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Pour le MKV et MP4, je ne saurais dire précisément, mais l'overhead est légèrement négatif ! En effet il n'y a pas d'interleave car les différentes pistes sont séparées, et je suppose que la légère perte de taille doit venir d'une fusion des en-têtes ou quelque chose dans le style ...

Ah oui sinon, le fait que dans "Taille finale désirée", lorsqu'on tape 700Mo, il nous affiche 699Mo (toujours 1Mo de moins quelle que soit la valeur), c'est voulu ? Parce que c'est source d'erreur si on fait pas gaffe aussi :whi:
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 »

Oui c'était voulu pour que les erreurs d'arrondis n'engendrent pas des tailles supérieures à celles voulues... Bon avec la non prise en compte de l'overhead, ça ne servait effectivement pas à grand chose.
Sinon, bonne nouvelle, j'ai intégré la gestion de l'overhead dans la v3 ;)
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 »

Asterix a écrit :Pour le MKV et MP4, je ne saurais dire précisément, mais l'overhead est légèrement négatif ! En effet il n'y a pas d'interleave car les différentes pistes sont séparées, et je suppose que la légère perte de taille doit venir d'une fusion des en-têtes ou quelque chose dans le style ...
Pour le mkv l'overhead est légèrement négatif quand la fonction "header removal compression" est activée (parfois au prix de la perte de compatibilité avec certains lecteurs ne respectant pas complètement la norme mkv) après pour le MP4 ça me parait assez étrange, j'ai jamais vu d'overhead négatif.
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 »

comment ça "négatif"??
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 »

Bah tu prends séparément les tailles des différentes pistes (video + audio) et tu trouves que la somme est plus grande que la taille de la vidéo muxée.

Avec la fonctionnalité de header removal compression ça arrive presque toujours avec le mkv.
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 ok ...
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 »

Bah j'ai fait le test avec une piste XViD et une piste MP3 :
  • Somme = 821.96 Mo
  • AVI = 825.63 Mo
  • MKV = 820.55 Mo
  • MP4 = 819.63 Mo
Donc en prenant l'overhead AVI, ça fait 24 * longueur * fps = 3.66 Mo et 821.96 + 3.66 = 825.62 Mo (ouf)

Après, je viens de tomber sur ça et ça, donc quand j'aurai 5 minutes, faudrait que je regarde si ça correspond avec mon exemple (même si j'en doute vu que la taille diminue) ... mais apparemment, ya un paquet de cas à traiter !
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 »

euh ...
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Avatar du membre
Ducke
Administrateur
Administrateur
Messages : 8628
Enregistré le : jeu. 08 févr., 2007 18:02

Message par Ducke »

ah ....









:jesors:
Image Image
Avant de poster votre problème, venez faire un tour dans la FAQ voir si la solution ne s'y trouve pas
INFOS UTILES
Image
Avatar du membre
Underground78
Administrateur
Administrateur
Messages : 11272
Enregistré le : mar. 06 févr., 2007 21:54
Localisation : France
Contact :

Message par Underground78 »

Asterix a écrit :Bah j'ai fait le test avec une piste XViD et une piste MP3 :
  • Somme = 821.96 Mo
  • AVI = 825.63 Mo
  • MKV = 820.55 Mo
  • MP4 = 819.63 Mo
Donc en prenant l'overhead AVI, ça fait 24 * longueur * fps = 3.66 Mo et 821.96 + 3.66 = 825.62 Mo (ouf)

Après, je viens de tomber sur ça et ça, donc quand j'aurai 5 minutes, faudrait que je regarde si ça correspond avec mon exemple (même si j'en doute vu que la taille diminue) ... mais apparemment, ya un paquet de cas à traiter !
Pour info voila comment Megui calcule les débits.
Asterix
Messages : 25
Enregistré le : ven. 19 févr., 2010 9:30

Message par Asterix »

Ça ressemble aux calculs de mon 2ème lien, avec quelques formats en plus comme le m2ts ...
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 »

pour l'instant ça sera le même calcul pour tout le monde ...
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 »

Bon j'ai regardé un peu plus dans le détail et en fait le truc, c'est qu'il y a 2 overhead, un video et un audio.
Un fichier se compose donc comme ça : (FluxVideo + OverheadVideo) + (FluxAudio + OverheadAudio), avec FluxVideo et FluxAudio les 2 flux bruts dont la taille vaut longueur * bitrate.
Par contre, à première vue, la valeur du bitrate que m4ng envoie au codec est le bitrate de FluxVideo + OverheadVideo (donc le bitrate du fichier video et non du flux) ce qui fait que l'overhead video est automatiquement inclus, et quand on mux avec un flux audio, il faut rajouter l'overhead audio (cf interleave ...).

Maintenant, pourquoi cet overhead audio est-il négatif avec les MKV et MP4 ??? Et bien non, il est bien positif, mais ce qui se passe, c'est qu'il est plus faible qu'en AVI, et l'overhead vidéo aussi ! Du coup, quand notre flux video, encapsulé dans son AVI, vient à être ré-encapsulé dans du MKV/MP4, la différence d'overhead fait que FluxVideo + OverheadVideo est plus petit, et quand on rajoute FluxAudio + OverheadAudio (un peu plus petit lui aussi), on se retrouve avec un fichier final plus petit.

Je vais essayer de creuser un peu ce WE et de faire des tests d'encodages multiples pour voir si ça colle ...
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 »

Dans ce cas, autant n'appliquer ce "recalcule" du débit que pour les sorties en .avi...

D'autant qu'à mon avis, les vidéos que l'on veut voir à tout prix faire la taille d'un cd, sont souvent ce que l'on appelle communément des "Divx", soit divx ou xvid + mp3 en AVI, 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 »

pour l'instant c'est pour tout le monde, si c'est trop différent, je ne le mettrais que pour la sortie AVI
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 »

D'après mes premiers tests de cette nuit (avec la dernière v2_beta) :
  • Taille souhaitée : 1500 Mo
  • Taille AVI : 1505.57 Mo
  • Taille MKV : 1497.32 Mo
  • Taille MP4 : 1495.82 Mo
Donc je pense que dans ce cas, il vaut mieux ne le mettre que pour les AVI, sinon MKV et MP4 seront encore plus petits.
Mais à terme, il faudra sûrement tous les faire car la différence est quand même non négligeable. :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 »

"non négligeable"? 3mo de différence sur 1500? à mon avis même avec zoomant avec Hubble on ne verrait jamais la moindre différence ...
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 »

Certes, sauf que la différence n'est pas proportionnelle à la taille finale mais à la longueur du film ... donc si j'avais encodé le même film sur 500Mo, les différences seraient les mêmes ! :beuh:
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 »

... les mêmes, mais invisibles à l'oeil :D
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
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 »

Hmmmm ... à la réflexion quelque chose cloche dans le calcul du débit à retrancher ... fps*0.192, ça nous donne 25*0.192 = 130 ... 130 kbps à retrancher, ça fait beaucoup non?
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 »

Euh... 25*0.192 ça fait 4.8... tu n'aurais pas fait 25/.192 par hasard :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 »

ah ouais ptête :mdr
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 »

Bon, après avoir fait plusieurs tests (9 encodages différents sur 4 films différents), je suis parvenu à un calcul des overhead qui marche pas mal dans tous les cas, mieux avec certains formats que d'autres, mais c'est dans tous les cas plus précis qu'actuellement :mrgreen:
J'ai donc converti tous ces overhead (taille) en débit équivalent à soustraire/ajouter puisque ça semble plus simple :yeap: et voici mes résultats :
  • Overhead Vidéo
  • Conteneur AVI : 0,192 * fps
  • Conteneur MKV (si pas de bFrames) : (143 * longueur * fps + 60 * longueur + 57000) / (1250 * longueur)
  • Conteneur MKV (si bFrames) : (313 * longueur * fps + 120 * longueur + 114000) / (2500 * longueur)
  • Conteneur MP4 (si pas de bFrames) : 0,0344 * fps
  • Conteneur MP4 (si bFrames) : 0,0832 * fps

    Overhead Audio
  • Conteneur AVI
    • Piste MP3/AC3 : 0,19 * fps
  • Conteneur MKV
    • Piste MP3 : (longueur * sampling + 1013760 * longueur + 28385280) / (25344000 * longueur)
    • Piste AC3 : (longueur * sampling + 1351680 * longueur + 37847040) / (33792000 * longueur)
    • Piste AAC : (longueur * sampling + 901120 * longueur + 25231360) / (22528000 * longueur)
    • Piste OGG : (longueur * sampling + 901120 * longueur + 738197504) / (22528000 * longueur)
  • Conteneur MP4
    • Piste MP3/AC3/AAC : 0
Alors, maintenant qu'on a tous ces débits équivalents, comment les utiliser ? Et bien c'est relativement simple.

Pour du codec XViD, le débit envoyé par m4ng au codec est le débit du fichier vidéo et non du flux, il inclut donc l'overhead vidéo du conteneur AVI. Du coup, si on encode en AVI, pas besoin de le rajouter, on a juste à rajouter l'overhead audio, ce qui revient à soustraire le débit équivalent, ce qui donne BitrateBon = BitrateMauvais - BitrateEquivalentAudio, et on va chercher BitrateEquivalentAudio dans la liste ci-dessus, ce qui donne 0,19*fps (pour du AVI c'est simple).

Toujours pour du XViD, si l'on encode en MKV maintenant. Il faut d'abord soustraire l'overhead AVI (automatiquement inclus avec du XViD), puis rajouter l'overhead MKV et l'overhead audio, ce qui donne pour du MKV (sans bFrames) et une piste AAC par exemple : BitrateBon = BitrateMauvais + BitrateEquivalentVideoAVI - BitrateEquivalentVideoMKV - BitrateEquivalentAudio, avec dans ce cas BitrateEquivalentVideoAVI=0.192*fps, BitrateEquivalentVideoMKV=(143*longueur*fps+60*longueur+57000)/(1250*longueur) et BitrateEquivalentAudio=(longueur*sampling+901120*longueur+25231360)/(22528000*longueur) d'après la liste ci-dessus.

Pour généraliser, on prend le mauvais bitrate (l'ancien quoi, enfin l'actuel), on lui rajoute le bitrate équivalent AVI puis on lui soustrait le bitrate équivalent du conteneur vidéo (donc ça s'annule si c'est du AVI) et le bitrate équivalent de la piste audio correspondant au conteneur utilisé.
Simple non ? :mrgreen:

Si maintenant on encore en x264, dans ce cas le débit envoyé par m4ng au codec est bien celui du flux, donc plus besoin de soustraire l'overhead AVI comme dans le cas du XViD, il suffit d'ajouter les overhead (càd soustraire les débits équivalents) vidéo et audio associés à la piste et au conteneur utilisé.
Pour l'exemple, si on encode en MKV/AAC, on a BitrateBon = BitrateMauvais - BitrateEquivalentVideoMKV - BitrateEquivalentAudioMKVAAC.



J'espère avoir été suffisamment clair (c'était pas évident mais j'ai fait de mon mieux), mais s'il y a des questions ou d'autres combinaisons conteneur/piste audio à calculer que j'aurais oubliés (j'ai fait tous ceux de m4ng v2, mais il y en a peut-être des nouveaux dans la v3 ...), pas de problème ! :rital:

P.S. : Au niveau des unités dans les formules, longueur est en secondes, fps en rien, sampling en hertz, et ça donne les débits équivalents en kbps
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 »

Waouh!!! Joli travail... mais bon mal de crane pour moi...

Ca semble quand même complexe tout ça pour pouvoir l'intégrer facilement non?
Verrouillé