web-dev-qa-db-fra.com

Android

Je souhaite implémenter le streaming vidéo dans mon projet. Alors, existe-t-il un tutoriel qui fonctionne? Les vidéos sont stockées côté serveur. Donc, pour récupérer la vidéo en utilisant l'URL et la lire sur Android. J'ai essayé quelques exemples, mais j'ai eu une erreur "Désolé, cette vidéo ne peut pas être lue". J'essaie d'utiliser MP4.

21
user609239

J'ai eu le même problème mais finalement j'ai trouvé le chemin.

Voici la promenade à travers:

1- Installez VLC sur votre ordinateur (SERVEUR) et allez dans Media-> Streaming (Ctrl + S)

2- Sélectionnez un fichier à diffuser ou si vous souhaitez diffuser votre webcam ou ... cliquez sur l'onglet "Capture Device" et faites la configuration et enfin cliquez sur le bouton "Stream".

3- Ici, vous devez faire la configuration du serveur de streaming, allez simplement dans l'onglet "Option" et collez la commande suivante:

:sout=#transcode{vcodec=mp4v,vb=400,fps=10,width=176,height=144,acodec=mp4a,ab=32,channels=1,samplerate=22050}:rtp{sdp=rtsp://YOURCOMPUTER_SERVER_IP_ADDR:5544/}

REMARQUE: Remplacez YOURCOMPUTER_SERVER_IP_ADDR par l'adresse IP de votre ordinateur ou tout serveur exécutant VLC ...

REMARQUE: vous pouvez voir que le codec vidéo est MP4V qui est pris en charge par Android.

4- allez sur Eclipse et créez un nouveau projet pour playbak multimédia. créer un objet VideoView et dans la fonction OnCreate () écrire du code comme ceci:

mVideoView = (VideoView) findViewById(R.id.surface_view);

mVideoView.setVideoPath("rtsp://YOURCOMPUTER_SERVER_IP_ADDR:5544/");
mVideoView.setMediaController(new MediaController(this));

5- Exécutez l'apk sur l'appareil (pas le simulateur, je ne l'ai pas vérifié) et attendez que la lecture démarre. veuillez considérer que le processus de mise en mémoire tampon prendra environ 10 secondes ...

Question: Quelqu'un sait comment réduire le temps de mise en mémoire tampon et lire la vidéo presque en direct?

20
Amir Dashti

J'étais confronté au même problème et j'ai trouvé une solution pour faire fonctionner le code.

Le code donné dans le Android-Sdk/samples/Android-?/ApiDemos fonctionne très bien. Copiez collez chaque dossier dans le projet Android puis dans MediaPlayerDemo_Video.Java, placez le chemin de la vidéo que vous souhaitez diffuser dans la variable path. Il est laissé vide dans le code.

Le flux vidéo suivant a fonctionné pour moi: http://www.pocketjourney.com/downloads/pj/video/famous.3gp

Je sais que le protocole RTSP doit être utilisé pour le streaming, mais la classe mediaplayer prend en charge http pour le streaming comme mentionné dans le code.

J'ai recherché le format de la vidéo sur Google et j'ai constaté que la vidéo, si elle était convertie en mp4 ou 3gp à l'aide de Quicktime Pro, fonctionnait bien pour la diffusion en continu.

J'ai testé l'apk final sur Android 2.1. Le dosent d'application fonctionne bien sur les émulateurs. Essayez-le sur les appareils.

J'espère que ça aide..

10
AndroidFreak

Votre problème est probablement lié au fichier vidéo et non au code. Votre vidéo n'est probablement pas "sûre pour la diffusion". Voir où placer les vidéos pour diffuser Android pour en savoir plus.

6
CommonsWare