FPV and VR Android App MyMediaCodecFPVPlayer Wifibradcast OpenSource

Status
Nicht offen für weitere Antworten.

rodizio1

Erfahrener Benutzer
#81
IP geht automatisch bei meinem Image. Hast Du das Telefon auf USB-Tethering gestellt in den Optionen? Dann sollte der Pi anzeigen, dass das Telefon gefunden wurde und auch welche IP dem Pi vom Telefon zugewiesen wurde.
 
#82
IP geht automatisch bei meinem Image. Hast Du das Telefon auf USB-Tethering gestellt in den Optionen? Dann sollte der Pi anzeigen, dass das Telefon gefunden wurde und auch welche IP dem Pi vom Telefon zugewiesen wurde.
Yep, das war das Problem. Dachte man muss am Smartphone das Tethering nur aktivieren wenn man etwas senden möchte, nicht beim Empfangen.

Funktioniert nun einwandfrei, sehe das Bild auf dem Smartphone. Habe auch gleich mal die SBS Darstellung getestet.
Da wird mir das Bild mehrfach (nicht nur einmal links und einmal rechts, sondern mehrfach) angezeigt. Und ich sehe außerhalb des korrekten Bildes, also quasi in den "Lücken" zwischen den Bildern auf der linken Seite des Bildschirms, flackerndes Bildrauschen.

Ist das nur bei mir so, oder befindet sich das einfach noch in der Entwicklung?
 

jpfeifer

Neuer Benutzer
#83
Das mit dem USB-Tethering hat mir den Abend gerettet. Jetzt läuft alles super mit meinem Galaxy A5 unter Android 6.01. Surfaceview, Opengl Side by Side - wenig Latenz. Perfect, danke
 

Constantin

Erfahrener Benutzer
#84
So, ich muss euch doch nochmal belästigen ;-)

Bin nun beim Pi A+ (Air) und beim Pi 2 (Ground) auf die EZ-Wifibroadcast-Images umgestiegen (1.3 Beta).

So bekomme ich auch eine funktionierende Verbindung, sodass ich mir am Ground-Pi über HDMI das gesendete Bild ausgeben lassen kann.

Dann habe ich das USB-Tethering in der wifibroadcast.txt aktiviert ("Y"). Allerings bekomme ich kein Bild und es werden keine Daten empfangen am Smartphone. Er bekommt über beide Ports keine Daten.

- Smartphone ist eine Xiaomi Mi5 mit Android 6.0.1
- habe am Pi2 mein USB Datenkabel angeschlossen, neben meinem CSL WLAN Stick
- Das Mi5 hat einen USB Typ C Anschluss
- in der App habe ich Data Source auf UDP gestellt
- Berechtigungen, dass die App auf den Speicher zugreifen darf, habe ich auch genehmigt
- Der Pi2 zeigt an, dass er auf ein Smartphone wartet

Im Eingangspost stand dass man noch die IP-Adresse eintragen muss. Konnte dazu aber keinen Eintrag in der txt Datei finden. Wurde das automatisiert?

Hätte da jemand ne Idee woran es liegen könnte dass es nicht funktioniert?
Du musst noch einen uab tethering hotspot mit dem Smartphone öffnen.

Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
 

Constantin

Erfahrener Benutzer
#85
Ahh, Anwenderfehler :D Die Einstellung habe ich irgendwie übersehen.

Die oberen beiden Player funktionieren jetzt auf Anhieb. Latenz ist gefühlt sehr niedrig, hab aber noch nicht gemessen. Geil.

Der OpenGL Side by Side Player macht irgendwie ein Bild in der Mitte und noch ganz viele Kleine Bilder drumherum, irgendwie schwer zu beschreiben. Muss nochmal weiter rumprobieren und schauen wie man Screenshots macht ...
Super dass es jetzt wenigstens teilweise geklappt hat. Was war denn der entscheidende Faktor,head Traking oder udp ? Wenn's nicht headtracking war, hast du Google Cardboard nicht inatalliert ? Dann kann ich mir endlich sicher sein dass cardboard nicht für die App installiert sein muss und der Headtracker sich selbst initialisiert.

Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
 

Constantin

Erfahrener Benutzer
#86
Yep, das war das Problem. Dachte man muss am Smartphone das Tethering nur aktivieren wenn man etwas senden möchte, nicht beim Empfangen.

Funktioniert nun einwandfrei, sehe das Bild auf dem Smartphone. Habe auch gleich mal die SBS Darstellung getestet.
Da wird mir das Bild mehrfach (nicht nur einmal links und einmal rechts, sondern mehrfach) angezeigt. Und ich sehe außerhalb des korrekten Bildes, also quasi in den "Lücken" zwischen den Bildern auf der linken Seite des Bildschirms, flackerndes Bildrauschen.

Ist das nur bei mir so, oder befindet sich das einfach noch in der Entwicklung?
Das klingt nach nem Bug. Kann es sein, dass der Stream an den Stellen angezeigt wird, wo sonst der OSD text stehen sollte ?
Gesehen habe ich aber so etwas noch nicht.
Wer will kann gerne das Latency file in den Thread schicken,damit ich vergleichswerte veröffentlichen kann. Aber Achtung: die Latenz vom Decoder ist nur aussagekräftig,wenn man einen udp stream empfängt. Ansonsten arbeitet der Decoder bei max. fps ( so um die 100fps bei 720p bei mir ) und ist deshalb etwas schlechter in der Latenz.

Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
 

rodizio1

Erfahrener Benutzer
#87
UDP war's. Headtracking hatte ich schon aus (muss die Funktionen mal alle in Ruhe testen ...)

Die beiden oberen Player habe ich noch weiter getestet. Laufen soweit 1a.
 

Constantin

Erfahrener Benutzer
#88
UDP war's. Headtracking hatte ich schon aus (muss die Funktionen mal alle in Ruhe testen ...)

Die beiden oberen Player habe ich noch weiter getestet. Laufen soweit 1a.
Ok. Das OSD funktioniert aber nur in OpenGl. Dazu benutze ich eine external texture fürs Video und eine normale Texture fürs OSD. Mein handy hat sich da sehr komisch verhalten,ich musste erst normal initialisieren dann external, als ob ne api nicht richtig funktioniert. Aber ohne ein Screenshot kann ich wenig sagen.

Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
 

Constantin

Erfahrener Benutzer
#91
Hier mal ein Latenz-Screenshot. Galaxy A5 - Android 6.01
Ok danke.für 25fps sinddie werte normal. Du weisst schon dass die Latenz bei mehr fps deutlich geringer ist ? Default würde ich bei 720p unbedingt 49 fps mit der alten und 60fps mit der neuen Kamera nehmen, sowohl beim rpi als player als auchbei der app.
Dies reduziert auch die Latenz der Kamera gewaltig und macht sich von der Bandbreite fast nix.
Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
 

Constantin

Erfahrener Benutzer
#92
In der Developer Konsole zeigt es mir einen Absturz wegen "out of memory" an. Die Appp braucht ziemlich viel Ram Speicher, also am besten so wenige Apps wie möglich im Hintergrund laufen lassen.

Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
 
#93
Das klingt nach nem Bug. Kann es sein, dass der Stream an den Stellen angezeigt wird, wo sonst der OSD text stehen sollte ?
Das könnte gut sein, muss ich morgen aber nochmal testen.

Bei der USB Tethering Sache ist mir vorhin noch eingefallen, dass es ja im Prinzip bei meiner 3DR Telemetrieverbindung vom meinem PX4/Pixhawk über die Telemetriemodule und USB Kabel zum Smartphone ja eigentlich vom Prinzip her das gleiche ist.

Wenn ich zum Beispiel die App "Tower" oder "QGroundControl" öffne und mir dort die Telemetriedaten anzeigen lasse, gibt es da auch immer ein Fenster in dem es möglich ist sich ein Videobild anzeigen zu lassen.

Meine Überlegung war ob es möglich ist dort den Videostream vom Raspberry Pi über das USB Tethering hin zu senden.

Anscheinend hatte die Idee auch schon jemand anderes:

https://www.bluerobotics.com/forums...groundcontrol-using-raspberry-pi-and-pikhawk/

Wäre es möglich zwei Verbindungen von der App aufbauen zu lassen?
Also einmal ne Verbindung zur 3DR Telemetrie und eine zum Raspberry Pi für den Videostream?
Man müsste dann zwei USB Verbindungen (Hub?) aufbauen. Geht das überhaupt?

Ich habe schon gelesen dass FrSky Telemetriedaten übertragen werden können.
Wäre es möglich dass die Mavlink Telemetriedaten über den Pi Zero mitsamt dem Videostream nach unten gesendet werden und dann auch in der QGroundControl beides dargestellt werden kann?
 

Constantin

Erfahrener Benutzer
#94
Das könnte gut sein, muss ich morgen aber nochmal testen.

Bei der USB Tethering Sache ist mir vorhin noch eingefallen, dass es ja im Prinzip bei meiner 3DR Telemetrieverbindung vom meinem PX4/Pixhawk über die Telemetriemodule und USB Kabel zum Smartphone ja eigentlich vom Prinzip her das gleiche ist.

Wenn ich zum Beispiel die App "Tower" oder "QGroundControl" öffne und mir dort die Telemetriedaten anzeigen lasse, gibt es da auch immer ein Fenster in dem es möglich ist sich ein Videobild anzeigen zu lassen.

Meine Überlegung war ob es möglich ist dort den Videostream vom Raspberry Pi über das USB Tethering hin zu senden.

Anscheinend hatte die Idee auch schon jemand anderes:

https://www.bluerobotics.com/forums...groundcontrol-using-raspberry-pi-and-pikhawk/

Wäre es möglich zwei Verbindungen von der App aufbauen zu lassen?
Also einmal ne Verbindung zur 3DR Telemetrie und eine zum Raspberry Pi für den Videostream?
Man müsste dann zwei USB Verbindungen (Hub?) aufbauen. Geht das überhaupt?

Ich habe schon gelesen dass FrSky Telemetriedaten übertragen werden können.
Wäre es möglich dass die Mavlink Telemetriedaten über den Pi Zero mitsamt dem Videostream nach unten gesendet werden und dann auch in der QGroundControl beides dargestellt werden kann?
Apps wie Tower verfolgen einen ganz anderen Zweck, nämlich die Steuerung der Drohne übers Smartphone und vlt. Auch einen live video stream für aerial photography, jedoch keinen FPV-stream für eine video/vr- Brille.

Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
 

Constantin

Erfahrener Benutzer
#95
Vorläufiges Tutorial:
############################################################
Howto use with Wifibroadcast
Step 1: Download FPV_VR app from https://play.google.com/store/apps/details?id=com.constantin.wilson.FPV_VR&hl=en and support developement or compile the free source code yourself
Step 2: Dwonload newest ez wifibroadcast image (at least 1.3 beta) from https://www.rcgroups.com/forums/showthread.php?t=2664393 and install on your ground/air pi's
Step 3: Enable "usb Tetehering" ( wifibroadcast.txt USB_TETHER=Y ) in your rx pi, rest leafe dafault
Step 4: connect your smartphone via usb cable to your RX! pi and open an usb hotspot in your smartphone settings (usb-tethering)
Step 5: Open "TestActvity". You should now receive nalu's (frames) on your smartphone
PICTURE before
PICTURE after
Step 6: in your "Decoder Settings" set "receive from udp"
Step 7: Open one of the 3 Activities. You can now see the video. If not, try restarting your tx pi first, else continue with "decoder debuging"

Decoder Debugging:
Since the app uses really low-level functions to reduce latency it may be needed to adjust the app to your specific hw decoder. First, you should try
out setting the Decoder to "sw decoder" and check for an image. If you don't get an image with the sw decoder you are propably not receiving a correct video stream.
Then you can try out disabling multithread or enable "user debug" and last write me so I can fix your problem. However,on most modern Smartphones the encoder is now
working out of the box (Galaxy S3,S5,S6,S5-S6 Edge, smartphones with mali gpu's, and LG G3)

OSD: The app does currently support FRSKY and LTM (Light-Telemetry-Protokoll) packets received on udp port 5001.

Settings (example) for vr googles like Cardboard, Gear Vr usw:
video Distance & model Distance set to 10
tesselation set to 50
enable distortion correction
enable Head Tracking
rest can be left deafault.

Settings (example) for vr googles with a really low fov ( also refferd to as side-by-side vodeo googles)
videoDistance & model Distance set to 5.7
tesselation to 1
disable Distortion Correction
disable Head Tracking

Settings (example) for usage without vr googles (without side-by-side)
Disable stereo Rendering
disbale Distortion correction
disbale headtracking
video Distance to 5

Settings:

1.1.1) VideoFormat: for 720p: 1280/720=1.778; for 800*600 1.333 usw
1.1.2) enable stereo Rendering; For people who want to use the app with video&osd, but without vr googles set to false
1.1.3) video Distance: Distance eye-video canvas. For a smaller canvas: a higher Distance ( when you are using vr googles with a high fov set to ~10)
1.1.4) interpupilarry distance: leave default
1.1.5) viewport scale: leave default,it is better to change the video canvas distance
1.1.5) tesselation: s. Description in App
1.1.6) distortion correction: enable for cardboard,gear vr usw googles
1.1.7) swap intervall zero: increases openGl fps on most phones. default on
1.1.8) unlimited OGLfps: basically has the same result like swap intervall, but swap intervall works better. Only use one of both
1.1.9) Head tracking: enable when you are using vr googles. Not for a gimbal on your kopter,but to look around in vr.
1.1.10) OSD on/off:

1.2) OSD specific settings: don't forget to change your model distance when changing video canvas distance.
Rest: booelans for the different elements. You could use both frsky and ltm parser at the same time.

2. Decoder Settings:
2.1) Data Source: ether receive raw h.264 stream on udp (for wifibroadcast usw) or parse a test .h264 file for testing
2.2) FileName1: file name for the .h264 test file (with .h264 on the end)
2.3) Decoder multithread: default on,disable when you have problems with the hw decoder.
2.4) select your decoder: the dafault hw decoder i higly recommended for streaming. Only use sw decoder when you have problems with the hw decoder.

3. Ground recording Setting: file name for ground recording and on/offswitch

4.) Debug Settings: Latency file with info about the last sessions, and "user debug". Never leave userdebug on during flight streaming
###############################################
 

Constantin

Erfahrener Benutzer
#96
Ich habe die Version im App-Store aktualisiert. Das Problem mit dem "video gerendert mehrere male" könnte damit behoben sein. Ohne Screenshot kann ich jedoch noch nicht viel machen.
Falls jemand noch ne coole Idee für's OSD usw hat bitte sagen.
Ansonsten steht die RSSI Anzeige oben auf meiner Todo Liste.

Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
 
#97
Apps wie Tower verfolgen einen ganz anderen Zweck, nämlich die Steuerung der Drohne übers Smartphone und vlt. Auch einen live video stream für aerial photography, jedoch keinen FPV-stream für eine video/vr- Brille.

Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
Für die Brille bräuchte es in diesem Fall auch gar nicht sein. Mir würde es reichen wenn ich über die App die Drohne steuern und gleichzeitig eben noch den Videostream empfangen könnte.
 

moritzz06

Erfahrener Benutzer
#98
Habe mir eben auch die App gekauft. Leider habe ich auch die vielen Bilder, also quasi im OSD auch noch Bilder (auch bei deaktiviertem OSD).
Allgemein lief die alte Version stabiler..

Edit: Ist ein G3
 

Constantin

Erfahrener Benutzer
#99
Habe mir eben auch die App gekauft. Leider habe ich auch die vielen Bilder, also quasi im OSD auch noch Bilder (auch bei deaktiviertem OSD).
Allgemein lief die alte Version stabiler..

Edit: Ist ein G3
Kannst du bitte ein Screenshot machen ? Ich hätte gedacht das Problem für die Bilder gefunden zu haben. Update war vor ~2 Tagen (v. 1.2)

Gesendet von meinem HUAWEI P7-L10 mit Tapatalk
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten