openairplay / airplay2-receiver

AirPlay 2 Receiver - Python implementation
2.12k stars 131 forks source link

much noisy or broken voice when playing songs. #73

Closed cosmichut closed 2 years ago

cosmichut commented 2 years ago

The problem

I do complied the project and the receiver worked in my windows pc and raspberry pi. but the sounds has much noisy . and when I see the log, there are many resend request. any other meet this problem?

also, I fix some codes otherewise the voice cannot play. what I changed like following:

@@ -569,7 +569,7 @@ class Audio: try: for frame in self.codecContext.decode(packet): frame = self.resampler.resample(frame)

anyone can help? many thanks.

What commit exhibits the issue?

master

Was there a last known working commit?

No response

What type of installation are you running?

virtualenv

With which python3 version do you run Receiver?

python 3.7

OS the receiver runs on

windows

OS the sender runs

win11

Which sender client was used

kugou music

Command invocation

python3 ap2-receiver.py -m jspc -n {xxxxx}

Please include --debug output which helps to illustrate the problem

[comtypes]: CoInitializeEx(None, 2) Receiver: Name: justinpc Receiver: Enabled features: 0001c300405f4200

dev_name: justinpc parser.get_default('mdns'): myap2 dev_name here: justinpc [comtypes]: Release <POINTER(IMMDeviceEnumerator) ptr=0x11e3b544340 at 11e53671848> [comtypes]: Release <POINTER(IMMDevice) ptr=0x11e523fb3e0 at 11e53671a48> [comtypes]: Release <POINTER(IUnknown) ptr=0x11e522c9480 at 11e53671848> [comtypes]: Release <POINTER(IAudioSessionControl) ptr=0x11e523f2bf0 at 11e53671a48> [comtypes]: Release <POINTER(IAudioSessionManager2) ptr=0x11e522c9480 at 11e53671ac8> [comtypes]: Release <POINTER(IAudioSessionEnumerator) ptr=0x11e5255ee20 at 11e53671848> [comtypes]: Release <POINTER(IAudioSessionControl) ptr=0x11e523f3600 at 11e53671bc8> [comtypes]: Release <POINTER(IAudioSessionControl2) ptr=0x11e523f2bf8 at 11e53671b48> [comtypes]: Release <POINTER(IAudioSessionControl2) ptr=0x11e523f3608 at 11e53671a48> Receiver: Interface: {8FA38462-186D-442A-9951-87305B33C34E} Receiver: Mac: 98:3b:8f:d6:f4:7f Receiver: IPv4: 192.168.1.125 Receiver: IPv6: 240e:3b1:3498:c680:80e6:a144:5b3d:b38d Receiver: [asyncio]: Using selector: SelectSelector Receiver: mDNS: service registered Receiver: Starting RTSP server, press Ctrl-C to exit... Receiver: serving on 192.168.1.125:7000 [AP2Server: 192.168.1.125:7000]: Opened connection from 192.168.1.176:49741 AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: {'qualifier': ['txtAirPlay']} AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: Sending our device info [AP2Server: 192.168.1.125:7000]: Thread-2: Opened HAPSocket from 192.168.1.176:49741 AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: SETUP: rtsp://192.168.1.125/7898143271540051563 AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: [comtypes]: CoInitializeEx(None, 2) AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: GET_PARAMETER: rtsp://192.168.1.125/7898143271540051563 AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: GET_PARAMETER: b'volume' [comtypes]: Release <POINTER(IMMDeviceEnumerator) ptr=0x11e3b544340 at 11e5374f948> [comtypes]: Release <POINTER(IMMDevice) ptr=0x11e397541a0 at 11e5374f8c8> [comtypes]: Release <POINTER(IUnknown) ptr=0x11e522c9480 at 11e5374f948> [comtypes]: Release <POINTER(IAudioSessionControl) ptr=0x11e523f3600 at 11e5374f8c8> [comtypes]: Release <POINTER(IAudioSessionManager2) ptr=0x11e522c9480 at 11e5374f9c8> [comtypes]: Release <POINTER(IAudioSessionEnumerator) ptr=0x11e5255f830 at 11e5374f948> [comtypes]: Release <POINTER(IAudioSessionControl) ptr=0x11e523f2a80 at 11e5374fbc8> [comtypes]: Release <POINTER(IAudioSessionControl2) ptr=0x11e523f3608 at 11e5374fa48> [comtypes]: Release <POINTER(IAudioSessionControl2) ptr=0x11e523f2a88 at 11e5374f8c8> AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: RECORD: rtsp://192.168.1.125/7898143271540051563 AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: SETPEERS: rtsp://192.168.1.125/7898143271540051563

'192.168.1.176', 'fe80::8c2:464c:174d:b460', '240e:3b1:3498:c680:93:cb4c:d759:c9c2'] AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: SETUP: rtsp://192.168.1.125/7898143271540051563 [utils] removing StreamHandler from Audio.debug file logger [Audio.debug] file logging level: DEBUG AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: [comtypes]: Release <POINTER(IMMDeviceEnumerator) ptr=0x11e3b544340 at 11e5377b948> [comtypes]: Release <POINTER(IMMDevice) ptr=0x11e525a32e0 at 11e5377b0c8> [comtypes]: Release <POINTER(IUnknown) ptr=0x11e522c9480 at 11e5377b948> [comtypes]: Release <POINTER(IAudioSessionControl) ptr=0x11e523f3600 at 11e5377b0c8> [comtypes]: Release <POINTER(IAudioSessionManager2) ptr=0x11e522c9480 at 11e5377b9c8> [comtypes]: Release <POINTER(IAudioSessionEnumerator) ptr=0x11e5255f1a0 at 11e5377b948> [comtypes]: Release <POINTER(IAudioSessionControl) ptr=0x11e523f3490 at 11e5377bb48> [comtypes]: Release <POINTER(IAudioSessionControl2) ptr=0x11e523f3608 at 11e5377bac8> [comtypes]: Release <POINTER(IAudioSessionControl2) ptr=0x11e523f3498 at 11e5377b0c8> [asyncio]: Using selector: SelectSelector AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: SET_PARAMETER: rtsp://192.168.1.125/7898143271540051563 AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: SET_PARAMETER: b'progress' => b' 2089603523/2113203412/2100347252' AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: FLUSH: rtsp://192.168.1.125/7898143271540051563 AP2Handler: 192.168.1.125:7000<=>192.168.1.176:49741; Thread-2: SET_PARAMETER: rtsp://192.168.1.125/7898143271540051563

dmap.persistentid: 0x4673abff1abe5b7d daap.songalbum: 《我和我的祖国》 daap.songartist: 华语群星 dmap.itemname: 华语群星 - 我和我的祖国 dacp.playerstate: Paused

[comtypes]: CoInitializeEx(None, 2) [comtypes]: CoInitializeEx(None, 2) [AudioRealtime]: audioDevicelatency (sec): 0.09000 [AudioRealtime]: pyAudioDelay (sec): 0.09016 [AudioRealtime]: Total sample_delay (sec): 0.18216 D:\myprojects\embedded\airplay2-receiver-main\ap2\connections\audio.py:572: MethodDeprecationWarning: AudioPlane.to_bytes is deprecated. return frame[0].planes[0].to_bytes() [AudioRealtime]: requesting resend of sequence_no 54133; amt 2 [AudioRealtime]: requesting resend of sequence_no 54143; amt 1 [AudioRealtime]: requesting resend of sequence_no 54147; amt 3 [AudioRealtime]: requesting resend of sequence_no 54143; amt 1 [AudioRealtime]: requesting resend of sequence_no 54147; amt 3 [AudioRealtime]: requesting resend of sequence_no 54160; amt 1 [AudioRealtime]: requesting resend of sequence_no 54166; amt 1 [AudioRealtime]: requesting resend of sequence_no 54172; amt 4 [AudioRealtime]: requesting resend of sequence_no 54181; amt 1 [AudioRealtime]: requesting resend of sequence_no 54186; amt 1 [AudioRealtime]: requesting resend of sequence_no 54189; amt 1 [AudioRealtime]: requesting resend of sequence_no 54200; amt 2 [AudioRealtime]: requesting resend of sequence_no 54204; amt 1 [AudioRealtime]: requesting resend of sequence_no 54207; amt 1 [AudioRealtime]: requesting resend of sequence_no 54212; amt 2 [AudioRealtime]: requesting resend of sequence_no 54215; amt 1 [AudioRealtime]: requesting resend of sequence_no 54224; amt 1 [AudioRealtime]: requesting resend of sequence_no 54226; amt 2 [AudioRealtime]: requesting resend of sequence_no 54237; amt 3 [AudioRealtime]: requesting resend of sequence_no 54181; amt 1 [AudioRealtime]: requesting resend of sequence_no 54186; amt 1 [AudioRealtime]: requesting resend of sequence_no 54189; amt 1 [AudioRealtime]: requesting resend of sequence_no 54200; amt 2 [AudioRealtime]: requesting resend of sequence_no 54204; amt 1 [AudioRealtime]: requesting resend of sequence_no 54207; amt 1 [AudioRealtime]: requesting resend of sequence_no 54212; amt 2 [AudioRealtime]: requesting resend of sequence_no 54215; amt 1 [AudioRealtime]: requesting resend of sequence_no 54224; amt 1 [AudioRealtime]: requesting resend of sequence_no 54226; amt 2 [AudioRealtime]: requesting resend of sequence_no 54301; amt 3 [AudioRealtime]: requesting resend of sequence_no 54329; amt 1 [AudioRealtime]: requesting resend of sequence_no 54237; amt 3 [AudioRealtime]: requesting resend of sequence_no 54259; amt 1 [AudioRealtime]: requesting resend of sequence_no 54264; amt 2 [AudioRealtime]: requesting resend of sequence_no 54277; amt 1 [AudioRealtime]: requesting resend of sequence_no 54340; amt 2 [AudioRealtime]: requesting resend of sequence_no 54367; amt 1 [AudioRealtime]: requesting resend of sequence_no 54371; amt 3 [AudioRealtime]: requesting resend of sequence_no 54301; amt 3 [AudioRealtime]: requesting resend of sequence_no 54392; amt 2 [AudioRealtime]: requesting resend of sequence_no 54407; amt 1 [AudioRealtime]: requesting resend of sequence_no 54329; amt 1 [AudioRealtime]: requesting resend of sequence_no 54340; amt 2 [AudioRealtime]: requesting resend of sequence_no 54367; amt 1 [AudioRealtime]: requesting resend of sequence_no 54425; amt 1 [AudioRealtime]: requesting resend of sequence_no 54433; amt 2 [AudioRealtime]: requesting resend of sequence_no 54457; amt 1 [AudioRealtime]: requesting resend of sequence_no 54392; amt 2 [AudioRealtime]: requesting resend of sequence_no 54407; amt 1 [AudioRealtime]: requesting resend of sequence_no 54495; amt 1 [AudioRealtime]: requesting resend of sequence_no 54499; amt 3 [AudioRealtime]: requesting resend of sequence_no 54425; amt 1 [AudioRealtime]: requesting resend of sequence_no 54433; amt 2 [AudioRealtime]: requesting resend of sequence_no 54457; amt 1 [AudioRealtime]: requesting resend of sequence_no 54457; amt 1 [AudioRealtime]: requesting resend of sequence_no 54495; amt 1 [AudioRealtime]: requesting resend of sequence_no 54499; amt 3 [AudioRealtime]: requesting resend of sequence_no 54634; amt 4 [AudioRealtime]: requesting resend of sequence_no 54652; amt 1 [AudioRealtime]: requesting resend of sequence_no 54655; amt 1 [AudioRealtime]: requesting resend of sequence_no 54663; amt 1 [AudioRealtime]: requesting resend of sequence_no 54668; amt 2 [AudioRealtime]: requesting resend of sequence_no 54681; amt 1 [AudioRealtime]: requesting resend of sequence_no 54634; amt 4 [AudioRealtime]: requesting resend of sequence_no 54652; amt 1 [AudioRealtime]: requesting resend of sequence_no 54655; amt 1 [AudioRealtime]: requesting resend of sequence_no 54663; amt 1 [AudioRealtime]: requesting resend of sequence_no 54668; amt 2 [AudioRealtime]: requesting resend of sequence_no 54753; amt 5 [AudioRealtime]: requesting resend of sequence_no 54764; amt 2 [AudioRealtime]: requesting resend of sequence_no 54681; amt 1 [AudioRealtime]: requesting resend of sequence_no 54704; amt 1 [AudioRealtime]: requesting resend of sequence_no 54719; amt 1 [AudioRealtime]: requesting resend of sequence_no 54780; amt 1 [AudioRealtime]: requesting resend of sequence_no 54783; amt 1 [AudioRealtime]: requesting resend of sequence_no 54719; amt 1 [AudioRealtime]: requesting resend of sequence_no 54753; amt 5 [AudioRealtime]: requesting resend of sequence_no 54820; amt 2 [AudioRealtime]: requesting resend of sequence_no 54829; amt 1 [AudioRealtime]: requesting resend of sequence_no 54844; amt 1 [AudioRealtime]: requesting resend of sequence_no 54854; amt 2

Additional information

No response

TheSpookyCat commented 2 years ago

Can you please make sure that your version of av is at 8.1.0 & try again (assuming you're still using an unmodified version from master)? I had the same issue but #72 fixed it.

cosmichut commented 2 years ago

Can you please make sure that your version of av is at 8.1.0 & try again (assuming you're still using an unmodified version from master)? I had the same issue but #72 fixed it.

you make me a really big big help! and as well , I need not to make change "return frame[0].planes[0].to_bytes()".

after pip --install av==8.1.0, everything goes perfect !!