Automatiser une conversion MP4->XVid

Modérateur : Modérateurs

Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Automatiser une conversion MP4->XVid

Message par Bfredo123 »

Bonjour,

J'utilise un soft de montage vidéo, qui génère des vidéos MP4. J'utilise habituellmeent M4NG pour les convertir en XVid, afin de pouvoir les regarder sur la Freebox après transfert FTP sur le disque dur de la Freebox.

Je voudrais à présent écrire un petit programme qui automatiserait la procédure :
1. rendu en MP4,
2. conversion en XVid,
3. transfert sur le disque dur Freebox par FTP.

Mon programme exécute à présent les étapes 1 et 3 correctement, il me reste à savoir comment invoquer M4NG en ligne de commande pour faire l'étape 2 (conversion XVid).

Savez-vous comment faire ? ou sinon, où trouver de la doc sur le sujet ?

Idéalement, j'aimerais bien pouvoir écrire un truc du genre : "m4ng video-in.mp4 video-out.xvid". (sachant qu'avec l'interface graphique, j'utilise le mode very debutant avec les paramètres par défaut, et ces paramètres me conviennent parfaitement).

Merci pour votre aide !!
Bfredo123
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 »

Salut à toi
m4ng ne permet pas d'encoder en ligne de commande vu qu'il "pilote" déjà virtualDubMod pour le faire... C'est de son coté que tu dois creuser.
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Message par Bfredo123 »

Merci pour ta réponse.

Mais ouille, c'était si simple M4NG :-)
J'avais commencé à regarder le site web de virtualdub, et j'avais eu l'impression que M4NG évitait de se poser bien des questions :-) (valeurs par défaut des paramètres, appels de VirtualDub autant de fois qu'il le faut pour les passes video et audio, choix des codecs ...)

Mais bon, je vais creuser, et merci encore !

Bfredo123
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 »

je peux réfléchir à une automation simple...
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Message par Bfredo123 »

Ahhh.... Voilà qui semble intéressant.
Entre temps j'ai regardé VirtualDubMod de plus près, et pu constater que les développements étaient morts depuis env. 2005. Et pas moyen de trouver de la doc. Et ne connaissant pas les raffinements de l'encodage video j'ai vraiment du mal à suivre sur les forums (j'ai lu des histoires de "true demuxer" notamment, moi pas comprendre du tout du tout).

Donc oui, l'automatisation simple ce serait cool !

Et sinon, VirtualDub, par rapport à VirtualDubMod, ça ne suffit pas dans mon cas ? Visiblement VirtualDub vit encore, lui. A l'occasion, je serais curieux de savoir quel est l'apport de VDMod par rapport à VD-tout-court.

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

Message par Underground78 »

Hum la bonne question est la suivante, qu'est-ce qu'il y a dans tes mp4 ? Parce que la Freebox est sans doute capable de lire ce qu'il y a dedans ...
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 »

Bon, l'automation est faite ... Maintenant que j'ai fait ça, le matou va te dire comment t'en passer et j'aurais fait ça pour rien :hop:
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 »

Voilà la chose :
http://lauden.fr/pepsilite/upl/v200/m4n ... I-Xvid.rar
uniquement l'exécutable à mettre en lieu et place de m4ng.exe.
Utilisation :
ligne de commande :
m4ng.exe --in:"fichier en entrée" --out:"fichier en sortie"
l'entrée peut être n'importe quoi, pas forcément du mp4, par contre la sortie sera toujours et uniquement du Xvid / MP3 selon les paramètres du mode débutant, d'ailleurs c'est lui qui est automatisé, m4ng choisit le preset Xvid et lance le réencodage dans cette interface et ferme tout quand c'est fini, je n'ai fait aucune vérification d'aucune sorte, il faut être sûr que tout est bon pour que ça marche (codecs installés en entrée comme en sortie), le fichier de sortie s'appellera toujours OUT_fichier de sortie.avi.

Voilà ...
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Message par Bfredo123 »

C'est super, merci beaucoup !!

Mes MP4 contiennent du AVC / H.264 (euh, j'espère que je ne dis pas trop de bêtises. cf sortie de Media Info ci-dessous). J'ai déjà essayé de les lire dans la Freebox en direct, mais ça ne marche pas. Cela dit si tu as une idée de manip, je suis plus que preneur ! J'aurai juste passé 6 mois à faire des conversions pour rien, mais c'est pas grave :-)

Je vais tester la nouvelle version de ce pas et te dis ce que ça donne.
Au fait, cette modif, elle sera intégrée dans les futures versions aussi ?

Merci encore,
A++
Bfredo123


General
Complete name : E:\Videos\21010-10-16 Anniversaire\Anniversaire.mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 160 MiB
Duration : 2mn 57s
Overall bit rate : 7 543 Kbps
Encoded date : UTC 2010-10-17 10:30:14
Tagged date : UTC 2010-10-17 10:30:14

Video
ID : 2
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.0
Format settings, CABAC : Yes
Format settings, ReFrames : 2 frames
Format settings, GOP : M=2, N=13
Muxing mode : Container profile=Baseline@3.1
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2mn 57s
Bit rate mode : Variable
Bit rate : 7 411 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.322
Stream size : 157 MiB (98%)
Language : English
Encoded date : UTC 2010-10-17 10:30:14
Tagged date : UTC 2010-10-17 10:30:14

Audio
ID : 1
Format : AAC
Format/Info : Advanced Audio Codec
Format version : Version 4
Format profile : LC
Format settings, SBR : No
Codec ID : 40
Duration : 2mn 57s
Bit rate mode : Constant
Bit rate : 128 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Stream size : 2.71 MiB (2%)
Language : English
Encoded date : UTC 2010-10-17 10:30:14
Tagged date : UTC 2010-10-17 10:30:14
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 »

Bfredo123 a écrit : Je vais tester la nouvelle version de ce pas et te dis ce que ça donne.
Au fait, cette modif, elle sera intégrée dans les futures versions aussi ?

Oui, c'est à demeure vu que ça marche et que ça peut s'avérer pratique, peut-être que j'étofferai un peu plus la chose en proposant de choisir le format de sortie (et pas que du Xvid)


Merci encore,
A++
Bfredo123
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Message par Bfredo123 »

C'est en train de mouliner, ça a l'air de bien se passer.

Juste 2 petites remarques:

1) quand je lance le nouveau m4ng en ligne de commande, il affiche une boîte de dialogue disant qu'il manque 5 modules externes (me rappelle plus l'intitulé exact). Mais avant cette version, il y a 1 heure, j'avais lancé m4ng en ligne de commande pour tester s'il prenait des paramètres (on a le droit de rêver), et il n'y avait pas cette boîte de dialogue.

2) la syntaxe de la ligne de commande me va bien, mais si tu fais évoluer la chose, ça pourrait être pratique de prévoir un espace entre --in et le nom de fichier, comme ça la "complétion" automatique avec TAB fonctionnerait et permettrait de sélectionner le nom du fichier plus rapidement. Mais bon, on peut vivre sans.

Encore merci !
Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Message par Bfredo123 »

A y est, la conversion en Xvid est terminée, ça marche nickel.

Merci++++

En fait j'ai une autre question : vu que m4ng.exe rend la main tout de suite, mais continue à travailler après en tâche de fond, comment savoir, dans mon programme appelant, quand la conversion est terminée ?

Je sais que je suis super-pénible, mais est-ce-que-ce-serait-y-possible que le programme ne rende la main que lorsque la conversion est terminée ???

J'ai honte, mais je demande quand même...
Merci++++
Bfredo123
Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Message par Bfredo123 »

Au passage, je viens de (re?)vérifier : malheureusement les MP4 tels que décrits plus haut avec MediaInfo ne passent pas sur la Freebox :

- si on laisse l'extension .mp4, ils ne sont tout simplement pas listés sur la télé (quand on regarde le contenu du disque dur)

- si on renomme en .avi, ils apparaissent, mais l'écran reste noir à la lecture (et il n'y a pas de son).

Voilà donc une bonne raison à m4ng de continuer à exister :-)

Bfredo123
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 »

Bfredo123 a écrit :C'est en train de mouliner, ça a l'air de bien se passer.

Juste 2 petites remarques:

1) quand je lance le nouveau m4ng en ligne de commande, il affiche une boîte de dialogue disant qu'il manque 5 modules externes (me rappelle plus l'intitulé exact). Mais avant cette version, il y a 1 heure, j'avais lancé m4ng en ligne de commande pour tester s'il prenait des paramètres (on a le droit de rêver), et il n'y avait pas cette boîte de dialogue.

Tu ne dois pas avoir installé la toute dernière version de m4ng, tout est là : http://www.forum.m4ng.fr/image-vp91573.html#91573 (attention à ne pas oublier yadif.dll qui est à part)
après tu changes l'exe avec le nouveau


2) la syntaxe de la ligne de commande me va bien, mais si tu fais évoluer la chose, ça pourrait être pratique de prévoir un espace entre --in et le nom de fichier, comme ça la "complétion" automatique avec TAB fonctionnerait et permettrait de sélectionner le nom du fichier plus rapidement. Mais bon, on peut vivre sans.

Quand j'ai fait la ligne de commande, c'était le moyen le plus simple pour moi, mais je peux maintenant changer le --in:" par un --in " sans problème

Encore merci !
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 »

Bfredo123 a écrit :A y est, la conversion en Xvid est terminée, ça marche nickel.

Merci++++

En fait j'ai une autre question : vu que m4ng.exe rend la main tout de suite, mais continue à travailler après en tâche de fond, comment savoir, dans mon programme appelant, quand la conversion est terminée ?

Je sais que je suis super-pénible, mais est-ce-que-ce-serait-y-possible que le programme ne rende la main que lorsque la conversion est terminée ???

Ca n'est pas m4ng qui doit changer, c'est ton programme appelant, j'ignore dans quel langage tu le fais, mais il faut utiliser un CreateProcess() et un WaitForSingleObject(hProcess, INFINITE), le INFINITE signifiant que le programme appelant "attend" que le programme appelé rende la main pour continuer, c'est la seule façon de faire ce que tu veux (avec l'API windows, j'ignore comment tu codes



J'ai honte, mais je demande quand même...
Merci++++
Bfredo123
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 »

http://lauden.fr/pepsilite/upl/v200/m4n ... ;Xvid2.rar

Nouvelle version qui accepte le --in "fichier" avec l'espace au lieu du :
2.1.0.7 - RC7_v6
----------------

49. Intégration d'une automation simple de l'encodage via m4ng par ligne de commande.
Utilisation : m4ng.exe --in "Fichier source" --out "Fichier destination" (un espace entre --in et le "fichier source", idem pour le --out)
Cette fonction très simple permet de réencoder tout type de source directement en Xvid / MP3 selon les paramètres par défaut du mode

débutant (Fast-food), permettant ainsi de batcher les encodages en cas de besoin, m4ng se chargeant de "cliquer" sur les boutons de

l'interface. Le fichier de sortie s'appellera toujours OUT_fichier destination.avi.
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 »

Bfredo123 a écrit :Au passage, je viens de (re?)vérifier : malheureusement les MP4 tels que décrits plus haut avec MediaInfo ne passent pas sur la Freebox :

- si on laisse l'extension .mp4, ils ne sont tout simplement pas listés sur la télé (quand on regarde le contenu du disque dur)

- si on renomme en .avi, ils apparaissent, mais l'écran reste noir à la lecture (et il n'y a pas de son).

Voilà donc une bonne raison à m4ng de continuer à exister :-)

Bfredo123
Je ne connais pas les spécificités de la freebox exactement, mais une chose est sur, il ne faut pas "juste" renommer ton fichier en changeant l'extension... Je penses que la freebox lit les .TS (il me semble que les enregistrements via celle ci sont en .TS), donc il faut que tu ailles sur muxer/demuxer=>TS, puis tu "Add" ton fichier .mp4, et tu remuxes en .TS
Je crois qu'elle lit également les mkv... là il faut d'abord démuxer et ensuite remuxer dans un mkv avec MMG

Mais tu peux attendre que U78 confirme...
Avatar du membre
Underground78
Administrateur
Administrateur
Messages : 11272
Enregistré le : mar. 06 févr., 2007 21:54
Localisation : France
Contact :

Message par Underground78 »

Bfredo123 a écrit :Au passage, je viens de (re?)vérifier : malheureusement les MP4 tels que décrits plus haut avec MediaInfo ne passent pas sur la Freebox :

- si on laisse l'extension .mp4, ils ne sont tout simplement pas listés sur la télé (quand on regarde le contenu du disque dur)

- si on renomme en .avi, ils apparaissent, mais l'écran reste noir à la lecture (et il n'y a pas de son).

Voilà donc une bonne raison à m4ng de continuer à exister :-)

Bfredo123
Pas de chance pour Pepsi, tes mp4 devraient passer sans soucis sur la box ... :spo:

Faut juste les remuxer (avec m4ng tient !) en MKV et ça devrait le faire ! ;)
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 »

J'ai subitement des envies de paté de chat ...
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Message par Bfredo123 »

Merci pour tous ces compléments.

1) pour la détection de la fin du processus, je code en C#, donc effectivement je peux faire un WaitForSingleObject (ou un truc du genre, je vais regarder ça de plus près). En revanche, si des gens veulent faire ça en .BAT, je me dis que ce serait bien que m4ng ne s'achève qu'une fois le traitement terminé.

2) pour les mp4, ça veut dire quoi "remuxer" ? Et pour le faire depuis m4ng, je suppose qu'il faut cliquer sur Muxer/Demuxer, mais après que faut-il faire ? Si en plus vous pouviez me dire ce que ça signifie techniquement parlant, ce serait cool, histoire que je comprenne ce que je fais et pourquoi je le fais.

En tous les cas merci encore pour votre aide, c'est vraiment sympa de répondre si rapidement.

Bfredo123
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 »

remuxer = changer de conteneur pour la piste video et la piste audio, ça consiste simplement à changer l'emballage...
1. Avoir les MKVtoolnix installé : http://www.bunkus.org/videotools/mkvtoo ... -setup.exe
2. lancer m4ng
3. cliquer sur "muxer/demuxer"
4. cliquer sur le bouton [ MKV ]
5. A l'ouverture de MKVmerge GUI, charger ton MP4, soit par glisser/déposer soit avec le bouton [ add ]
6. Cliquer en bas sur [ Start muxing ]
7. Attendre ..............
8. C'est tout, ton MKV est créé, tu n'as plus qu'à tester sur ta box.
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 »

Bfredo123 a écrit :
1) pour la détection de la fin du processus, je code en C#, donc effectivement je peux faire un WaitForSingleObject (ou un truc du genre, je vais regarder ça de plus près). En revanche, si des gens veulent faire ça en .BAT, je me dis que ce serait bien que m4ng ne s'achève qu'une fois le traitement terminé.

On s'est mal compris, cette fonction dit à ton programme APPELANT d'attendre que le programme APPELE rende la main, si m4ng rendait la main avant la fin du traitement, cette fonction ne servirait à rien, m4ng s'autokille à la toute fin du processus, une fois que le mux final est terminé, ce que tu peux aisément vérifier dans les processus de windows... Si tu n'utilises pas le WaitForSingleObject, quoi qu'il arrive dès que le programme appelé sera lancé, ton programme appelant continuera même si m4ng est toujours en mémoire en tâche de fond...
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Message par Bfredo123 »

ok, limpide, merci !

ça veut donc dire que la façon dont la vidéo est encodée est inchangée, à l'intérieur du fichier conteneur ?

download de MKVtoolnix en cours... j'attends de pouvoir tester avec impatience !!

Merci
Bfredo123
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 »

Bfredo123 a écrit :ok, limpide, merci !

ça veut donc dire que la façon dont la vidéo est encodée est inchangée, à l'intérieur du fichier conteneur ?

Voilà, c'est une opération sans aucune perte, sans réencodage et qui prend 5 minutes à tout casser, oui c'est vrai, c'est tellement évident pour nous que j'avais oublié de préciser tout ça...

download de MKVtoolnix en cours... j'attends de pouvoir tester avec impatience !!

Ben ça devrait marcher, ah, une petite chose, une option est à vérifier avant de cliquer sur le [ Start Muxing ], une fois ta vidéo chargée dans MKVmerge (MMG pour les intimes), dans la fenêtre Tracks, chapters and tags, sélectionne ta piste vidéo, puis dans la fenêtre en dessous, clique sur l'onglet "Extra options"... Il faut mettre "Compression" sur "none", sinon tu risques d'avoir une incompatibilité avec ta box


Merci
Bfredo123
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Bfredo123
Messages : 28
Enregistré le : dim. 29 août, 2010 16:23

Message par Bfredo123 »

ok, merci.

En fait, là j'étais en train de refaire un test avec la nouvelle RC7 (rapport au pb avec les 5 modules non trouvés d'hier soir), et avec la modif pour remplacer les ":" par un espace. Le message d'erreur a bien disparu.

En revanche, j'ai l'impression que le fichier de sortie est parti dans l'hyper-espace : je ne sais pas où il l'a mis.

Ma ligne de commande :

m4ng.exe --in "E:\Videos\21010-10-16 Anniversaire 41 ans\Anniversaire 41 ans.mp4" --out "c:\toto.xvid"

Mais dans la fenêtre de LOG de m4ng, il dit au début :

out: OUT_Anniversaire 41 ans

Et à la fin :

Mux :: AVI
OUT_Anniversaire 41 ans.avi
Video mux : Ok
Deleting temps
---

je ne trouve ni mon toto.xvid tant attendu, ni le .avi.

Hier, il m'a mis le fichier de sortie dans un répertoire qui avait je crois servi à un encodage que j'avais fait il y a quelques jours.

Donc je me demande s'il n'y a pas un pb pour la gestion du nom/directory du fichier de sortie.

Sur ce, je passe au test du remuxage.
Verrouillé