[FFmpeg-user] isolate 'voices', move them, and mix into another audio stream
Mark Filipak
markfilipak.imdb at gmail.com
Sun Jun 1 23:29:20 EEST 2025
On 01/06/2025 15.45, Paul B Mahol wrote:
> On Sun, Jun 1, 2025 at 7:42 PM Mark Filipak <markfilipak.imdb at gmail.com>
> wrote:
>
>> On 01/06/2025 15.38, Paul B Mahol wrote:
>>> On Sun, Jun 1, 2025 at 7:37 PM Mark Filipak <markfilipak.imdb at gmail.com>
>>> wrote:
>>>
>>>> On 01/06/2025 14.26, Paul B Mahol wrote:
>>>>>> Am 01.06.25 um 17:48 schrieb Paul B Mahol:
>>>>>>> On Sun, Jun 1, 2025 at 3:40 PM Mark Filipak <
>>>> markfilipak.imdb at gmail.com>
>>>>>>> wrote:
>>>>>>>> I have two ac3 audio streams. One is 'voices+noise', the other is
>> just
>>>>>>>> 'noise' -- no voices. I want
>>>>>>>> to take 'voices+noise', remove 'noise' leaving just 'voices', then
>> mix
>>>>>>>> 'voices' into a latter,
>>>>>>>> clipped version, call it 'sounds'. I could do it with Audacity, but
>>>> I'd
>>>>>>>> like to do it with FFmpeg,
>>>>>>>> if possible.
>>>>>>>>
>>>>>>>> I seek experienced guidance because I've never done this before and
>> I
>>>>>> want
>>>>>>>> to use the best audio
>>>>>>>> mixer 'filter' available -- knowing what's best comes only via
>>>>>> experience.
>>>>>>>>
>>>>>>>> The full story:
>>>>>>>>
>>>>>>>> "2001, A SPACE ODYSSEY" has a tedious, 2:58.136 prelude that is just
>>>>>>>> 'noise', after which the MGM
>>>>>>>> Lion appears. When I made an mp4, I cut 'm2ts 0..178.136' out
>> leaving
>>>>>> just
>>>>>>>> 'm2ts 178.136...', which
>>>>>>>> is now 'mp4 0...', which begins with the MGM Lion.
>>>>>>>>
>>>>>>>> When I finished, I discovered that in their comments track, Keir
>>>> Dullea
>>>>>>>> and Gary Lockwood introduce
>>>>>>>> themselves during that 'noise'. Their 'voices' spans 'm2ts
>> 0..34.034'.
>>>>>>>>
>>>>>>>> I want to take 'm2ts 0..34.034', remove the 'noise' so that only
>>>>>> 'voices'
>>>>>>>> is left, then mix 'voices'
>>>>>>>> into 'mp4 0..34.034', over the MGM Lion. There's a little more
>>>> clipping
>>>>>>>> and joining to be done but I
>>>>>>>> can handle that.
>>>>>>>>
>>>>>>> Need actual files.
>>>>>
>>>>> I need exact files that Mark have.
>>>>
>>>> Why, Paul? This isn't troubleshooting. It's how-to.
>>>>
>>>> I need to do this:
>>>>
>>>> 1) 'voices' = mix('voices+noise',invert('noise')). 'voices+noise' is an
>>>> existing ac3. 'noise' is
>>>> another ac3 that is identical but without voices. 'amix' is a mixer, but
>>>> is it the best mixer? More
>>>> important: I don't know of any audio filter that will invert().
>>>>
>>>> followed by this:
>>>>
>>>> 2) output = mix('audio','voices'). 'audio' is an existing ac3.
>>>>
>>>
>>> How many audio channels every file have?
>>
>> It's stereo ac3, 192kbpx. Do you need the files to run experiments?
>>
>
> And why do you think noise is exactly same as in another file?
It's the same movie. One stream is 'dialog' (synthesized noise, actually), the other is commentary
that overlays the 'dialog'.
> You can mix audios with amix filter.
> And you can change weights to -1 in amix too with special option.
> See documentation of amix filter
"Specify weight of each input audio stream as a sequence of numbers separated by a space. If fewer
weights are specified compared to number of inputs, the last weight is assigned to the remaining
inputs. Default weight for each input is 1."
No explanation of what audio 'weight' means. No indication whether signed or unsigned.
> So something like:
>
> ffmpeg -i voice.ac3 -i noise.ac3 -lavfi "amix=weights=1 -1" out.wav
There we go. Thanks, Paul.
ffmpeg -i voices+noise.ac3 -i noise.ac3 -lavfi "amix=weights=1 -1" out.wav
> But I really doubt you will accomplish anything with that.
Well, it's a start. We shall see, eh?
More information about the ffmpeg-user
mailing list