![](/img/trans.png)
[英]QtMultimedia failed to play audio on linux: GStreamer; Unable to play - “”
[英]gstreamer audio error on linux
我在Ubuntu os上使用g streamer-0.10将网络摄像头视频流式传输到rtmp服务器上,我正在获得视频输出,但是它们在音频方面存在问题。 以下命令用于流式传输
gst-launch-0.10 v4l2src! videoscale方法= 0! video / x-raw-yuv,width = 852,height = 480,framerate =(fraction)24/1! ffmpegcolorspace! x264enc pass = pass1线程= 0比特率= 900 tune = zerolatency! flvmux名称= mux! rtmpsink location ='rtmp://..../live/testing'多路分配器。 alsasrc device =“ hw:0,0”! audioresample! audio / x-raw-int,rate = 48000,channels = 2,depth = 16! pulseaudiosink块引用
通过运行上述命令,我得到了一个错误
gstbaseaudiosrc.c(840):gst_base_audio_src_create():/ GstPipeline:pipeline0 / GstAlsaSrc:alsasrc0:删除了13920个样本。 这很可能是因为下游无法跟上,并且消耗样本的速度太慢。 大段引用
因此听不到声音。
帮我解决这个问题。 在此先感谢Ameeth
我不了解您的管道。 什么是“多路分配器”。 在中间? 您面临的问题是因为您尚未用队列分隔元素。 在接收器之前和源之后安排一个队列,以使其余所有单独的线程运行。 它应该允许摆脱这个问题。
由于我的系统中没有脉冲音频或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上使用GStreamer 1.4.4的Logitech c920)可以通过使用audioresample
将audioresample
的采样率设置为flvmux
喜欢的alsasrc
来摆脱“掉落的样品”警告。 从gst-inspect-1.0 flvmux
,它看起来像flvmux
只支持5512, 11025, 22050, 44100
采样率进行X原5512, 8000, 11025, 16000, 22050, 44100
为MP4。 这是我的工作管道
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
没有抱怨获得音频源的采样率不受支持。 不知道这是否是预期的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.