GMU:Max Neupert/StreamGem2Android: Difference between revisions

From Medien Wiki
No edit summary
 
(12 intermediate revisions by the same user not shown)
Line 4: Line 4:
This page documents different possible approaches and hopefully will show how it's done when successful.
This page documents different possible approaches and hopefully will show how it's done when successful.


==Unsucessful Apporaches==
My phone has a resolution of 1920 × 1080 pixels


===apps===
==Unsucessful Approaches==
If you are on Windows, you have some choices for apps:
 
===Apps===
If you are on Windows, you have some choices for apps, that may or may not come with their own limitations:
* [https://www.trinusvirtualreality.com Trinus VR]
* [https://www.trinusvirtualreality.com Trinus VR]
* [http://www.swatterco.com/vr_streamer.php VR Streamer]
* [http://www.swatterco.com/vr_streamer.php VR Streamer]
* [http://kinovr.kinoni.com/ Kino VR]
* [http://vrmypc.tantransha.com VRMYPC]


===using x11vnc===
===Using x11vnc===
Use the command xwininfo to find out the ID of the window to be shared, then use <tt>x11vnc -id {id number here}</tt>
Use <tt>xwininfo</tt> to find out the ID of the window to be shared, then use <tt>x11vnc -id {id number here}</tt>
to share only one window to the vnc client.
to share only one window to the vnc client.


Line 19: Line 23:
cardboard-vnc-free is also adding two viewports to the shared image, to fake a 3D. That's a show stopper, because I want to use the stereo mode in GEM.
cardboard-vnc-free is also adding two viewports to the shared image, to fake a 3D. That's a show stopper, because I want to use the stereo mode in GEM.


===udpvideo lite/ffmpeg===
===Gemwin remote host===
It's possible to open the Gemwwin on a remote host with the [remotehost( message to [gemwin] (see gemwin-help)
However, there is no further explanation of that feature and I haven't seen any discussion on pd-list or here about it.
 
With an [https://f-droid.org/repository/browse/?fdfilter=x%20server&fdid=au.com.darkside.XServer X Server running on the Android].
 
I can see the Pd gui on my phone with
<tt>$ export PULSE_SERVER=tcp:{local IP}:4712 metacity & puredata</tt>
 
the test audio patch makes noise on the computer.
 
It (expectedly) doesn't allow me to open a GEM window
 
error: GEM: X server has no OpenGL GLX extension
error: GEM: Error creating const context
error: GEM: A serious error occured creating const Context
error: GEM: Continue at your own risk!
error: GEM: X server has no OpenGL GLX extension
error: GEM: Unable to create window
error: [gemwin]: no window made
error: GEM: Create window first!
error: JACKerror: SuspendRefNum error
error: JACKerror: JackClient::Execute error name = pure_data_2
error: JACK: server shut down
 
===ffmpeg===
Best overview on streaming with ffmpeg is to be found https://trac.ffmpeg.org/wiki/StreamingGuide#Pointtopointstreaming
 
====udpvideo lite/ffmpeg====
Since streaming to a VR-Headset with minimum latency is pretty much what you want with a live drone video this abandoned freeware app is doing exactly that:
Since streaming to a VR-Headset with minimum latency is pretty much what you want with a live drone video this abandoned freeware app is doing exactly that:
[https://play.google.com/store/apps/details?id=com.imersiva.udpvideo udpvideo lite]
[https://play.google.com/store/apps/details?id=com.imersiva.udpvideo udpvideo lite]
Line 25: Line 57:
Then run on the desktop:
Then run on the desktop:
<tt>ffmpeg -f x11grab -video_size wxga -r 25 -i :0.0 -f mpjpeg udp://192.168.1.2:5678</tt>
<tt>ffmpeg -f x11grab -video_size wxga -r 25 -i :0.0 -f mpjpeg udp://192.168.1.2:5678</tt>
==Successful==
===OBS/VLC===
It works in OBS + VLC with this method https://obsproject.com/forum/resources/obs-studio-send-an-udp-stream-to-a-second-pc-using-obs.455/ but has a delay of a couple of seconds.

Latest revision as of 08:24, 5 July 2017

Goal: Stream to Android

Goal: streaming the Gem-window of a Linux Desktop to a VR-headset running on an Android phone.

This page documents different possible approaches and hopefully will show how it's done when successful.

My phone has a resolution of 1920 × 1080 pixels

Unsucessful Approaches

Apps

If you are on Windows, you have some choices for apps, that may or may not come with their own limitations:

Using x11vnc

Use xwininfo to find out the ID of the window to be shared, then use x11vnc -id {id number here} to share only one window to the vnc client.

However cardboard-vnc-free is doing too much. First of all, it controls the moise pointer on the server (as a VNC client should) but I don't need that. There is an option "Viewer" in the connection settings that will diable this and lower the latency from about 3 seconds to 1 second.

cardboard-vnc-free is also adding two viewports to the shared image, to fake a 3D. That's a show stopper, because I want to use the stereo mode in GEM.

Gemwin remote host

It's possible to open the Gemwwin on a remote host with the [remotehost( message to [gemwin] (see gemwin-help) However, there is no further explanation of that feature and I haven't seen any discussion on pd-list or here about it.

With an X Server running on the Android.

I can see the Pd gui on my phone with $ export PULSE_SERVER=tcp:{local IP}:4712 metacity & puredata

the test audio patch makes noise on the computer.

It (expectedly) doesn't allow me to open a GEM window

error: GEM: X server has no OpenGL GLX extension
error: GEM: Error creating const context
error: GEM: A serious error occured creating const Context 
error: GEM: Continue at your own risk!
error: GEM: X server has no OpenGL GLX extension
error: GEM: Unable to create window
error: [gemwin]: no window made
error: GEM: Create window first!
error: JACKerror: SuspendRefNum error
error: JACKerror: JackClient::Execute error name = pure_data_2
error: JACK: server shut down

ffmpeg

Best overview on streaming with ffmpeg is to be found https://trac.ffmpeg.org/wiki/StreamingGuide#Pointtopointstreaming

udpvideo lite/ffmpeg

Since streaming to a VR-Headset with minimum latency is pretty much what you want with a live drone video this abandoned freeware app is doing exactly that: udpvideo lite

Then run on the desktop: ffmpeg -f x11grab -video_size wxga -r 25 -i :0.0 -f mpjpeg udp://192.168.1.2:5678

Successful

OBS/VLC

It works in OBS + VLC with this method https://obsproject.com/forum/resources/obs-studio-send-an-udp-stream-to-a-second-pc-using-obs.455/ but has a delay of a couple of seconds.