samedi 10 décembre 2011

Créer des vidéos mp4 avec graphedit


Dans le post précédent Installer des codecs pour créer des vidéos mp4 lisibles sur ipad ou iphone j'ai expliqué comment installer des codecs permettant de transcoder des vidéos en mp4 pour pouvoir les lire sur ipad ou iphone. J'explique ici comment les utiliser pour ce faire dans graphedit.

Supposons que vous ayez un fichier video.avi  comprimé en divx + mp3 que vous voulez convertir en mp4 pour l'ipad. Vous allez procéder comme suit:

Etape1
Lancer graphedit et faire glisser/déposer le fichier video.avi sur lui. Il se crée en principe un graphe de lecture que vous pouvez lancer. Si ce graphe n'est pas lisible ou ne se forme pas (ou par exemple ne décomprime pas l'audio ou pas la video) alors c'est que directshow ne peut pas même lire votre fichier video. Il faut vous débrouiller pour trouver les codecs de décompression nécessaires. Cela sort du champ de ce post. En d'autres termes on ne pourra traiter à partir d'ici que les fichiers vidéos lisibles sous directshow sur votre système.

Un point très important est à noter: si vous avez installé le filtre DirectVobSub et que votre fichier video.avi est accompagné d'un fichier video.srt de sous-titres, alors le filtre DirectVobSub (auto-loading version) se branche automatiquement dans le graphe et incruste les sous-titres dans la vidéo.

Etape2

Enlever les Renderer Video et Audio. Il suffit de les sélectionner et de taper sur la touche suppr.

Etape3
Insérer le filtre Mainconcept MPEG-4 Video Encoder. Puis connectez le  à la broche Vidéo qui était au départ connectée sur le  Renderer Video.

Etape4
Insérer le filtre Mainconcept AAC Encoder. Puis connectez le à la broche Audio qui était connectée au départ sur le Renderer Audio.

Etape5
Insérer le filtre MainConcept MP4 Multiplexer. Et connectez-y les deux filtres précédents.

Etape6
Insérez le filtre File Writer (celui-là est fourni par Windows) et indiquez au moment où il vous le demandera la localisation et le nom du fichier destination que vous souhaitez obtenir. Attention à bien mettre l'extension mp4. Par exemple video.mp4. Branchez ce filtre à la sortie du multiplexer.

Vous disposez maintenant en principe d'un graphe complet que vous pouvez lancer.

Etape7

Mais avant de faire cela, il reste à configurer les encodeurs pour obtenir une image satisfaisante. Pour cela cliquer avec le bouton droit sur le filtre MainConcept MPEG-4 Video Encoder puis sur Filter Properties. Vous faites apparaître la page des propriétés du filtre. Sélectionnez Apple ipod 640x480 dans le menu des MPEG-4 Preset, puis cliquez sur Restore Default. Cliquez ensuite sur les boutons Apply puis OK.

Etape8

Même chose pour le filtre MainConcept AAC Encoder. Vous cliquez droit sur le filtre, et sélectionnez Filter Properties.  Vérifiez alors que le Rate Control est à 160 et que la mpeg Version est sur MPEG-4.

Etape9
Voilà maintenant vous pouvez lancer le graphe et patienter jusqu'à ce qu'il ait fini. Vous obtenez un fichier mp4 qu'on peut ensuite charger sur ipad ou iphone par la méthode classique de itunes que je ne détaille pas ici. De nombreux tutoriels existent sur le web si vous ne savez pas comment faire.


On notera que le fichier video.mp4 obtenu contient les sous-titres si au début de l'opération les deux conditions requises sont respectées:
i) Le filtre DirectVobSub est installé.
ii) un fichier de sous-titres video.srt existe dans le même dossier que video.avi

Installer des codecs pour créer des vidéos mp4 lisibles sur ipad ou iphone

Quand en 2011 on fait de la vidéo numérique, il devient indispensable de pouvoir lire les fichiers vidéos sur ipad ou iphone. Pour cela il faut les convertir en mp4. Or Windows ne fournit pas de filtres directshow pour  encoder de la vidéo en mp4 ou de l'audio en aac,  ni pour multiplexer en mp4, et on n'en trouve guère  de gratuits directement utilisables en la matière.

Il existe bien sûr quelques freewares qui rendent service. L'un des plus réputés que j'ai utilisé avec succès est Handbrake. Il permet d'obtenir le résultat souhaité, mais il ne donne pas non plus de filtres directshow qui permettraient au programmeur en delphi de fabriquer ses propres applications sur mesure.

Par exemple, l'une des limites que j'ai rencontrées est que HandBrake ne semble pas permettre d'incruster les sous-titres au format srt. Avec des applications directshow, si vous avez installé le filtre DirectVobSub, et que vous lisez une vidéo accompagnée dans le même dossier d'un fichier ayant le même nom mais une extension srt, alors les sous-titres sont en général automatiquement incrustés pendant la lecture de la vidéo. On aimerait un dispositif de même nature pour la conversion en mp4.

Je vous propose à cet effet de procéder à un petit bidouillage, qui est sans doute un peu cavalier, mais difficile à considérer comme illégal puisqu'on ne fait qu'un téléchargement parfaitement légal, puis quelques manipulations banales sur les fichiers téléchargés.

L'idée est que la version test gratuite de Adobe Premiere Elements contient  d'excellents filtres directshow pour créer des fichiers mp4, à savoir ceux de MainConcept, et que même si cette version est bridée et limitée dans le temps, il est possible d'installer complètement les filtres en question pour en bénéficier pleinement.

Voici comment faire:

Etape1
Avant d'installer quoi que ce soit je recommande toujours de créer un point de restauration du système. Ici c'est particulièrement utile car  l'installation d'Adobe Premiere Elements laisse des traces dans le registre qui subsistent même après la désinstallation et peuvent  vous empêcher de réinstaller la version gratuite ultérieurement. Pour pouvoir un jour rebénéficier de cette possibilité, il vaut mieux faire une restauration système quand on aura fini  l'opération de téléchargement.

Etape2
Téléchargez la version d'évaluation gratuite de Adobe Premiere Elements. En décembre 2011 on trouvait la version 10 sur le site français de Adobe. La procédure pour télécharger puis installer Adobe Premiere Elements est un peu longue et complexe. Il faut notamment d'abord télécharger un downloader Assistant, créer un identifiant Adobe etc.. Je ne détaille pas davantage la procédure en considérant que si vous ne savez pas mener à bien cette opération qui s'adresse en principe au grand public, il vaut mieux ne pas continuer mon bidouillage.

Etape3
Une fois Adobe Premiere Elements 10 installé, il faut récupérer les fichiers ax qu'il a copiés dans un dossier. Vous les trouverez dans un dossier du genre pf\Adobe\Adobe Premiere Elements 10.
pf est le dossier Program Files correspondant à votre système (par exemple si votre système est en 64 bits ce peut être C:\Programmes ou s'il est en 32 bits, C:\Program Files (x86)).

Les fichiers les plus utiles pour notre projet  s'appellent:
mc_mux_mp4_ds.ax : il contient le filtre multiplexeur mp4 de MainConcept
mc_enc_mp4v_ds.ax: il contient le filtre vidéo encodeur en mp4 de MainConcept
mc_enc_aac_ds.ax    : il contient le filtre encodeur de l'audio en aac de MainConcept

Mais pour faire bonne mesure, vous pouvez copier tous les filtres ax et pas seulement ces trois là dans un dossier de vos disques durs. Mais  évitez de les copier sur le bureau qui ne les conserverait pas en cas de restauration . Le mieux est par exemple de les copier  dans un sous-dossier de Mes Documents ou même sur une clé usb.

Etape4
Vous pouvez ensuite désinstaller Adobe Premiere Elements si vous n'avez pas l'intention de tester la version d'évaluation, ainsi que le Adobe Download Assistant. Passez bien sûr par le panneau de configuration, et la fonction ajouter/supprimer des programmes pour le faire proprement.

Etape5
Si vous avez désinstallé Adobe Premiere Elements, c'est le moment de faire une restauration de votre système, au point que vous aviez programmé à l'étape 1).

Etape6
Maintenant il faut installer les fichiers ax. Si nécessaire copiez les dans l'emplacement définitif que vous voulez leur attribuer sur votre disque dur. Créez ensuite avec notepad.exe un petit fichier texte que vous appelerez par exemple install.bat. Ecrivez-y les instructions suivantes, en ajustant les chemins pour tenir compte de votre système:

C:\WINDOWS\system32\regsvr32.exe "E:\Adobe Premiere Elements 10\mc_mux_mp4_ds.ax"
C:\WINDOWS\system32\regsvr32.exe "E:\Adobe Premiere Elements 10\mc_enc_mp4v_ds.ax"
C:\WINDOWS\system32\regsvr32.exe "E:\Adobe Premiere Elements 10\mc_enc_aac_ds.ax"

Puis enregistrez le fichier et lancer-le en double-cliquant dessus. Si tout se passe bien vous devez recevoir trois fois un message disant que l'installation a réussi.

Etape7
Bravo. Si vous êtes arrivé là c'est que vous avez installé les filtres nécessaires et pouvez déjà les utiliser par exemple dans graphedit. Faites le test en tapant CTRL+F sur graphedit. Vous vérifierez la présence des filtres directshow suivants:


MainConcept AAC Encoder
MainConcept MP4 Multiplexer
MainConcept MPEG-4 Video Encoder

Dans un prochain post, je donnerai quelques indications sur l'utilisation de ces filtres de manière à obtenir des vidéos lisibles dans ipad ou iphone.