linux上的gstreamer音频错误

linux上的gstreamer音频错误,linux,gstreamer,Linux,Gstreamer,我在Ubuntu操作系统上使用g streamer-0.10将网络摄像头视频流到rtmp服务器上,我得到了视频输出,但他们的音频有问题。下面是用于流式处理的命令 gst-launch-0.10 v4l2src!视频比例法=0!视频/x-raw-yuv,宽度=852,高度=480,帧速率=(分数)24/1!ffmpegcolorspace!x264enc pass=pass1 threads=0比特率=900调谐=零延迟!flvmux name=mux!rtmpsink位置rtmp://..../

我在Ubuntu操作系统上使用g streamer-0.10将网络摄像头视频流到rtmp服务器上,我得到了视频输出,但他们的音频有问题。下面是用于流式处理的命令

gst-launch-0.10 v4l2src!视频比例法=0!视频/x-raw-yuv,宽度=852,高度=480,帧速率=(分数)24/1!ffmpegcolorspace!x264enc pass=pass1 threads=0比特率=900调谐=零延迟!flvmux name=mux!rtmpsink位置rtmp://..../live/testing“demux。alsasrc device=“hw:0,0”!音频重采样!音频/x-raw-int,速率=48000,通道=2,深度=16!普尔西奥迪奥辛 大宗报价

通过运行上面的命令,我得到了一个错误

gstbasaudiosrc.c(840):gst_base_audio_src_create():/GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: 丢弃了13920个样本。这很可能是因为下游无法跟上,并且消耗样品的速度太慢。 大宗报价

因此音频是听不见的

帮我解决这个问题。 提前谢谢
艾米思

我不明白你的思路。中间的“DEMUX”是什么? 您面临的问题是,您没有将元素与队列分离。在接收器之前和源之后保持一个队列,让其余的线程都独立运行。它应该允许我们解决这个问题

由于我的系统中没有脉冲音频或rtmp接收器,我已经测试了以下内容,它可以正常工作

gst-launch-0.10 v4l2src ! ffmpegcolorspace ! queue ! x264enc pass=pass1 threads=0 bitrate=900000 tune=zerolatency ! queue ! flvmux name=mux ! fakesink  alsasrc ! queue ! audioresample !  audioconvert !  queue ! autoaudiosink
您可以相应地更改它并使用它。我要做的唯一一件事就是添加队列,以使其正常工作并消除您面临的错误。

对我来说(Raspberry Pi3 w/GStreamer 1.4.4上的Logitech c920),我能够消除“丢弃的样本”警告:使用
audioresample
alsasrc
的采样率设置为
flvmux
喜欢的值。从
gst-inspect-1.0 flvmux
,它看起来像
flvmux
只支持x-raw的
5512、11025、22050、44100
采样率和mp4的
5512、8000、11025、16000、22050、44100
。这是我的工作管道

gst-launch-1.0 -v -e \
    uvch264src initial-bitrate=800000 average-bitrate=800000 iframe-period=2000 device=/dev/video0 name=src auto-start=true \
    src.vidsrc ! video/x-h264,width=864,height=480,framerate=30/1 ! h264parse ! mux. \
    alsasrc device=hw:1 ! 'audio/x-raw, rate=32000, format=S16LE, channels=2' ! queue ! audioresample ! "audio/x-raw,rate=44100" ! queue ! voaacenc bitrate=96000 ! mux. \
    flvmux name=mux ! rtmpsink location="rtmp://live-sea.twitch.tv/app/MYSTREAMKEY"
我很惊讶,
flvmux
没有抱怨获得的音频源的采样率不受支持。不确定这是否是预期的行为