77 lines
1.8 KiB
Markdown
77 lines
1.8 KiB
Markdown
# Étape 17.11 - Son + stabilité du relais Range Windows
|
|
|
|
## Diagnostic du log 17.10
|
|
|
|
La vidéo fonctionne réellement en 1920x1080 :
|
|
|
|
```text
|
|
1920 1080
|
|
[HD-WINDOWS] vidéo relayée confirmée: 1920x1080
|
|
```
|
|
|
|
Le son manque parce que la toute première requête audio reçoit :
|
|
|
|
```text
|
|
googlevideo HTTP 403 pour bytes=0-10485759
|
|
```
|
|
|
|
La vidéo finit elle aussi par recevoir un 403 exactement sur des requêtes
|
|
de 10 MiB.
|
|
|
|
## Cause importante
|
|
|
|
Notre relais 17.10 envoyait systématiquement des chunks de :
|
|
|
|
```text
|
|
10485760 octets = 10 MiB
|
|
```
|
|
|
|
Le downloader HTTP officiel de yt-dlp ne fait pas cela. Lorsqu'un
|
|
`http_chunk_size` est configuré, il randomise chaque nouvelle requête entre
|
|
95 % et 100 % de la taille cible.
|
|
|
|
La FAQ yt-dlp avertit également que YouTube peut throttler/refuser des
|
|
requêtes dont la taille dépasse 10 MB.
|
|
|
|
## Correctif 17.11
|
|
|
|
Le relais :
|
|
|
|
- plafonne maintenant les requêtes à 9 900 000 octets ;
|
|
- randomise chaque Range entre 95 % et 100 % ;
|
|
- force une nouvelle connexion logique par Range ;
|
|
- en cas de 403/429, retente jusqu'à 4 fois en divisant progressivement le
|
|
chunk ;
|
|
- flush le downstream après chaque Range pour éviter le gros buffering lors
|
|
d'un seek ;
|
|
- journalise séparément le client et la présence du `pot=` pour vidéo/audio.
|
|
|
|
## Test
|
|
|
|
Extraire le ZIP à la racine puis :
|
|
|
|
```powershell
|
|
cd "D:\07-Logiciels\23-youtube_personal"
|
|
flutter clean
|
|
flutter run -d windows
|
|
```
|
|
|
|
Tester uniquement le 1080p avec le son.
|
|
|
|
Logs importants :
|
|
|
|
```text
|
|
[HD-WINDOWS][17.11] GVS: videoClient=MWEB videoPOT=true audioClient=MWEB audioPOT=true
|
|
[HD-RELAY][17.11] upstream OK ...
|
|
```
|
|
|
|
Puis :
|
|
|
|
```text
|
|
[HD-WINDOWS] vidéo relayée confirmée: 1920x1080
|
|
[HD-WINDOWS] lecture confirmée: 1920x1080
|
|
```
|
|
|
|
Si un 403 survient encore, la 17.11 affichera désormais les retries et la
|
|
taille exacte du chunk qui a été refusé.
|