[bash/vlc] DVD rippen naar WAV

Pagina: 1
Acties:

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 30-01 21:17
Ik wil graag een paar muziek-dvd's op een CD zetten. Dat moet lukken, VLC kan dat allemaal. 't kost alleen nogal wat moeite: menu file->wizard->25x klikken per nummer... dat wordt dus scripten. Ik heb dus in bash iets in elkaar geknutseld:
Bash:
1
2
3
4
for i in `seq 1 15`
do
    echo vlc dvdsimple:///dev/scd0@$i :audio-track=0 :sout=\"\#transcode\{acodec=s16l,ab=192,channels=2\}:duplicate\{dst=std\{access=file,mux=wav,dst=\'aangenaam_jazz_$i.wav\'\}\}\" vlc:quit
done

Als ik dit uitvoer, kan ik de uitvoer copy/pasten op de commandline, en werkt het. Waarom kan ik niet gewoon echo weghalen? Alles wat een escape nodig heeft, heb ik toch al een escape gegeven?

Verder heb ik nog een probleem: ik wil graag 1x vlc openen, die alle 15 tracks overspoelt. Volgens mij moet dit kunnen, maar ik kan nergens een goeie uitleg vinden van de script-opties. Iemand een suggestie?

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01-02 15:11

DataGhost

iPL dev

Waarschijnlijk omdat de " enzo weer escaped worden in je command. Voor een echo escape je ze omdat ze anders gewoon verdwijnen. Als ik naar de volgende output kijk:

# for i in `seq 1 15`
> do
>     echo vlc dvdsimple:///dev/scd0@$i :audio-track=0 :sout=\"\#transcode\{acodec=s16l,ab=192,channels=2\}:duplicate\{dst=std\{access=file,mux=wav,dst=\'aangenaam_jazz_$i.wav\'\}\}\" vlc:quit
> done
       vlc dvdsimple:///dev/scd0@1 :audio-track=0 :sout="#transcode{acodec=s16l,ab=192,channels=2}:duplicate{dst=std{access=file,mux=wav,dst='aangenaam_jazz_1.wav'}}" vlc:quit

# echo vlc dvdsimple:///dev/scd0@1 :audio-track=0 :sout="#transcode{acodec=s16l,ab=192,channels=2}:duplicate{dst=std{access=file,mux=wav,dst='aangenaam_jazz_1.wav'}}" vlc:quit
       vlc dvdsimple:///dev/scd0@1 :audio-track=0 :sout=#transcode{acodec=s16l,ab=192,channels=2}:duplicate{dst=std{access=file,mux=wav,dst='aangenaam_jazz_1.wav'}} vlc:quit

zie je dat de " verdwijnen bij een echo, zoals ik al zei. De rest blijft echter staan, er is dus volgens mij geen reden om de andere tekens te escapen. In je script wil je de " ook niet escapen als je geen echo uitvoert, het blijft er dan gewoon goed uit zien :)

Ook zou ik ${i} in plaats van $i gebruiken, je kan nog wel eens in de knoop komen met sommige variabelenamen en/of context :)

[ Voor 5% gewijzigd door DataGhost op 07-07-2007 15:08 ]


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 30-01 21:17
Hey, het werkt :X

Ander vraagje: hoe kan je een commando 'debuggen' zoals dat 'vroegah' met ms-dos werkte (als je ECHO OFF vergat)?

Ook zou ik nog graag willen weten hoe ik dit trucje voor meerdere bestanden tegelijk kan doen, die vlc command line is me een raadsel.

  • Straphka
  • Registratie: Augustus 2002
  • Niet online
Eerste hit op google als je zoekt op "debugging bash scripts"

Voor in de plaats "#!/bin/bash" doe je "#!/bin/bash -x"