0

我有一个管道appsrc->rawaudioparse->audioconvert->vorbisenc->oggmux->filesink。在appsrc中,我将数据推送到缓冲区中。数据有 16 个通道,并且位于具有交错布局的浮点数组中(ch1、ch2、ch3、.....、ch16、ch1、ch2、......、ch16)。rawaudioparse属性是:

g_object_set(G_OBJECT(parser) , "pcm-format", 28, // f32le: GST_AUDIO_FORMAT_F32LE
                                "num-channels", 16,
                                "sample-rate", 100,
                                "interleaved", TRUE,
                                 NULL);

管道似乎运行良好,但我收到令我担心的警告。仅当我将通道数设置为 8 个以上时才会出现此警告。

** (encoder:3785): WARNING **: 07:56:10.576: Invalid channel positions.

在 rawaudioparse 中有一个名为channel-positions的属性,但我不知道如何设置它。

有谁知道为什么超过 8 个频道存在此警告以及如何解决?

4

1 回答 1

0

检查https://gstreamer.freedesktop.org/documentation/audio/gstaudiochannels.html?gi-language=c#GstAudioChannelPosition以获取GstAudioChannelPosition.

由于对于这么多频道来说,职位没有意义了,我会尝试添加到您的g_object_set

"channel-positions", GST_AUDIO_CHANNEL_POSITION_NONE,

我想知道如果您将频道数设置为高于 8,为什么它不会自动设置。

如果警告仍然存在,我会仔细检查同意的元素的上限。如果已设置,则应该channel-mask是。0x0

除此之外,该警告只是告诉您设置了频道位置,但不会与格式的其余部分相加,并且可能会被忽略(这与预先告诉它没有位置的结果相同) .

于 2020-03-12T09:54:09.680 回答