Conversion flux D'entrée vidéo en RTMP

je veux diffuser l'enregistrement vidéo de mon téléphone android au serveur de médias réseau.

le premier problème est que lors du réglage de la sortie MediaRecorder sur socket, le flux manque quelques en-têtes de taille mdat . Ceci peut être corrigé en prétraitement ce flux localement et en ajoutant les données manquantes au flux afin de produire un flux de sortie valide.

La question est de savoir comment procéder à partir de là.

sortie de ce flux comme un flux RTMP?

36
demandé sur Tiny Giant 2012-04-12 16:22:21

2 réponses

d'abord, défaisons ta question. Comme vous l'avez supposé, RTMP n'est pas actuellement pris en charge par Android. Vous pouvez utiliser un quelques bibliothèques secondaires pour ajouter du support, mais celles-ci peuvent ne pas être des implémentations complètes ou avoir d'autres effets secondaires indésirables et des bogues qui les rendent incapables de répondre à vos besoins.

l'alternative courante dans ce cas est d'utiliser RTSP . Il fournit un format de session comparable que a son propre RFC , et sa structure de paquet lorsqu'elle est combinée avec RTP est très similaire (sans quelques détails) à votre protocole désiré. Vous pouvez effectuer les corrections nécessaires ici pour transmuter RTP/RTSP en RTMP, mais comme mentionné, un tel effort est actuellement en dehors du champ de développement de votre application.

donc, supposons que vous voulez utiliser RTMP ( invalider ce fil ) et que au-dessus de la bibliothèque de liens ne pas répondre à vos besoins.

vous pouvez, par exemple, suivre ce tutoriel pour l'enregistrement et la lecture en utilisant Livu, Wowza, et Adobe Flash Player, parler avec le développeur de Livu au sujet de la licence de leur client. Ou, vous pouvez utiliser cette bibliothèque client et sa pleine enregistreur Android exemple pour construire votre client.

pour résumer:

RTSP

RTMP

bonne chance avec votre application. Je reconnais que j'ai une compréhension moins que complète de toutes ces bibliothèques, mais celles-ci semblent être la norme solutions dans cet espace au moment de la rédaction.

Edit:

selon L'OP, en marchant dans la bibliothèque RTMP set:

En bref: plus de travail est nécessaire. D'autres réponses, et des améliorations sur ces exemples, sont ce qui est nécessaire ici.

49
répondu MrGomez 2017-05-23 12:34:08

si vous utilisez un navigateur Web sur un appareil Android, vous pouvez utiliser WebRTC pour la capture vidéo et l'enregistrement côté serveur, I. e avec serveur D'appels web 4

ainsi le chemin complet serait:

Android Chrome [WebRTC] > WCS4 > enregistrement

donc vous n'avez pas besoin du protocole RTMP ici.

si vous utilisez une application RTMP autonome, vous pouvez utiliser n'importe quel serveur RTMP pour l'enregistrement vidéo. Comme je l'ai know Wowza supporte L'enregistrement H. 264+Speex.

1
répondu eeKat88 2015-09-16 09:10:48