gpt4 book ai didi

windows - 如何在Windows上使用gstreamer播放.wav音频文件?

转载 作者:行者123 更新时间:2023-12-03 00:23:27 30 4
gpt4 key购买 nike

wavparse documentation提供了此示例,可在Linux上的扬声器上使用Alsa音频播放.wav音频文件。

gst-launch-1.0 filesrc location=sine.wav ! wavparse ! audioconvert ! alsasink
我试图将其改编为在Windows上使用 wasapisinkautoaudiosink:
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
两种尝试均会导致错误:

ERROR: from element /GstPipeline:pipeline0/GstWavParse:wavparse0: Internal data stream error.


完整的日志如下所示:
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。如何使用 .wavfilesrc通过扬声器播放 autoaudiosink文件的内容?

最佳答案

也许也可以在audioresample之前或之后尝试audioconvert。不能完全确定当前的Windows音频子系统-但是当今的硬件往往要求48000 Hz的采样率。如果音频子系统无法解决问题,则您需要自己进行处理。

关于windows - 如何在Windows上使用gstreamer播放.wav音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63890466/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com