Gstreamer "스트림 형식 오류입니다."

Gstreamer "스트림 형식 오류입니다."

저는 Bluetooth 어댑터와 함께 Raspberry Pi 0을 사용하고 있으며 Bluetooth 스피커로 mp3 파일을 재생하려고 합니다. 여러 번 시도한 끝에 연결에 성공했습니다. 모든 것이 작동하도록 실행한 명령의 전체 목록은 다음과 같습니다.

rfkill unblock 0
sudo hciconfig hci0 up
sudo hciconfig hci0 piscan
pulseaudio -k
pulseaudio -D
bluetoothctl -a
  scan on
  connect 30:95:E3:95:46:F7
  exit

이제 다음 gstreamer 명령을 사용하여 오디오를 스피커로 스트리밍합니다.

gst-launch-1.0 filesrc location=song.mp3 ! pulsesink device=bluez_source.30_95_E3_95_46_F7

이로 인해 다음 오류가 발생합니다.

pi@raspberrypi:~ $ gst-launch-1.0 filesrc location=song.mp3 ! pulsesink device=bluez_source.30_95_E3_95_46_F7
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstPulseSink:pulsesink0: The stream is in the wrong format.
Additional debug info:
gstaudiobasesink.c(1119): gst_audio_base_sink_preroll (): /GstPipeline:pipeline0/GstPulseSink:pulsesink0:
sink not negotiated.
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

song.mp3일반 오디오 파일이며 휴대폰, vlc 및 Windows Media Player로 재생할 수 있습니다. 스피커는 내 전화기에서도 작동합니다.

이 문제를 해결하려면 어떻게 해야 합니까?

답변1

내가 하고 있는 일에는 두 가지 문제가 있는 것으로 밝혀졌습니다.

  • Gstreamer는 때때로 mp3 파일을 지원합니다. 이 링크지원하는 형식에 대해. 교체하면 문제가 filesrc해결되지만 audiotestsrc ! convertaudio변환이 필요한 이유는 잘 모르겠습니다.
  • bluez_sink블루투스 장치가 오디오 대상이기 때문에 대신 사용해야 합니다 bluez_source.

이것은 스피커에서 오디오를 재생하는 마지막 명령입니다.

gst-launch-1.0 audiotestsrc ! pulsesink device=bluez_sink.FC_58_FA_68_B4_8B

관련 정보