我有一个管道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个以上的频道中,以及如何修复它吗?
发布于 2020-03-12 09:54:09
检查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。
除此之外,该警告只是告诉您有一个通道位置集,但与其他格式相加,很可能会被忽略(这与预先告诉它没有位置一样)。
https://stackoverflow.com/questions/60648077
复制相似问题