Wenn Sie eine Android-App möchten, die eine flexible Verwaltung der Youtube-Streaming-Protokolle auf eine Weise ermöglicht, die die Auswahl nur des Audio-Teils des Medien-Streams beim Verwerfen des Videotracks unterstützt, sollten Sie VLC für Android im Auge behalten . Es befindet sich noch in der Entwicklung, würde aber wahrscheinlich die Funktion "Nur Audio" ansprechen.
Aus technischer Sicht hilft es, das Problem in verfügbare Youtube-Netzwerkprotokolle für Media Streaming RTSP zu unterteilen. Mit RTSP-Spezifikationen kann ein Client mithilfe des Befehls DESCRIBE, auf den der Server mit einem SDP-Datensegment antwortet, eine Anforderung stellen (siehe Details unten). Youtube-Server können in einer Vielzahl von Protokollen antworten und zugrunde liegende Streams senden, die wiederum eine Vielzahl von Codierungen verwenden - eine für Audio und eine für Video -, um die Medienbits über das Netzwerk an den Client zu übertragen. Über die Mobilfunknetze ist eine Funktion, die zu YouTube geht, um sowohl Audio- als auch Videotracks zu empfangen, bevor das Video verworfen wird, während nur Audio wiedergegeben wird, keine gute Praxis, da für den nicht verwendeten Videostream eine hohe Netzwerkanforderung besteht. Mit weiteren technischen Details können Sie die Ineffizienz des Netzwerks umgehen.
RTSP- und SDP-Standards, die von Youtube eingehalten werden, ermöglichen einem Streaming-Client (Android-Gerät), NUR das Audio während der Client / Server-Handshake-Schritte und Verhandlungsschritte rund um den Netzwerkverbindungsaufbau anzufordern, die das Media-Streaming durchführen. In diesem Fall würde kein Video gesendet und der Android-Player auf einen Nur-Audio-Stream konfiguriert. Es folgen einige CLI-Befehlsdetails und einige Protokolldetails zu diesem "Nur Youtube-Audio" -Szenario.
Ein YouTube-Nur-Audio-Track im Format 1 für ein bestimmtes Video ist unter der folgenden RTSP-URI verfügbar:
rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp
Aus der RTSP-URI für das gesamte Video (Audiospur plus Videospur) werden im folgenden CLI-Ausdruck zwei Medienclients verwendet: openRTSP und mPlayer , die zu Youtube gehen und dann nur die Youtube-Audiospur abrufen / wiedergeben, indem nur Kanal = 1 angefordert wird .
./openRTSP -a rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp | ./mplayer -cache 8092 - -rawaudio channels=1:rate=8000:samplesize=2:format=0x73616D72
Dieser CLI-Ausdruck wird weiter unten in einem Link beschrieben.
Youtube-Feeds beschreiben die verfügbaren Stream-Formate für alle Youtube-Videos, einschließlich der oben genannten RTSP-URIs. Eine technische Erklärung der Youtube-Streaming- Formate finden Sie im Eintrag für "Format" 1,5,6 in der langen Tabelle.
Die folgende Anfrage erhält einen Feed von Youtube, der die unterschiedlich formatierten RTSP-URIs enthält, die für dieses bestimmte Video verfügbar sind:
http://gdata.youtube.com/feeds/api/users/rowntreerob/uploads?vq=cpST8yz4w1w&prettyprint='true'
Die wichtigsten Details einer verbundenen RTSP-SESSION, in der die vollständige SDP-Beschreibung für ein bestimmtes Youtube-Video angefordert wird, damit nur der Audiotrack gestreamt / abgespielt werden kann, finden Sie hier .
Schlüssel zu den nummerierten Zeilen im obigen Link:
82 – the RTSP DESCRIBE request
101 – the SDP response
103 – video track’s format
116 – the attributes describing the audio track
line 165 – the audio track setup by the player
184 – the audio-only playback
201 – using a separate CLI expression this is playback of a previous download on just the audio track