libraries for ubuntu 12.04 available

Asked by jian on 2013-10-23

Hi, Alex

I built berkelium and libbrowsernode for ubuntu12.04

I tried both 1.4.2 and 1.5.2, it's OK, and the local video playback is also good.

Thanks.
Jianjian

Question information

Language:
English Edit question
Status:
Solved
For:
Xibo Edit question
Assignee:
No assignee Edit question
Solved by:
P.B.
Solved:
2013-10-30
Last query:
2013-10-30
Last reply:
2013-10-26
jian (huangjian0209) said : #1

If you need the libraries, I will share them.

Thanks.
Jianjian

If you have working 32bit libraries that would be great thank you.

jian (huangjian0209) said : #3

Yes, they are working on 32 bits Ubuntu.

Thanks.
Jianjian

If you can provide them and ideally some build instructions then I can put
out a release for 12.04 then. Thank you
On 23 Oct 2013 21:51, "jian" <email address hidden> wrote:

> Question #237920 on Xibo changed:
> https://answers.launchpad.net/xibo/+question/237920
>
> jian posted a new comment:
> Yes, they are working on 32 bits Ubuntu.
>
> Thanks.
> Jianjian
>
> --
> You received this question notification because you are a member of Xibo
> Developers, which is an answer contact for Xibo.
>

jian (huangjian0209) said : #5

Ok, So could you please let me know how I give you them, and what directories you need. Thanks.

It depends where you installed the libraries on your system. Usually
/usr/local/lib

If you could upload to Dropbox or similar and send a link?
On 24 Oct 2013 13:46, "jian" <email address hidden> wrote:

> Question #237920 on Xibo changed:
> https://answers.launchpad.net/xibo/+question/237920
>
> jian posted a new comment:
> Ok, So could you please let me know how I give you them, and what
> directories you need. Thanks.
>
> --
> You received this question notification because you are a member of Xibo
> Developers, which is an answer contact for Xibo.
>

jian (huangjian0209) said : #7

https://www.dropbox.com/s/v1w4azlhcmnwwrr/locallib.tar.gz
https://www.dropbox.com/s/1c09fthlt690py2/localbin.tar.gz
https://www.dropbox.com/s/pxrn0kfibkcaqpz/libberkeliumwrapper.so

install bzr libvdpau1 libboost-python1.46.1 libboost-thread1.46.1 libdc1394-22 libswscale2 libavformat53
python-soapy libxss1

extract locallib to /usr/local/lib
extract localbin to /usr/local/bin
the other file to /usr/bin

copy libstdc++.so.6 to /usr/lib
copy libbrowsernode.so to xibo client
copy four files from /usr/local/bin to /usr/bin

chmod 777 /usr/bin/berkelium

Thank you. I'll make some time to test and let you know.

Best wishes

Alex

--
Alex Harrington
Spring Signage Ltd | http://springsignage.com
Proud founders and sponsors of the Xibo Project | http://xibo.org.uk
Registered Company #7811749

On 25 October 2013 00:31, jian <email address hidden> wrote:

> Question #237920 on Xibo changed:
> https://answers.launchpad.net/xibo/+question/237920
>
> jian posted a new comment:
> https://www.dropbox.com/s/v1w4azlhcmnwwrr/locallib.tar.gz
> https://www.dropbox.com/s/1c09fthlt690py2/localbin.tar.gz
> https://www.dropbox.com/s/pxrn0kfibkcaqpz/libberkeliumwrapper.so
>
> install bzr libvdpau1 libboost-python1.46.1 libboost-thread1.46.1
> libdc1394-22 libswscale2 libavformat53
> python-soapy libxss1
>
> extract locallib to /usr/local/lib
> extract localbin to /usr/local/bin
> the other file to /usr/bin
>
> copy libstdc++.so.6 to /usr/lib
> copy libbrowsernode.so to xibo client
> copy four files from /usr/local/bin to /usr/bin
>
> chmod 777 /usr/bin/berkelium
>
> --
> You received this question notification because you are a member of Xibo
> Developers, which is an answer contact for Xibo.
>

Hi

I've installed these and they're working, but the video playback isn't great. It looks like the vdpau library isn't being used properly by the hardware.

Are you able to play back full 1080p HD videos with these libraries?

jian (huangjian0209) said : #10

Hi, Alex

I tried the local video which I had converted to a low quality, it's good.
I tried the HD video this morning, it has problem to display, is it possible to replace libvdpau1 with libvdpau-va-gl?

And yesterday, I found another problem, not all the texts which are in different regions can be displayed every time, some of them will be missing randomly.

I've no idea on the first issue. On the second issue that's a berkelium bug
for which there is no fix at the moment

P.B. (philippe-bost) said : #12

Can I test as well ? I've been waiting for those for a year ! :)

P.B. (philippe-bost) said : #13

Got this when I run Xiboclient.py : Could not load plugin. dlopen failed with message 'liblibberkelium.so: cannot open shared object file: No such file or directory'

Where did i fail ?

Best P.B. (philippe-bost) said : #14

Found!
Now i have "RuntimeError: Graphics driver lacks vertex buffer support, unable to initialize graphics." on a hardware where pythonclient under 10.04 worked correct. I look for a driver pb.

I'll let you guyz this thread for dev issues in the futur...

Also confirmed to work with Ubuntu 13.10. Only had to install libboost-python1.46.1 libboost-thread1.46.1 deb packages found in 12.10 repo. Seems some video formats will not play unfortunately, same result as with 12.04.

P.B. (philippe-bost) said : #17

Is there any project to solve this ?....

For me everything is running perfectly now, except for video's with more then 2 channels audio. But this seems to be a problem in libavg and has to be addressed by them. For your information, I'm running it on an Intel i3 ivybridge system, ubuntu 12.04

jian (huangjian0209) said : #19

Hi, Maarten

Did you test a layout with the combination of many texts and many images?

Thanks.

I've tested 6 regions in one layout, 5 with each 10 images, and one with a rss feed scrolling up with speed 2. Everything smoothly.

I've also tested 3 regions with each 1080p video in it, and a rss feed scrolling to the left (single line) with speed 10. Each Video ran smoothly, tickerbar also as smooth as is currently possible (not very smooth unfortunately).

As far as I can see these libraries are as smooth as the 10.04 version, but I only tested it on intel hardware (i3 ivybridge and i5 Ironlake). Alex discovered some possible issues with vdpau libraries for nvidia, so maybe there is something missing on that part. Maybe I will test it later on nvidia or amd hardware, but I've nothing available at the moment.

I'm rolling a new version of the Python client now for 1.6.0 release using the patches from this thread.

In the interim, Berkelium has been marked as unmaintained.

Does anyone here have the skills/time to look at moving us over to Chromium Embedded Framework?
https://code.google.com/p/chromiumembedded/

jian (huangjian0209) said : #22

Hi, Alex

According to my understanding, we render jpeg, etc from libavg, it seems there is no problem, while we render webpage through berkelium delegate and then berkelium( chromium inside), of course , the text is a webpage too.
And for the text(webpage) rendering, it was not very stable, also the berkelium is a very big project, it's hard to build.

So do you have the interfaces that we need for the webpage rendering, and is it possible we do not involve all the chromium project in it but just the functionality we need?

Please correct me if I am wrong.

Thanks.
Jian

Hi Jian

We need to be able to render full html

The most sensible option to me seems to be CEF. I'm open to suggestions
though.

Best wishes

Alex

jian (huangjian0209) said : #24

Hi, Alex

I suggest to follow cefpython.
http://code.google.com/p/cefpython/

Copy and modify the provided python code to Xibo project to render html.

It will be easier than copy and modify the sample code in the CEF binary release.

Thanks.
Jian

Will that give us high enough performance to do things like play back html5
video?

jian (huangjian0209) said : #26

HI, Alex

I ran the python sample code directly, but it's not working embedded in Xibo.

So I have no idea for the performance right now.

I am trying to let it work in xibo, I also want to see the performance and stability.

Thanks.
Jian

Thank you. I'd be interested to hear how you get on

jian (huangjian0209) said : #28

Hi, Alex

I made the cefpython working in xibo these days, and I tested text, webpage, embedded youtube, and also the html5 video.
Although I still have many problems, for example, the text region, webpage regions are displayed as a individual application.

So do you have any specification for the video file to check, I would like to covert the mp4 to ogg. and then check the performance.

Thanks.
Jian

Hi Jian

Watching the html5 version of YouTube would be a good test I would imagine?

Best wishes

Alex
On 26 Feb 2014 18:56, "jian" <email address hidden> wrote:

> Question #237920 on Xibo changed:
> https://answers.launchpad.net/xibo/+question/237920
>
> jian posted a new comment:
> Hi, Alex
>
> I made the cefpython working in xibo these days, and I tested text,
> webpage, embedded youtube, and also the html5 video.
> Although I still have many problems, for example, the text region, webpage
> regions are displayed as a individual application.
>
> So do you have any specification for the video file to check, I would
> like to covert the mp4 to ogg. and then check the performance.
>
> Thanks.
> Jian
>
> --
> You received this question notification because you are a member of Xibo
> Developers, which is an answer contact for Xibo.
>

jian (huangjian0209) said : #30

Hi, Alex

I converted a mp4 to an ogg file

The spec is as following:
video:
dimensions: 1920x1040
codec theora
fr: 24fps
bitrate 1200kbps

audio
codec vorbis
channels:stereo
sample rate 44100hz
bitrate 128kbps

the playback is smoothly.

so next I will try to embed the webpage window into the background window.

Thanks.
Jian

Sounds great. Thanks

Frans van Berckel (fberckel) said : #32

About the performance, maybe it sounds strange, but would it help to drop Xorg and move on to wayland?

I am thinking of a ubuntu-minimal or emdebian install, using a realtime kernel with wayland on top it. If your python sample code & cef3 (and the dependencies) would run on that, you are able to run some performance tests.

https://wiki.ubuntu.com/RealTime
http://en.wikipedia.org/wiki/Wayland_(display_server_protocol)
https://wiki.ubuntu.com/Wayland

Frans van Berckel (fberckel) said : #33

Check Ozone using Wayland

https://www.google.nl/#q=ozone+wayland

jian (huangjian0209) said : #34

About the performance, I have to say, I can see frame skip during html5 video playback. I tested this on a pc which processor is Celeron N2810.

But during the test, at least I did not find the error rending for the text, webpage. While in the current Linux version, there are many error rending for the text, so it has to use re-rendering method to solve this, that's why I said before it's not very stable. To release for the production, at least it has to be fixed I think, then do a lot tests, but berkelium is not maintained any more, so it's the better way to replace berkelium.

And also the xibo Linux version based on libavg technology is working and all the features are there, the easiest way to do is to choose an alternative for the berkelium. I also noticed CEF before Alex mentioned it in this discussion thread.

Why I suggest cefpython is because I think it's better not implement plugin node like libbrowsernode in current implementation. Just copy the python code from the cefpython release package and modify it, it may be more stable.

In the sample python code in cefpython package, they use wxpython to draw the window for html rendering. I tested the performance based on that, but the problem is that you can see an application window floated on the background. To solve this, I tried using OSR(off screen rendering) to get a bitmap then use libavg image node to display it. With OSR, cefpython develop team says you don't have to create wxpython frame at all, currently I still created the frame but did not show it.

I got the bitmap successfully but still have problem to display it with libavg, I was working on that, but I have other works at hand, so I suspended that.

It's great to have a chance to learn wayland and ozone, is wayland popular? and with wayland, we don't need to install Ubuntu? is it easy to make a framework for image and html rendering?

Please correct me if I made any mistake. :)

Thanks
Jianjian

Frans van Berckel (fberckel) said : #35

Okay lets do this step by step. Fist step 1. The goal is getting Chromium (read html5) to run without Xorg. How does that looks?

http://www.youtube.com/watch?v=EJB2pznc6iY

The Background:
If you are running a system with a less of libs and other software, without all the legacy, it's faster, has better performance, easier to maintained, etc, etc. It's even using a other kernel for better I/O. That's why embedded systems are being develop.

You are still gonna use Ubuntu. For a system like this there two way's of going. Using Ubuntu Desktop and take the system some warm clothes off? Or install a system with a less clothes on?

Let me make this some more clean. What we daily do: If you are installing the Ubuntu Desktop CD, it sound strange but this is what you are doing ...

# apt-get install ubuntu-desktop

If you are installing a minimal Ubuntu system, you are doing this ...

# apt-get install ubuntu-minimal

Or doing this, to install some extra, but still only a minimal set of tools ...

# apt-get install ubuntu-standard

And on top of that install Wayland. Or do I have to say Weston? That a Wayland window system, like in the Youtube example.

# apt-get install wayland weston

About the install:
But that's not how I install Ubuntu? I just boot with a CD or USB stick. How do I get such a minimal install? It's simple, by choosing a other Ubuntu image. One with the option for a minimal install.

Be save, and just take a spare laptop or computer or dev-board for the test. Prepare a CD or USB stick with next image and install the temporary test system.

http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/current/images/netboot/mini.iso

There are mini.iso's for i386, arm64, armhf, powerpc & ppc64el as well. But i am not sure Chromium is gonna support all these platforms.

Please and do not install extra software, while installing, that's simple.

https://help.ubuntu.com/community/Installation/FromUSBStick

Okay, done the minimal install, but it has a prompt only, now true. And I don't like that. So let's be able to connect the system with ssh from the other desktop, you are doing this ...

# apt-get install openssh-server

From the other desktop you are able connecting the minimal test system by ssh ...

# ssh user@'minimal system ip-address'

But What's the 'minimal system ip-address'?

# ifconfig

Connect and install these ...

# apt-get install ubuntu-standard wayland weston

If that runs let us go for the next step ...

Thanks,

Frans van Berckel

Frans van Berckel (fberckel) said : #36

1) To be clear, apt-get install wayland doesn't exists, my faulty. Sorry. There is a client and a server file true.

2) If you wanna take a look into a project, that is porting now into wayland, maybe XBMC is a nice example ... http://smspillaz.wordpress.com/?s=Wayland *And it 's time critical as well because of AV playback*

Thanks,

Frans van Berckel

jian (huangjian0209) said : #37

Hi, Alex

As I described in #34, I got text or webpage bitmap from cefpython, and then display it with libavg image node.
It's working fine now.

I will upload all what I have tried to my dropbox for your reference, it you're interested in it, then I will go ahead to do more and a lot of optimization, otherwise, I will stop this job. And one thing that I want to do for this is to try this on my arm Linux platform to see if it's working, I will let you know if I have any good news.

I will also try wayland when I'm free.

Thanks.
Jianjian

That would be great thank you

jian (huangjian0209) said : #39

Hi Alex

I upload the whole xibo directory to
https://www.dropbox.com/s/9cxa6yt2pq2zjf4/xibo.tar.gz
the 32bit cef and cefpython libraries are in it.

if you have libavg installed, you can try it, maybe you need to install wxpython.

Thanks.
Jianjian

Hi Jianjan

As I understand it that renders a single bitmap of the webpage, and the
uses libavg to composite that bitmap once?

It won't work with webpages that have any animation, video etc?

Best wishes

Alex

jian (huangjian0209) said : #41

Hi Alex

Any change of the webpage occured, the onpaint function will be called, and I will get a new bitmap, currently I use a periodical timer to repaint them, so, the animation, and video can work.

It's better to use IPC to replace this kind of timer.

 But for the text scrolling, I think still we need to use timer.

From cefpython, then go back to libavg, it definitely affect the performance.

Thanks.
Jianjian

Hi Jianjian

Sorry it's taken me so long to get to this.

https://code.launchpad.net/~alexharrington/xibo/pyclient-cef

I've looked at those files and pulled your changes through to the 1.6 series client.

I installed Ubuntu 14.04 32 bit and the packaged libavg (1.8.0) and the latest python-cef from the website 32 bit deb package.

It runs but there are some issues.

I'm really interested in seeing how far we can push this, especially since it negates the need for libbrowsernode and any direct integration with libavg.

Did you make any further progress optimizing things your end?

Best wishes

Alex

jian (huangjian0209) said : #43

Hi, Alex

I stopped and did not go further.
The optimization what I can do like this:
1 IPC instead of timer to repaint the image
2 remove the global variables to call text, webpage rendering
3 don't save image file, but repaint using the image buffer.
.....

But as I said on May 7, #41, this implementation affects the performance, especially for the video, so what's your opinion? how about drawing pictures, etc in the cefpython sample frame, but not draw text, webpage in libavg from cefpython?

Thanks
Jianjian

jian (huangjian0209) said : #44

Hi, Alex

I need to describe it clearly, maybe I confused you.

At the beginning, I copied the cefpython sample code, and made some small changes, for the text, and webpage media, called the cefpython code then draw it by cefpython, because cefpython uses wxpython, it can draw webpage. the performance is good, I said this on Feb 26, #30. But the problem is wxpython draw the webpage as a individual application, you can see the window floating on the libavg frame. I tried many ways, but did not see how to solve this issue.

Then I tried not to draw webpage by wxpython, and get the webpage content then draw by libavg. But this can affect the performance.

The problem is wxpython frame drawing is not powerful enough, I think.

Please let me know if I still describe it clearly.

What's your opinion?

Thanks
Jianjian

Having the browser float as a separate window isn't suitable as it prevents
libavg from compositing.

I think the way forward is to use the cef python framework to run an
offscreen renderer and then get paint events from that as a pixel buffer
and load those directly into libavg as an image.

That way there's no overhead from wx framework, or from saving images to
disk, plus we keep the true compositing

jian (huangjian0209) said : #46

Yes Alex, I understand.

So go ahead? and I think IPC and image buffer instead of file can reduce the performance affects.

Thanks.
Jianjian

I think as long as it uses the offscreen rendering framework rather than
the wx engine it should be better. The only way to know for sure is to try
though

Frans van Berckel (fberckel) said : #48

On Tue, 2014-09-02 at 14:51 +0000, Alex Harrington wrote:
> Question #237920 on Xibo changed:
> https://answers.launchpad.net/xibo/+question/237920
>
> Alex Harrington posted a new comment:
> I think as long as it uses the offscreen rendering framework rather than
> the wx engine it should be better. The only way to know for sure is to try
> though

Are you aware of the Chromium project is moving from GTK into Aura?

http://www.chromium.org/developers/design-documents/aura

Thanks,

Frans van Berckel

Ronan SALMON (ronan-salmon) said : #49

I'm trying https://code.launchpad.net/~alexharrington/xibo/pyclient-cef, but I get the following when starting xibo :

Exception in thread Thread-23:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/opt/xibo/pyclient-cef/client/python/plugins/media/WebpageMedia.py", line 44, in run
    from wxpython import NavigateTo
ImportError: No module named wxpython

Ronan SALMON (ronan-salmon) said : #50

I'm trying https://code.launchpad.net/~alexharrington/xibo/pyclient-cef, but I get the following when starting xibo :

Exception in thread Thread-23:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/opt/xibo/pyclient-cef/client/python/plugins/media/WebpageMedia.py", line 44, in run
    from wxpython import NavigateTo
ImportError: No module named wxpython

Do I need to intall a package ?
Thanks,
Ronan.

That code is an experiment and barely functions. It's not supposed to be
used.

It needs the wx python library installed to run but really don't bother

Ronan SALMON (ronan-salmon) said : #52

Ok, I just wanted to tried.