Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > General > Audio encoding

Reply
 
Thread Tools Search this Thread Display Modes
Old 29th January 2006, 03:28   #41  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 6,914
I think Bepipe can't work from fb2k because you need the physical file "incorrect.wav" and can't be supplied by "< incorrect.wav".

Work ok with:
BePipe.exe --script "WavSource(^incorrect.wav^).GetChannel(1,3,2,5,6,4)" | ffmpeg.exe -i - -y -acodec ac3 -ab 448 "correct.ac3"

With your command line ffmpeg encode directly "incorrect.wav".
tebasuna51 is offline   Reply With Quote
Old 29th January 2006, 13:45   #42  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
@tebasuna51

thanks for the reply.

I get a pipe error why I try your command line?

C:\Temp>BePipe.exe --script "WavSource(^incorrect.wav^).GetChannel(1,3,2,5,6,4)" | ffmpeg.exe -i - -y -acodec
ac3 -ab 448 "correct.ac3"
***************************************
BePipe by dimzon
***************************************
Script used:
# BEGIN
WavSource("incorrect.wav").GetChannel(1,3,2,5,6,4)
# END


ffmpeg version CVS, build 3277056, Copyright (c) 2000-2004 Fabrice Bellard
configuration: --enable-a52 --enable-gpl --enable-memalign-hack
built on Dec 8 2005 10:06:35, gcc: 3.4.2 (mingw-special)
Scanning for Audio Stream...
Found Audio Stream
Channels=6, BitsPerSample=16, SampleRate=48000Hz
Writing Header...
Writing Data...
0% pipe:: Error while opening file
Done!

Any ideas?
Tried 2 different builds of ffmpeg. The one above and the one from the ffmpeggui setup.
NorthPole is offline   Reply With Quote
Old 29th January 2006, 14:15   #43  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
@tebasuna51

Runs ok when I use this command line but doesn't remap channels

C:\Temp>BePipe.exe --script "WavSource(^incorrect.wav^).GetChannel(1,3,2,5,6,4)" | ffmpeg.exe -i - -y -acodec
ac3 -ab 448 "correct.ac3" <incorrect.wav
ffmpeg version CVS, build 3277056, Copyright (c) 2000-2004 Fabrice Bellard
configuration: --enable-a52 --enable-gpl --enable-memalign-hack
built on Dec 8 2005 10:06:35, gcc: 3.4.2 (mingw-special)
Input #0, wav, from 'pipe:':
Duration: N/A, bitrate: 4608 kb/s
Stream #0.0: Audio: pcm_s16le, 48000 Hz, 5:1, 4608 kb/s
Output #0, ac3, to 'correct.ac3':
Stream #0.0: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
Stream mapping:
Stream #0.0 -> #0.0
***************************************
BePipe by dimzon
***************************************
Script used:
# BEGIN
WavSource("incorrect.wav").GetChannel(1,3,2,5,6,4)
# END


Scanning for Audio Stream...
Found Audio Stream
Channels=6, BitsPerSample=16, SampleRate=48000Hz
Writing Header...
Writing Data...
size= 957kB time=17.5 bitrate= 448.0kbits/s s/s
video:0kB audio:957kB global headers:0kB muxing overhead 0.000000%
Done!

Note: input says it is coming from pipe?
Running winxp operating system.
NorthPole is offline   Reply With Quote
Old 29th January 2006, 14:24   #44  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
Final Note:

The version of bepipe that I am using was download from the link on the first post. Datestamp on the file is 11/25/05 even though the date on the website says 12/09/05. File version 1.0.2155.27457.

I believe I have the latest and perhap the only released version of bepipe.
NorthPole is offline   Reply With Quote
Old 30th January 2006, 04:08   #45  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 6,914
I have same versions:
fmpeg version CVS, build 3277056
Last Bepipe version 1.0.2155.27457

Yesterday work ok, and now I get the same error:
0% pipe:: Error while opening file

I test:
BePipe.exe --script "WavSource(^incorrect.wav^).GetChannel(1,3,2,5,6,4)" > correct.wav

and work. Maybe is a sync issue betwen bepipe and ffmpeg.
Sorry, I can't help you, maybe Dimzon ...

About:
"Note: input says it is coming from pipe?"

The chars "< | >" are called 'pipe' commands, the input file for ffmpeg is taken from "< incorrect.wav" and not from bepipe output, then the channels aren't remapped.
tebasuna51 is offline   Reply With Quote
Old 30th January 2006, 11:56   #46  |  Link
damrod
Registered User
 
damrod's Avatar
 
Join Date: Jun 2003
Location: Elyseum
Posts: 640
nice tool !

i will give it a try...

btw with nero aac can you make abr encoding?? if you specify bitrate it's cbr and vbr is not abr... i want to make true abr@64 for exemple...can find the parameters in cmdline for aacenc32.exe (i use it to attack nero7 dlls)

is nero aac he-aac v2 or v1...the v2 is aac+ with SP i think (same quality @44 than he-aac@64..if i remember right)
__________________
Projects :
(dev stopped) DamBatch, MBatch
(generate mkv/mp4 files with aac(+)/vorbis/mp3 and x264/xvid/real or simple avi with h264/mp3 for fast reencoding using mencoder)
Website : Damrod.com
damrod is offline   Reply With Quote
Old 30th January 2006, 14:43   #47  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
@tebasuna51
BePipe.exe --script "WavSource(^incorrect.wav^).GetChannel(1,3,2,5,6,4)" > correct.wav

works ok for me too.

Thanks for your efforts. Maybe I'll give the upmix option a shot.
NorthPole is offline   Reply With Quote
Old 31st January 2006, 04:08   #48  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
Ok, I modified the upmix extension with the following and got some 6 channel upmixes.

<?xml version="1.0"?>
<BeHappy.Extension xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://workspaces.gotdotnet.com/behappy">
<AudioDSP UniqueID="9579E57B-2D27-4583-99A4-921718E25B41">
<Plugin>
<MultiOptionDSP Type="BeHappy.Extensions.MultiOptionDSP, BeHappy">
<TitleFormatString>{0}</TitleFormatString>
<ScriptPrologue>
# Store clip in variable
Stereo_{2} = convertaudiotofloat(last)
</ScriptPrologue>
<Option>
<Name>Upmix Using SuperEQ Files</Name>
<Value>
# SuperEq files with 20ms delay
fl_{2} = SuperEQ(Stereo_{2}.getleftchannel,"c:\program files\behappy\front.feq")
fr_{2} = SuperEQ(Stereo_{2}.getrightchannel,"c:\program files\behappy\front.feq")
cc_{2} = SuperEQ(Stereo_{2}.ConvertToMono,"c:\program files\behappy\center.feq")
lfe_{2} = SuperEQ(Stereo_{2}.ConvertToMono,"c:\program files\behappy\lfe.feq")
sl_{2} = SuperEQ(Stereo_{2}.getleftchannel,"c:\program files\behappy\back.feq")
sr_{2} = SuperEQ(Stereo_{2}.getrightchannel,"c:\program files\behappy\back.feq")
sl_{2} = DelayAudio(sl_{2},0.02)
sr_{2} = DelayAudio(sr_{2},0.02)
</Value>
</Option>
<Option>
<Name>Upmix using Sox Filter</Name>
<Value>
# Sox filter with 20ms delay
Front_{2} = mixaudio(Stereo_{2}.soxfilter("filter 0-600"),mixaudio(Stereo_{2}.soxfilter("filter 600-1200"),Stereo_{2}.soxfilter("filter 1200-7000"),0.45,0.25),0.50,1)
Back_{2} = mixaudio(Stereo_{2}.soxfilter("filter 0-600"),mixaudio(Stereo_{2}.soxfilter("filter 600-1200"),Stereo_{2}.soxfilter("filter 1200-7000"),0.35,0.15),0.40,1)
fl_{2} = GetLeftChannel(Front_{2})
fr_{2} = GetRightChannel(Front_{2})
cc_{2} = ConvertToMono(stereo_{2}).SoxFilter("filter 625-24000")
lfe_{2} = ConvertToMono(stereo_{2}).SoxFilter("lowpass 65")
sl_{2} = GetLeftChannel(Back_{2})
sr_{2} = GetRightChannel(Back_{2})
sl_{2} = DelayAudio(sl_{2},0.02)
sr_{2} = DelayAudio(sr_{2},0.02)
</Value>
</Option>
<ScriptEpilogue>
# Return result
MergeChannels( fl_{2}, fr_{2}, cc_{2}, lfe_{2}, sl_{2}, sr_{2})
ConvertAudioTo16Bit()
</ScriptEpilogue>
</MultiOptionDSP>
</Plugin>
</AudioDSP>
</BeHappy.Extension>

This is a pretty basic approach.

If you want to use the supereq option (built into avisynth) you need to run fb2k and save a equalizer frequency file from the dsp manager, equalizer tab. I saved one for the front, center, lfe and back. I would upload them but I don't know how or where to do that. (This is similar to kpexs' upmix program method). Note that you need to change the reference in the above code to point to your appropiate .feq files.

If you use the sox filter mentioned earlier in this thread (I think its page 1, near the bottom) you can find a link to the sox avisynth beta plugin. You have to copy that to your avisynth plugin subdirectory. That it.

If anybody has better ideas for the sox settings, let me know. Thanks.

@tebasuna51,
A while back you asked about the reverb function/program/option. It is a soxs' filter option that you can access with the sox plugin.
NorthPole is offline   Reply With Quote
Old 31st January 2006, 11:23   #49  |  Link
dimzon
BeHappy/MeGUI developer
 
dimzon's Avatar
 
Join Date: Oct 2003
Location: Moscow, Russia
Posts: 1,727
@NorthPole
Nice. Can you post your EQ-files too?
dimzon is offline   Reply With Quote
Old 31st January 2006, 13:56   #50  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 6,914
Quote:
Originally Posted by NorthPole
I would upload them but I don't know how or where to do that.
The .feq files are plain text and very short. You can use Notepad to Copy and Paste in the post directly.
Quote:
Originally Posted by NorthPole
@tebasuna51,
A while back you asked about the reverb function/program/option. It is a soxs' filter option that you can access with the sox plugin.
Thanks, but I think is Dimzon who ask about reverb.

I don't know very much about upmix procedures. Maybe if ursamtl read this post can help with their expert opinion about upmix.

Now I'm working with compand function from Sox, trying to do a Dynamic Range Compression DSP function for BeHappy. If anybody work about this, let me know.
tebasuna51 is offline   Reply With Quote
Old 31st January 2006, 13:59   #51  |  Link
dimzon
BeHappy/MeGUI developer
 
dimzon's Avatar
 
Join Date: Oct 2003
Location: Moscow, Russia
Posts: 1,727
Quote:
Originally Posted by tebasuna51
Now I'm working with compand function from Sox, trying to do a Dynamic Range Compression DSP function for BeHappy.
Sounds great! Please, keep me informed. I'm working on MeGUI right now and have no time for BeHappy
dimzon is offline   Reply With Quote
Old 31st January 2006, 14:42   #52  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
@dimzon

here are the feq files that I used

Front.feq
-96
-96
-96
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-96
-96
-96

center.feq
-96
-96
-96
-96
-96
-96
3
3
3
3
3
3
3
3
3
3
3
3

lfe.feq
0
0
0
-96
-96
-96
-96
-96
-96
-96
-96
-96
-96
-96
-96
-96
-96
-96

back.feq
-96
-96
-96
-6
-6
-6
-6
-6
-6
-6
-6
-6
-6
-6
-6
-96
-96
-96

They are just text files that can be cut and pasted using notepad.
I didn't spend as much time on these as I did the sox filter because I thought the sox filter had better potential. However these do work fine. Both methods were geared toward more of a "surround sound" mix for dvd movies and recorded tv. I was trying to get the dialoge in the center channel and added a 20ms delay on the back channels.
NorthPole is offline   Reply With Quote
Old 31st January 2006, 15:11   #53  |  Link
dimzon
BeHappy/MeGUI developer
 
dimzon's Avatar
 
Join Date: Oct 2003
Location: Moscow, Russia
Posts: 1,727
@NorthPole
Code:
sl_{2} = SuperEQ(Stereo_{2}.getleftchannel,"c:\program files\behappy\back.feq")
sr_{2} = SuperEQ(Stereo_{2}.getrightchannel,"c:\program files\behappy\back.feq")
Is'nt more efficient to use
Code:
temp{2} =  SuperEQ(Stereo_{2}, "c:\program files\behappy\back.feq");
sl_{2} =  temp{2}.getleftchannel()
sr_{2} =  temp{2}.getrightchannel()
dimzon is offline   Reply With Quote
Old 31st January 2006, 17:48   #54  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
@dimzon

Yes, your code looks better, only one pass thru with the eq. then split.

2 comments on the sox method.

I think the lfe is either too loud or needs lower freq. setting. Currently at 65
for lowpass

May be more efficient to run sox mixaudio once on stereo source then split for left and right like it is currently but then instead of running sox filter again on stereo source for back channels, just reduce volume by a percentage from the front channels?
NorthPole is offline   Reply With Quote
Old 31st January 2006, 18:02   #55  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
@dimzon

Is semicolon important at the end of you temp{2} line or is it a typo?
NorthPole is offline   Reply With Quote
Old 31st January 2006, 18:56   #56  |  Link
dimzon
BeHappy/MeGUI developer
 
dimzon's Avatar
 
Join Date: Oct 2003
Location: Moscow, Russia
Posts: 1,727
Quote:
Originally Posted by NorthPole
@dimzon

Is semicolon important at the end of you temp{2} line or is it a typo?
typo
dimzon is offline   Reply With Quote
Old 31st January 2006, 19:06   #57  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
Quote:
Originally Posted by NorthPole
@dimzon

I think the lfe is either too loud or needs lower freq. setting. Currently at 65
for lowpass
I think this is better

lfe_{2} = ConvertToMono(stereo_{2}).SoxFilter("lowpass 100","vol 0.5")
NorthPole is offline   Reply With Quote
Old 31st January 2006, 19:20   #58  |  Link
NorthPole
Registered User
 
Join Date: Jan 2006
Posts: 141
Quote:
Originally Posted by NorthPole
May be more efficient to run sox mixaudio once on stereo source then split for left and right like it is currently but then instead of running sox filter again on stereo source for back channels, just reduce volume by a percentage from the front channels?
Tried to change volume and/or amplify front_{2} but doesn't work. Behappy terminated almost immediately. I think the sox filter crashes behappy in this situation.
NorthPole is offline   Reply With Quote
Old 1st February 2006, 14:14   #59  |  Link
dimzon
BeHappy/MeGUI developer
 
dimzon's Avatar
 
Join Date: Oct 2003
Location: Moscow, Russia
Posts: 1,727

new enc_aacplus.extension is avaluable @ BeHappy workspace
dimzon is offline   Reply With Quote
Old 2nd February 2006, 13:43   #60  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 6,914
DynRanComp: New <AudioDSP> Dynamic Range Compression based in compand function from Sox.
Compression curves based in Anex C from Dolby Digital Professional Encoding Guidelines. There are a link for this document and graphs in:
http://forum.doom9.org/showthread.php?t=56020

This is a test release for discussion about the following problems:

1) The DSP function, outside the ac3 decoder, can't know the original ac3 Dialog Normalization and DRC method, then must be supplied by the user.
The DRC method can be selected in DSP configure, but the DialNorm can be set with:
- Another DSP multioption (31) to use before DynRanComp.
- With the 'Tweak' Amplify, but don't work with negative values (? to Dimzon).
- Editing DynRanComp.extension before run BeHappy. Method selected in this test release.

2) The Normalize() function don't work after Sox compand, maybe because:
"compand is very hard to control, and doesn't support restarts (crash)"
(in "Sox Audio Effect Filter for AviSynth" doc.)
Then maybe we need another set of 'normalized' curves to avoid the low volume problem.

3) The compand function don't work fine with segments 20:1.
For segment (-21,-21)-(0,-20) I obtain a output (-21,-21)-(0,-18)

4) The compand parameters (attack1,decay1,...,delay) may need optimization.

The DynRanComp.extension file is:
Code:
<?xml version="1.0"?>
<BeHappy.Extension xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://workspaces.gotdotnet.com/behappy">
  <AudioDSP UniqueID="934f5ce0-9203-11da-a72b-0800200c9a66">
    <Plugin>
      <MultiOptionDSP Type="BeHappy.Extensions.MultiOptionDSP, BeHappy">
        <TitleFormatString>DynRanComp - {0}</TitleFormatString>
        <ScriptPrologue>
# Dialog Normalization. Amplify by: -31 -(DialNorm), 0 for DN=-31, -4 for DN=-27, -11 for DN=-20 ...
# AmplifydB(-4.0)
# Define transformation function
        </ScriptPrologue>
        <Option>
          <Name>Film Standard</Name>
          <Value>
# Film Standard. Segments:     (Noise)  +6dB     2:1      =     20:1
#                Points:   ------- ------- ------- ------- ------- -----
SoxFilter("compand 0.1,0.3 -90,-90,-70,-64,-43,-37,-31,-31,-21,-21,0,-20 0 0 0.1")
          </Value>
        </Option>
        <Option>
          <Name>Film Light</Name>
          <Value>
# Film Light     Segments:     (Noise)  +6dB     2:1      =     20:1
#                Points:   ------- ------- ------- ------- ------- -----
SoxFilter("compand 0.1,0.3 -90,-90,-70,-64,-53,-47,-41,-41,-21,-21,0,-20 0 0 0.1")
          </Value>
        </Option>
        <Option>
          <Name>Music Standard</Name>
          <Value>
# Music Standard Segments:     (Noise)  +12dB    2:1      =     20:1
#                Points:   ------- ------- ------- ------- ------- -----
SoxFilter("compand 0.1,0.3 -90,-90,-70,-58,-55,-43,-31,-31,-21,-21,0,-20 0 0 0.1")
          </Value>
        </Option>
        <Option>
          <Name>Music Light</Name>
          <Value>
# Music Light    Segments:     (Noise)  +12dB    2:1      =      2:1
#                Points:   ------- ------- ------- ------- ------- -----
SoxFilter("compand 0.1,0.3 -90,-90,-70,-58,-65,-53,-41,-41,-21,-21,0,-11 0 0 0.1")
          </Value>
        </Option>
        <Option>
          <Name>Speech</Name>
          <Value>
# Speech         Segments:     (Noise)  +15dB    5:1      =     20:1
#                Points:   ------- ------- ------- ------- ------- -----
SoxFilter("compand 0.1,0.3 -90,-90,-70,-55,-50,-35,-31,-31,-21,-21,0,-20 0 0 0.1")
          </Value>
        </Option>
        <ScriptEpilogue>
# Normalize recommended because volume is always less than -20 dB (except Music Light -11)
# Normalize()    # But Normalize don't work after SoxFilter("compand...")
# SoxFilter work with 32 bit integer, and at last wav output is send 32 bit. Then maybe...:
# ConvertAudioTo16Bit()
        </ScriptEpilogue>
      </MultiOptionDSP>
    </Plugin>
  </AudioDSP>
</BeHappy.Extension>

Last edited by tebasuna51; 2nd February 2006 at 13:48.
tebasuna51 is offline   Reply With Quote
Reply

Tags
behappy

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 04:57.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.