DVD9 vers DVD5 : Dvddump - équivalents à DVDShrink sous Linux - Multimédia - Linux et OS Alternatifs
Marsh Posté le 29-04-2004 à 14:20:17
http://developer.berlios.de/projects/lxdvdrip/
http://www.badabum.de/streamdvd.html
http://tuxrip.free.fr/tuxcopydvd
http://lakedaemon.netmindz.net/dvd9to5/
http://ldvd9to5.gff-clan.net/
Marsh Posté le 29-04-2004 à 14:24:21
Sachant que si tu veux conserver les sous titres, les coulmeurs des sous titres, plusieurs bandes son, etc, y a pas mal de manip manuelles a faire
Mais une fois que tout est trouvé, ca marche tres bien
Marsh Posté le 29-04-2004 à 14:29:36
d'ailleurs, je ne saurais que trop te conseiller de regarder principalement streamdvd (en gardant la v0.3 pour les sous-titres), dvdauthor (avec mon patch qui evite les problemes de remise a zero du compteur d'horloge) et ses outils spumux et spuunmux, et tcprobe pour obtenir le chapitrage...
Marsh Posté le 29-04-2004 à 14:29:47
ReplyMarsh Posté le 29-04-2004 à 14:30:28
philou_a7 a écrit : d'ailleurs, je ne saurais que trop te conseiller de regarder principalement streamdvd (en gardant la v0.3 pour les sous-titres), dvdauthor (avec mon patch qui evite les problemes de remise a zero du compteur d'horloge) et ses outils spumux et spuunmux, et tcprobe pour obtenir le chapitrage... |
tu nous fait un tuto de ta méthode ?
Marsh Posté le 29-04-2004 à 14:31:32
oula merci pour les liens et réponses
je vais regarder ca.
Marsh Posté le 29-04-2004 à 14:35:14
jotenakis a écrit : tu nous fait un tuto de ta méthode ? |
j'aimerais bien, le probleme c'est que j'ai encore beaucoup de taches manuelles qui devraient etre automatisables (par exemple pour les couleurs de sous titres) et que j'ai pas suffisement le temps de coder des choses en ce moment.
Principalement, il me manque un equivalent linux de IfoEdit (que j'utilise avec wine) pour :
1- ajuster les couleurs de sous titres sans relancer dvdauthor
2- positionner les codes de langues (fr, en, etc..) dans les flux audio/sub
mais si ca t'interesse, je peux deja decrire en gros ma methode. C'est assez manuel, mais c'est pas compliqué
Marsh Posté le 29-04-2004 à 14:45:34
philou_a7 a écrit : |
oui, ça m'interesse...
Marsh Posté le 29-04-2004 à 15:48:47
fouya
bon, je previens tout de suite, je suis au bureau, j'ai pas les commandes sous la main alors ca va etre du "en gros", mais long
je vais essayer de detailler au mieux les etapes, et je rappellerai les prerequis a la fin
NB : mon but est de conserver la video dans la meilleure qualité possible, je ne me soucie pas des bonus et menus... voir dvdunauthor pour ça
-----------------------------------
1/ Recuperation des informations du DVD source
Je me sers tout d'abord de tcprobe pour determiner la duree et le nombre de chapitres des differents titres afin d'identifier celui qui va m'interesser.
tcprobe -i /dev/dvd -T n |
avec n = numero du chapitre
j'ai un petit script pour ca l'algo est simple :
|
Je rapelle tcprobe -i /dev/dvd -T le_titre_qui_va_bien dans un combiné grep / awk / sed qui me sort la liste des temps de début de chapitres sous la forme 00:00:00.000,00:01:02.345, etc... (pour dvdauthor) et je stocke ca dans un fichier chapter.list
Une derniere analyse du resultat de ce tcprobe me donne les numeros de flux video/audio/subtitles qui m'interessent (je me base sur la langue et le type de données)
En general, je lance aussi streamanalyze -i /dev/dvd -t <titre> pour verifier ces valeurs
2/ Copie des .vob épurés
Tout d'abord, petite précision technique...
Dans sa derniere version, la 0.6.10 je crois, dvdauthor n'est pas tolerant a une petite imprecision dans les normes qui definissent les .VOB
Dans un .VOB, chaque paquet de données (qqsoit son type) est accompagné d'un en-tête qui contient une valeur SCR, horodatage logiciel qui permet de mettre les paquets dans l'ordre pour les lecteurs.
Cette valeur va toujours avancer de façon strictement croissante, sauf dans un cas bien precis, denué de sens mais visiblement valide : la remise a zero.
Actuellement, dvdauthor sort en erreur sur ce cas (qui se rencontre assez frequemment en tout cas dans mes DVDs originaux ), et j'ai sorti un petit patch, qui sera peut etre integré a la prochaine version, pour contourner ce cas precis. Le patch est dispo dans les mailing-lists developpeur du projet sourceforge, ou sinon je pourrai le remettre ici si ca vous interesse.
Le principe est le suivant :
Une commande qui va ripper les flux interessants du DVD et les ré-authorer pour obtenir directement une structure DVDvideo valide avec uniquement les flux que je veux conserver.
la commande est a peu pres
dvdauthor-patch -t -c `echo chapters.list` -o pre-dvd -f 'streamdvd -i /dev/dvd -f 1.000 -t <titre> -s <numeros de flux> |' |
avec numeros de flux = 0xe0,0x80,0x81,0x20,0x22 par exemple pour garder
0xe0 premier flux video
0x80,0x81 deux premiers flux audios
0x20,0x22 premier et troisieme flux de sous titres
les valeurs viennent du resultat de tcprobe plus haut
Une fois ceci fait, un appel a
dvdauthor-patch -T -o pre-dvd |
et le repertoire pre-dvd contient une structure valide.
Generalement, là, je verifie le resultat avec un mplayer dvd:// -dvd-device pre-dvd -aid XXX -sid YYY
XXX = valeur decimale du flux audio : 0x80=128 0x81=129 etc...
YYY = valeur decimale de flux sous titre-0x20 : 0x20->0 0x21->1 etc...
Si je me suis planté dans les flux, je recommance
3/ Requantisation
Trois fois sur quatre, le resultat sera trop gros pour un DVD5... on va donc requantiser le resultat.
La commande magique :
streamanalize -i ./pre-dvd -t 1 |
renvoie, en plus de la liste des flux present, le facteur de requantisation pour que ca rentre dans un DVD5
Je note cette valeur dans un coin.
En pratique, si la valeur est superieure a 1.5, on commence a voir des effets de compression, et au dela de 1.8 ca commence a faire vraiment beaucoup... c'est au gout de chacun
4/ Couleurs des sous-titres
Alors ca, c'est chiant
La palette de couleurs utilisées contient 16 valeurs. En general, des sous-titres en utilisent 2 ou 3, mais seulement, y a pas 2 DVDs qui vont utiliser les mêmes
Une premiere methode consisterait a copier la palette du VTS_0x_0.IFO original (avec IfoEdit sous wine) mais j'aime pas
Je fais plus dans le bourrin mais c'est fortement perfectible comme methode et j'ai bon espoir de creuser encore un peu
J'ai donc modifié un peu le code de spuunmux (un outil de la suite DVDAuthor) pour que lors de l'extraction, il m'affiche des statistiques sur les .png qu'il ecrit...
J'en deduis donc aisement les index des couleurs utilisées dans le film, et je crée un fichier palette.rgb en consequence : tout a 000000 sauf les couleurs que je veux
5/ Authoring (presque) final
Il suffit de relancer un dvdauthor :
dvdauthor-patch -t -p palette.rgb -c `echo chapters.list` -o dvdok -f 'streamdvd -i ./pre-dvd -f <facteur de requantisation> -t 1 -s <numeros de flux> |' |
On dispose alors d'une structure presque complete dans le repertoire dvdok/
6/ Langues des flux
C'est mon 2eme souci : les langues...
Je commence par identifier les langues avec mplayer et les parametres sid et aid, puis je lance IfoEdit dans wine pour mettre les valeurs correctes.
Il y a forcement un moyen de faire ca beaucoup plus prorprement mais j'ai pas encore cherché et surtout, je ne connait pas de IfoEdit sous linux
7/ Gravure
growisofs -Z /dev/dvd -dvd-video dvdok/ |
(a peu pres) et c'est reglé
-----------------------------------------
Voila, avec ca j'ai presque aucun probleme. Reste un cas tordu d'une assertion qui provoque une erreur en fin de dvdauthor (rencontré une seule fois pour le moment). Visiblement, il y a des cas ou le paquet final est mal formé, dvdauthor gueule mais en fait c'est pas grave, c'est juste le paquet final qui est mal paddé. Les lecteurs s'en foutent et le film est fini
J'ai donc besoin de :
1- transcode pour tcprobe
2- streamdvd et streamanalyse en version 0.3 (la 0.4 ne gere pas encore les sous titres)
3- dvdauthor patché
4- dvd+rw-tools pour growisofs
5- mplayer pour verifier les resultats intermediaires mais un autre player video doit fonctionner pareil
Sinon, j'avais essayé une autre methode a base de vobcopy , tcmplex , spuunmux et spumux pour les sous titres, ca marche aussi mais c'est un poil plus bordelique...
Mais comme je disais, c'est surement plus automatisable, et perfectible
Marsh Posté le 29-04-2004 à 16:17:32
très intéressant, pourrais tu mettre à disposition tes patches et les petits scripts que tu utilises stp...
Marsh Posté le 29-04-2004 à 16:29:23
philou_a7 a écrit : fouya
et le repertoire pre-dvd contient une structure valide.
(a peu pres) et c'est reglé |
je salue l'effort de contribution et de doc. fourni.
Mais as tu deja utilisé DVDShrink ?
Marsh Posté le 29-04-2004 à 16:29:26
pour les langues : pourquoi ne pas utiliser le -a de dvdauthor ?
par exemple : -a ac3+fr
Marsh Posté le 29-04-2004 à 16:30:52
fioul666 a écrit : je salue l'effort de contribution et de doc. fourni. |
le M. demande une méthode, il en propose une... Y a pas de gui ici et alors, ça viendra !
Marsh Posté le 29-04-2004 à 16:54:12
DVDShrink = windows, et j'ai pas envie
Citation : pour les langues : pourquoi ne pas utiliser le -a de dvdauthor ? |
parce qu'on travaille directement sur les flux... dvdauthor se prend du VOB en entrée, il sait a peine qu'il reçoit de la video de l'audio ou du sous titre
j'avais voulu essayer, ca avait gentillement planté, et j'ai pas trop persisté
Marsh Posté le 29-04-2004 à 16:55:33
jotenakis a écrit : très intéressant, pourrais tu mettre à disposition tes patches et les petits scripts que tu utilises stp... |
yop yop, mais faudra attendre tard ce soir ou demain, tout est a la maison (et je peux plus acceder a chez moi par ssh firewall de daube...)
Marsh Posté le 29-04-2004 à 16:58:37
jotenakis a écrit : le M. demande une méthode, il en propose une... Y a pas de gui ici et alors, ça viendra ! |
Definition : le linuxien est un animal tres susceptible n'acceptant pas ou peu la critique (le developpeur est un peu du meme genre).
tu n'as meme pas lu ma premiere phrase, dommage c'etait la plus importante.
Marsh Posté le 29-04-2004 à 16:59:49
philou_a7 a écrit : yop yop, mais faudra attendre tard ce soir ou demain, tout est a la maison (et je peux plus acceder a chez moi par ssh firewall de daube...) |
je te suggere ipcop 1.4 (ou 1.3) uptime 3 mois (depuis que j'ai la freebox en fait), en plus c hyper simple a poser.
Marsh Posté le 29-04-2004 à 17:00:47
non, le firewall de ma boite qui m'empeche de sortir
chez moi tout marche comme il faut
mandrake 9.2 rulez
Marsh Posté le 29-04-2004 à 17:03:47
Le patch du "SCR backwards" pour dvdauthor est dispo dans ce thread :
http://sourceforge.net/mailarchive [...] m_id=32261
c'est un diff a appliquer aux sources 0.6.10
c'est le seul qui soit dispo en ligne
Marsh Posté le 29-04-2004 à 17:29:54
philou_a7 a écrit : non, le firewall de ma boite qui m'empeche de sortir |
un gugusse de l'ens cachan m'a dit que tu peux sortir en tunnelisant ton ssh ds du HTTP. (surtout si tu as squid c possible:d)
Marsh Posté le 29-04-2004 à 17:43:06
oui mais là, le probleme c'est pas le port
c'est plutot un probleme d'IP fixe et de blacklistage de plages d'adresses un peu brutal... genre les IPs free et wanadoo
Marsh Posté le 29-04-2004 à 22:23:02
2 ou 3 petits scripts :
determiner le nombre de chapitres et la duree de chaque titre :
|
fabriquer la liste des temps de debut de chapitres pour dvdauthor :
|
-T 1 est a remplacer par le numéro du chapitre qui convient
commande exacte de copie de VOBs
dvdauthor -t -c `cat chapters.list` -p palette.rgb -o dvdtemp -f 'streamdvd -i /dev/dvd -t 1 -f 1.00000 -s 0xe0,0x80,0x81 |' |
modifications de spuunmux.c pour comptage des couleurs
le resultat du diff entre l'original et ma version :
|
j'appelle cette commande comme ça :
spuunmux -v 1 -o ./tmp/sub -s 1 ./dvdok/VIDEO_TS/VTS_01_1.VOB
il continue a extraire les .png d'un VOB, mais affiche en plus un tableau donnant les pourcentage d'utilisation de chaque index de couleur non transparente dans chaque PNG.
Voila
Si vous voulez des precisions ou des infos, ou si une bonne ame veux m'aider a ameliorer, n'hesitez pas
Marsh Posté le 30-04-2004 à 12:18:28
je ne dois pas être doué, j'arrive pas à appliquer tes patches :
|
et
|
Marsh Posté le 30-04-2004 à 14:27:55
Heu je sais pas si le patch est applicable directement, j'ai juste fait un diff -p dvdvob.c dvdvob.c.orig pour le generer
T'es sûr d'avoir les sources de la 0.6.10 ?
Marsh Posté le 30-04-2004 à 14:36:50
oui, j'ai la 0.6.10. tu peux mettre en ligne ces 2 fichiers modifiés ?
ou dans ma BAL : t u x r i p at f r e e dot fr .
Marsh Posté le 30-04-2004 à 14:38:16
ce soir
suis au bureau là
(au pire tu peux le faire a la main y a pas des tonnes de lignes a changer )
Marsh Posté le 30-04-2004 à 16:49:39
bon beh drapal hein, un bon topic comme ça faut le garder sous la main
Marsh Posté le 30-04-2004 à 20:47:15
Pour les fichiers en version modifiée :
http://philoua7.free.fr/dvd/
Il y a les 2 patchs ci dessus, et aussi le patch de dvdauthor pour ignorer le paquet final malformé.
Marsh Posté le 01-05-2004 à 17:41:35
une piste pour les sub.
mencoder -dvd-device /dev/dvd dvd://$title -o /dev/null -nosound -ovc copy -vobsubout subs -vobsuboutindex 0 -sid 0
pas la peine de laisser jusqu'au bout...
ensuite un cat subs.idx donne
|
on peux y voir une palette, est-elle du bon format où y a ptet une conversion à faire ?
Marsh Posté le 01-05-2004 à 18:26:02
ça marche !
j'ai crée le fichier palette.rgb en metant en colonne les valeurs issues du subs.idx et ai continué selon ta méthode philou. La lecture est ok avec mplayer ou xine...
Sinon, je pense que l'étape predvd est inutile, on peux requantizer à la volée en prenant le facteur donné par une commande du type : "streamanalyze -i /dev/dvd -t 12 -s 0xe0,0x20,0x21,0x80".
Marsh Posté le 03-05-2004 à 10:19:58
jotenakis a écrit : ça marche ! |
ah, ca y est, forum is back
Bon, 2 infos a rajouter
1/ L'etape predvd est utile car elle permet de calculer le facteur de requant au plus juste. Si tu calcules le requant depuis le dvd complet, tu vas faire intervenir tous les flux inutiles dans le calcul (langues et sous titres en trop) et tu vas "requanter" plus fort que necessaire, ce qui joue forcement sur la qualité de l'image.
Si tu manques de place disque, ok, tu peux voir a passer cette etape, si tu es sur de garder tous les flux, pareil, mais sinon, ca serait bête
2/ Pour l'affectation des langues, j'ai été bidon
En fait, les parametres de dvdauthor fonctionnent mais j'avais mal fait la syntaxe je pense.
Sur le dernier lancement de dvdauthor (si on relance un dvdauthor sur ce flux, les infos seront perdues), il suffit de lancer :
dvdauthor-patch -t -p palette.rgb -a <langues audios> -s <langues subs> -c `echo chapters.list` -o dvdok -f 'streamdvd -i ./pre-dvd -f <facteur de requantisation> -t 1 -s <numeros de flux> |' |
avec les codes langues dans l'ordre des flux et séparées par des virgules
Par exemple, pour un film avec
0x80=francais 0x81=anglais 0x83=allemand
0x20=francais 0x23=allemand
on lancera :
dvdauthor-patch -t -p palette.rgb -a fr,en,de -s fr,de -c `echo chapters.list` -o dvdok -f 'streamdvd -i ./pre-dvd -f <facteur de requantisation> -t 1 -s 0xe0,0x80,0x81,0x83,0x20,0x23 |'
il ne faut pas utiliser la syntaxe ac3+fr mais directement fr en fait... c'etait mon erreur
Marsh Posté le 03-05-2004 à 10:35:11
je ne suis pas trop d'accord avec le 1/. Le facteur de requant peut être calculé avec streamanalyse en précisant sur quels flux avec l'option -s...
exemple : "streamanalyse -i /dev/dvd -s 0xe0,0x80,0x21"
EDIT : c'est pas -c `echo chapter.list` mais -c `cat chapter.list`.
Marsh Posté le 03-05-2004 à 10:38:38
Pour formater correctement le resultat de la commande
mencoder -dvd-device /dev/dvd dvd://$title -o /dev/null -nosound -ovc copy -vobsubout subs -vobsuboutindex 0 -sid 0 |
il suffit de recuperer sa sortie et de la passer dans cette commande :
cat resultat_mencoder_palette | grep "palette:" | sed "s/\s/\n/g" | sed "s/,//g" | egrep "^[0-9a-fA-F]{6}$" > palette.rgb |
et palette.rgb est bien formé
Marsh Posté le 03-05-2004 à 10:39:39
jotenakis a écrit : je ne suis pas trop d'accord avec le 1/. Le facteur de requant peut être calculé avec streamanalyse en précisant sur quels flux avec l'option -s... |
.... ( <- illustration du grand vide dans ma tête)
ok, je suis une grosse nouille qui lit trop vite les docs
Marsh Posté le 29-04-2004 à 14:13:12
1er Soft :
dvddump
C'est un script permettant de faire des sauvegardes de DVD9 video, avec recompression automatique pour rentrer sur un DVD5. Le script est capable de lancer la gravure du DVD à la fin de la compression.
Outils utilisés :
StreamAnalyze 0.3 + StreamDVD 0.3 + DVDauthor et le script DVDDump
TELECHARGEMENT
Soit les sources, soit les RPM si vous utilisez Mandriva Linux.
Dvddump :
http://tuxrip.free.fr/dvddump (crée par jotenakis)
Dvdauthor (mettre le patch de Philou):
Télécharger les sources de dvdauthor sur le site officiel, extraire et remplacer les 3 fichiers fournis par philou, puis compiler :
./configure && make && make install
Site officiel : http://dvdauthor.sourceforge.net/
Patch : http://philoua7.free.fr/dvd/
StreamDVD & StreamAnalyze
http://www.badabum.de/streamdvd.html
Seules les versions 0.3 sont utilisables avec dvddump.
Paquetages crées par Mjules : http://mjules.free.fr/dvddump/
Page dvddump de mjules : http://mjules.free.fr/dvddump.htm
J'ai également reconstruit des rpm avec gcc-4 sous Mandriva Cooker à partir des src.rpm de Mjules ou des tar.bz2 officiels avec l'aide des .spec de Mjules aussi :
http://jeep05fr.free.fr/rpms/
INSTALLATION
Pour les sources, voir le Readme de chaque.
Pour les paquets RPM : rpm -Uvh xxx.rpm
La 1ere fois que vous lancez dvddump, faites : 'dvddump --config' pour créer le fichier de configuration.
Un 'dvddump --help' vous donnera les commandes disponibles.
INTERFACE GRAPHIQUE a DVDDUMP
2 projets :
- gui-dvddump.py (par bimon)
- dvddumpui (par Irmatden)
Site : http://5-rue-valentin.homelinux.net/guis_dvddump/
2eme Soft :
K9copy : http://k9copy.free.fr/
Maintenu par un français, avec interface graphique.
Outils utilisés :
* DVDAuthor
* vamps (version adaptée disponible sur le site)
* mjpegtools
* libdvdread
* growisofs
* toolame
TELECHARGEMENT
Sur le site de l'auteur, ou bien sur Urpmi pour ceux sur Mandriva Cooker seulement.
3eme Soft :
xDvdShrink : http://dvdshrink.sourceforge.net/
XDVDShrink is a project in BASH and Perl-Gtk2 that allows you to create fair-use archival copies of DVD content on single-layer writable DVDs.
# Command-line and graphical interface
# Scriptable
# Copy single movies
# Copy multiple episodes
# Selectable audio stream (AC3 only)
# Option for one subtitle stream per DVD title
Outils utilisés :
* transcode
* dvdauthor
* mjpegtools
* subtitleripper
* gocr
* dvd+rw_tools
* mkisofs
TELECHARGEMENT
http://sourceforge.net/project/sho [...] _id=133818
Note : si vous souhaitez seulement convertir un DVD en video MPEG4, rendez vous sur le topic de tuxrip "Techniques d'encodage DVD --> Mpeg4"
Voir le lien 'Sujets à lire' en haut à gauche de cette page
Message édité par Profil supprimé le 23-06-2005 à 19:07:20