Kerry Loux (12020-05-28): > I'm trying to create an audio filter graph (in C/C++) that takes a number > of inputs and mixes/splits/merges as necessary to produce a single stream > with multiple channels. > > I would like to be able to control which amerge input is mapped to which > channel in the output stream. For example, if I'm merging two inputs, I > want to control which is the left and which is the right channel. > Similarly, for cases with more than two inputs, I'd like to know/control > which output layout is being created and how each input is mapped. > > Currently, I have an implementation that generates a stream with the > correct individual channels, but mapped incorrectly. When I call > av_filter_graph_config(), I get a message stating "Input channel layouts > overlap; output layout will be determined by the number of distinct input > channels," which seems like a clue.
Ignore the reply that tells you it is not possible, it is wrong and unfounded. To make this work, you need to understand what channels layout are. If you do not already, read the doc before trying further. amerge has two modes of operation, depending on the channel layout of its inputs. If the inputs have channel layouts with completely different channels (for example FL+FR+BL+BR on one input and FC+LF on the other), then the output will be made of these combined channels. The channels will be reordered to match the standard channel order of FFmpeg (with the given example: FL+FR+FC+LF+BL+BR: notice that the two channels of the second inputs were inserted between the channels of the first input). If the inputs have channel layouts with the same channel in both (for example FL+FR+FC merged with FL+FR+BL+BR), this cannot work, and amerge falls back to ignoring the channel layout. In that case, amerge will output all the channels in order: first the channels from the first input, then the channels of the second input (in the example: FL1+FR1+FC1+FL2+FR2+BL2+BR2). Of course, the same happens if one of the inputs has no specified channel layout. It may happen that a latter filter will slap a channel layout on the result. That channel layout would be random and irrelevant. Hope this helped. Regards, -- Nicolas George
signature.asc
Description: PGP signature
_______________________________________________ Libav-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/libav-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
