FranceBB
17th January 2024, 22:03
Hi there guys,
I have a documentary with two files:
1) Video + audio in English (stereo full mix)
2) audio in Italian (mono, narrator only)
I'm trying to mix the Italian narrator on the English stereo full mix track to create an oversound track.
I've been doing this:
#Indexing the English Full Mix
video=LWLibavVideoSource("EarthAmazingDay.mxf")
audio=LWLibavAudioSource("EarthAmazingDay.mxf", stream_index=1)
AudioDub(video, audio)
#Indexing the Italian Narrator
Narrator=WAVSource("EarthAmazingDay.wav").GetChannel(1).ResampleAudio(48000).ConvertAudioTo24bit()
#Retrieve the Stereo CH.1-2
Left=GetChannel(1)
Right=GetChannel(2)
#Create the two stereo
Stereo_Original=MergeChannels(Left, Right)
Stereo_Narrator_Only=MergeChannels(Narrator, Narrator)
#Mix Italian Narrator over the English Full Mix
MixAudio(Stereo_Original, Stereo_Narrator_Only, 0.20, 0.80)
I indeed get an oversound in output and as you can see I'm mixing 20% of the English Full Mix with 80% of the Italian Narrator to create the output.
The reason for this is that if I raise the % of the English Full Mix, then I have to lower the % of the Italian Narrator and that's a problem 'cause the English voices become too loud and people can't understand the Italian translation anymore.
On the other hand, if I keep the current % as 20% English Full Mix 80% Italian Narrator, then when nobody is talking and there's only music and effects, those are low, very low, 'cause the whole mix has been lowered down.
The idea here would be to lower the English Full Mix when the Italian narrator is talking and leave it as-is when the Italian narrator isn't talking (i.e when there's only music and effects).
I also tried a more radical approach of using Sox to filter out the English Narrator entirely but it led to some very poor and questionable results:
#Indexing the English Full Mix
video=LWLibavVideoSource("EarthAmazingDay.mxf")
audio=LWLibavAudioSource("EarthAmazingDay.mxf", stream_index=1)
AudioDub(video, audio)
#Indexing the Italian Narrator
Narrator=WAVSource("EarthAmazingDay.wav").GetChannel(1).ResampleAudio(48000).ConvertAudioTo24bit()
#Create a M&E only track from the English Stereo in CH.1-2
filtered = soxfilter("sinc 20-20000")
music_and_effects=mixaudio(filtered.GetLeftChannel(),filtered.GetRightChannel(),0.794,-0.794)
#Create the two stereo
Stereo_No_Narrator=MergeChannels(music_and_effects, music_and_effects)
Stereo_Narrator_Only=MergeChannels(Narrator, Narrator)
#Mix Italian Narrator on the filtered M&E track
MixAudio(Stereo_No_Narrator, Stereo_Narrator_Only, 0.40, 0.60)
The idea being that by performing the differences between left and right in the original mix, I would only get the music 'cause the English Narrator is mono so it would be eliminated.
Still, this is not always the case, which means that not only this approach can fail but the whole mix would become a mono which is a no-go no-go...
So... what do I do?
The idea is to take CH.1-2, the English Full Mix and put the Italian Narrator on top of it in a decent way.
I have a documentary with two files:
1) Video + audio in English (stereo full mix)
2) audio in Italian (mono, narrator only)
I'm trying to mix the Italian narrator on the English stereo full mix track to create an oversound track.
I've been doing this:
#Indexing the English Full Mix
video=LWLibavVideoSource("EarthAmazingDay.mxf")
audio=LWLibavAudioSource("EarthAmazingDay.mxf", stream_index=1)
AudioDub(video, audio)
#Indexing the Italian Narrator
Narrator=WAVSource("EarthAmazingDay.wav").GetChannel(1).ResampleAudio(48000).ConvertAudioTo24bit()
#Retrieve the Stereo CH.1-2
Left=GetChannel(1)
Right=GetChannel(2)
#Create the two stereo
Stereo_Original=MergeChannels(Left, Right)
Stereo_Narrator_Only=MergeChannels(Narrator, Narrator)
#Mix Italian Narrator over the English Full Mix
MixAudio(Stereo_Original, Stereo_Narrator_Only, 0.20, 0.80)
I indeed get an oversound in output and as you can see I'm mixing 20% of the English Full Mix with 80% of the Italian Narrator to create the output.
The reason for this is that if I raise the % of the English Full Mix, then I have to lower the % of the Italian Narrator and that's a problem 'cause the English voices become too loud and people can't understand the Italian translation anymore.
On the other hand, if I keep the current % as 20% English Full Mix 80% Italian Narrator, then when nobody is talking and there's only music and effects, those are low, very low, 'cause the whole mix has been lowered down.
The idea here would be to lower the English Full Mix when the Italian narrator is talking and leave it as-is when the Italian narrator isn't talking (i.e when there's only music and effects).
I also tried a more radical approach of using Sox to filter out the English Narrator entirely but it led to some very poor and questionable results:
#Indexing the English Full Mix
video=LWLibavVideoSource("EarthAmazingDay.mxf")
audio=LWLibavAudioSource("EarthAmazingDay.mxf", stream_index=1)
AudioDub(video, audio)
#Indexing the Italian Narrator
Narrator=WAVSource("EarthAmazingDay.wav").GetChannel(1).ResampleAudio(48000).ConvertAudioTo24bit()
#Create a M&E only track from the English Stereo in CH.1-2
filtered = soxfilter("sinc 20-20000")
music_and_effects=mixaudio(filtered.GetLeftChannel(),filtered.GetRightChannel(),0.794,-0.794)
#Create the two stereo
Stereo_No_Narrator=MergeChannels(music_and_effects, music_and_effects)
Stereo_Narrator_Only=MergeChannels(Narrator, Narrator)
#Mix Italian Narrator on the filtered M&E track
MixAudio(Stereo_No_Narrator, Stereo_Narrator_Only, 0.40, 0.60)
The idea being that by performing the differences between left and right in the original mix, I would only get the music 'cause the English Narrator is mono so it would be eliminated.
Still, this is not always the case, which means that not only this approach can fail but the whole mix would become a mono which is a no-go no-go...
So... what do I do?
The idea is to take CH.1-2, the English Full Mix and put the Italian Narrator on top of it in a decent way.