Je ne suis pas sûr à 100%, mais je pense que vous ne pouvez pas diffuser la plupart des vidéos en raison de la manière dont le format stocke les métadonnées de la vidéo. C'est pourquoi YouTube doit convertir vos fichiers vidéo au lieu de les montrer dans n'importe quel format. Il existe des protocoles qui encapsulent ces métadonnées et vous permettent de diffuser n'importe quelle vidéo (c'est ce que fait YouTube sur mobile). Vous devriez jeter un coup d'œil à RTSP : http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
Si vous utilisez un lien RTSP dans un videoView, la vidéo devrait être diffusée sans problème. Le problème est lié au serveur et non au client.
À titre d'exercice, vous pourriez récupérer un lien RTSP depuis m.youtube.com et le passer à un videoView en utilisant setVideoPath et cela devrait fonctionner.
Si vous ne pouvez pas changer l'implémentation du serveur, alors vos solutions seraient probablement les suivantes:
1) Téléchargez et décodez la vidéo vous-même, vous devriez gérer toutes les métadonnées et vous assurer que la vidéo fonctionne. Vous pourriez, théoriquement, compiler ffmpeg pour Android pour vous aider, mais je n'ai pas pu le compiler pour Android avec l'option réseau activée. C'est beaucoup de travail.
2) Écrivez votre propre implémentation de RTSP ou d'un autre protocole de streaming. Téléchargez la vidéo dans un thread et créez un serveur local sur l'appareil pour diffuser ce fichier vidéo vers une instance de videoView. J'ai en fait cela qui fonctionne dans une application. Android ne prend pas en charge le protocole spécifique utilisé par les serveurs clients et j'ai dû le faire fonctionner. Cela m'a pris un mois entier pour le faire. Je ne peux pas publier de code exemple car tout est la propriété du client, mais je pourrais vous donner plus d'informations à ce sujet si cela vous intéresse.
De toute façon, si vous ne pouvez pas changer le serveur/le format de la vidéo, alors vous devriez vous préparer à beaucoup de travail.