Szinten esperes

Hatha valakinek hasznos.. tudom, lehetne szebben is, kevesebb sed-del, mas shellben, $() hasznalataval meg sok egyeb modon.. mehetne lame-be a kimenet, de nekem a Vorbis teljesen jo.. (a basename-nek direkt nem adtam meg, hogy .flv a kiterjesztese, mert igy az .avi-t ugyanugy eszi)
Ha a bemenet fileneve szerzo_vagy_eloado_neve_-_szam_cime.akarmi formatumu, akkor kitolti a tag-eket (ill. ha a szerzo nem szerepel, akkor az egesz a title lesz). A DownloadHelper Youtube-rol tipikusan ilyen neveket general.

nyos@hex:~/bin$ cat flv2ogg


#!/bin/bash

for flv in "$@"
do
  b=`basename "$flv"|sed -e 's/\.[^.]*$//'`
  ogg="${b}.ogg"
  mplayer -vo null -ao pcm -benchmark "$flv"
  
  a=""
  t=""
  if echo "$b"|grep -
  then
    t=`echo "$b"|sed -e 's/^\([^-]*\)-\([^-]*\)*$/\2/'|tr '_' ' '|sed -e 's/^\s*//' -e 's/\s*$//'`
    a=`echo "$b"|sed -e 's/^\([^-]*\)-\([^-]*\)*$/\1/'|tr '_' ' '|sed -e 's/^\s*//' -e 's/\s*$//'`
  else
    a='unknown artist'
    t=`echo "$b"|tr '_' ' '|sed -e 's/^\s*//' -e 's/\s*$//'`
  fi
  
  oggenc -b 256 -t "$t" -a "$a" audiodump.wav -o "$ogg" && rm audiodump.wav
done

Hozzászólások

Az

a=`echo "$b"|sed -e 's/^\([^-]*\)-\([^-]*\)*$/\2/'|tr '_' ' '|sed -e 's/^\s*//' -e 's/\s*$//'`

nem

a=`echo "$b"|sed -e 's/^\([^-]*\)-\([^-]*\)*$/\1/'|tr '_' ' '|sed -e 's/^\s*//' -e 's/\s*$//'`

akar lenni véletlenül?

Ha szóköz van a az elérési útban, filenévben, fejre fog állni. A másik dolog, hogy nem kell basename, sed az elején:


b="${flv##*/}"
b="${b%.*}"

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE

A parancssorhoz:


mplayer -vo null -ao pcm -benchmark "$flv"

Ajánlom ezt a kiegészítést:


mplayer -vc null -vo null -ao pcm:fast -benchmark "$flv"

Sokkal gyorsabban végez.

Ha pedig nem akarod hogy teleszemetelje a képernyőt mindenféle üzenettel akkor még ez is kell:


mplayer -really-quiet -vc null -vo null -ao pcm:fast -benchmark "$flv"