I'm not too sure about that. This would switch by default to two separate HTTP streams with an input slave and it may cause regressions, for example in terms of synchronization between audio and video or seeking/pausing (I know I've had issues with seeking already), compared to a single stream with both tracks muxed together like we have in every case currently. How much have you tested this?
On the other hand, since this is a DASH stream, shouldn't we try to offer it as such through the MPD and our DASH input plugin instead? That would skip the resolution questions altogether and get adaptivity as a bonus.
The semantics of --preferred-resolution are a bit simple with regard to these considerations. It's still possible to force a format with &fmt= in the URL and although it's not super user friendly, I'm all for at least making these HD formats available that way.
Yes, you're right, I ran into seeking problems after I posted the patch. Bummer.
I'm not sure if using the DASH stream filter would work. One, even though it's a DASH stream it doesn't come with an MPD file; instead the adaptation sets are described by a JSON object; and two, I'm not sure the DASH filter supports separate video and audio streams either (if it did, what does it do to make it work that the main player can't?).
It seems like this will have to wait until input-slave support becomes better.
Replying to [comment:3 linkfanel]:
Hello,
I'm not too sure about that. This would switch by default to two separate HTTP streams with an input slave and it may cause regressions, for example in terms of synchronization between audio and video or seeking/pausing (I know I've had issues with seeking already), compared to a single stream with both tracks muxed together like we have in every case currently. How much have you tested this?
On the other hand, since this is a DASH stream, shouldn't we try to offer it as such through the MPD and our DASH input plugin instead? That would skip the resolution questions altogether and get adaptivity as a bonus.
The semantics of --preferred-resolution are a bit simple with regard to these considerations. It's still possible to force a format with &fmt= in the URL and although it's not super user friendly, I'm all for at least making these HD formats available that way.
Actually there is an MPD file available at youtube. You can download it for example with my script (but DASH playback is not working, neither with html5 player nor with vlc). I would really like, if vlc could support youtube DASH...
It's unclear about back then, but as it is now, YouTube offers DASH and HLS manifests only for live streams. It's unclear to me too what YouTube's client-side implementation is to use the ES files listed under "adaptiveFormats" for its adaptive streaming; but I'm guessing that VLC lacks core/demux support to replicate it, so this is beyond the scope of the lua script.
I suppose that the script could stick to muxed audio+video files as first choice, but implement support for "adaptiveFormats" with input slave as a fallback or opt-in. We have no mechanism to select the audio quality though.
Pierre Ynardchanged title from YouTube: support for DASH videos to YouTube: offer access to all available formats (1080p, 240p...)
changed title from YouTube: support for DASH videos to YouTube: offer access to all available formats (1080p, 240p...)
!3272 (merged) has now added some generic support for the adaptiveFormats field, and introduces an experimental way to try this. By adding &fmt=hd to the YouTube URL, formats will be selected from adaptiveFormats, according to your preferred resolution settings. Note that for the time being, if you try to play HD, you will be hit by #27227. Also, this uses the input slave mechanism to combine audio and video streams, which I expect to be not as performant as regular streaming. Again, this is experimental, use at your own risks; feedback welcome.