Log in

View Full Version : Another flexible and extensible way of multi channel audio encoding using Avisynth.


Pages : [1] 2 3 4

Rockaria
21st November 2005, 17:49
The foobar2k v0.83 has been stable(in 6ch decoding & encoding) until nero released the nero 7 with different channel mapping(!) and realizing the next version of foobar has been in beta state very long. The videolan supports variety of formats of decoding but somewhat lacks in bitrates and formats for encoding. The ffdshow is only good for wav, ac3 and some few other format dsfilter encoders. And other tools require lots of broken steps and spaces until to get the final results, which is where we are asking desperately for good feature-rich flexible comprehensive integrated tools.

While reviewing the Avisynth section, thread by thread, I found there already have been good efforts and solutions for multichannel audio encoding for variety of effects and formats which only requires some integrations. The avs2wav is an avsynth client application which can toss multi channel WAV stream to other pipe capable encoders and the avisynth can perform some basic functionalities such as channel remapping and volume gaining. The avisynth can also read virtually all the formats through own plugins, dsfilters and graphedit files. For an example you need the graphedit .grf file to feed to serve the audio frame(dtsac3 source-> ffdshow to decode the dts signal in the dtswav). But for DTS files you cannot use the directshow filter directly or indirectly because of the wrong 48k sample rate information for 44.1k 6ch streams(don't know which tool is responsible), which require the NIC's plugin to be used. Also you may need a hexeditor to extract some blocks of preceding filler(after the header) to make the dtswav decoders(videolan, foobar, ffdshow) seek properly.

Below are the tools and scripts required for my tests encoding with correct channel mappings for different decoders and encoders. The 6ch ac3 speaker test file would be useful to identify the channels correctly by playing the avs script using MPC or any dsfilter enabled players. The encoders are in the same folder and the avsynth plugins are installed in its own plugin folder.
The launcher user interface(shell or gui) wouldn't be that hard to make, for those who transcode a lot, which is left for who actually need it while I am more focused on the existing and ever-growing features of avisynth.

My poor ears cannot find any differnce between vbr he q6 and q8(forced) of nero aacenc, except the result file size..
And the v7 aacenc32.dll is almost half the size of the latest v6 version, which looks like nero excluded all the test routines or actually OPTIMIZED it?(no it requires mfc71.dll).

<6ch cli encoders supporting stdin>
http://www.saunalahti.fi/~cse/files/naac.zip : used with aac.dll & aacenc32.dll of nero 6/7 in the nero plugin directory, can be overrided by local placement
http://www.free-codecs.com/download/FLAC.htm : better space usage than wav
http://www.free-codecs.com/download/Vorbis.htm : no good results for me
http://www.free-codecs.com/download/WavPack.htm : lossy/lossless
...

<avisynth related>
http://www.avisynth.org/ : channel mapping, mixing, volume gain control, resampling...
http://www.avisynth.org/warpenterprises/files/nicaudio_25_dll_20050704.zip : ac3, dts, mpa ..
http://home.pages.at/kassandro/avs2wav.rar : 6ch std/wav out
...

<graphedit related>
http://home.comcast.net/%7eappleguru/graphedt_october2004.zip : decoding, encoding, DSPs
http://www.free-codecs.com/download/DTS_AC3_Source_Filter.htm : dts,ac3 source filter
http://fin.afterdawn.com/ohjelmat/video_ohjelmat/videocodecit/ffdshow.cfm : decoding(includes dtswav), channel mapping, volume gain, ac3 encoding, resampling, up/down mixing and some DSPs
...

<other useful files>
http://www.needfulthings.host.sk/tools : WaveWizard v0.54b (http://www.needfulthings.host.sk/tools/item.php?id=28) and many good tools...
http://jsoto.posunplugged.com/audiotools.htm : multiwav_1001_exe.zip (http://jsoto.posunplugged.com/tools/multiwav_1001_exe.zip) delaycut_1204_exe.zip (http://jsoto.posunplugged.com/tools/delaycut_1204_exe.zip)
http://www.seemoredigital.net/51_Test_Encodes/51_AV_Setup_Test_Files.html : AC3 - 6Ch 'Speaker Test'.7z for setting up the channel orders
http://www.free-codecs.com/download/Media_Player_Classic.htm : for playing avs scripts.
http://www.hiddensoft.com/autoit3/ : an easy gui script programming
http://www.mlin.net/misc.shtml : PathCopyEx.msi (http://www.mlin.net/files/PathCopyEx.msi), RegSvrEx.zip (http://www.mlin.net/files/RegSvrEx.zip)
and doom9's Avisynth section (http://forum.doom9.org/forumdisplay.php?f=33)
...
other recent resources (http://forum.doom9.org/showpost.php?p=779783&postcount=3) : Sox Filter, ffmpeg, Lame...

<aac.avs> : avs script#a=DirectShowSource("C:\a n y\Ds Filter.wma")
#DirectShowSource("c:\44.1k\DtsWav.WAV")
#DirectShowSource("GraphEdit.GRF")
#NicDTSSource("DtsMusic.DTS")
NicAC3Source("DdMusic.AC3")
#GetChannel(a,2,3,1,6,4,5).SSRC(48000).Normalize()
GetChannel(a,2,3,1,6,4,5)
#SSRC(48000)
Normalize()

#below are temporary fix for avs2wav : use SSRC if the 44.1k streaming is pending
#SSRC(48000).SSRC(44100)
#AudioDubEx(Trim(Colorbars(320,240),0,1),last)


<avs2aac.cmd> : simple encoding shell script
avs2wav.exe aac.avs - | naac -profile he -vbr 8 - 8.m4a
rem avs2wav aac.avs avs2wav.wav
rem MakeAVIS.exe -i aac.avs -a makeavis.wav

rem ---somebody might be able to enable the flexibility of behappy using IMPORT() & || *.avsi
rem bepipe.exe --script "import(^ogg2ch.avs^)" | oggenc2.exe -q5 - -o 2.ogg
rem bepipe.exe --script "import(^aac6ch.avs^)" | naac -profile he -vbr 5 - 6.m4a


<enc.cmd> : simple launcherrem START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
rem [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
rem [/WAIT] [/B] [command/program]
start "avs2aac" /LOW avs2aac.cmd


<<implementations>>
<tools>
. kasandro's avs2wav (http://home.pages.at/kassandro/avs2wav.rar) : original , simple and basic
. dimzon's behappy (http://forum.doom9.org/showthread.php?t=104686) : gui replacement of avs2wav, heavily dimzoned, lost some (http://forum.doom9.org/showpost.php?p=750072&postcount=115) flexibility & transparency
. bepipe : a temporary conversion of avs2wav, single command line interface, maybe still usable.
...
<DSP functions & scripts>
..
. tebasuna51's original DPL II function (http://forum.doom9.org/showpost.php?p=750673&postcount=123) with a bit different overall matrix balance.
. MiCK76's DPL II encoder function based on azid? (http://forum.doom9.org/showpost.php?p=753887&postcount=131) with volume reduced matrix of FFDShow
. Rockaria's DPL II encoder functions based on FFDShow's model (http://forum.doom9.org/showpost.php?p=786690&postcount=82), still not the perfect DPL II decoding though
. Rockaria's UPMIX/DPLII encoding examples in CLI mode using avs2wav and bepipe (http://forum.doom9.org/showpost.php?p=787789&postcount=149)

. tebasuna51's DRC macro based on sox plugin (http://forum.doom9.org/showpost.php?p=779165&postcount=60)
. NorthPole's 6ch upmix macro (http://forum.doom9.org/showpost.php?p=786226&postcount=86)

[hostory]
...
xxx xx 2006 : a clarification of the required nero dlls.
Feb 17 2006 : added the implementations on the bottom.
Feb 19 2006 : added a script example using bepipe & avs2wav, modified some script example here.
Feb 20 2006 : Closure.

SeeMoreDigital
21st November 2005, 18:37
Have you actually been able to generate 6Ch AAC files using Foobar2000 with Nero7 filters?

I have not installed Nero7 yet and can't see the point in doing so until they provide a separate NeroDigital only packages (http://www.nero.com/nerodigital/eng/download.php).

If you have managed to do it with Foobar2000. Can you generate an 6Ch AAC encode, using the "6Ch AC3 Speaker Test file" that can be found on my web site and e-mail it to me please?


Iyyyyy thank-you

Rockaria
21st November 2005, 20:50
I corrected some small mistypings and YES i've tested the aac(mp4,m4a) encoding with foo_naac.dll/foo_nero.dll/naac.exe and version 6/7 of aacenc32.dlls. It's easy to detect the difference although I am not sure which is causing it : foobar encloder plugins/cli or nero encoders. When I used the above described method, both v6 and v7 of nero encoder dlls reqired the same channel mappings. Maybe the foobar aac encode-interface routine is checking the nero dll version(i.e. to be v6)?

For your own prompt verification (I am off the test machine ;) ), I think you can install the trial version on any computer and copy the aacenc32.dll from the program files nero common folder to the local script folder to override the existing nero dlls until you get the nero digital, recode 2 or any seperate version equivalent to v7.

SeeMoreDigital
21st November 2005, 20:57
Bummer!

In that case I wonder if anybody else could oblige?


Cheers

Rockaria
21st November 2005, 21:34
Don't be disappointed SeeMoreDigital!
Meanwhile(until I get home), you can check this thread (http://forum.doom9.org/showthread.php?p=733463#post733463) to get other's experience.
In case you still need the proof, I can happily email the result later.

SeeMoreDigital
21st November 2005, 21:51
Don't be disappointed SeeMoreDigital!
Meanwhile(until I get home), you can check this thread (http://forum.doom9.org/showthread.php?p=733463#post733463) to get other's experience.
In case you still need the proof, I can happily email the result later.Yes... I've read this thread (and even taken part)....

Once set-up, Foobar2000 usually makes very light work of re-encoding and correctly mapping 6Ch AC3 to 6Ch AAC. So I'm curious to know how the streams are mapped.

Rockaria
21st November 2005, 23:28
I agreed the foobar2k v0.83 had been very satisfactory with the decent multi-channel aac encodings and I actually liked it(and it's gui!).
But I have no idea about the nero's strategy on the v7 aac encoder but am sure the channel mapping is different from the old stable setup and found there is an alternate & more flexible method as I described above.

Now the foobar2k beta 0.9 version stdinput plugin read the aac stream correctly and we may be having the correct channel mappings interface from the v0.9 regardless of the nero aac encoder version.
My feeling is that the foobar nero aac encoder interface is somewhat hardcoding the channel order somewhere inside. What I've been missing with the foobar is an explicit channel remapping plugin for the flexibility.

Also I think the stream passing between the dlls would be somewhat faster than between the processors through pipe, but not that significantly in processing and the lightweight feature seems to be more from the user interface than the actual processing. The above method uses only two EXEs and some DLLs, less than 3 maybe including the avisynth.dll itself, also it would be worthwhile to check how many dlls and memory are actually used with foobar encoding...

SeeMoreDigital
22nd November 2005, 11:22
I know people are excited about the prospect of using Foobar2000 v0.9 but we could get ourselves into a real mess if we don't test Nero's new filters more throughly with Foobar2000 v0.8.3 first ;)


Cheers

Rockaria
22nd November 2005, 16:34
Let me remind you this is a thread about a new method practically providing a flexible environment for any type of source and target format with correct channel order, where includes the v7 nero aac encoder.

Actually, as for the foobar2k v0.83, they are all known issue, the only way to encode to nero 6ch aac without channel messup, as well as the only player with the messed up channel order in aac decoding.

What tebasuna51 stated in the link above implies something useful :
Using bsn.dll v0.24 by DPeshev,Richard,E-Male,DSPguru (DSPguru.Doom9.org).
or
Using bsn.dll replacement v0.02 by dimzon (dimzon541@gmail.com).
-input FL_FR_C_LFE_SL_SR.wav ... -bsn( -6chnew ... Wrong aac channel mapping
-input Correct.ac3 ... -bsn( -6chnew ... Wrong aac channel mapping
-input FR_C_FL_SR_LFE_SL.wav ... -bsn( -6chnew ... Correct aac channel mapping

Using bse_Nero7WA.dll by dimzon, Build Nov 3 2005, 14:10:28 (latest)
-input FL_FR_C_LFE_SL_SR.wav ... -dimzon( -dllname bse_Nero7WA.dll -6chnew ... Correct aac channel mapping
-input Correct.ac3 ... -dimzon( -dllname bse_Nero7WA.dll -6chnew ... Correct aac channel
The channel order FL_FR_C_LFE_SL_SR looks like for the WAV every decoder should line up to decode or play.
The order FR_C_FL_SR_LFE_SL stands for the remapping a=GetChannel(a,2,3,1,6,4,5) in above script and seems to be the actual channel order for AAC in both nero aac versions.

Then what would be the problem?
Why they needed a new nero7 encoder plugin for besweet?
I guess something hardcoded hidden depending on the aac encoder version.

SeeMoreDigital
22nd November 2005, 17:44
While I understand what you are saying, unfortunately there are many posts on this forum from members asking why there AAC channel orders are messed up!

Some of these channel order problems seem to be associated with people converting AC3 to WAV and then AAC. This approach always waves "red flags" to me, as it opens up two potential places to "cock up" the channel order.

The first "cock-up" area is getting the AC3 to WAV channel mapping right. The second "cock-up" area is getting the WAV to AAC channel mapping right.

As Foobar2000 removes the need to convert to WAV first, it illiminates these two "cock-up" areas!

So until somebody sends me an 6Ch AAC file thats been directly encoded from my 6Ch AC3 source using Foobar2000 v0.8.3 with Nero7's filters, I'm not convinced there's a channel mapping problem!


Cheers

Rockaria
22nd November 2005, 18:07
While I understand what you are saying, ..
The first "cock-up" area is getting the AC3 to WAV channel mapping right. The second "cock-up" area is getting the WAV to AAC channel mapping right.

As Foobar2000 removes the need to convert to WAV first, it illiminates these two "cock-up" areas!
Unfortunately, it seems not. Every trancoding includes these two steps(decoding & encoding) internally or externally.
Hiding things(black box), is what the users cannot control at all, must be used only for something stable or are abused when the author want an everlasting provider position, very opposite to what we are looking for. :rolleyes:

SeeMoreDigital
22nd November 2005, 18:28
Unfortunately, it seems not. Every trancoding includes these two steps(decoding & encoding) internally or externally.
Hiding things(black box), is what the users cannot control at all, must be used only for something stable or are abused when the author want an everlasting provider position, very opposite to what we are looking for. :rolleyes:So have you (or anybody else) tried generating an 6Ch AAC encode using my suggested method, or not?

Here's a link to my 6Ch AC3 Speaker Test Sample (http://81.98.148.105/Uploaded_Files/Doom9_Forum_files/6Ch_AC3_Sample.7z)

Rockaria
22nd November 2005, 19:18
YES i've tested the aac(mp4,m4a) encoding with foo_naac.dll/foo_nero.dll/naac.exe and version 6/7 of aacenc32.dlls
In case you still need the proof,..

Let me remind you this is a thread about a new method..

What tebasuna51 stated in the link above implies something useful ..
Why they needed a new nero7 encoder plugin for besweet?

..are abused when the author want an everlasting provider position, very opposite to what we are looking for.

Yes... I've read this thread (and even taken part)....

My suggestion :
<Now it's your thread.> or <Has anybody tried the introduced method and found anything to be improved?> It has lots of potentials...

SeeMoreDigital
22nd November 2005, 19:29
I don't want to fall out with you about this Rockaria, I'm simply trying to establish whether you generated an AAC file, using the method I suggested!

You say: "YES i've tested the aac(mp4,m4a) encoding with foo_naac.dll/foo_nero.dll/naac.exe and version 6/7 of aacenc32.dlls" but you did not confirm whether it was with Foobar200 v0.8.3.

If you have... can you please e-mail me the file please?


Cheers

Rockaria
22nd November 2005, 19:40
..YES i've tested the aac(mp4,m4a) encoding with foo_naac.dll/foo_nero.dll/naac.exe and version 6/7 of aacenc32.dlls. It's easy to detect the difference although I am not sure which is causing it : foobar encloder plugins/cli or nero encoders. When I used the above described method, both v6 and v7 of nero encoder dlls reqired the same channel mappings. Maybe the foobar aac encode-interface routine is checking the nero dll version(i.e. to be v6)?

For your own prompt verification (I am off the test machine ;) ), I think you can install the trial version on any computer and copy the aacenc32.dll from the program files nero common folder to the local script folder to override the existing nero dlls until you get the nero digital, recode 2 or any seperate version equivalent to v7.
I will try to send you the result even if I believe myself has done the best to explain. :)

Mutual respects to the anonymous,

Rockaria
23rd November 2005, 02:13
OK. let us conclude. I did some more test based on the 6ch ac3 speaker test file I have from nforce 2 speaker setup directory.

naac.exe required two files from nero plugin directory, which can be overrided by the local folder placement : aac.dll and aacenc32.dll.
aac.dll seems to be responsible for the channel lineup from the assigned decoded wav buffer and can be used with any combinations of these two files.

But the channel line ups are different :
.v6 aac.dll : no need for channel remapping : FL_FR_C_LFE_SL_SR or a=GetChannel(a,1,2,3,4,5,6)
.v7 aac.dll : need the channel remapping : FR_C_FL_SR_LFE_SL or a=GetChannel(a,2,3,1,6,4,5)

So the conclusion is :
.nero changed the aac channel order from v7 by mistake or new policy, potentially a big confusion anyway.
.you can use the v6 aac.dll + v7 aacenc32.dll(actual encoder) with existing transcoding environment such as foobar2k v0.83 or besweet.

SeeMoreDigital
23rd November 2005, 02:30
Can you zip up the AAC file and e-mail it to me please?


Cheers

tebasuna51
23rd November 2005, 03:50
@SeeMoreDigital
I recode to aac your ac3 test file with Foobar2000 v0.8.3, foo_naac, Nero7 and i send you by e-mail.

The aac is wrong channel mapping like with BeSweet and normal bsn.

Rockaria
23rd November 2005, 08:03
Thanks for being able to finish the side story of nero 7 channel mapping change, roles of these two nero dlls and walkaround by overriding the v6 aac.dll, which does not depreciate the avisynth's flexibility.

I worried about the LFE and corresponding channel behavior by using the v6 aac.dll for v7 encoder. But it turned out to be safe.

Thanks again for your interest in the introduced avisynth method. period.

tebasuna51
23rd November 2005, 11:20
Sorry, Rockaria, I only want contribute to finish this dialog because I'm interested in your avisynth method, but only to learn (know more about avisynth is in my long todo list).

I like this thread becomes a discussion about your method, but I can't contribute now.

Rockaria
23rd November 2005, 16:53
Well, it's not my method. :)
I just gathered the related links and provided the minimum environment to start with for multi channel audio encoding with lots of potential.

We may find some more pipe-in capable encoders.
Or maybe somebody can provide a friendly user interface with job control.

It's not daemon server, just a dll starting to provide the decoded a/v stream by any application's call(initially designed for vdub).
The script is not like javascript or vbscript, rather a procedure definition language(like RPG), so no if-else-endif.

The provided minimum is enough to start with and maybe already surpassing some other integrated tools..

dimzon
24th November 2005, 12:14
WOW! Very fine idea!
Seems like I can modify avs2wav in order to support inline scripting:

BePipe.exe NicDTSSource("DtsMusic.DTS").GetChannel(2,3,1,6,4,5) | naac -profile he -vbr 8 - AacMusic.m4a

SeeMoreDigital
24th November 2005, 14:13
Thanks for encoding and e-mailing the 6Ch AAC sample as per my instructions. There appears to be no doubt that Nero "has" changed the AC3-to-AAC mapping, when using external tools :devil:

I wonder if I could trouble you guys further by generating one last test file for me please. This time using Nero7's version of Recode 2. As I'm curious to see if this new version of Recode2 is handling the channel mapping correctly.

Could you please use this PAL MPEG-2+AC3 12sec Sample (http://81.98.148.105/Uploaded_Files/Doom9_Forum_files/PAL_MPEG-2+AC3_12sec_Sample.7z) as your source.


Many thanks

Rockaria
24th November 2005, 18:02
WOW! Very fine idea!
Seems like I can modify avs2wav in order to support inline scripting:

BePipe.exe NicDTSSource("DtsMusic.DTS").GetChannel(2,3,1,6,4,5) | naac -profile he -vbr 8 - AacMusic.m4a
That seems one step shortened way of the user interface!
I am not sure if the client application(avs2wav or BePipe) can call the avisyinth methods directly(dll interface calls with parameters) but the stardard interface is through *.avs script file.
In this case, you will have to generate the temporary avs file in the program.

When you replace the avs2wav itself, there seems to be some benefits as well as possible restrictions:
. can make itself a gui appcation with user parameter input
. can display the job progress like fobar2k cli call

. hard to cover all the current & future features with simple user parameters
. possibility of losing the flexibility in favor of the convenience.

Overall, I will have to be satisfied with a role just reintroducing it.
The rest is yours anybody talented. :)

dimzon
24th November 2005, 18:19
Overall, I will have to be satisfied with a role just reintroducing it.
I believe it's great way to create BeSweet successor. BeSweet itself is very good but it's not OpenSource and it's hard to extend functionality. AviSync in other way is very flexible and extensible (via plugins and shared functions)...
So i will stop futher BeSweet plugin development and swith to BePipe development. It will be OpenSource command-line application written in C# (yeah, I do AVS2WAV to C# portation right now)

Kurtnoise
24th November 2005, 20:19
why C# ?

ANSI C is beautiful...

E-Male
24th November 2005, 21:55
why C# ?why not? :)

dimzon
25th November 2005, 10:07
why C# ?

ANSI C is beautiful...
Actually I hate C/C++ :devil:

dimzon
25th November 2005, 12:56
first alpha avail here: http://www.mytempdir.com/281217

bepipe --script "directShowSource(^c:\ab\re\001 Jenny From The Block.m4a^)" | C:\Progra~1\foobar2000\encoders\oggenc.exe -Q -q -2 - -o c:\test.ogg

Note: Replace quotes in script by ^

second alpha is here: http://www.mytempdir.com/281242

dimzon
25th November 2005, 15:11
So have you (or anybody else) tried generating an 6Ch AAC encode using my suggested method, or not?

Here's a link to my 6Ch AC3 Speaker Test Sample (http://81.98.148.105/Uploaded_Files/Doom9_Forum_files/6Ch_AC3_Sample.7z)

bepipe --script "NicAc3Source(^c:\test.ac3^).GetChannel(2,3,1,6,5,4).normalize()" | C:\Progra~1\foobar2000\encoders\oggenc.exe - -q -2 - -o c:\test.ogg

HERE: http://www.mytempdir.com/281434

SeeMoreDigital
25th November 2005, 15:30
Thanks for the Vorbis in .OGG file.....

Sadly the speakers are not correctly mapped :(


Cheers

dimzon
25th November 2005, 15:34
Thanks for the Vorbis in .OGG file.....

Sadly the speakers are not correctly mapped :(


Cheers

Seems like speakers are not correctly mapped in You AC3 or something wrong with my PC/soundcard/etc. Bsz Your original AC3 file has invalid file mapping (left with right).

SeeMoreDigital
25th November 2005, 16:27
Seems like speakers are not correctly mapped in You AC3 or something wrong with my PC/soundcard/etc. Bsz Your original AC3 file has invalid file mapping (left with right).What do you mean by "invalid mapping"?

I've tried my AC3 and MPEG-2+AC3 in VOB files in just about every stand-alone DVD player and software media player I can find and the output appears to be perfectly mapped :confused:


Cheers

dimzon
25th November 2005, 16:30
What do you mean by "invalid mapping"?

I've tried my AC3 and MPEG-2+AC3 in VOB files in just about every stand-alone DVD player and software media player I can find and the output appears to be perfectly mapped :confused:


Cheers
Seems like it's my PC problem (swap left with right)
Just try to encode to ogg using such filter GetChannel(1,3,2,4,5,6) and check channel mapping

SeeMoreDigital
25th November 2005, 16:44
I've just encoded the following 6Ch Vorbis in OGG (http://81.98.148.105/Uploaded_Files/Doom9_Forum_files/6Ch_Vorbis_in_OGG_From_SMD.zip) using HeadAC3he..... and it seems to be correctly mapped, as I can play 6Ch Vorbis in hardware using my Pioneer DVD player ;)


Cheers

dimzon
25th November 2005, 16:45
I've just encoded the following 6Ch Vorbis in OGG (http://81.98.148.105/Uploaded_Files/Doom9_Forum_files/6Ch_Vorbis_in_OGG_From_SMD.zip) using HeadAC3he..... and it seems to be correctly mapped, as I can play 6Ch Vorbis in hardware using my Pioneer DVD player ;)


Cheers
Can You encode using BePipe and GetChannel(1,3,2,4,5,6) ?
Thanx!

Rockaria
26th November 2005, 12:38
second alpha is here: http://www.mytempdir.com/281242
Wow! It's just amazing! Who on earth can capture all( :) ) the requirements and constraints and deliver the solution(alpha) in 24hrs? I just miss those days... It works as it is supposed to.

BePipe and GetChannel(1,3,2,4,5,6)
When I tested the multi channel ogg encoding GetChannel(1,3,2,5,6,4) was correct for several dsfilters including ffdshow and players like foobar, vlc. But the sound was funny, especially on the center and FR.
Since they stopped the multi channel encoding enhancement after the official development of 1.0 spec, it seems even got worse(broken).
Everything(including the foo_ogg which provide right channel order) proves it in my PC environment. What I haven't tested is using the old 1.0 version of the ogg encoder.
The attached encoded ogg file seems to sound ok except the channel messup which you can manage with ffdshow channel mapping. I wonder which encoder version is used with it.

Actually I hate C/C++
I believe any language is OK as far as it satisfies the productivity and minimum portability and speed.
My belief is the inner side of the user interface and the setup routine can be dirty as far as it suffices the flexibility but the core looping routine must be optimized.

As it proves, we cannot satisfy everybody's desire (from the beginning). But it's already providing the decent solutions! As I saw it and you saw it.

Rockaria
27th November 2005, 17:34
Time to temporarily conclude about the multichannel vorbis.
I did some thorough tests on the various versions of vorbis encoders and decorders, there are two groups :

1. foobar, winamp, ffdshow : foo_vorbisenc encodes without channel remappings and plays decently(not perfectly) on these decoders.
The two ffdshow vorbis decoder plugins failed to play reasonably.
When encoded with oggenc/oggenc2, it required the channel remapping GetChannel(a,1,3,2,5,6,4) to be played on these decoders

2. oggenc, oggenc2 and illuminate dsf pack : looks like original line
foobar encoded music sounds really funny here. The format seems to keep the channel order in FL_C_FR_SL_SR_LF.

3. Both seems to have some slight echoing especially on short media, which requires some tuning as well as the channel coupling enhancement promised in their spec.
Also as seen in the nero aac case, the different formats of channel order causes huge-confusion or no-more-use. People need to streighten them out.

Overall, it again does not depreciate the avisynth's flexibility at all.

SeeMoreDigital
27th November 2005, 18:06
3. Both seems to have some slight echoing especially on short media, which requires some tuning as well as the channel coupling enhancement promised in their spec.
Also as seen in the nero aac case, the different formats of channel order causes huge-confusion or no-more-use. People need to streighten them out. Agreed....

Which I why I would like to confirm if the channel mapping is incorrect when generating 6Ch AAC encodes in new Nero7 version of Recode2.

If the new Nero7 version of Recode2 generates "incorrectly" mapped files then Nero have a real problem/bug on their hands....

But if new Nero7 version of Recode2 generates correctly mapped files, then Nero are just being bloody minded by cocking-up the channel orders up for all us people who like to use their audio encoding filter with other encoding tools :angry:


Cheers

Rockaria
27th November 2005, 18:58
The funny thing is nero released the new v6 version after the v7 release, which forces me to keep as silent as possible. I don't believe they will abandon the v6 user or force them to upgrade to v7 while keeping two different versions of aac formats. Looks like a temporary confusion. I am gonna wait until nero settle down on this.

The trap of the confirmation or the authority is actually everybody's role. I learn from anybody's experience regardless of the posting count, registered date or birthday, do some tests if I need more facts and like to share what I've learnt, and sometimes get disappointed when misunderstood like everybody does. ;)

dimzon
28th November 2005, 12:23
http://img505.imageshack.us/img505/2240/untitled0hz.gif
I'm working on GUI right now :)

SeeMoreDigital
28th November 2005, 12:38
Does anybody know how the channel mapping information is stored for 6Ch AAC streams?

I know this may sound ridiculous (to those people who know about such things) but is could it be possible to change the mapping information of 6Ch AAC streams. Ie: Is there something in the stream that can be re-written without having to re-encode it?


Cheers

Wilbert
28th November 2005, 13:39
@dimzon,

This is great stuff! Do you consider to make bepipe+gui OS?

dimzon
28th November 2005, 14:05
Do you consider to make bepipe+gui OS?
Yes!
Linking Avisynth statically or dynamically with other modules is making a combined work based on Avisynth. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

BePipe alpha sources is avaliable by request if You need it.

dimzon
28th November 2005, 18:57
http://img505.imageshack.us/img505/2240/untitled0hz.gif
I'm working on GUI right now :)
first GUI pre-alpa http://www.mytempdir.com/287448
Note! Encoding is not working Yet! Just to test how to manage
sources/dsp/encoders!
Note! Settings are stored in c:\be-happy.xml (will be fixed soon)

Rockaria
29th November 2005, 02:48
Extreme flexibility!

Yeah, methods are applied to the last(defined) clip.. hmm :)
Maybe we can add more sources to join(+) or mix in the version 2.
Or set the sequences to the DSPs by allowing the up/down arrow button to the focused if it affects(Sorry, it's already there!). And do we need a profile management(overall)?
Drop-down and/or shell extention menu(like dbPowerAmp) would be another good bonus(as well as the copy-to-clipboard or save to *.avs).
These are all that I can think of for now..

This is great! I am waiting for the working version already!

Rockaria
29th November 2005, 05:19
Does anybody know how the channel mapping information is stored for 6Ch AAC streams?
.. Is there something in the stream that can be re-written without having to re-encode it?I guess(derived from the facts here) the channel order is implicitly hardcoded to the stream(body) itself. If the format is designed to read the channel assignment from the header, any player should decode the media without the messup regardless of the versions. I've heard your v6 AACs are decoding well with your h/w player. But in the s/w player, I believe we can use the FFDSHOW channel remapping in decoding time depending on the versions, until nero resolves the issue.

SeeMoreDigital
29th November 2005, 13:13
I've heard your v6 AACs are decoding well with your h/w player. But in the s/w player, I believe we can use the FFDSHOW channel remapping in decoding time depending on the versions, until nero resolves the issue.If the Nero7 version of Recode2 produces incorrectly mapped AAC channels then I agree, Nero will have to resolve the issue.

But if however Recode2 generated streams are okay.... I can't, in all honesty, see Nero's engineers "busting-a-gut" to help out the users of "third-part" software.... It would not be in there best interest to do so ;)


Cheers

Rockaria
29th November 2005, 14:19
Yeah, the problem seems to be any backups to be played on your h/w decoder. Would they support the special firmware upgrade too, for the v7 recode 2-ed contents?..

SeeMoreDigital
29th November 2005, 15:27
I'm not with you!

All my 6Ch AAC streams are perfectly mapped because they were all encoded using the Nero6 version of Recode2 or Foobar2000 with Nero6 filters!

Like I've said before, we need to "map test" a 6Ch AAC sample generated with the Nero7 version of Recode2 before we can establish whether Nero has a real problem it needs to address!

If we discover that 6Ch AAC samples generated with the new Nero7 version of Recode2 are "incorrectly mapped" then we all need to inform Nero for a fix before we waste time creating our own fixes.....

That's all I'm trying to say ;)


Cheers