Hi all! I'm trying to get an external encoder in VirtualDub to work, but something is going wrong with the audio encoding using SoX. See the attached vdprof file which outputs MKV, h264 (x264), and WAV. The log keeps giving me the error message "cannot open test.mkv.wav". (I was naming the output file "test".) How can I fix this?
The goal is to output a 48kHz, 16-bit, stereo, PCM WAV file. I don't necessarily need to use SoX.
Any help would be greatly appreciated, thanks!
+ Reply to Thread
Results 1 to 30 of 42
-
Last edited by Shoal; 5th Jan 2016 at 12:27.
-
The first part ("-t wav -") tells SoX about the input options:
"-t wav" means it should expect wave format
"-" means it should expect input via pipe (not from a file). This is the same for x264, btw.
The second part are of course the output options:
"-t wav" means it should output wave format
"%(tempaudiofile)" is the file name of the output (the variable is filled out by VirtualDub automatically) -
Interesting, thanks! I would have never figured out the extra hyphen thing on my own!
-
Most command line encoders have a help file that lists all the commands. It was recommended to keep all encoders in C:\Tools along with a copy of cmd.exe. Then you can run commands from inside the folder and also makes it easier for users to exchange vdprof files without having to change the addresses of all the encoders.
Examples: double click cmd.exe an type...
x264.exe -h (for help file)
x264.exe --help (for long help file)
sox.exe -h
Code:Microsoft Windows XP [Version 6.1.7601] (C) Copyright 1985-2001 Microsoft Corp. C:\Tools>sox.exe -h sox.exe: SoX v14.4.2 Usage summary: [gopts] [[fopts] infile]... [fopts] outfile [effect [effopt]]... SPECIAL FILENAMES (infile, outfile): - Pipe/redirect input/output (stdin/stdout); may need -t -d, --default-device Use the default audio device (where available) -n, --null Use the `null' file handler; e.g. with synth effect -p, --sox-pipe Alias for `-t sox -' SPECIAL FILENAMES (infile only): "|program [options] ..." Pipe input from external program (where supported) http://server/file Use the given URL as input file (where supported) GLOBAL OPTIONS (gopts) (can be specified at any point before the first effect): --buffer BYTES Set the size of all processing buffers (default 8192) --clobber Don't prompt to overwrite output file (default) --combine concatenate Concatenate all input files (default for sox, rec) --combine sequence Sequence all input files (default for play) -D, --no-dither Don't dither automatically --dft-min NUM Minimum size (log2) for DFT processing (default 10) --effects-file FILENAME File containing effects and options -G, --guard Use temporary files to guard against clipping -h, --help Display version number and usage information --help-effect NAME Show usage of effect NAME, or NAME=all for all --help-format NAME Show info on format NAME, or NAME=all for all --i, --info Behave as soxi(1) --input-buffer BYTES Override the input buffer size (default: as --buffer) --no-clobber Prompt to overwrite output file -m, --combine mix Mix multiple input files (instead of concatenating) --combine mix-power Mix to equal power (instead of concatenating) -M, --combine merge Merge multiple input files (instead of concatenating) --magic Use `magic' file-type detection --multi-threaded Enable parallel effects channels processing --norm Guard (see --guard) & normalise --play-rate-arg ARG Default `rate' argument for auto-resample with `play' --plot gnuplot|octave Generate script to plot response of filter effect -q, --no-show-progress Run in quiet mode; opposite of -S --replay-gain track|album|off Default: off (sox, rec), track (play) -R Use default random numbers (same on each run of SoX) -S, --show-progress Display progress while processing audio data --single-threaded Disable parallel effects channels processing --temp DIRECTORY Specify the directory to use for temporary files -T, --combine multiply Multiply samples of corresponding channels from all input files (instead of concatenating) --version Display version number of SoX and exit -V[LEVEL] Increment or set verbosity level (default 2); levels: 1: failure messages 2: warnings 3: details of processing 4-6: increasing levels of debug messages FORMAT OPTIONS (fopts): Input file format options need only be supplied for files that are headerless. Output files will have the same format as the input file where possible and not overridden by any of various means including providing output format options. -v|--volume FACTOR Input file volume adjustment factor (real number) --ignore-length Ignore input file length given in header; read to EOF -t|--type FILETYPE File type of audio -e|--encoding ENCODING Set encoding (ENCODING may be one of signed-integer, unsigned-integer, floating-point, mu-law, a-law, ima-adpcm, ms-adpcm, gsm-full-rate) -b|--bits BITS Encoded sample size in bits -N|--reverse-nibbles Encoded nibble-order -X|--reverse-bits Encoded bit-order --endian little|big|swap Encoded byte-order; swap means opposite to default -L/-B/-x Short options for the above -c|--channels CHANNELS Number of channels of audio data; e.g. 2 = stereo -r|--rate RATE Sample rate of audio -C|--compression FACTOR Compression factor for output format --add-comment TEXT Append output file comment --comment TEXT Specify comment text for the output file --comment-file FILENAME File containing comment text for the output file --no-glob Don't `glob' wildcard match the following filename AUDIO FILE FORMATS: 8svx aif aifc aiff aiffc al amb amr-nb amr-wb anb au avr awb caf cdda cdr cvs cvsd cvu dat dvms f32 f4 f64 f8 fap flac fssd gsm gsrt hcom htk ima ircam la lpc lpc10 lu mat mat4 mat5 maud mp2 mp3 nist ogg paf prc pvf raw s1 s16 s2 s24 s3 s32 s4 s8 sb sd2 sds sf sl sln smp snd sndfile sndr sndt sou sox sph sw txw u1 u16 u2 u24 u3 u32 u4 u8 ub ul uw vms voc vorbis vox w64 wav wavpcm wv wve xa xi PLAYLIST FORMATS: m3u pls AUDIO DEVICE DRIVERS: waveaudio EFFECTS: allpass band bandpass bandreject bass bend biquad chorus channels compand contrast dcshift deemph delay dither divide+ downsample earwax echo echos equalizer fade fir firfit+ flanger gain highpass hilbert input# loudness lowpass mc ompand noiseprof noisered norm oops output# overdrive pad phaser pitch rate remix repeat reverb reverse riaa silence sin c spectrogram speed splice stat stats stretch swap synth tempo treble tremolo trim upsample vad vol * Deprecated effect + Experimental effect # LibSoX-only effect EFFECT OPTIONS (effopts): effect dependent; see --help-effect C:\Tools>
-
Good explannation.
I'm having a similar problem when I try to encode using aec3to to encode audio, instead of neroaacenc.
When using neroaacenc, my Command Arguments are:
Code:-q 0.15 -br 56 -normalize -ignorelength -if - -of "%(tempaudiofile)"
If I use eac3to with the same line, I get an error:
Code:Please specify the source and dest files first and then the options. <ERROR>
Code:-if - -of "%(tempaudiofile)" -q 0.15 -br 56 -normalize -ignorelength
Code:Please specify the source and dest files first and then the options. <ERROR>
Code:eac3to v3.31 command line: "B:\Programs\StaxRip\Apps\eac3to\eac3to.exe" -if - -of "D:\tests\sid.mkv.audio.aac" -q 0.15 -br 56 -normalize -ignorelength
Code:eac3to -quality=0.35 -normalize -resampleTo22050
What am I doing wrong?Thank you. -
eac3to does not support input via pipe thus is not suited to be used with VirtualDub's "external encoders" feature.(*)
I recommend qaac encoder. In tests it was best aac encoder and also has some features like for example normalization.
((*) Maybe there are some tricks like writing special batch file but let's keep it simple..) -
Thank you, sneaker.
After too many attempts to use eac3to without success, something was wrong and you came up in a good time.
Yes, I do want normalization.
Why neroaacenc won't normalize?
I'll try qaac encoder and put here my results.Thank you. -
I'm having troubles to match the correct command line...
May you, please, point me the right one?
I tried:
Code:-q 0.15 -normalize -i - -o "%(tempaudiofile)"
Code:-q 0.15 -normalize - -o "%(tempaudiofile)"
Code:The audio encoding proccess has prematurely exited with an error code of 2 (0000002).
And how to encode using 56 kb bitrate?
this option?:
Code:-c 56
Thank you. -
You are using a neroaac command. No good with qaac.
User Nologic has kindly uploaded a "vdprof" with a working qaac encoder and posted it here. Vdprofs (*.vdprof, a special text file with encoder settings) are the best way to get external encoders working quickly. They are explained here:Originally Posted by raffriff42
--tvbr 91 -q 2 --threading -i -o "%(tempaudiofile)" -
The commands for qaac are here. I see normalizing requires two passes. To get 2-pass to work with VirtualDub external encoders requires advanced skills.
I have the skills but not the inclination. If I wanted to normalize I would process the audio separately with another program and bring the result into VirtualDub with Audio from another file... -
Thank you, raffriff42.
Actually, I already do what you said about process normalize separately.
But if it was possible to process in the same time at External Encoder, it would better.
I'll try your tips and post results later.Thank you. -
When I start to make questions, I was just looking for a way to normalize audio in External Encoders, just like Staxrip does.
But I see now, it's not that simple.
Nologic profiles are very good. He also put batch and bin files in the pack.
Great help.
But there is no "normalize" command among all settings...
This command is driving to the same error:
Code:The audio encoding proccess has prematurely exited with an error code of 2 (0000002).
This link is outdated.
Latest version is 2.64.
Here a comparison.
You're right.
Going back to normalize audio with SoundForge before Vdub actions.
Or Staxrip's way.
You gave me an enormous amount of references to read and learn about.
Thanks.
I'll try to read them.
Meanwhile, if you know an easy way to normalize audio with External Encoders, let's hear that.Thank you. -
-
-
jairovital, you are welcome, it's a pleasure dealing with you. I think you're ready... ...for batch files. They're a little harder to set up and to use, but there is a big advantage: you get a full error log rather than the deaded "process has prematurely exited" message.
I believe DarrellS (who posted earlier) goes back as far and knows at least as much about vdprofs and batch files as I do. Budman1 too. One, or maybe both of them figured out how to do 2-pass video*, and if you can find and examine their batch files, you can probably find a way to do 2-pass audio.
*EDIT so did I, which I forgot about because I never use it - see here. But I think there are better solutions out there...Last edited by raffriff42; 26th Nov 2017 at 06:48.
-
You can also read the errors in VirtualDub's log. By default it only redirects stderr there but you can also set to redirect stdout. It depends on the encoding software which one you "need".
-
WAV radiobutton is already checked.
But still getting the same error.
Vdub log (F8) says the same error message:
Code:[E] Error: The audio encoding process has prematurely exited with an error code of 2 (00000002). Check the log for possible error messages.
Code:ERROR: CoreAudioToolbox.dll: No such module found.
Just that:
libsoxconvolver64.dll
libsoxr64.dll
qaac64.exe
refalac64.exeThank you. -
Thank you.
-
You need certain dlls from Apple.
1. Download makeportable.zip
2. Download iTunes (64) installer (do not install)
3. Download and install or use portable 7zip
4. Put "makeportable.cmd", iTunes installer (and 7zip portable exe) into same folder and run "makeportable.cmd"
5. Put all files from "QTfiles" into same folder as "qaac.exe" (or all files from "QTfiles64" into same folder as "qaac64.exe") -
regarding <anonymous pipe>, double check your hyphens. They mean the anonymous pipes stdin or stdout. For example,
Code:--tvbr 91 -q 2 --threading -i -o "%(tempaudiofile)" - ...............................................this ^ is really important
-
Hi. I just downloaded that vdprof file but when I tried importing it, I got the following error message:
The file contains an external encoder set called "Animated GIF" that already exists.
What should I do?
EDIT: I figured it out. I just highlighted the Animated GIF encoder set in VirtualDub and removed it. But now I'm having another problem. I tried creating an mp4 and got an error message. Here's the log.
[*] Beginning preview operation.
[i] Dub: Recompressing using format: RGB888.
[*] Ending operation.
[*] Beginning dub operation.
[i] Dub: Input (decompression) format is: YUV420.
[i] Dub: Output (compression) format is: YUV420.
[i] AudioEnc: qaac 2.47, CoreAudioToolbox 7.9.8.3
[i] AudioEnc: test.mp4.Audio.mp4
[i] AudioEnc: AAC-LC Encoder, TVBR q91, Quality 96
[i] AudioEnc: 0:00.960 (0.9x)
[i] AudioEnc: 0:01.000 (0.9x)
[i] AudioEnc: 48048/-1 samples processed in 0:01.078
[i] AudioEnc: Overall bitrate: 88.3316kbps
[i] AudioEnc: Optimizing...done
[i] Mux: AVC-H264 import - frame size 1432 x 1076 at 23.976 FPS
[i] Mux: Importing AVC-H264: |==== | (20/100)
[i] Mux: Importing AVC-H264: |===== | (28/100)
[i] Mux: Importing AVC-H264: |====== | (30/100)
[i] Mux: Importing AVC-H264: |====== | (32/100)
[i] Mux: Importing AVC-H264: |====== | (34/100)
[i] Mux: Importing AVC-H264: |======== | (42/100)
[i] Mux: Importing AVC-H264: |======== | (44/100)
[i] Mux: Importing AVC-H264: |========= | (47/100)
[i] Mux: Importing AVC-H264: |========= | (48/100)
[i] Mux: Importing AVC-H264: |=========== | (57/100)
[i] Mux: Importing AVC-H264: |=========== | (59/100)
[i] Mux: Importing AVC-H264: |============ | (62/100)
[i] Mux: Importing AVC-H264: |============ | (63/100)
[i] Mux: Importing AVC-H264: |============== | (73/100)
[i] Mux: Importing AVC-H264: |=============== | (76/100)
[i] Mux: Importing AVC-H264: |=============== | (79/100)
[i] Mux: Importing AVC-H264: |================ | (81/100)
[i] Mux: Importing AVC-H264: |================= | (88/100)
[i] Mux: Importing AVC-H264: |================= | (89/100)
[i] Mux: Importing AVC-H264: |================== | (92/100)
[i] Mux: Importing AVC-H264: |================== | (93/100)
[i] Mux: Importing AVC-H264: |=================== | (96/100)
[i] Mux: Importing AVC-H264: |=================== | (98/100)
[i] Mux: Importing AVC-H264: |=================== | (95/100)
[i] Mux:
[i] Mux: AVC Import results: 24 samples - Slices: 1 I 6 P 17 B - 1 SEI - 1 IDR
[i] Mux: Stream uses forward prediction - stream CTS offset: 2 frames
[i] Mux: [Importer] Unknown input file type for "test.mp4.m4a"
[i] Mux: Error importing test.mp4.m4a: Requested URL is not valid or cannot be
found
[E] Error: CLI: The multiplexing process failed with error code 1 (00000001).
Check the log for possible error messages.
[*] Ending operation.Last edited by Bruce Banner; 26th Nov 2017 at 17:19. Reason: Figured it out
-
from the log:
[i] Mux: [Importer] Unknown input file type for "test.mp4.m4a"
Check your audio encoder output file (example "%(outputname).Audio.mp3", but it can vary; the extension has to match the content of course) and your muxer input (should be "%(tempaudiofile)" with no added extension)Last edited by raffriff42; 26th Nov 2017 at 17:33.
-
-
One common issue is you have to enter the correct file extension in the final Save As dialog. It isn't filled in automatically, not correctly anyway.
Check the muxer settings just to be sure it's looking for "%(tempaudiofile)" and not something else.
>When you say the extension has to match the content, what do you mean by the content?
Just reminding people not to use .mp3 from my example, unless that's what the file really is.
Quoting myself from here,'Output filename' is the filename of the temporary file that the encoder creates. By default it will be %(outputname).audio or %(outputname).video, but it is recommended to change '.audio' and '.video' to the correct extension as some multiplexers rely on extensions for file type detection.Code:[*] Beginning dub operation. [i] Dub: Input (decompression) format is: YUV420. [i] Dub: Output (compression) format is: YUV420. [i] AudioEnc: qaac 2.47, CoreAudioToolbox 7.9.8.3 [i] AudioEnc: test.mp4.Audio.mp4 [i] AudioEnc: AAC-LC Encoder, TVBR q91, Quality 96 [i] AudioEnc: 0:00.960 (0.9x) [i] AudioEnc: 0:01.000 (0.9x) [i] AudioEnc: 48048/-1 samples processed in 0:01.078 [i] AudioEnc: Overall bitrate: 88.3316kbps [i] AudioEnc: Optimizing...done [i] Mux: AVC-H264 import - frame size 1432 x 1076 at 23.976 FPS [i] Mux: Importing AVC-H264: |==== | (20/100) [i] Mux: Importing AVC-H264: |=================== | (96/100) [i] Mux: Importing AVC-H264: |=================== | (98/100) [i] Mux: Importing AVC-H264: |=================== | (95/100) [i] Mux: [i] Mux: AVC Import results: 24 samples - Slices: 1 I 6 P 17 B - 1 SEI - 1 IDR [i] Mux: Stream uses forward prediction - stream CTS offset: 2 frames [i] Mux: [Importer] Unknown input file type for "test.mp4.m4a" [i] Mux: Error importing test.mp4.m4a: Requested URL is not valid or cannot be found [E] Error: CLI: The multiplexing process failed with error code 1 (00000001). Check the log for possible error messages.[*] Ending operation.
Similar Threads
-
Virtualdub External Encoder feature.
By racer-x in forum Newbie / General discussionsReplies: 148Last Post: 13th Jul 2024, 19:13 -
External encoder in Virtualdub fails at multiplex
By sum_guy in forum Video ConversionReplies: 3Last Post: 28th Sep 2015, 16:48 -
how to use mencoder as external encoder of virtualdub?
By ntg029learner in forum Newbie / General discussionsReplies: 0Last Post: 6th Dec 2014, 23:37 -
Use Badaboom as an external encoder in Virtualdub
By kaskaļ in forum Video ConversionReplies: 5Last Post: 21st Oct 2011, 13:38 -
External Drive Issues
By Squid_uk in forum ComputerReplies: 9Last Post: 18th Aug 2011, 04:52