ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
2

image_transport republish theora core dump on startup

asked 2013-02-27 15:01:49 -0500

bgoldfai gravatar image

updated 2013-03-11 11:20:59 -0500

I am running Ubuntu 12.04 with Groovy. I am trying to republish a theora stream as decompressed images using:

rosrun image_transport republish theora in:=camera/image raw out:=camera/image_decompressed

The node core dumps on startup with the error:

terminate called after throwing an instance of 'image_transport::TransportLoadException'
  what():  Unable to load plugin for transport 'theora', error string:
Failed to load library /opt/ros/groovy/lib//libtheora_image_transport.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = /opt/ros/groovy/lib//libtheora_image_transport.so: undefined symbol: th_comment_clear)
Aborted (core dumped)

If I run the node republishing compressed or raw streams, the node starts and functions normally.

I see theora as a valid image transport using rosrun image_transport list_transports. I get this same error on 3 different machines all running Groovy, and the error does not happen using Fuerte. Could this be an issue with how image_transport_plugins is compiled?

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
2

answered 2013-03-18 11:35:03 -0500

jkammerl gravatar image

Hi,

this bug should be fixed in: https://github.com/ros-perception/image_transport_plugins/commit/cec427bcd93ba941bd622389b10934811b2da70c

In future, please create an issue directly on github for bugs like this: https://github.com/ros-perception/image_transport_plugins

Cheers, Julius

edit flag offensive delete link more

Comments

Hi jkammerl, I installed 1.8.20 theora_image_transport on my laptop, but when I run "rosrun image_view image_view image:=/camera/image_raw theora", I got the new warning "[theora] Packet was not a Theora header" and it seems theora doesn't work at all because the video streaming is very laggy.

AdrianPeng gravatar image AdrianPeng  ( 2013-03-19 08:08:34 -0500 )edit

After I installed the total image_transport_plugin stack instead of only theora_image_transport package, image_view can accept theora image. But there is another problem, when I try to republish theora image to raw image, "[theora] Packet was not a Theora header" appears again.

AdrianPeng gravatar image AdrianPeng  ( 2013-03-19 08:40:57 -0500 )edit

There is a general flaw here. The libtheora encoder uses the OGG container format which is not designed to be used for streaming at all. The stream starts with the first ROS subscriber and it starts streaming the header followed by the video data.Accordingly,a second subscriber will miss the header!

jkammerl gravatar image jkammerl  ( 2013-03-19 13:20:51 -0500 )edit

Hi jkammerl, do you have plan to develop new fashionable encoder like vp8?

AdrianPeng gravatar image AdrianPeng  ( 2013-03-22 07:07:41 -0500 )edit
0

answered 2013-03-11 00:37:38 -0500

TexZK gravatar image

updated 2013-03-11 22:16:27 -0500

I have this same problem too... I can run rostopic bw /image_raw/theora, but sadly I cannot make use of tools based on image_transport to convert from theora to raw :(

Instead, rosrun image_view image_view image:=/image_raw theora works perfectly when streaming from a webcam (I'm using the uvc_camera package)

edit flag offensive delete link more

Comments

Me too, Hope some hero can appear and solve this problem magically :(

AdrianPeng gravatar image AdrianPeng  ( 2013-03-11 15:03:33 -0500 )edit

So you mean any camera using libdc1394 to access cannot convert from theora to raw?

AdrianPeng gravatar image AdrianPeng  ( 2013-03-14 16:15:21 -0500 )edit
0

answered 2013-03-05 04:58:24 -0500

updated 2013-03-05 04:59:45 -0500

Do you have the theora_image_transport plugin installed? On ubuntu, you can install it with apt-get install ros-[version]-theora-image-transport.

You also have a typo in your rosrun line. n:=camera/image should be in:=camera/image.

edit flag offensive delete link more

Comments

The typo was a formatting error on my part copying to the post. ros-groovy-theora-image-transport is installed and image_transport/theora is listed as a declared transport using rosrun image_transport list_transports

bgoldfai gravatar image bgoldfai  ( 2013-03-05 06:40:28 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2013-02-27 15:01:49 -0500

Seen: 2,753 times

Last updated: Mar 18 '13