[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debian]:mp3 schreiben...



Hallo Jochen,

Jochen Dörnhoff schrieb am Montag, den 13. Dezember 1999:

>cda2wav klappt ja auch, aber der Encoder "lame" gibt 
>andauernd die Fehlermeldung "Could not find XXXXX.wav" aus

Ich persönlich nutze cdparanoia, weil das im Zweifelsfalle wirklich
bitgenaue Kopien liefert, aber Dein Problem ist ein anderes. Ich
behaupte einfach mal, daß Du im Makefile für Lame mit -ltermcap
kompiliert hast. libtermcap ist gegen libc5 gelinkt und der Mischmasch
mit "normalen" Anwendungen (libc6) führt zu heftigen Problemen.

Du kannst Dein Problem auf zwei Arten abstellen, die einfachste ist im
Makefile folgendes einstellen:

#######################################################################
# LINUX
#######################################################################
ifeq ($(UNAME),Linux)
#  remove if you do not have GTK or do not want the GTK frame analyzer
   GTK = -DHAVEGTK `gtk-config --cflags`
   GTKLIBS = `gtk-config --libs`
# Comment out next 2 lines if you want to remove VBR histogram
# capability
#   BRHIST_SWITCH = -DBRHIST      <----   diese beiden Zeilen
#   LIBTERMCAP = -ltermcap        <----   auskommentieren!

und nochmals kompilieren, dann hast Du aber kein VBR Histogramm mehr.


Die zweite Möglichkeit ist -ltermcap durch das modernene -lncurses
ersetzen, allerdings hat Lame dann einen Bug, das Histogramm skippt
sehr unschön. Öffne lame.c und ersetze die Subroutine nahe Zeile 850
durch folgendes (gilt für Lame Version 3.57!). Die höheren Versionen
werden den Bug nicht mehr haben, bzw. automatisch -lncurses drin
haben.



void brhist_init(int br_min, int br_max)
{
  int i;
  char term_buff[1024];
  layer *info = fr_ps.header;
  char *termname;
  char *tp;
  char tc[10];

  for(i = 0; i < 15; i++)
    {
      sprintf(brhist_bps[i], "%3d:", bitrate[info->version][info->lay-1][i]);
      brhist_count[i] = 0;
      brhist_temp[i] = 0;
    }

  brhist_vbrmin = br_min;
  brhist_vbrmax = br_max;

  brhist_max = 0;

  memset(&brhist_bar[0], '*', BRHIST_BARMAX);
  brhist_bar[BRHIST_BARMAX] = '\0';
  memset(&brhist_spc[0], ' ', BRHIST_BARMAX);
  brhist_spc[BRHIST_BARMAX] = '\0';
  brhist_backcur[0] = '\0';

  if ((termname = getenv("TERM")) == NULL)
    {
      fprintf(stderr, "can't get TERM environment string.\n");
      disp_brhist = 0;
      return;
    }

  if (tgetent(term_buff, termname) != 1)
    {
      fprintf(stderr, "can't find termcap entry: %s\n", termname);
      disp_brhist = 0;
      return;
    }

  tc[0] = '\0';
  tp = &tc[0];
  tp=tgetstr("up", &tp);
  brhist_backcur[0] = '\0';
  for(i = br_min-1; i <= br_max; i++)
    strcat(brhist_backcur, tp);
  setbuf(stderr, stderr_buff);
}


Dann läuft Lame perfekt.

>Was ist hier falsch ???

Einiges wie Du siehst ;-) Und Du möchtest lame lieber so aufrufen:

lame -v -V0 -h -k in.wav out.mp3

wenn es Dir um Qualität geht.

FFPX   Frederick


------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder:     774


Reply to: