Gros dépoussiérage de la section Techs !
Depuis 2005, je vous fait c**** propose mes vidéos en format mp4(H.264/AAC). Après un accueil très mitigé au début, ce format a trouvé ses partisans toutefois même si je proposais des solutions pour lire ces fichiers, il en reste toujours un bon nombre d'entre vous dans le brouillard.
1. Pourquoi utiliser le mp4, l'H.264 et l'AAC ?
Et bien, j'ai envie de dire "parce que" mais vu que généralement ce type de réponse est plutôt mal accueilli, je vais un peu approfondir mais pas trop quand même puisque tout le monde s'en moque de toute façon... Pour cela, je vais reprendre le début d'exemple que j'avais posté dans le billet de "Morning Honkation".
Voici un petit comparatif de la qualité/rapport Mo.

A gauche la version Xvid : 77Mo et à droite la version H.264 : 58.4Mo
Comme vous pouvez le voir, le codec H.264 détruit moins l'image pour une encode au final moins lourde.
C'est clair, net et précis, vous l'aurez compris, l'algorithme de compression intra et inter-frames est beaucoup plus performant que son petit frère, et oui car les deux codecs sont MPEG-4. On va parler de MPEG-4 ASP (Advanced Simple Profile) pour l'Xvid est de MPEG-4 AVC (Advanced Video Codec) pour l'H.264. De plus il s'agit de l'un des codecs standards des prochains supports HD : l'HD-DVD et le Blu-Ray.
Le mp4 est un conteneur ou encapsuleur au même titre que le mkv, l'avi ou l'ogm. On peut prendre comme image le zip si ça vous aide. Un fichier qui va pouvoir stocker plusieurs fichiers différents en son sein. Il peut donc contenir un flux vidéo, audio et texte. Le mp4 fait également parti de la norme MPEG-4, part 14 et est donc optimisé pour l'H.264 et vice et versa.
Concernant l'AAC, c'est la même chose que pour l'H.264. On dénote deux grand types d'AAC, le LC-AAC pour Low Complexity AAC et le HE-AAC pour High Efficiency AAC. Ce dernier se démarque par l'utilisation du SBR (Spectral Band Replication), cela nous donne une réplique en quelque sorte de l'offre mp3 et mp3PRO.
2. Comment lire un fichier mp4(H.264/AAC)
AAC plus performant que le standard mp3, même chose pour le mp4 et l'avi et ne parlons même pas de la compression H.264 comparée à l'Xvid/Divx. Jusque là, tout baigne au soleil mais il y a un hic, une compression plus complexe entraîne une décompression plus ??? (oui c'est la bonne réponse). Pour un débit identique, quantité de données à traiter par seconde, la charge CPU est surmultiplié pour un fichier compressé en H.264. C'est pourquoi la décompression de l'H.264 nécessite un ordinateur beaucoup plus performant que pour l'Xvid. Il se peut que votre pc montre des signes de fatigue durant la lecture(ralentissement, desynchronisation) mais tout n'est pas perdu ! Ou presque...
Pour lire un fichier mp4(H.264/AAC) vous avez besoin d'un splitter MP4 et d'un décodeur. Je vous conseille un decoder pack tout en un, le Satsuki Decoder Pack qui intègre tout ce qu'il faut pour la lecture de vidéos. Il en existe d'autres également comme le CCCP pour les habitués de fansub Américain etc... L'avantage de ces deux packs, c'est que la décompression est axée autour de FFDShow et entraîne donc aucun conflit de codecs. Si vous ne souhaitez pas installer de pack, vous pouvez décompresser un fichier mp4 à l'aide d'un splitter tel que MP4 Splitter via Haali Media Splitter et d'un décodeur vidéo/audio tel que FFDShow qui s'occupera du flux H.264 et AAC. Autre solution alternative, l'utilisation du lecteur VLC mais assurez-vous d'avoir une version la plus récente possible.
Pour ce qui est du lecteur, je vous recommande Media Player Classic. Pour les Mac-users, VLC et Mplayer semblent les bonnes solutions. Mais qu'en est-il de Quicktime alors ? Le célèbre lecteur multimédia d'Apple supporte l'H.264 depuis sa version 7.0 toutefois n'est pas compatible au mode "High Profile". Un handicap très gênant puisque ce mode est de mise pour une meilleure encode.
3. Je rencontre des difficultés à lire correctement la vidéo
Votre configuration matérielle est mise à rude épreuve et ce n'est pas parce que vous avez déjà pu lire un fichier mp4 et que vous pouvez tous les encaisser. En effet, la charge CPU lors de la décompression de l'H.264 est proportionnelle au débit de la compression. Dans une règle générale, plus la vidéo est de résolution importante et plus le débit de compression sera élevé : Une vidéo en définition standard (720x576px) requiert un débit inférieur qu'une vidéo en haute définition (1920x1080px ou 1280x720px), toutefois le débit de compression est laissé à la seule appréciation de l'encodeur !
Si vous utillisez Media Player Classic en lecteur, vous pouvez optimiser la lecture en utilisant le mode "Overlay Mixer" en rendu DirectShow. Media Player Classic : View -> Options -> Playback -> Output.
Vous pouvez également utiliser le décodeur CoreAVC pour décompresser l'H.264 à la place de FFDShow. Ce dernier est bien plus rapide sauf qu'il est payant.
Le dernier recours est au niveau matériel, de la carte graphique particulièrement. Depuis la sortie des drivers Catalyst 5.13 pour ATI et ForceWare 84.12 pour Nvidia, nous pouvons bénéficier d'une accélération matérielle H.264, c'est à dire que le GPU de la carte graphique va venir aider notre bon vieux CPU. Toutefois, faut-il encore que vos cartes graphiques soient dôtées de puce AViVO ou PureVideo. Si c'est le cas vous devez activer le DXVA (Microsoft DirectX Video Acceleration) de votre lecteur(Windows Media Player 10+ +patch DXVA, Media Player Classic, PowerDVD, WinDVD, etc.)/décodeur(Cyberlink, Nero, etc.). Gain de l'accélération matérielle
A suivre aussi la sortie de carte décodeur matériel H.264 telle que celle-ci.
L'H.264 vous tend les bras ;)