如何解决如何在Windows上使用gstreamer播放.wav音频文件?
wavparse
documentation提供了此示例,用于在Linux上的扬声器上使用Alsa音频播放.wav
音频文件。
gst-launch-1.0 filesrc location=sine.wav ! wavparse ! audioconvert ! alsasink
我试图通过wasapisink
或autoaudiosink
将其修改为在Windows上使用:
gst-launch-1.0.exe -v filesrc location=1.wav ! wavparse ! audioconvert ! autoaudiosink
gst-launch-1.0.exe -v filesrc location=1.wav ! wavparse ! audioconvert ! wasapisink
两次尝试均会导致错误:
错误:来自元素/ GstPipeline:pipeline0 / GstWavParse:wavparse0:内部数据流错误。
完整日志如下:
Setting pipeline to PAUSED ...
Pipeline is prerollING ...
/GstPipeline:pipeline0/GstWavParse:wavparse0.GstPad:src: caps = audio/x-raw,format=(string)S16LE,layout=(string)interleaved,channels=(int)2,channel-mask=(bitmask)0x0000000000000003,rate=(int)44100
ERROR: from element /GstPipeline:pipeline0/GstWavParse:wavparse0: Internal data stream error.
Additional debug info:
../gst/wavparse/gstwavparse.c(2308): gst_wavparse_loop (): /GstPipeline:pipeline0/GstWavParse:wavparse0:
streaming stopped,reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
ERROR: from element /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstWasapiSink:autoaudiosink0-actual-sink-wasapi: The stream is in the wrong format.
Additional debug info:
../gst-libs/gst/audio/gstaudiobasesink.c(1117): gst_audio_base_sink_wait_event (): /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstWasapiSink:autoaudiosink0-actual-sink-wasapi:
Sink not negotiated before eos event.
ERROR: pipeline doesn't want to preroll.
Freeing pipeline ...
我尝试了来自不同来源的多个.wav
文件。总是一样的结果。
我已经确认autoaudiosink
可在我的PC上正常工作,因为这两个命令都产生了声音:
gst-launch-1.0.exe -v audiotestsrc samplesperbuffer=160 ! audioconvert ! autoaudiosink
gst-launch-1.0.exe -v audiotestsrc samplesperbuffer=160 ! autoaudiosink
我还确认了playbin
可以通过我的扬声器播放文件,但这对我来说不起作用,因为最终我将需要进一步分配管道。
gst-launch-1.0.exe -v playbin uri=file:///C:/1.wav
我正在Windows 10上使用gstreamer 1.18.0。如何使用.wav
和filesrc
通过扬声器播放autoaudiosink
文件的内容?
解决方法
也许也可以在audioresample
之前或之后尝试audioconvert
。不能完全确定当前的Windows音频子系统-但是当今的硬件往往要求48000 Hz的采样率。如果音频子系统无法解决问题,则需要您自己处理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。