Log in

View Full Version : Decode DTS files with Unspecified or Open Bitrate


Pages : 1 [2]

Rockaria
11th December 2005, 04:13
2) DSP functions. You need define a new function, then click in New and fill the fields:
Name: ssrc 5.1 48000 #or something like this to remember the function used
AVS Script: #type or copy from here:
a = last
b = GetChannel(a, 1, 2).SSRC(48000)
c = GetChannel(a, 3, 4).SSRC(48000)
d = GetChannel(a, 5, 6).SSRC(48000)
MergeChannels(b, c, d)
Load Plugins: #not needed, all AviSynth internal plugins
...
AVS Script: 6==Audiochannels(last)?GetChannel(last,1,3,2,5,6,4):last
...
In DSP you can use the internal function 'Normalize to 100%' (after the 'ssrc 5.1 48000', use up/down buttons).

If the above user function(precisely speaking, the codeblock is better be placed in a user function which returns a processed audio clip, especially when used with the (future virsion of) BeHappy) is not for downmix but for resampling, you can simply use vClip.SSRC(48000) or ResampleAudio(48000). The former is expected higher quality.
If the clip reference is omitted, the 'last' defined clip is pointed as the global variable last.

Any plugins installed in the avisynth's plugin directory need not be loaded explicitly also.
The channel remapping mentioned above is for oggenc(2) to be played on winamp, foobar, ffdshow enabled players. I am not sure if it is same to ac3 encoder(ffmpeg) though.
But the point I want to mention here is you can simply use GetChannel(1,3,2,5,6,4) if you are sure the source contains 6ch.

The default Normalize() is preferred if you want a max-no-clipping-scanning.
If you have any Replaygain dB value from foobar2k or any tools, the Amplify(..) function is preferred of course.

The azidts is said using intervideo decoder dsfilter which is not free. So you may want to use the NicDts plugin for dts or ffdshow for dtswav to be streamed to avisynth->6ch wav->wavewizard-> surecode dts/ softencode ac3. If you want the ac3 encoding with limited encoding options, the BeHappy(NicDts->ffmpeg) seems to be the economic way.

tebasuna51
12th December 2005, 21:30
Like Rockaria say, only SSRC() is needed for mutichannel stream, and you can use only the GetChannel(last,1,3,2,5,6,4) without the conditional (correct for ac3 5.1). Use:

2) DSP functions. You need define a new function, then click in New and fill the fields:
Name: ssrc 48000 #or something like this to remember the function used
AVS Script: SSRC(48000)
Load Plugins: #not needed, AviSynth internal plugin

3) Destination. Click in New and fill the fields:
Name: ffmpeg 5.1 Ac3enc #or something like this to remember the encoder used
Executable: D:\BeHappy\ffmpeg.exe #use Browse... to select you path
Extension: ac3
Arguments: -i - -ab 448 "{0}" #or your desired bitrate
AVS Script: GetChannel(last,1,3,2,5,6,4)

And, you can make another to encode ac3 2.0:
3') Destination. Click in New and fill the fields:
Name: ffmpeg 2.0 Ac3enc #or something like this to remember the encoder used
Executable: D:\BeHappy\ffmpeg.exe #use Browse... to select you path
Extension: ac3
Arguments: -i - -ab 192 "{0}" #or your desired bitrate
AVS Script: #Not necessary

FutureCow
13th December 2005, 00:00
with behappy i get the error:

Error: Can't find audio stream!

tebasuna51
13th December 2005, 03:03
With this simple flow:

"NicDts" -> SSRC(48000) -> [Normalice()] -> "ffmpeg 5.1 Ac3en"

this error may be generated in decoder pass "NicDts". If you use your Track02.dts (correct dts, not the dtswav) like input file and NicDTSSource("{0}") is correctly typed, I don't know what is the problem.

Like I say before this is a experimental tool and can't help you very much. My log in test is:

Source: D:\...\Test.dts
Target: D:\...\Test.ac3
Found Audio Stream
Channels=6, BitsPerSample=16, SampleRate=48000Hz
Writing Header...
Writing Data...
Finalizing encoder...
Done!

You can try the more simple flow:

"NicDts" -> WAV

to fix the error in the decoder (you can Abort without finish). My log is:

Source: D:\...\Test.dts
Target: D:\...\Test.wav
Found Audio Stream
Channels=6, BitsPerSample=16, SampleRate=44100Hz
Writing Header...
Writing Data...
Done!

Like you can see the samplerate without SSRC(48000) is 44100, and works for me.

doja
5th February 2006, 14:07
Hello,
I'm trying to convert my DTS Audio Cd in DVD. I've just read the thread but I always the same have problem.
This is my step:

BeSplit.exe -core( -input demo.wav -output demo.dts -logfile besplit.log -type dtswav )

With BeSweet.dll *SPECIAL*

azidts -core( -input demo.dts -6ch -output demo- -logfile azidts.log ) -ota( -fs 44100 ) -ssrc( --rate 48000 )

Finally I use SurCode DVD DTS with the six mono wave at 48000 Khz produced by azidts: the result are not playable! (with VLC)

But if I encode the same six mono wave (at 44100 Khz) with Surcode Cd DTS it works! VLC can play it!

Where I'm wrong?

Thanks in advance,
Doja