Hallo zusammen
Ich habe schon länger die Idee gehabt über das Mobilfunk Netz einen keinen RC Car fernzusteuern mit FPV.
Das ganze wird nun konkreter und einiges läuft auch schon recht gut -> als Steuerung wird ein APM2.5 verwendet, da mit MAVLink die Steuerung via TCP/IP bereits problemlos möglich ist und man zudem noch viele andere Möglichkeiten hat.
Beim Videobild bin ich momentan etwas am grübeln.. Mein Plan wäre es eigentlich gewesen ein Android Smartphone zu verwenden, da man dies wunderbar auch als MAVLink Proxy nutzen kann, Internet hat und sehr wenig Platz braucht. Alternative wäre ein RaspberryPi gewesen, welcher aber wieder ein 3G Stick oder ebenfalls ein Smartphone braucht.
Da es schon einige Android Webcam APPs gibt abe ich diese natürlich geprüft -> IP Camera, Droidcam, Spydroid waren mal meine Versuche.
Droidcam scheidet sofort aus, da sich das Programm ohne Wlan gar nicht zum funktionieren überreden lässt.
Die anderen beiden klappen über Mobilfunk via VPN, haben aber beide vor/nachteile.
Die Bitrate ist leider bei Mobilfunk ziemlich beschränkt, daher muss man das möglichste aus der Bitrate holen ;-).
Bis jetzt klappte IP Camera am besten - ich erreiche problemlos Delays von nur 100ms, über das Internet, via VPN! Das ist für ein Rover schon viel zu gut ;-).
ABER: IP Camera kann nur MJPEG, das bringt leider ziemliche Datenmengen mit sich. Bei 5FPS und 640x480 und 50% JPEG Qualität bin ich bereits fast bei 1Mbit/s und die Qualität ist alles andere als schön. Dafür sind so ca. 200ms möglich.
Spydroid kann h.263/4 und erreicht so mehr Qualität bei weniger Bitrate. Mit 1Mbit kriegt man schon ein brauchbarer HD Stream hin. Nur leider habe ich bei Spydroid immer mind 1-2Sek Verzögerung, durch den RTSP Server -> zu viel.
Mein Problem ist nun: Ich suche ein Kompromiss aus beidem ;-) 500ms wären ganz okay, dafür etwas mehr qualität, sprich es müsste h.264 sein.
Gibt es ev. schon irgend wo ein ansatz ein h.264 Stream von Android via UDP durchs Netzwerk zu jagen und mittels gstreamer zu "empfangen"?
Minimale Java / Android Programmierkentnisse habe ich, wobei ich wenn möglich was Pfannenfertiges nutzen möchte...
Alternativ werde ich wohl doch einen RPi verwenden müssen, da das ganze da absolut kein Problem ist und 500ms lockerst erreicht werden können
Ich habe schon länger die Idee gehabt über das Mobilfunk Netz einen keinen RC Car fernzusteuern mit FPV.
Das ganze wird nun konkreter und einiges läuft auch schon recht gut -> als Steuerung wird ein APM2.5 verwendet, da mit MAVLink die Steuerung via TCP/IP bereits problemlos möglich ist und man zudem noch viele andere Möglichkeiten hat.
Beim Videobild bin ich momentan etwas am grübeln.. Mein Plan wäre es eigentlich gewesen ein Android Smartphone zu verwenden, da man dies wunderbar auch als MAVLink Proxy nutzen kann, Internet hat und sehr wenig Platz braucht. Alternative wäre ein RaspberryPi gewesen, welcher aber wieder ein 3G Stick oder ebenfalls ein Smartphone braucht.
Da es schon einige Android Webcam APPs gibt abe ich diese natürlich geprüft -> IP Camera, Droidcam, Spydroid waren mal meine Versuche.
Droidcam scheidet sofort aus, da sich das Programm ohne Wlan gar nicht zum funktionieren überreden lässt.
Die anderen beiden klappen über Mobilfunk via VPN, haben aber beide vor/nachteile.
Die Bitrate ist leider bei Mobilfunk ziemlich beschränkt, daher muss man das möglichste aus der Bitrate holen ;-).
Bis jetzt klappte IP Camera am besten - ich erreiche problemlos Delays von nur 100ms, über das Internet, via VPN! Das ist für ein Rover schon viel zu gut ;-).
ABER: IP Camera kann nur MJPEG, das bringt leider ziemliche Datenmengen mit sich. Bei 5FPS und 640x480 und 50% JPEG Qualität bin ich bereits fast bei 1Mbit/s und die Qualität ist alles andere als schön. Dafür sind so ca. 200ms möglich.
Spydroid kann h.263/4 und erreicht so mehr Qualität bei weniger Bitrate. Mit 1Mbit kriegt man schon ein brauchbarer HD Stream hin. Nur leider habe ich bei Spydroid immer mind 1-2Sek Verzögerung, durch den RTSP Server -> zu viel.
Mein Problem ist nun: Ich suche ein Kompromiss aus beidem ;-) 500ms wären ganz okay, dafür etwas mehr qualität, sprich es müsste h.264 sein.
Gibt es ev. schon irgend wo ein ansatz ein h.264 Stream von Android via UDP durchs Netzwerk zu jagen und mittels gstreamer zu "empfangen"?
Minimale Java / Android Programmierkentnisse habe ich, wobei ich wenn möglich was Pfannenfertiges nutzen möchte...
Alternativ werde ich wohl doch einen RPi verwenden müssen, da das ganze da absolut kein Problem ist und 500ms lockerst erreicht werden können