Dynamic Transcoding for Enhancing Audio Playback
A first playback device is configured to: operate as part of a synchrony group that comprises the first playback device and a second playback device; obtain a first version of audio content that is encoded according to a first encoding format; determine that the first version of the audio content is unsuitable for playback by the second playback device; based on the determination, (i) decode the first version of the audio content and (ii) re-encode a second version of the audio content according to a second encoding format; transmit the second version of the audio content to the second playback device for playback; cause the second playback device to play back the second version of the audio content; and play back the first version of the audio content in synchrony with the playback of the second version of the audio content by the second playback device.
1 . A first playback device comprising:
at least one processor;
at least one non-transitory computer-readable medium; and
program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the first playback device to:
operate as part of a synchrony group of a given media playback system that comprises the first playback device and a second playback device;
obtain a first version of audio content that is encoded according to a first encoding format, wherein the audio content is to be played back in synchrony by the synchrony group;
determine that the first version of the audio content is unsuitable for synchronous playback by the second playback device;
based on the determination, cause the first version of the audio content to be decoded and re-encoded into a second version of the audio content according to a second encoding format that is suitable for synchronous playback by the second playback device;
cause the second version of the audio content to be transmitted to the second playback device for synchronous playback; and
play back the first version of the audio content that is encoded according to the first encoding format in synchrony with playback, by the second playback device, of the second version of the audio content that is encoded according to the second encoding format.
2 . The first playback device of claim 1 , wherein:
the program instructions that, when executed by the at least one processor, cause the first playback device to cause the first version of the audio content to be decoded and re-encoded into the second version of the audio content comprise program instructions that, when executed by the at least one processor, cause the first playback device to cause a network device to decode the first version of the audio content and re-encode the first version of the audio content into the second version of the audio content; and
the program instructions that, when executed by the at least one processor, cause the first playback device to cause the second version of the audio content to be transmitted to the second playback device comprise program instructions that, when executed by the at least one processor, cause the first playback device to cause the network device to transmit the second version of the audio content to the second playback device.
3 . The first playback device of claim 1 , wherein:
the program instructions that, when executed by the at least one processor, cause the first playback device to cause the first version of the audio content to be decoded and re-encoded into the second version of the audio content comprise program instructions that, when executed by the at least one processor, cause the first playback device to decode the first version of the audio content and re-encode the first version of the audio content into the second version of the audio content; and
the program instructions that, when executed by the at least one processor, cause the first playback device to cause the second version of the audio content to be transmitted to the second playback device comprise program instructions that, when executed by the at least one processor, cause the first playback device to transmit the second version of the audio content to the second playback device.
4 . The first playback device of claim 1 , wherein the first version of the audio content comprises a bit rate that is higher than a respective bit rate of the second version of the audio content.
5 . The first playback device of claim 1 , wherein the program instructions that, when executed by the at least one processor, cause the first playback device to determine that the first version of the audio content is unsuitable for synchronous playback by the second playback device comprise program instructions that, when executed by the at least one processor, cause the first playback device to:
identify a connection quality between the second playback device and a network device; and
determine that the connection quality does not meet a threshold connection quality.
6 . The first playback device of claim 5 , wherein the first playback device and the second playback device are configured to communicate with the network device over a wireless local area network (WLAN).
7 . The first playback device of claim 5 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the first playback device to:
determine a change in the connection quality between the second playback device and the network device, wherein the connection quality meets the threshold connection quality based on the change; and
based on the determination:
cause the first version of the audio content to be transmitted to the second playback device; and
cause the second playback device to transition from playing back the second version of the audio content to playing back the first version of the audio content in synchrony with the playback of the first version of the audio content by the first playback device.
8 . The first playback device of claim 7 , wherein the program instructions that, when executed by the at least one processor, cause the first playback device to determine the change in the connection quality between the second playback device and the network device comprise program instructions that, when executed by the at least one processor, cause the first playback device to:
determine an improvement in one or both of (i) network latency or (ii) network bandwidth, and wherein the first version of the audio content comprises a bit rate that is higher than a respective bit rate of the second version of the audio content.
9 . The first playback device of claim 5 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the first playback device to:
determine a change in a third connection quality between a third playback device of the synchrony group and the network device, wherein the third connection quality does not meet the threshold connection quality based on the change; and
based on the determination:
cause the first version of the audio content to be decoded and re-encoded into a third version of the audio content according to a third encoding format;
cause the third version of the audio content to be transmitted to the third playback device; and
cause the third playback device to transition from playing back either the first or second version of the audio content to playing back the third version of the audio content in synchrony with the playback of the first version of the audio content by the first playback device and the second version of the audio content by the second playback device.
10 . The first playback device of claim 9 , wherein the program instructions that, when executed by the at least one processor, cause the first playback device to determine the change in the third connection quality between the third playback device and the network device comprise program instructions that, when executed by the at least one processor, cause the first playback device to:
determine a reduction in one or both of (i) network latency or (ii) network bandwidth, and wherein the third version of the audio content comprises a bit rate that is higher than a respective bit rate of the second version of the audio content but lower than a respective bit rate of the first version of the audio content.
11 . The first playback device of claim 1 , wherein the program instructions that, when executed by the at least one processor, cause the first playback device to determine that the first version of the audio content is unsuitable for synchronous playback by the second playback device of the synchrony group comprise program instructions that, when executed by the at least one processor, cause the first playback device to:
determine that a number of audio channels in the first version of the audio content is unsuitable for synchronous playback by the second playback device.
12 . The first playback device of claim 1 , wherein the program instructions that, when executed by the at least one processor, cause the first playback device to obtain the first version of the audio content comprise program instructions that, when executed by the at least one processor, cause the first playback device to:
obtain the first version of the audio content from a computing device via an audio line-in input connection.
13 . The first playback device of claim 1 , wherein the program instructions that, when executed by the at least one processor, cause the first playback device to obtain the first version of the audio content comprise program instructions that, when executed by the at least one processor, cause the first playback device to:
obtain the first version of the audio content from a media streaming service.
14 . A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a first playback device to:
operate as part of a synchrony group of a given media playback system that comprises the first playback device and a second playback device;
obtain a first version of audio content that is encoded according to a first encoding format, wherein the audio content is to be played back in synchrony by the synchrony group;
determine that the first version of the audio content is unsuitable for synchronous playback by the second playback device;
based on the determination, cause the first version of the audio content to be decoded and re-encoded into a second version of the audio content according to a second encoding format that is suitable for synchronous playback by the second playback device;
cause the second version of the audio content to be transmitted to the second playback device for synchronous playback; and
play back the first version of the audio content that is encoded according to the first encoding format in synchrony with playback, by the second playback device, of the second version of the audio content that is encoded according to the second encoding format.
15 . A method implemented by a first playback device, the method comprising:
operating as part of a synchrony group of a given media playback system that comprises the first playback device and a second playback device;
obtaining a first version of audio content that is encoded according to a first encoding format, wherein the audio content is to be played back in synchrony by the synchrony group;
determining that the first version of the audio content is unsuitable for synchronous playback by the second playback device;
based on the determination, causing the first version of the audio content to be decoded and re-encoded into a second version of the audio content according to a second encoding format that is suitable for synchronous playback by the second playback device;
causing the second version of the audio content to be transmitted to the second playback device for synchronous playback; and
playing back the first version of the audio content that is encoded according to the first encoding format in synchrony with playback, by the second playback device, of the second version of the audio content that is encoded according to the second encoding format.
16 . The method of claim 15 , wherein:
causing the first version of the audio content to be decoded and re-encoded into the second version of the audio content comprises causing a network device to decode the first version of the audio content and re-encode the first version of the audio content into the second version of the audio content; and
causing the second version of the audio content to be transmitted to the second playback device comprises causing the network device to transmit the second version of the audio content to the second playback device.
17 . The method of claim 15 , wherein:
causing the first version of the audio content to be decoded and re-encoded into the second version of the audio content comprises decoding the first version of the audio content and re-encoding the first version of the audio content into the second version of the audio content; and
causing the second version of the audio content to be transmitted to the second playback device comprises transmitting the second version of the audio content to the second playback device.
18 . The method of claim 15 , wherein the first version of the audio content comprises a bit rate that is higher than a respective bit rate of the second version of the audio content.
19 . The method of claim 15 , wherein determining that the first version of the audio content is unsuitable for synchronous playback by the second playback device comprises:
identifying a connection quality between the second playback device and a network device; and
determining that the connection quality does not meet a threshold connection quality.
20 . The method of claim 19 , further comprising:
determining a change in the connection quality between the second playback device and the network device, wherein the connection quality meets the threshold connection quality based on the change; and
based on the determination:
causing the first version of the audio content to be transmitted to the second playback device; and
causing the second playback device to transition from playing back the second version of the audio content to playing back the first version of the audio content in synchrony with the playback of the first version of the audio content by the first playback device.