openairplay / node_airtunes

node.js AirTunes v2 implementation: stream wirelessly to Apple audio devices.
BSD 2-Clause "Simplified" License
273 stars 84 forks source link

Can't get the example to stream to AirPort Express #36

Open steveharman opened 9 years ago

steveharman commented 9 years ago

Hi,

// OSX 10.10.3 (Yosemite) // Node v0.10.33

After installing node_airtunes I thought I'd quickly fire up the example to make sure my environment was OK before going any further, so:

$ cat sample.pcm | node play_stdin.js --host yourhost

I replaced 'yourhost' with the IP of my Airport Express and the script proceeded without error, although I got no audio through the Airport Express. In fact no matter what IP I try (even ones which don't exist) the script proceeds with identical on-screen feedback:


$ cat sample.pcm | node play_stdin.js --host 192.168.1.100 pipe PCM data to play over AirTunes example: cat sample.pcm | node play_stdin.js --host

adding device: 192.168.1.100:5000 stopping all stopped buffer buffering buffer playing buffer end playback ended, waiting for AirTunes devices

end

I'm sure this is something noob that I've missed but can anyone help please?

Thanks,

Steve

noelhibbard commented 9 years ago

I'm having the same problem on Debian 8.1 with Node 0.10.36. The "exact" same steps and the "exact" same results. I'm really dying to get this working. My goal is to shairport-sync piped to node_airtunes back out the multiple instances of shairport-sync. I have successfully gotten shairport-sync pipe output working but now I'm stuck getting node_airtunes to work.

noelhibbard commented 9 years ago

Geez.. It would help if I looked through the solved issues. Look here for the fix: https://github.com/lperrin/node_airtunes/issues/29

noelhibbard commented 9 years ago

Okay.. that default play_stdin.js sample will only play sound until it hits timeout. I wasn't really paying much attention to the sample code.. I extended the timeout enough to get through sample.pcm but once I sent it a real stream I realized it what was really going on in the code. I removed the timeout and now it will play indefinitely and I have shairport-sync piping into it perfectly. So now I will start working on my real project. :)

steveharman commented 9 years ago

Great tip, thanks. And shairport-sync too - you read my mind.

I'm not at my machine right now but is the timeout value easy to spot? Sounds like I'm trying a similar thing; piping outpit from Mike's shairport-sync into node-airtunes.

Steve

noelhibbard commented 9 years ago

Git clone the dev branch of shairport-sync. When you configure the build options use --with-pipe. Then use this version of play_stdin.js: http://pastebin.com/U1LQrEqd

And use this command line for shairport-sync: shairport-sync -d -o pipe -- /tmp/airpipe

And this command line for the node airtunes: cat /tmp/airpipe | node play_stdin.js --host [someiphere]