Если вы хотите приложение для Android, которое бы позволяло гибко управлять потоковыми протоколами Youtube таким образом, чтобы поддерживать выбор только аудио части медиапотока при отбрасывании видеодорожки, следите за VLC для Android . Он все еще находится в стадии разработки, но, вероятно, будет включать функцию «только аудио».
С технической точки зрения это помогает разбить проблему на доступные сетевые протоколы Youtube для потоковой передачи мультимедиа RTSP., Спецификации RTSP позволяют клиенту сделать запрос с помощью команды DESCRIBE, на которую сервер отвечает сегментом данных SDP (подробности см. Ниже). Серверы Youtube могут отвечать различными протоколами, отправляя базовые потоки, которые, в свою очередь, используют различные кодировки - одну для аудио, одну для видео - для передачи битов мультимедиа по сети клиенту. В мобильных сетях функция, которая идет на YouTube для получения аудио- и видеодорожек перед удалением видео при воспроизведении только аудио, не является хорошей практикой из-за высокой нагрузки на сеть для неиспользуемого видеопотока. Вы можете обойти неэффективность сети с помощью дальнейшего технического анализа.
Стандарты RTSP и SDP, соблюдаемые Youtube, позволяют потоковому клиенту (устройству Android) запрашивать ТОЛЬКО аудио на этапах рукопожатия клиент / сервер и этапах согласования настройки сетевого соединения, которое будет выполнять потоковую передачу мультимедиа. В этом случае видео не будет отправлено, а проигрыватель Android будет настроен только на аудиопоток. Ниже приводятся некоторые подробности команды CLI и некоторые детали протокола в этом сценарии «только для аудио YouTube».
YouTube-дорожка формата 1 только для аудиодорожки для определенного видео доступна по следующему URI RTSP:
rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp
Из URI RTSP для всего видео (аудиодорожка плюс видеодорожка) в следующем выражении CLI используются 2 медиа-клиента openRTSP и mPlayer, идущие на Youtube, где он затем ПОЛУЧАЕТ / ИГРАЕТ только аудиодорожку Youtube, запрашивая только channel = 1 .
./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
Это выражение CLI дополнительно описано в ссылке внизу.
Каналы YouTube описывают доступные форматы потоков для любого видео Youtube, включая URI RTSP, упомянутые выше. Техническое объяснение потоковых форматов Youtube см. В записи «format» 1,5,6 в длинной таблице.
Следующий запрос получает канал с Youtube, который включает различные URI RTSP различного формата, доступные для этого конкретного видео:
http://gdata.youtube.com/feeds/api/users/rowntreerob/uploads?vq=cpST8yz4w1w&prettyprint='true'
Окровавленная Подробная информация о подключаемом RTSP сеансе , в котором полное описание SDP испрашиваются для конкретного видео YouTube и так , что только звуковая дорожка может быть потоковыми / Воспроизводится здесь .
Ключ к пронумерованным строкам в ссылке выше:
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