代码之家  ›  专栏  ›  技术社区  ›  shao.lo

gst启动不会播放到alasink设备=硬件:2

  •  0
  • shao.lo  · 技术社区  · 9 年前

    使用以下方法很好

    gst-launch-0.10 filesrc location=temp.wav ! wavparse ! audioconvert ! alsasink device=hw:0
    

    同样如此

    gst-launch-1.0 filesrc location=temp.wav ! wavparse ! audioconvert ! alsasink device=hw:0
    

    当我使用hw:2时,如果玩家正在使用它,我会收到设备忙错误,否则会收到内部数据流错误。

    如果启用调试

    GST_DEBUG=2
    

    我得到以下信息

             alsa pcm_hw.c:1693:_snd_pcm_hw_open: alsalib error: Invalid value for card
    basetransform gstbasetransform.c:1414:gst_base_transform_setcaps:<audioconvert0> transform could not transform audio/x-raw, format=(string)S16LE, layout=(string)interleaved, channels=(int)2, channel-mask=(bitmask)0x0000000000000003, rate=(int)44100 in anything we support
    basetransform gstbasetransform.c:1414:gst_base_transform_setcaps:<audioconvert0> transform could not transform audio/x-raw, format=(string)S16LE, layout=(string)interleaved, channels=(int)2, channel-mask=(bitmask)0x0000000000000003, rate=(int)44100 in anything we support
    basetransform gstbasetransform.c:1414:gst_base_transform_setcaps:<audioconvert0> transform could not transform audio/x-raw, format=(string)S16LE, layout=(string)interleaved, channels=(int)2, channel-mask=(bitmask)0x0000000000000003, rate=(int)44100 in anything we support
    basetransform gstbasetransform.c:1414:gst_base_transform_setcaps:<audioconvert0> transform could not transform audio/x-raw, format=(string)S16LE, layout=(string)interleaved, channels=(int)2, channel-mask=(bitmask)0x0000000000000003, rate=(int)44100 in anything we support
         wavparse gstwavparse.c:2249:gst_wavparse_loop:<wavparse0> error: Internal data flow error.
         wavparse gstwavparse.c:2249:gst_wavparse_loop:<wavparse0> error: streaming task paused, reason not-negotiated (-4)
    basetransform gstbasetransform.c:1414:gst_base_transform_setcaps:<audioconvert0> transform could not transform audio/x-raw, format=(string)S16LE, layout=(string)interleaved, channels=(int)2, channel-mask=(bitmask)0x0000000000000003, rate=(int)44100 in anything we support
    ERROR: from element /GstPipeline:pipeline0/GstWavParse:wavparse0: Internal data flow error.
    

    我确实从以下两个方面得到了声音

    gst123 -a alsa=hw:2 temp.wav
    aplay -D hw:2 temp.wav
    

    我是否遗漏了gst发布的一些其他论点?

    任何帮助都将不胜感激!

    1 回复  |  直到 9 年前
        1
  •  2
  •   shao.lo    9 年前

    在写问题的时候,我找到了答案,但我想,如果其他人遇到同样的问题,我会继续发帖。确实有一个缺失的论点…音频重采样。

    gst-launch-1.0 filesrc location=temp.wav ! wavparse ! audioconvert ! audioresample ! alsasink device=hw:2