Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Streaming mp3, aac, etc. with atvremote/pyatv to my soundbar works but I can't hear anything #2351

Open
helgek opened this issue Feb 8, 2024 · 8 comments
Labels

Comments

@helgek
Copy link

helgek commented Feb 8, 2024

Describe the bug

Hi,

I have the Samsung HW-S801B soundbar which only supports Airplay as input source besides HDMI. Chromecast is also not supported so I ended up trying to find an Airplay capable audio player solution for linux.

After successful installation of pyatv I use the following command which successfully establishes a connection to the soundbar and atvremote stays connected for the time of the length of the audio file:

atvremote --id 80:8A:BD:16:B9:BB stream_file=sample-file-2.mp3

The Samsung SmartLife app the status states that the soundbar is playing audio over WiFi while this command is running. But unfortunately I can't hear any audio. Of I checked volume settings and playing from my iOS or MacOS devices works fine.

I also tried Apple TV Home Assistant integration with the same outcome.

I hope the log file attached can be of help.
logfile.txt

Thank you,
Helge

Error log

please see the logfile attached, no error(s) though as far as I can see.
logfile.txt

How to reproduce the bug?

Possibly with other Airplay based (Samsung) soundbars (?)

What is expected behavior?

hear audio instead of silence from the soundbar.

Operating System

Debian 12.4

Python

Other

pyatv

0.14.5

Device

Samsung Soundbar HW-S801B

Additional context

When I tested with Apple TV integration I used Home Assistant OS installation.

@helgek helgek added the bug label Feb 8, 2024
@helgek
Copy link
Author

helgek commented Feb 9, 2024

additional finding today with the same outcome (the soundbar would act in the SmartThings app as if it was playing, but I can't hear any sound). After installing pipewire I ran these commands:

~$ pactl list sinks

which would return:

Sink #95
	State: SUSPENDED
	Name: raop-sink-507-15
	Description: Samsung Soundbar S801B
	Driver: PipeWire
	Sample Specification: s16le 2ch 44100Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: raop-sink-507-15.monitor
	Latency: 0 usec, configured 0 usec
	Flags: DECIBEL_VOLUME LATENCY 
	Properties:
		node.name = "raop-sink-507-15"
		device.description = "Samsung Soundbar S801B"
		node.latency = "352/44100"
		node.virtual = "true"
		media.class = "Audio/Sink"
		media.name = "RAOP sink"
		stream.is-live = "true"
		node.want-driver = "true"
		adapt.follower.spa-node = ""
		object.register = "false"
		factory.id = "6"
		clock.quantum-limit = "8192"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		client.id = "52"
		object.id = "56"
		object.serial = "95"
	Formats:
		pcm

Then I did

~$ pactl upload-sample CantinaBand3.wav testfile_Wav

and eventually

~$ pactl play-sample testfile_Wav raop-sink-507-15

-> the file is being streamed to the soundbar but I can't hear anything.

@helgek
Copy link
Author

helgek commented Feb 9, 2024

One more thought: I think to recall that I found one comment during my search for a solution that stated that modifying latency helped in a similar setup. Unfortunately I can't find it anymore but I thought it's maybe worth mentioning as well. Thank you again for any additional input that might help in my case.

@helgek
Copy link
Author

helgek commented Feb 9, 2024

Adding a cross-reference to home-assistant/core#95993 (comment) since they might be related

@helgek
Copy link
Author

helgek commented Feb 9, 2024

Adding Home Assistant Apple TV integration debug log as well:

log_apple_tv_integration_samsung_soundbar.txt

@helgek
Copy link
Author

helgek commented Feb 14, 2024

Maybe this is an explanation why it doesn't work: https://community.roonlabs.com/t/implementation-of-airplay-2/229509/5 . Since the Samsung Soundbars are probably not backwards compatible to Airplay 1 and there might not be any working third party implementation to stream AirPlay2 audio to AirPlay2 receivers anytime soon this issue will possibly remain unsolved for now.

Same issue also here: owntone/owntone-server#1465

@postlund
Copy link
Owner

pyatv supports streaming via AirPlay 2 and does so if the receiver supports it. It's possible to force a specific version via a setting (https://pyatv.dev/api/settings/#pyatv.settings.RaopSettings.protocol_version).

But you are likely right that it does not support AirPlay 1. Problem with sound not working is a bug that I haven't managed to figure out.

@helgek
Copy link
Author

helgek commented Feb 14, 2024

Thank you for the follow-up. I had also tried forcing the protocol version I think, with the same outcome.

@helgek
Copy link
Author

helgek commented Feb 19, 2024

Just adding this thread where latency settings could potentially play a role regarding successful sound output (though my understanding of all this is really shallow): https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3804

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants