Post subject: nero AAC... 4GiB input limit?
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
24347.420s corresponds to 4GiB of input data. Don't really understand why this is happening; the wav sox sends out has no length information (as it warns) and nero is given the -ignorelength parameter which makes it ignore the wav length fields and instead trigger on EOF. This command line has worked for other AAC encodes I've made... nero must internally count the number of bytes read and processed with a 32 bit int.
##EXECUTING##
##"avs2pipemod\avs2pipemod.exe -wav 3489S.avs | sox\sox.exe -t wav - -t wav - tr
im 4672s | neroaac\win32\neroaacenc.exe -q 0.25 -ignorelength -if - -of temp\aac
.mp4"##
*************************************************************
*                                                           *
*  Nero AAC Encoder                                         *
*  Copyright 2009 Nero AG                                   *
*  All Rights Reserved Worldwide                            *
*                                                           *
*  Package build date: Feb 18 2010                          *
*  Package version:    1.5.4.0                              *
*                                                           *
*  See -help for a complete list of available parameters.   *
*                                                           *
*************************************************************

avs2pipemod[info]: writing 29065.420 seconds of 44100 Hz, 2 channel audio.
avs2pipemod[warning]: audio size over 32bit limit (4GB), clients may truncate au
dio.
sox\sox.exe WARN wav: Length in output .wav header will be wrong since can't see
k to fix it
Processed 24347 seconds...
avs2pipemod[info]: finished, wrote 24347.420 seconds [83%].
avs2pipemod[info]: total elapsed time is 365.124 sec.
avs2pipemod[error]: only wrote 1073721225 of 1281785025 samples.
Player (66)
Joined: 4/21/2011
Posts: 232
I use SoundOut in the avs.
SoundOut(\
output = "CMD",\
filename = "C:\...\out.m4a",\
executable = "C:\...\neroAacEnc.exe",\
prefilename = " -if - -of ",\
postfilename = " -q 0.25 -ignorelength")
Have you checked that the avs has sound the whole time? Avisource has a limit when opening wavs.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
nanogyth wrote:
I use SoundOut in the avs.
SoundOut(\
output = "CMD",\
filename = "C:\...\out.m4a",\
executable = "C:\...\neroAacEnc.exe",\
prefilename = " -if - -of ",\
postfilename = " -q 0.25 -ignorelength")
Have you checked that the avs has sound the whole time? Avisource has a limit when opening wavs.
The original source is 3 Wav files with 2GiB splitting (psxjin output). The script previews correctly, and my vorbis audio dump works correctly (command line output looks fine, and the file plays correctly with correct audio and sync the entire way through). SoundOut() looks like loads of fun, but do you have any reason to believe it will actually behave differently in >4GiB cases? It's doing essentially the same thing as avs2pipemod; calling neroaacenc with audio coming off the stdin pipe.
Player (66)
Joined: 4/21/2011
Posts: 232
natt wrote:
but do you have any reason to believe it will actually behave differently in >4GiB cases?
It worked when I was dealing with 4.8G of sound when none of the command line pipings I tried did.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
nanogyth wrote:
It worked when I was dealing with 4.8G of sound when none of the command line pipings I tried did.
The main difference then would be that I'm using sox in the middle and you aren't, and that's what led me to my solution. Apparently, over 4GiB sox must also be told to ignore the wav header length:
avs2pipemod\avs2pipemod.exe -wav 3489S.avs | sox\sox.exe -t wav --ignore-length - -t wav - trim 4672s | neroaac\win32\neroaacenc.exe -q 0.25 -ignorelength -if - -of temp\aac.mp4
works fine