Ceci est une ancienne révision du document !



Passer d'un DVD Vidéo à un fichier iso

Il est désormais très facile de crée une image ISO de n'importe quel dvd du commerce avec le logiciel K3B.

Pour installer K3B il vous suffit d'installer le paquet K3B après avoir activé les dépôts Universe.

Ensuite lancer K3B et sélectionner sur le panneau principal "Autres choix…" puis "Copier un DVD" et cocher "Créer seulement une image" rendez-vous ensuite dans l'onglet "Image" pour sélectionner le dossier ou le fichier image ISO sera écrit.

Note de Sp4rKy : Il n'en existe pas, en dehors de dvd95, k9copy, ou de façon simpliste "dd if=/dev/hdX of=fichier.iso" …
Réponse de djoole à la note de sp4rky : dd ne fonctionnait tout simplement pas sur mon système, et de plus on m'a dit qu'il ne supprimait pas la protection CSS, et je comptais lire mes ISO depuis un autre PC que celui où les clés sont en cache.. Voir topic qui est à l'origine de ce script.. personne n'a su me pointer vers tes logiciels qui ne sont pas forcément simples et dédiés comme je le précise, et tu n'étais pas là à l'époque, j'ai donc du improviser avec ce petit outil dédié ;)

Malgré tout, dvdbackup sait très bien faire un backup des fichiers et de la structure d'un DVD Vidéo sur disque dur. Parallèlement, mkisofs sait très bien produire un iso fonctionnel à partir de ces fichiers.

Voici donc un petit script rapide et sans prétention qui permet, d'un clic de souris, après bien sûr avoir glissé un DVD Vidéo dans le lecteur, de se retrouver avec une image ISO fonctionnelle de ce DVD sur le disque dur.

Attention, ce script est extrêmement basique, il ne prend pas en compte les éventuelles erreurs dûes à de mauvaises conditions initiales. Aussi pour que cela se passe sans encombre, assurez-vous que vous avez bien mis le DVD dans le lecteur, qu'il existe bien un répertoire dvdtmp dans votre répertoire ~ et qu'il y a suffisamment d'espace libre sur le disque.

Voici le script, à placer dans /usr/bin/ et à rendre exécutable grâce à un chmod +x dvd2iso :

#!/bin/sh
echo -n Copie du DVD dans ~/dvdtmp..................
date1=$(date +%s)
dvdbackup -v 0 -M -i /dev/hda -o ~/dvdtmp
echo OK
echo
dvdtitle=$(ls ~/dvdtmp)
echo -n Conversion des fichiers DVD en ISO.....................
mkisofs -dvd-video -quiet -o $dvdtitle.iso ~/dvdtmp/$dvdtitle/
echo OK
echo
echo -n Suppression des fichiers temporaires...................
rm -fr ~/dvdtmp/$dvdtitle
echo OK
date2=$(date +%s)
duree=$(($(($date2-$date1))/60))
echo
echo "Operation terminee (duree = "$duree" min), "$dvdtitle.iso se trouve dans $
(dirname ~/dvdtmp)

Pour utiliser ce script avec une interface graphique, installez zenity, puis créez par exemple un lanceur appelant le script DVD2ISO (placé dans /usr/bin/ et chmodé +x) contenant le code suivant :

dvd2iso|zenity --text-info --title "DVD2ISO" --width=400 --height=300

Voilà !

Note de SandMan :

Amélioration en date du 19/12/2008.

Je pousse un peu plus loin le bon travail de djoole :

Je permets le choix du lecteur dvd en entrée et crée le répertoire temporaire. Le fichier de sortie .iso se trouvera dans le répertoire "home" de l'utilisateur. Maintenant, il suffit de le démarrer via un lanceur ou d'entrer la commande suivante dans un terminal :

/usr/bin/dvd2isohui /dev/dvd

Voiçi les scripts :

sudo nano /usr/bin/dvd2iso
#!/bin/sh
DEVDVD=$1
echo -n Copie du DVD dans ~/dvdtmp..................
date1=$(date +%s)
mkdir ~/dvdtmp
dvdbackup -M -i "$DEVDVD" -o ~/dvdtmp
echo OK
echo
dvdtitle=$(ls ~/dvdtmp)
echo -n Conversion des fichiers DVD en ISO.....................
mkisofs -dvd-video -quiet -o ~/"$dvdtitle.iso" ~/dvdtmp/"$dvdtitle"/
echo OK
echo
echo -n Suppression des fichiers temporaires...................
rm -fr ~/dvdtmp
echo OK
date2=$(date +%s)
duree=$(($(($date2-$date1))/60))
echo
echo "Operation terminee (duree = "$duree" min), "$dvdtitle.iso" se trouve dans "$(dirname ~)"
sudo chmod +x /usr/bin/dvd2iso
 
sudo nano /usr/bin/dvd2isogui
#!/bin/sh
DEVDVD=$1
 
dvd2iso "$DEVDVD"|zenity --text-info --title "DVD2ISO" --width=400 --height=300
sudo chmod +x /usr/bin/dvd2isogui

Note de Mr_Djez :

J'ai apporté quelque modification a ce script (pour l'adapter a mes besoin) et je viens vous déposer le résultat ;)

On ne sais jamais si sa peut aider :D

ajout significatif:

  • vérification de l'espace disponible avant traitement
  • vérification des dépendances
3 variables sont "potentiellement" a définir manuellement pour l'adapté a votre systeme:
  • dvd_dev = chemin absolut ver votre device dvd
  • rep_iso = chemin absolut ou seront stocké les image-dvd.iso
  • rep_app = chemin absolut ver le répertoire tampon utiliser par le script
#!/bin/sh
#####################################################################
# dvd2iso.sh
#
# permet, d'un clic de souris, après bien sûr avoir glissé un DVD 
# Vidéo dans le lecteur, de se retrouver avec une image ISO 
# fonctionnelle de ce DVD sur le disque dur.
#       ...
# Dépendance:
#		- dvdbackup
#		- mkisofs
#
# Auteur : 
#		- djoole 
#		- SandMan 
#		- mr_djez <djez.depannage> à <gmail> dot <com>
#
# Historique :
#       09/12/2010 (0.3) mr_djez
#               - mise en forme 
#               - ajout de commentaire 
#               - plusieurs petite modif (variable, expression, condition) ;) 
#		- modif sur le calcul du temps d'exécution
#		- testes présence des dépendances
#		- ajout de l'option 'udf' a mkisofs
#		- testes sur l'espace disponible 
#       19/12/2008 (0.2) SandMan
#               - ajoute répertoire temporaire
#               - calcul du temps
#       11/01/2007 (0.1) djoole
#               - écriture initiale
#####################################################################
 
# VERSION=0.3
 
# Heure de lancement
date_start=$(date +%s)
 
### Variable ( a modifier selon votre config ) 
# Device DVD 
dvd_dev=/dev/sr0
# Répertoire temporaire utiliser par le script 
# /!\ il sera crée et supprimé a chaque utilisation
rep_app=/tmp/dvd2iso-$date_start
# Répertoire stockage des iso
rep_iso=/media/Video
 
# Test des dépendance "dvdbackup"
which dvdbackup > /dev/null
if [ $? -eq 1 ] ; then
	printf "dvdbackup not found \ninstaller le paquet dvdbackup \n apt-get install dvdbackup\n"
	exit 1
fi
# Test des dépendance "mkisofs"
which mkisofs > /dev/null
if [ $? -eq 1 ] ; then
	printf "mkisofs not found!\ninstaller le paquet mkisofs \n apt-get install mkisofs\n"
	exit 1
fi
 
printf "\nCopie du DVD dans %s..................\n" $rep_app
# Création du répertoire
test ! -d $rep_app && mkdir $rep_app
# on lance le backup du dvd si il y a suffisamment d'espace libre
if [ $(df $rep_app | awk '/^\/dev/ {print $4}') -gt $(df $dvd_dev | awk '/^\/dev/ {print $3}') ] ; then
	# Backup du dvd
	dvdbackup -M -i "$dvd_dev" -o "$rep_app" && echo OK || echo FAIL
else
	printf "FAIL\n FATAL\: espace libre insuffisant sur %s\n" $rep_app.
fi
 
# Nom du dossier backup
dvdtitle=$(ls $rep_app)
 
printf "Conversion des fichiers DVD en ISO....................."
# on lance la création de l'iso si il y a suffisamment d'espace libre
if [ $(df $rep_iso | awk '/^\/dev/ {print $4}') -gt $(du $rep_app/$dvdtitle | tail -1 | awk '{print $1}') ] ; then
	# Création de l'iso
	mkisofs -dvd-video -udf -quiet -o "$rep_iso/$dvdtitle.iso" "$rep_app/$dvdtitle/" && echo OK || echo FAIL
else
	printf "FAIL\n FATAL\: espace libre insuffisant sur %s\n" $rep_iso
fi
 
printf "Suppression des fichiers temporaires..................."
# Efface les fichiers backup
rm -fr "$rep_app" && echo OK || echo FAIL
 
# Heure de fin 
date_stop=$(date +%s)
 
# Calcul de durée
duree_total_sec=$(expr $date_stop - $date_start)
duree_min=$(expr $duree_total_sec / 60)
duree_sec=$(expr $duree_total_sec % 60)
 
# Rapport
printf "\n=== Operation terminee ! ===\n \
 Duree: %d min %d sec\n \
 Fichier cree: %s.iso dans %s\n\n" $duree_min $duree_sec $dvdtitle $rep_iso
 
exit 0

—-

Contributeurs : djoole - (v0.1), SandMan - (v0.2), Mr_Djez - (v0.3)

  • dvd2iso.1292152770.txt.gz
  • Dernière modification: Le 18/04/2011, 14:59
  • (modification externe)