Воспроизведение только аудио TS потоков из файла M3U8 из YouTube-DL - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь найти способ, с помощью которого я могу воспроизводить только аудио часть живого потока, используя, например, проигрыватель VL C. Рассматриваемый поток от ChilledCow, URL, который является потоком 24x7, является https://www.youtube.com/watch?v=DWcJFNfaw9c. Используя youtube-dl -F, я вижу, что нет потоков Audio Only;

[youtube] DWcJFNfaw9c: Downloading webpage
[youtube] DWcJFNfaw9c: Downloading m3u8 information
[youtube] DWcJFNfaw9c: Downloading MPD manifest
[info] Available formats for DWcJFNfaw9c:
format code  extension  resolution note
91           mp4        256x144    HLS  197k , avc1.42c00b, 30.0fps, mp4a.40.5@ 48k
92           mp4        426x240    HLS  338k , avc1.4d4015, 30.0fps, mp4a.40.5@ 48k
93           mp4        640x360    HLS  829k , avc1.4d401e, 30.0fps, mp4a.40.2@128k
94           mp4        854x480    HLS 1380k , avc1.4d401f, 30.0fps, mp4a.40.2@128k
95           mp4        1280x720   HLS 2593k , avc1.4d401f, 30.0fps, mp4a.40.2@256k
96           mp4        1920x1080  HLS 4715k , avc1.640028, 30.0fps, mp4a.40.2@256k (best)

Если я затем использую команду youtube-dl -g -f 96, я могу получить URL-адрес M3U8 (срок действия которого истек);

https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1586086956/ei/zG-JXobzGP3B1AbawoHgBw/ip/202.153.210.144/id/DWcJFNfaw9c.2/itag/96/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/goi/160/sgoap/gir%3Dyes%3Bitag%3D140/sgovp/gir%3Dyes%3Bitag%3D137/hls_chunk_host/r1---sn-fpqxc5oq-hxal.googlevideo.com/vprv/1/playlist_type/DVR/initcwndbps/14720/mh/Ms/mm/44/mn/sn-fpqxc5oq-hxal/ms/lva/mv/m/mvi/0/pcm2cms/yes/pl/24/dover/11/keepalive/yes/fexp/23882514/mt/1586065238/disable_polymer/true/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,goi,sgoap,sgovp,vprv,playlist_type/sig/AJpPlLswRQIgQ4q-AaeGe9RuORutXufPJpq2jV5qvvYSf8L46jrnOpcCIQDLiqxM-r8EVp8EUby0D8gzWblW56-4NjCpasYtABNGxw%3D%3D/lsparams/hls_chunk_host,initcwndbps,mh,mm,mn,ms,mv,mvi,pcm2cms,pl/lsig/ALrAebAwRgIhAPXST2zJ7NWF6SF7iv1JeiJxIQM9wnuYXlgEipQS1nxRAiEAsE9Vlj1mpqE3t72DvI7JXu0ILWajrQsEjqMNzy5spjQ%3D/playlist/index.m3u8

Я могу открыть это с VL C, и аудио + видео потоки в порядке. Когда я проверяю детали кода c, я вижу, что есть 2 потока; ADTS Audio @ 48000 Hz и H.264 Video. Открывая файл M3U8, я вижу инструкции о том, как загрузить отдельные сегменты ts;

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:261917
#EXT-X-DISCONTINUITY-SEQUENCE:105
#EXT-X-PROGRAM-DATE-TIME:2020-04-05T01:52:00.024+00:00
#EXTINF:5.0,
https://r1---sn-fpqxc5oq-hxal.googlevideo.com/videoplayback/id/DWcJFNfaw9c.2/itag/96/source/yt_live_broadcast/expire/1586087365/ei/ZXGJXsX2Bc-zvATAg5LQCA/ip/202.153.210.144/requiressl/yes/ratebypass/yes/live/1/goi/160/sgoap/gir%3Dyes%3Bitag%3D140/sgovp/gir%3Dyes%3Bitag%3D137/hls_chunk_host/r1---sn-fpqxc5oq-hxal.googlevideo.com/vprv/1/playlist_type/DVR/initcwndbps/13910/mh/Ms/mm/44/mn/sn-fpqxc5oq-hxal/ms/lva/mv/m/mvi/0/pl/24/keepalive/yes/fexp/23882513/mt/1586065639/disable_polymer/true/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,goi,sgoap,sgovp,vprv,playlist_type/sig/AJpPlLswRQIhAPZgf7DINxcGTvbH4B_0f-viQhiTpYT1jJuUsvmDCzJaAiB1GcPc2tvTx2wbYDgG5qb5PkSQ7pPS5A5yhlh782GdlQ%3D%3D/lsparams/hls_chunk_host,initcwndbps,mh,mm,mn,ms,mv,mvi,pl/lsig/ALrAebAwRAIgdV-i58zrYviyY4Zin9w6Gu9WVvqv5y99lq4XOsyRH4wCIEohlTMmwYrHgF8YvXWFRWZvYQP7e6NiE7w42YmwUzOM/playlist/index.m3u8/sq/261917/goap/clen%3D81159%3Blmt%3D1585977854061325/govp/clen%3D265668%3Blmt%3D1585977854061323/dur/5.000/file/seg.ts
#EXTINF:5.0,
https://r1---sn-fpqxc5oq-hxal.googlevideo.com/videoplayback/id/DWcJFNfaw9c.2/itag/96/source/yt_live_broadcast/expire/1586087365/ei/ZXGJXsX2Bc-zvATAg5LQCA/ip/202.153.210.144/requiressl/yes/ratebypass/yes/live/1/goi/160/sgoap/gir%3Dyes%3Bitag%3D140/sgovp/gir%3Dyes%3Bitag%3D137/hls_chunk_host/r1---sn-fpqxc5oq-hxal.googlevideo.com/vprv/1/playlist_type/DVR/initcwndbps/13910/mh/Ms/mm/44/mn/sn-fpqxc5oq-hxal/ms/lva/mv/m/mvi/0/pl/24/keepalive/yes/fexp/23882513/mt/1586065639/disable_polymer/true/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,goi,sgoap,sgovp,vprv,playlist_type/sig/AJpPlLswRQIhAPZgf7DINxcGTvbH4B_0f-viQhiTpYT1jJuUsvmDCzJaAiB1GcPc2tvTx2wbYDgG5qb5PkSQ7pPS5A5yhlh782GdlQ%3D%3D/lsparams/hls_chunk_host,initcwndbps,mh,mm,mn,ms,mv,mvi,pl/lsig/ALrAebAwRAIgdV-i58zrYviyY4Zin9w6Gu9WVvqv5y99lq4XOsyRH4wCIEohlTMmwYrHgF8YvXWFRWZvYQP7e6NiE7w42YmwUzOM/playlist/index.m3u8/sq/261918/goap/clen%3D81404%3Blmt%3D1585977854061335/govp/clen%3D236301%3Blmt%3D1585977854061333/dur/5.000/file/seg.ts

Я не уверен, есть ли способ только для потоковой передачи аудио части, моя цель состоит в том, чтобы иметь безголовый Raspberry Pi (без видеовыхода, только аудио), который может воспроизводить аудиопоток.

1 Ответ

0 голосов
/ 05 апреля 2020

Я придумал относительно простое решение. В итоге я использовал проигрыватель командной строки mpv с параметром —no-video и URL YouTube. Я могу подтвердить, что аудио только декодируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...