Salut a tous,
Pour mon programme de rip de dvd, j'utilise mplayer pour qu'il rogne les bandes noires, pour se faire j'utilise ca :
Les deux problèmes sont d'une part, que l'utilisateur est obligé d'appuyer sur "echap" pour terminer la détection du rognage et d'autre part, que cette détection s'étend sur plusieurs lignes, exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #!/usr/bin/perl use strict; use warnings; use IO::Pipe; print " ATTENTION ! Pour sortir appuyez deux fois sur 'ECHAP' !\n"; sleep 3; my $d_cropp = new IO::Pipe(); $d_cropp->reader("mplayer -dvd-device /mnt/loop dvd://3 -ao null -vo null -vf cropdetect -sb 50000000 -endpos 5001000o"); { while( defined( my $line = $d_cropp->getline ) ) { print $line if $line =~ m/^.*CROP/; } }
Ce que j'aimerais faire c'est, dans un premier temps, que ca "print" que sur une seule ligne (comprendre il print la ligne commençant par [CROP], puis il l'efface et il reprint par dessus) et, dans un deuxième temps, envoyé un "kill" au processus après un certain temps.[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
[CROP] Aire coupée: X: 0..719 Y: 0..573 (-vf crop=720:560:0:8).0
Note : Ceux qui connaissent un peu mplayer vont me dire d'utiliser les options "-sb/-ss" et "-endpos" afin de ne pas envoyer de signal kill, mais il se trouve que sur mon système ces options ont un comportement vraiment ... bizarre (les positions sont changeantes selon le dvd).
Alors, comment faire ?
Jjeje007
Partager