HydrogenAudio

Lossy Audio Compression => Speech Codecs => Topic started by: Anakunda on 2010-09-29 11:42:12

Title: Speexenc crushing
Post by: Anakunda on 2010-09-29 11:42:12
Greetings,

need convert some audio files to SPX. Used the free binaries from speex.org, particulary speexenc.exe 1.2b3.
I use this string for fb2k converter:

Code: [Select]
--vbr --quality 8 - %d

I believe there's nothing bad on it.

But suddenly conversin crashes. Error report here:

Code: [Select]
1 out of 1 tracks converted with major problems.

Source: "E:\xfer\01 - Jambory.mp3"
  An error occurred while writing to file (The encoder has terminated prematurely with code -1073741819 (0xC0000005); please re-check parameters) : "C:\Users\Anakunda\AppData\Local\Temp\01 - Jambory.spx"
Additional information:
Encoder stream format: 44100Hz / 2ch / 16bps
Command line: "D:\media\speex\speexenc.exe" --vbr --quality 8 - "01 - Jambory.spx"
Working folder: C:\Users\Anakunda\AppData\Local\Temp\

  Conversion failed: The encoder has terminated prematurely with code -1073741819 (0xC0000005); please re-check parameters


speexenc does start, at least to print commandline help, just no conversion

Using Win7/x64
Title: Speexenc crushing
Post by: ojdo on 2010-09-29 11:52:24
When I read the manual (http://www.speex.org/docs/manual/speex-manual/node6.html) I see the options begining with a single hyphen "-vbr", not "--vbr". And -quality 8 is not necessary as it is the default value.

Edit: removed wrong suggestion
Title: Speexenc crushing
Post by: Anakunda on 2010-09-29 12:15:39
Hey thanks!

you were quite rite with the switches.
Now using %s does make work !

A side question, how do I force foobar2000 to use pipe instead file I/O ?
Title: Speexenc crushing
Post by: Yirkha on 2010-09-29 23:58:52
fb2k uses pipe unless you specify %s, then it uses a temporary .wav file.
The reason for crashing when using pipe input (-) might be that fb2k AFAIK uses 0xFFFFFFFF as file length in the dummy WAVE header in piped data.
Title: Speexenc crushing
Post by: Speech on 2011-06-08 00:22:58
I'm trying to convert audio files with speexenc.exe. Its basic syntax is extremely simply:
Code: [Select]
speexenc.exe inputfilename.wav outputfilename.spx


However, when I define a conversion preset, I see that you can only define the output file name (%d); you can't define the input file name.

I would get the following error with the option %d:

Code: [Select]
1 out of 1 tracks converted with major problems.

Source: "D:\My documents\test.wav"
  An error occurred while writing to file (The encoder has terminated prematurely with code 1 (0x00000001); please re-check parameters) : "D:\My documents\test.spx"
  Additional information:
  Encoder stream format: 16000Hz / 1ch / 24bps
  Command line: "C:\Program Files (x86)\foobar2000\speexenc.exe" "test.spx"
  Working folder: D:\My documents\
  
  Conversion failed: The encoder has terminated prematurely with code 1 (0x00000001); please re-check parameters


I would get the following error with the option %s %d:

Code: [Select]
1 out of 1 tracks converted with major problems.

Source: "D:\My documents\test.wav"
  An error occurred while finalizing the encoding process (Object not found) : "D:\My documents\test.spx"
  Conversion failed: Object not found


This would be extremely basic, but I didn't find any information in the manual: where is the input file with default parameters like these ("-S --noreplaygain -V 2 - %d")?  Or, how do you define where the input file would be placed in the command line?
Title: Speexenc crushing
Post by: klonuo on 2011-06-08 01:24:50
where is the input file with default parameters like these ("-S --noreplaygain -V 2 - %d")?

It's in last dash, as pipe which speexenc does not understand so you have to use temp file %s
Or, how do you define where the input file would be placed in the command line?

It's in Destination section in converter

edit: Destination section is for output file of course. For input file you don't have to worry about it (foobar uses %temp% folder)
Title: Speexenc crushing
Post by: Speech on 2011-06-08 01:33:33
Thank you for your answer, but it's not clear for me: what would you put in the "parameters" field then? "%s %d" or "%d" don't work.
Title: Speexenc crushing
Post by: klonuo on 2011-06-08 01:35:30
%s is temporary input file
%d is destination file

for speexenc, you should use both, as it does not accept piping from foobar
Title: Speexenc crushing
Post by: lvqcl on 2011-06-08 01:45:24
"%s %d" should work.

But sometimes foobar2000 cannot recognize speex files, don't know why.

Also, only 8 and 16-bit WAV files are supported. Set "Highest BPS mode supported" to 16.
Title: Speexenc crushing
Post by: Speech on 2011-06-08 01:50:06
Thanks again, but what you say doesn't seem to work (see the output window I posted before).
Here are two screen captures; is there anything wrong with these?

(http://img64.imageshack.us/img64/1544/imagedupressepapiers2.png)

(http://img26.imageshack.us/img26/7435/imagedupressepapiers3.png)
Title: Speexenc crushing
Post by: klonuo on 2011-06-08 01:54:01
If "source track folder" isn't read only medium, then I don't see what could be wrong

edit: OK, lvqcl posted more probable problem
Title: Speexenc crushing
Post by: Speech on 2011-06-08 01:56:25
No, just My documents on the hard disk. Does it work for you? If not, I think this should be considered as a bug.
Title: Speexenc crushing
Post by: lvqcl on 2011-06-08 01:58:34
In case you didn't mention: I edited my previous post and added to it:

Also, only 8 and 16-bit WAV files are supported. Set "Highest BPS mode supported" to 16.
Title: Speexenc crushing
Post by: lvqcl on 2011-06-08 02:03:02
and make sure you don't have foo_input_celt installed.
Title: Speexenc crushing
Post by: Speech on 2011-06-08 02:05:31
Yes! Setting the Highest BPS mode supported to 16 solved the problem (and I don't have foo_input_celt).  Thank you both for your help.