Light theme default + yt-dlp search fallback
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
# Étape 17.19 - Vrai prébuffer HD progressif Windows
|
||||
|
||||
Oui : c'est désormais exactement l'architecture utilisée.
|
||||
|
||||
La 17.18 attendait encore les 378 Mo complets du format 299 avant de basculer.
|
||||
La 17.19 ne fait plus cela.
|
||||
|
||||
## Fonctionnement
|
||||
|
||||
```text
|
||||
clic
|
||||
↓
|
||||
360p muxé démarre immédiatement
|
||||
↓
|
||||
yt-dlp démarre 1080p 299 + audio 251
|
||||
↓
|
||||
on surveille la taille réellement téléchargée
|
||||
↓
|
||||
dès qu'on a environ le timestamp courant + 20 s de réserve :
|
||||
BASCULE HD
|
||||
↓
|
||||
yt-dlp continue à télécharger le reste pendant la lecture
|
||||
```
|
||||
|
||||
Exemple avec une reprise autour de 60 secondes :
|
||||
|
||||
```text
|
||||
on ne demande plus 378 Mo
|
||||
on attend seulement assez d'octets pour couvrir environ 0 -> 80 s
|
||||
+ une marge de sécurité
|
||||
```
|
||||
|
||||
Avec le débit observé lors du test manuel, cela devrait être beaucoup plus
|
||||
court que le téléchargement intégral.
|
||||
|
||||
## Pourquoi pas `--download-sections`
|
||||
|
||||
`yt-dlp --download-sections` passe par ffmpeg pour les plages temporelles.
|
||||
Pour notre lecteur, on veut au contraire conserver le fichier DASH continu
|
||||
qui grandit pendant la lecture et laisser mpv faire ses Range/seeks.
|
||||
|
||||
## Correction du flash au début
|
||||
|
||||
La 17.18 faisait :
|
||||
|
||||
```text
|
||||
open HD au début
|
||||
puis seek vers 94.8 s
|
||||
```
|
||||
|
||||
La 17.19 utilise directement :
|
||||
|
||||
```dart
|
||||
Media(
|
||||
hdUrl,
|
||||
start: switchPosition,
|
||||
)
|
||||
```
|
||||
|
||||
Donc mpv prépare le nouveau média au timestamp courant avant la première frame
|
||||
HD rendue.
|
||||
|
||||
## Audio
|
||||
|
||||
On conserve la paire validée :
|
||||
|
||||
```text
|
||||
1080p60 : 299 AVC
|
||||
audio : 251 Opus
|
||||
```
|
||||
|
||||
L'audio étant petit, la bascule attend qu'il soit entièrement disponible afin
|
||||
de ne pas perdre le son.
|
||||
|
||||
## Cache
|
||||
|
||||
Le cache existant est réutilisé :
|
||||
|
||||
```text
|
||||
%LOCALAPPDATA%\YouTubePersonal\media_cache
|
||||
```
|
||||
|
||||
Si 299 + 251 sont déjà complets, la bascule peut être quasi immédiate.
|
||||
|
||||
## Test conseillé
|
||||
|
||||
Après extraction :
|
||||
|
||||
```powershell
|
||||
cd "D:\07-Logiciels\23-youtube_personal"
|
||||
flutter run -d windows
|
||||
```
|
||||
|
||||
Pas besoin de `flutter clean`.
|
||||
|
||||
Pour voir le comportement progressif réel, tester aussi UNE AUTRE vidéo qui
|
||||
n'est pas déjà en cache.
|
||||
|
||||
Logs attendus :
|
||||
|
||||
```text
|
||||
[HD-WINDOWS][17.19] lecture immédiate 360p ...
|
||||
[HD-PROGRESSIVE][17.19] session prête video=STREAM audio=DOWNLOAD
|
||||
[HD-WINDOWS][17.19] buffer suffisant: video=... ≈...s audio=true
|
||||
[HD-WINDOWS][17.19] bascule vers HD bufferisée à ... ms
|
||||
[HD-WINDOWS][17.19] HD progressive confirmée: 1920x1080 audio=251/opus
|
||||
```
|
||||
Reference in New Issue
Block a user