Page 1 sur 2

Video MPEG2 en 544 x 576 16/9

Posté : lun. 21 janv., 2013 12:56
par lecopi
Bonjour à tous.

J'ai enregistré des émissions sur la TV dont le format d'enregistrement est 544 x 576 16/9.
Si j'ai bien compris:
- c'est l'un des formats standards du mpeg2
- ce format MPEG2 est étiré/traité" lors de la lecture à la volée pour être transformée en 4/3 ou en 16/9 (auquel cas la résolution de diffusion devient 1024 x 576.

Questions.
1- Si j'encode en mp4, en 544 x 576 -est ce que cette vidéo va aussi être traitée à la volée ou ce traitement ne s'applique qu'au mpeg2?
2- Quelle est le meilleur moyen pour traiter cette vidéo par m4ng
Pour le moment j'ai fait un resize en 720 x 400 mais je trouve que j'introduis du flou.
3- Dans les formats de sortie, je ne vois pas bien comment sortir en 1024x 576 ( les résolutions sont imposées parmi une liste)

Posté : mar. 22 janv., 2013 22:25
par Underground78
Bonsoir,

1. C'est possible si tu encodes en anamorphique en disant au codec et/ou au conteneur que l'aspect ratio réel de la vidéo est 16/9. Dans ce cas c'est le lecteur qui va se charger du redimensionnement (normalement).
2. m4ng ne fait pas d'anamorphique à priori donc le plus simple c'est de faire du 720x400. Si tu trouves que ça fait du flou tu peux essayer de baisser la résolution ou essayer un autre algorithme de redimensionnement (voir les options).
3. Tu dois pouvoir atteindre cette dimension manuellement mais bon si tu trouves déjà l'image floue à 720x400 ça va être bien pire...

Posté : mer. 23 janv., 2013 11:08
par lecopi
Bonjour et merci Undergroud78
3. Tu dois pouvoir atteindre cette dimension manuellement
Comment je fais ceci?

Posté : mer. 23 janv., 2013 11:14
par leon1789
Underground78 a écrit : Si tu trouves que ça fait du flou tu peux essayer de baisser la résolution ou essayer un autre algorithme de redimensionnement (voir les options).
3. Tu dois pouvoir atteindre cette dimension manuellement mais bon si tu trouves déjà l'image floue à 720x400 ça va être bien pire..
Augmenter la résolution introduit des problèmes, mais pas du flou. Et baisser la résolution de la vidéo donne un rendu sur TV HD encore plus flou. Je ne comprends pas ton opinion Underground.

Personnellement, si je devais augmenter la résolution (genre 544 x 576 ---> 1024 x 576), j'utiliserais lanczosResize (ou mieux lanczosResize4).
Mais il va falloir mettre un débit plus important (et un temps d'encodage plus long...)

Posté : mer. 23 janv., 2013 11:27
par lecopi
Bonjour Leon1789

peux tu me dire comment paramétrer à:
-1024 x 576 ( je ne trouve pas)
- lanczosResize 4

Quel débit je dois mettre? Je mettais 1200 en mp4 720x400.

Posté : mer. 23 janv., 2013 12:07
par leon1789
Il faut aller dans la section "Prévisualisation" (icône TV en bas à droite du cadre gris), sans utiliser le mode autonome.

Pour le débit, difficile de dire sans voir la vidéo : disons, 2000 kbps puisque tu mets 1200 en 720x400

Mais bon, je trouve ça dommage d'augmenter comme ça la résolution. Cela me paraît assez inutile en général... mais bon, c'est toi qui as la vidéo sous les yeux :mrgreen: Le flou peut venir surtout de la compression et pas forcément de la résolution.

Posté : mer. 23 janv., 2013 12:29
par lecopi
Merci

et ou trouve t-on le Lancrosresize4?

Je comprends, je vais faire un test et voir ce qui est le mieux.
Car ma TV fait un upscaling qui est plutot bon.

Posté : mer. 23 janv., 2013 12:34
par leon1789
M4ng ne présente pas LanczosResize4, pas grave, prends Lanczos.

Si tu encodes en 1024 x 576 @ 2000 kbps, alors teste aussi en 720 x 400 @ 2000 kbps pour voir la différence... je ne suis pas certain que cela soit si flagrant vu que ta source est en SD.

Cela dit, faire des 720 x 400 @ 2000 kbps en mp4, c'est tout de même un peu fort en débit... C'est une vidéo normale que tu as ? pas une vidéo genre fractale ??

Posté : mer. 23 janv., 2013 12:39
par lecopi
OK j'ai lancé l'encodage en 2500 kbps et je ferai le test comparatif.

Résultat:
Me parait pas mal du tout, la lecture est avec XBMC.

J'ai l'impresion que le de-interlace n'est pas parfait. Où puis-je vérifier qu'il le fait bien et la méthode choisie?

Posté : mer. 23 janv., 2013 13:30
par leon1789
lecopi a écrit : J'ai l'impresion que le de-interlace n'est pas parfait. Où puis-je vérifier qu'il le fait bien et la méthode choisie?

Il faut regarder dans le script d'encodage. Si tu ne connais pas le langage avisynth, tu peux nous copier le script ici.

Posté : mer. 23 janv., 2013 13:39
par lecopi
Voici le script
# **** m4ng & AVIsynth 2.5x script **** pass 2+

LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\undot.dll")
LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\FluxSmooth.dll")
LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\Convolution3D.dll")
LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\MaskTools.dll")
LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\MVTools.dll")
LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\Asharp.dll")
LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\MSharpen.dll")

Source="r:\WORK_O~2\VIDEOM~1.MPG"
Largeur=1024
Hauteur=576
ratio =1.777778
vratio =1.777778
real_l=1024
real_l4=1024
Crop_g=0
Crop_d=0
Crop_h=0
Crop_b=0
Borders_g=0
Borders_d=0
Borders_h=0
Borders_b=0
Indice=0.169542

LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\DGDecode.dll")
Video=MPEG2Source("r:\WORK_O~2\VIDEOM~1.D2V")
LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\NicAudio.dll")
Audio=NicMPG123Source ("r:\WORK_O~2\VIDEOM~1.MP2").DelayAudio(0.000000)
Import("C:\PROGRA~1\m4ng\m4ng_V3\system\AudioMix.avsi") #(c) 2oo9 - Dirk Pitt
# ====================================================================
Audio=Audio.AudioChannels == 6 ? DownMix( Audio ) : Audio
Audio=Audio.AudioChannels == 1 ? MonoToStereo( Audio ) : Audio

LoadPlugin("C:\PROGRA~1\m4ng\m4ng_V3\system\soxfilter.dll")
Audio=SoxFilter(Audio, "compand 0.005,4.5 -90,-90,-70,-55,-50,-35,-31,-31,-21,-21,0,-20 0 0 0.1")
Audio=AmplifydB(Audio, 16, 16)
Video=Audiodub(Video, Audio)
Video=LanczosResize(Video, Largeur, Hauteur)

Return(AssumeFrameBased(Video))

Posté : mer. 23 janv., 2013 13:45
par leon1789
Ah ben effectivement, il n'y a rien concernant le désentrelacement dans ce script.

Tu es certain que la vidéo est entrelacée ? car ça se voit gros comme une maison normalement.
En revanche, il peut y avoir un effet de peigne, plus discret mais plus gênant à enlever.

Posté : mer. 23 janv., 2013 16:44
par lecopi
La source est un mpeg2, captée sur la TV, donc en principe "entrelacée". Je vérifie ce point. Voici son analyse.
General
Complete name : r:\WORK_O~2\VIDEOM~1.MPG
Format : MPEG-PS
File size : 240 MiB
Duration : 7mn 54s
Overall bit rate : 4 244 Kbps

Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 2
Format profile : Main@Main
Format settings, BVOP : Yes
Format settings, Matrix : Default
Duration : 7mn 54s
Bit rate mode : Variable
Bit rate : 3 967 Kbps
Nominal bit rate : 15.0 Mbps
Width : 544 pixels
Height : 576 pixels
Display aspect ratio : 16:9
Frame rate : 25.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.506
Stream size : 224 MiB (93%)

Audio
ID : 192 (0xC0)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Mode : Joint stereo
Mode extension : Intensity Stereo + MS Stereo
Duration : 7mn 54s
Bit rate mode : Constant
Bit rate : 192 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 10.9 MiB (5%),

Pour moi, ilest donc bien interlacé.

Ce n'est pas gros comme une maison ni visible sur toutes les images (uniquement sur certaines , plutot en mouvement rapide, et à la limite des contours.

Pourquoi m4ng ne le détecte pas et ne dé-interlace pas?. Il le fait automatiquement en principe ou comment faut il le spécifier.

Posté : mer. 23 janv., 2013 17:05
par leon1789
Oui, c'est sur les mouvements que l'on voit le mieux l'entrelacement.

Apparemment, il n'y a pas de détection automatique par m4ng, donc il faut activer le désentrelacement à la main : c'est toujours dans la section "prévisualisation", dans le menu "filtres video" cette fois. :o:

Posté : mer. 23 janv., 2013 19:08
par lecopi
C'est nickel avec le désentrelacement mais oups, ça m'a donné l'occasion de m'apercevoir que je je l'avais oublié sur quantités de vidéo. (pour lesquelles j'utilise un profil d'encodage depuis un certain temps)

Grand merci à toi.

Il me reste à tester si je peut descendre le débit.
EDIT: test effectué, je ne vois pas de différences perceptibles ni en 2000 , ni en 1500.
Je visualise sur une TV 47".

Questions:

1- Y a t-il une règle pour déterminrer quel est le bon facteur de qualité.

2- Concernant Lancroz4, je suppose que c'est la version la plus performante de cet algorythme (et sucésseur de Lancros3). Pourquoi cete verison 4 n'est elle pas intégrée à m4ng et cela pourrait il l'être?

Je résume pour mémoire mon processus de tt des 544 x 576
-resize landcross en 1024 x 576 qui me permet de garder la totalité de l'image
-encodage en H264 2 passes- 1500 kbps ( J'ai effectué tous les essais en 1 passe)
-ne pas oublier de dé-interlacer

Posté : mer. 23 janv., 2013 20:46
par leon1789
lecopi a écrit : 1- Y a t-il une règle pour déterminrer quel est le bon facteur de qualité.
avec le x264, c'est en fait simple car on peut utiliser un encodage en 1 passe avec le paramètre CRF (Constant Ratefactor). Je te conseille une valeur CRF entre 19 et 23, en fonction de tes exigences (plus la valeur est basse, meilleur est l'encodage, mais plus le fichier produit est gros).
lecopi a écrit : 2- Concernant Lancroz4, je suppose que c'est la version la plus performante de cet algorythme (et sucésseur de Lancros3). Pourquoi cete verison 4 n'est elle pas intégrée à m4ng et cela pourrait il l'être?
L'algorithme de redimensionnement Lanczos a besoin que l'on spécifie un nombre d'étapes pour réaliser le travail : plus le nombre d'étapes est grand, meilleur (en théorie) est le résultat. En avisynth, on écrit LanczosResize(taps= N) pour N étapes.

LanczosResize utilise par défaut 3 étapes : LanczosResize = LanczosResize(taps=3)
Lanczos4Resize est un raccourci pour 4 étapes : Lanczos4Resize = LanczosResize(taps=4)
Au delà, on écrit explicitement LanczosResize(taps=5) , etc

Personnellement, avec mes yeux, je ne vois pas de différence entre taps=3 et taps=4 (les deux sont très bons), mais avec une analyse numérique des images, effectivement, on voit que taps=4 est un peu meilleur que taps=3.

Pour répondre sur l'intégration de Lanczos4 à m4ng, je ne trouve pas ça vraiment nécessaire : Lanczos est déjà très bien, et si on veut encore plus, alors autant l'écrire soi-même dans le script d'encodage. C'est mon simple avis, peut-être que l'équipe de développement a le même...
lecopi a écrit : Je résume pour mémoire mon processus de tt des 544 x 576
-resize landcross en 1024 x 576 qui me permet de garder la totalité de l'image
-encodage en H264 2 passes- 1500 kbps ( J'ai effectué tous les essais en 1 passe)
-ne pas oublier de dé-interlacer
Deux remarques :

-1- maintenant que tu désentrelaces et que tu utilises LanczosResize, essaie à nouveau des encodages en résolution plus standard : 720 x 400 (... histoire d'être certain que tu préfères 1024 x 576 )

-2- Si tu n'as pas besoin d'un débit spécifique, je pense que c'est inutile de faire un encodage en 2 passes car le mode CRF (encodage particulier en 1 passe) permet d'obtenir la même qualité qu'un encodage en 2 passes. Je m'explique : imaginons que l'on fasse un encodage 1 passe en mode CRF 20 et que l'on obtienne un fichier d'un débit moyen de 1234 kbps. Imaginons que l'on fasse un deuxième encodage en 2 passes cette fois, et l'on précise le débit 1234 kbps. Alors les deux encodages donneront des résultats très très proches en qualité (et bien sûr en débit identique 1234 kbps). Conclusion : l'intérêt de pratiquer des encodages en 2 passes existe uniquement dans le cas où on veut absolument contrôler la taille finale du fichier.

Posté : mer. 23 janv., 2013 20:59
par lecopi
Merci pour tes explications, je crois que j'ai compris

OK pour le lancross en 3 passes (sera suffisant pour moi)

Je n'ai pas trés bien compris quelle valeur de CRF me donnerait sensiblement l'équivalent d'un 2 passes 1200 kbps.

Pratiquement je n'ai pas trouver où paramétrer CRF 20 (exemple) dans les options d'encodages lorsque je suis en une passe.

Sur le plan théorique j'avais cru comprendre que tout l'intérêt du double passe était que la première passe d'analyse avait pour but de trouver les portions du film où il y avait besoin de plus de débit que d'autres.
Tu me confirmes qu'en 1 passe avec CRF on arrive à un résultat similaire?

Je valide demain l'histoire du 720x400.

Posté : mer. 23 janv., 2013 23:27
par Underground78
leon1789 a écrit :
Underground78 a écrit : Si tu trouves que ça fait du flou tu peux essayer de baisser la résolution ou essayer un autre algorithme de redimensionnement (voir les options).
3. Tu dois pouvoir atteindre cette dimension manuellement mais bon si tu trouves déjà l'image floue à 720x400 ça va être bien pire..
Augmenter la résolution introduit des problèmes, mais pas du flou. Et baisser la résolution de la vidéo donne un rendu sur TV HD encore plus flou. Je ne comprends pas ton opinion Underground.
Ah ben tout dépend comment tu regardes ta vidéo après. Moi je parle sans aucune mise à l'échelle ensuite. La plupart des algorithmes d'agrandissement donnent une impression de flou à partir d'un certain point surtout ceux rapides qui interpolent assez bêtement. Après c'est sûr que si l'upscaling matériel de la TV est pourri ça peut être pire.

Posté : jeu. 24 janv., 2013 7:53
par leon1789
Underground78 a écrit : Ah ben tout dépend comment tu regardes ta vidéo après. Moi je parle sans aucune mise à l'échelle ensuite.
ok, je suis d'accord dans ce cas.

Posté : jeu. 24 janv., 2013 9:00
par leon1789
lecopi a écrit : Je n'ai pas trés bien compris quelle valeur de CRF me donnerait sensiblement l'équivalent d'un 2 passes 1200 kbps.
C'est impossible de savoir quelle valeur de CRF correspond à 1200 kbps, comme ça brutalement : tout dépend du contenu de la vidéo, des options d'encodage, etc.
lecopi a écrit : Sur le plan théorique j'avais cru comprendre que tout l'intérêt du double passe était que la première passe d'analyse avait pour but de trouver les portions du film où il y avait besoin de plus de débit que d'autres.
Tu me confirmes qu'en 1 passe avec CRF on arrive à un résultat similaire?
Oui. Tout comme le mode en 2 passes, le mode CRF est un mode avec lequel le débit varie en fonction de la complexité des scènes.


<< la première passe d'analyse avait pour but de trouver les portions du film où il y avait besoin de plus de débit que d'autres. >> oui, et cela dans le but de bien contrôler au final la qualité moyenne (ce que fait aussi le mode CRF) et bien sûr le débit spécifié (chose que ne peut pas faire le mode CRF).


Ne pas confondre le mode CRF avec le mode ABR (Average BiRate) qui est aussi un encodage en une passe, mais dont on spécifie le débit moyen : celui-ci est moins bon que le mode CRF (à débit équivalent).

Posté : jeu. 24 janv., 2013 17:03
par lecopi
merci

Peux tu me dire comment paramétrer le codec H264 cli en CRF, je ne vois pas où le faire. Je testerai ensuite différentes valeurs.

Je viens de tester en refaisant une video en 720x400 et en de-interlaçant. C'est nettement meilleur que la première fois (et pour cause) et c'est similaire en qualité au fait de passer par un resize initial en 1024 x 576.
- ca va plus vite en encodage et la taille est plus réduite.
- il me manque simplement qq pixels en hauteur d'image car en 544 x 576 l'image occupe toute la hauteur. (il ne n'en manque pas 176 contrairement à ce que je pensais au début, ce qui ferais presque 1/3 de la hauteur))

Posté : jeu. 24 janv., 2013 19:32
par leon1789
lecopi a écrit : Peux tu me dire comment paramétrer le codec H264 cli en CRF, je ne vois pas où le faire. Je testerai ensuite différentes valeurs.
Il faut lancer la commande : x264 --crf 20 (...)
Avec m4ng, je ne sais pas, mais je crois que c'est possible. J'espère que quelqu'un va t'aider.

Posté : jeu. 24 janv., 2013 19:41
par Subbat
Je suppose qu'il faut se créer un preset...

Tu vas dans le dossier system\cli de m4ng (dans program file ou équivalent sous win7)... tu ouvres avec le bloc note le preset que tu utilises habituellement... tu ajoutes la commande que t'a donné leon... et tu l'enregistres sous crf_m4ng.cli

Je penses que ça doit être ça... et au moment de l'enregistrement, le nom peut être celui que tu veux mais doit à tout prix finir par _m4ng.cli

Posté : jeu. 24 janv., 2013 20:01
par Underground78
Normalement on en avait discuté avec Pepsi pour que les débits inférieurs à 51 soient considérés comme des --crf. Je ne sais pas si ça a été intégré finalement.

Posté : jeu. 24 janv., 2013 20:24
par pepsilite
Ça l'a été ;)