Web Cam

11 views
Skip to first unread message

Evan

unread,
Oct 14, 2011, 8:21:01 AM10/14/11
to realXtend
Heyall,

I see mention of a web cam at http://wiki.realxtend.org/index.php/Getting_Started_with_Tundra
under 1.0.6 features and am wondering if there's a way to implement it
in Tundra 2.1.1.

I'd like to be able to view a webcam I have setup remotely.


Thank you ever again,

Evan

Jonne Nauha

unread,
Oct 14, 2011, 11:40:27 AM10/14/11
to real...@googlegroups.com
That webcam module I made wont help you get image from web or share you webcam to others. It was only meant for local viewing of webcam, which is not very useful tbh.

We do however have EC_MediaPlayer that can play video streams. So just get the webcams stream url and put it to the ECs media ref and hit play, see what happens. Remember to keep the streaming allowed boolean true (the default). Make some mesh, then apply EC_MediaPlayer to the same entity. Check interactive true, youll get a menu when you click the screen to play/pause/show 2D player widget.

Best regards,
Jonne Nauha
Adminotech developer



Evan

unread,
Oct 14, 2011, 12:17:38 PM10/14/11
to realXtend
Hello Jonne,

Thank you very much for the information!

However, I'm having a bit of a difficult time getting the
EC_MediaPlayer to work how I need.

I have my assets stored to a dropbox for now and I am unable to
import.

I instead load a .txml file with all the assets referenced. Can you
possibly help me with the syntax for the Entity, Component and
Attributes for implementing the EC_MediaPlayer into the .txml file?


Thank you so much,

Evan

Toni Alatalo

unread,
Oct 14, 2011, 12:57:06 PM10/14/11
to real...@googlegroups.com
On Oct 14, 2011, at 7:17 PM, Evan wrote:
> possibly help me with the syntax for the Entity, Component and
> Attributes for implementing the EC_MediaPlayer into the .txml file?

You don't usually edit the XML by hand - instead, use the scene & entity editing GUI, for example:

- open scenestruct (shift-s or menu -> view -> scene)
- right-click on the entity where you want to show a video stream
- choose 'add component'
- select MediaPlayer in the dropdown dialog
- after adding the component, doubleclick on the entity to get it open in EC-editor and set the params
* they are update live, not only to you but to only clients
- save the scene from scene-window - rightclick - 'save scene as' when done.

> Evan

~Toni

Toni Alatalo

unread,
Oct 14, 2011, 1:01:05 PM10/14/11
to real...@googlegroups.com
On Oct 14, 2011, at 7:57 PM, Toni Alatalo wrote:
> * they are update live, not only to you but to only clients

bleh sent too quickly & tired, made confusing typos apparently -- tried to mention:
"they (the parameters in ec editor) are update live, not only to you but also to other clients"

hopefully using the tools works for you!

Evan

unread,
Oct 14, 2011, 1:22:09 PM10/14/11
to realXtend
Hi Toni,

I put in the components via the client and saved the scene.

I then ran the new scene and got the errors:
Error: Cannot create component for type "EC_MediaPlayer" - no
factory exists!
Error: Failed to create a component of type "EC_MediaPlayer" and
name "" to Entity "MediaPlayer" (ID: 7)

Below is the snippet from the .txml with http:// locations omitted:

<entity id="7" sync="1">
<component type="EC_Name" sync="1">
<attribute value="MediaPlayer" name="name"/>
<attribute value="" name="description"/>
</component>
<component type="EC_Placeable" sync="1">
<attribute value="0,0,0,0,0,0,1,1,1" name="Transform"/>
<attribute value="false" name="Show bounding box"/>
<attribute value="true" name="Visible"/>
<attribute value="1" name="Selection layer"/>
<attribute value="" name="Parent entity ref"/>
<attribute value="" name="Parent bone name"/>
</component>
<component type="EC_Mesh" sync="1">
<attribute value="0,0,0,0,0,0,1,1,1" name="Transform"/>
<attribute value="http://" name="Mesh ref"/>
<attribute value="" name="Skeleton ref"/>
<attribute value="" name="Mesh materials"/>
<attribute value="0" name="Draw distance"/>
<attribute value="false" name="Cast shadows"/>
</component>
<component type="EC_MediaPlayer" sync="1">
<attribute value="http://" name="Media Source"/>
<attribute value="0" name="Render Submesh"/>
<attribute value="true" name="Enabled"/>
<attribute value="true" name="Illuminating"/>
<attribute value="true" name="Interactive"/>
<attribute value="true" name="Streaming Allowed"/>
</component>
</entity>

The "Media Source" is a streaming mjpg if that makes a difference.

Thank you very much,

Evan

Jonne Nauha

unread,
Oct 14, 2011, 4:35:54 PM10/14/11
to real...@googlegroups.com
You need to have the plugin loaded also on the server. I think recently the xml configs got nuked and its propably not in the default server plugin xml anymore (plugin.xml is loaded if you dont pass --config option). Add the VlcPlugin to the server config also and you should be fine. You can see and copy the exact line from viewer-browser.xml.

Best regards,
Jonne Nauha
Adminotech developer



Evan

unread,
Oct 15, 2011, 11:01:23 AM10/15/11
to realXtend
Hello Jonne!

I got the xml files sorted and the media player into the scene.

However, I'm trying to connect to a streaming mpeg4 using rtsp.
When I hit play, the video doesn't appear, do I perhaps need to
install the mpeg4 codec onto my server?

Thank you,

Evan

Jonne Nauha

unread,
Oct 15, 2011, 11:43:09 AM10/15/11
to real...@googlegroups.com
The MediaPlayer uses libVLC to play media. This means if you can open the file with the stand alone vlc player http://www.videolan.org/vlc/ it should also be able to play it in Tundra. However note that not all media support streaming (codecs, containers etc, i dont know the tech side of it). This is why I made the "allow streaming" boolean attribute in the component. Another reason is to preload the whole media file for the client before playing, meaning you will not get "buffering" pauses while you play it, for me this makes for a smoother user experience at least for slow internet connections.

I said to you to but streaming allowed true because you were talking about a web cam stream on web, this kind of "media" cannot be really downloaded, you need to stream it. But if you do have a normal video file on the web, I would suggest setting streaming allowed false and reconnect to the server to start the asset download. You should see "Downloading media..." text and a icon on the center of the objects submesh you are rendering the video.

Keep me updated how it goes.

Best regards,
Jonne Nauha
Adminotech developer



Evan

unread,
Oct 15, 2011, 12:54:53 PM10/15/11
to realXtend
Ah, I apologize Jonne, I forgot to mention that the mpeg4 media I am
trying to stream is from a webcam.

It's an AXIS camera that supports mjpg and mpeg-4.

Thank you,

Evan

On Oct 15, 10:43 am, Jonne Nauha <jo...@adminotech.com> wrote:
> The MediaPlayer uses libVLC to play media. This means if you can open the
> file with the stand alone vlc playerhttp://www.videolan.org/vlc/it should

Jonne Nauha

unread,
Oct 15, 2011, 1:10:55 PM10/15/11
to real...@googlegroups.com
Try it out with normal VLC. If that doesn't work then it wont work in Tundra either. Your next option then would be to make a web page that has the streamed video somehow playing, then make a EC_WebView that points to that page, then set render fps to 25. Also set the EC_WebView size as small as you can (eg. just the video size). This will help keep performance good even with 25 fps rendering rate. A full image blit from big web pages are very expensive.

Best regards,
Jonne Nauha
Adminotech developer



Evan

unread,
Oct 17, 2011, 10:51:44 AM10/17/11
to realXtend
Hello Jonne,

I've determined that I can't get the mpeg4 stream to play on the
EC_MediaPlayer, so I'm trying the mjpg player through the EC_WebView.

It seems I'm having trouble parsing a url to the View URL path, would
a '&' in the url cause some sort of problem in the .txml to cause it
to function improperly?

Also, I can't seem to get the site to appear in-world on the media
object. I don't have a material assigned to this mesh, would that
matter?

Thank you,

Evan

Jonne Nauha

unread,
Oct 17, 2011, 11:41:11 PM10/17/11
to real...@googlegroups.com
You dont need a material, the webview/mediaplayer will generate one and replace any material that is in the target submesh index. However do not have both EC_MediaPlayer and EC_WebView in the same entity enabled at the same time. There is boolean "Enabled" in both, check it disabled from the one you dont want to show. Otherwise they will "fight" who gets to replace the material in the submesh, and you wont really know which is enabled.

I suggest only keeping one of these components in a entity at a time, if you dont have some script logic to keep only one enabled at one time. The & should not be afaik a problem in txml, is the full url in there if you look at the txml but not in the component when the scene loads?

Best regards,
Jonne Nauha
Adminotech developer



Evan

unread,
Oct 17, 2011, 11:47:27 PM10/17/11
to realXtend
I don't have the EC_MediaPlayer on there anymore, just the EC_WebView.

In-world the webpage doesn't display on the object, but it works in a
separate window when I click 'show'.

The object itself just turns grey and flickers.


-Evan
> ...
>
> read more »
Reply all
Reply to author
Forward
0 new messages