Monday, July 25, 2016

Binaries for POT 5.4.0-beta1 on Qt 5.7.0 and Experimental Accelerated QtWebKit

This is a new binary package including the same content of POT 5.3.0-beta1 package, with some updates:

  • new improvements in POT taken from omxplayer code;
  • bump to ffmpeg 3.1;
  • based on Qt 5.7.0.
The build includes support for network protocols and WebKit 1 supporting video html5 elements (including youtube).
This version is still experimental. Please report bugs on github.
Have fun! Bye! ;-)

Download POT 5.4.0-beta1 for Raspbian Jessie Lite Pi2 (also tested on Pi3) here (md5: e6b6a1f92b71ac2bdd3d9756efd7669c).

40 comments:

  1. Thanks a lot for this build ! Just, when do you plan to update gitHub because for the moment it's already the version 5.2.2 ? It's to use RTSP on my app !
    Another point,apparently now we can stream video over network with your app ? I have to raspberry at my home, if i would to stream an hd video (mkv file for exemple) from one to another, is it possible ? How i can proceed to test it with your binaries?

    ReplyDelete
    Replies
    1. Sources are on github now. You can stream with the protocol you prefer. I only tested HTTP but others should work. Refer to the previous article for an example.

      Delete
  2. Thanks, i will test and let you know !

    ReplyDelete
    Replies
    1. Hi Carlon, this build with Qt5.7 work fine about just with warning : qt.qpa.input: X-less xkbcommon not available, not performing key mapping

      Otherwise,now when i build pocPlayer i can read RTSP flux ! But if try to read RTSP from /usr/local/Qt-rasp2-5.7.0/bin/qmlscene video_simple.qml "rtsp://xxx:xxxx@192.168.xxx.xxx/video.pro1"
      I have this error :
      rtsp://xxxx:xxxxx@192.168.xxx.xxx/video.pro1:-1 Network error
      How can i run rtsp flux from a simple qml file to test ?

      Delete
    2. POCPlayer is just a QML application itself. So you can have a look at the code and see if there is any difference with what you are doing.

      Delete
    3. Hi Luca, I also tried the build, thanks a lot again for your work!! I have the same warning about "xkbcommon not available". In my case this is crucial as I use keyboard mapping:
      "QEglFSIntegration: Cannot load keymap, no keyboard handler found"
      Best regards, Florian

      Delete
    4. This comment has been removed by the author.

      Delete
    5. This comment has been removed by the author.

      Delete
  3. Hello Luca,
    first, you are doing a GREAT job!!!
    about your precompiled releases, I get some X86_64 binaries like qmake, lrelease etc in binary package. May be a crosscompile issue?
    Now, RPI3 is powerfull enought to compile everything... I found a tutorial for native build Qt:
    https://wiki.qt.io/Native_Build_of_Qt5_on_a_Raspberry_Pi
    maybe you have something to compile POT in RPI?

    Regards
    Miguel

    ReplyDelete
    Replies
    1. Hello, there is no issue. Those tools are meant to be run on a desktop machine, the one intended to work on. I don't see the reason to work on a machine orders of magnitude slower than a regular desktop. Should be possible of course but I have never tried.

      Delete
    2. I was able to build Qt and FFMPEG on RPi2. It works, but it takes a LOT of time, something about 30 hours.

      Delete
    3. No surprise. Try to work on chromium like this... :-D

      Delete
  4. Terms of use?

    Hi Luca,
    Must say, I am really amazed by your work! I was trying to fight with OpenMAX on raspberry pi in the past but wasn't able to get results - it was so overwhelming.
    During some research for work I stumbled at your site and it I'm really excited.
    I would like to use POT library but what are your terms regarding using it (found nothing on github)?

    ReplyDelete
    Replies
    1. Each code unit should contain its own license. It is mostly GPL anyway, some portions are LGPL.
      According to my interpretation however it may not propagate to code using it as a Qt plugin for several reasons. You should consult a lawyer if you want detailed information.

      Delete
  5. Hi everyone,
    I've started my holidays this week so I've had time enough to play a little bit with the last POT version.
    First of all, it's amazing! Thanks Luca to bring it to us.

    As I explained in the past, I've made all the test using a device that convert the DTB-S signal into a digital output (udp).
    Here is what I found:
    - The channels with high bandwidth(HD channels) are displayed on the screen faster than the lower ones (i.e 720x576 px). (1-2 seconds faster)
    In fact, there is a lot of interlace, while the HD channel are displayed like a charm.
    Picture-> http://oi67.tinypic.com/2j4f4sh.jpg
    - In general terms, if I reproduce the channels via omxplayer, they are displayed in 2-3 seconds, while POT takes from 5 to 10 sec. Maybe all the log output make it slower?
    - Sometimes, I've gotten this error after the media get buffered and then, the whole thing get stuck:
    [udp @ 0x6c0c7e70] Circular buffer overrun. To avoid, increase fifo_size URL option. To survive in such case, use overrun_nonfatal option
    - Sometimes, I get this error:
    [mpeg2video @ 0x6fa22ad0] Invalid frame dimensions 0x0.
    I think this only occurs when a non HD channel (or when the original signal is 4:3) is reproduced.

    In my opinion, the worst thing is the connection delay.

    Please, let me know if you want me to make more testing.

    Regards,

    Channel switch track-> http://pastebin.com/R7j2108Y
    Error track-> http://pastebin.com/LFnH0dJA

    ReplyDelete
    Replies
    1. Not sure I understand. HD channels are probably not interlaced while SD channels are probably interlaced. What is wrong with this?
      The fact that HD videos are displayed faster may be related to the fact that the buffer fills faster when the bitrate is higher maybe? If POT takes a bit more you may try to decrease the buffer size.
      I see the stream is not h264: in that case I can't say anything, I only used h264. You bought the mpeg2 decoder so you could try to dump the stream and play from file.

      Delete
    2. Hi Luca,
      First of all, thanks for your reply.

      Maybe I didn't used the right terminology with the interlaced thing. Sorry about that. I was trying to say that the low resolution channels get an horrible horizontal lines. Yesterday, they were playing a tennis match an it was really hard to follow the ball xD. I've test a little more and it seems it works fine as long you keep the original ratio (720x576), while if you use "strech" mode, the horizontal lines appear.

      About MPEG2 codec, I bought it, in fact. If not, some channels didn't work. Maybe I can send you a MPGE2 code for your rpi if you want it.

      Talking about buffers, how can I modify de buffer size? Parsing arguments? Or I need to recompile?
      Also, I would like to know how to increase fifo_size URL option? I would like to make more testing to avoid this error:

      "Circular buffer overrun. To avoid, increase fifo_size URL option. To survive in such case, use overrun_nonfatal option"

      Regards,

      Delete
    3. You are probably better off reading a bit about interlacing.
      For the buffer size there is something in the code where the buffering is implemented, probably in the media processor unit. I don't know about that warning, it is probably from ffmpeg so you can probably investigate there to see what it means.

      Delete
    4. ARD is a 720p channel with 50 FPS and there you dont need to deinterlace it. Try another Channel. In Germany is a distributor witch use 1080i Channels. But im interest too by them what you are trying to do :D

      Delete
  6. Hi Luca, whère do I find the current instructions to build pot?

    ReplyDelete
    Replies
    1. There is an article on the blog. However it is a regular Qt plugin now, just with some deps to provide. Look for that article.

      Delete
  7. Hi Luca,

    Great job! I've been using OpenFrameworks before, this runs so much smoother and more stable!
    I have a quick question: is it possible to disable the debugging output for the QML Video component? It's very nice to be able to debug it, but as it's running smoothly now, it's clogging the output ;).

    Thank you so much for all the effort you have put into this!

    ReplyDelete
    Replies
    1. Yes you can disable each level but you need to rebuild the plugin.

      Delete
    2. Okay, thanks for your quick reply!

      Delete
  8. Hi luca,
    1) are these the latest build instructions? http://thebugfreeblog.blogspot.com/p/build-procedure-for-piomxtextures.html

    2) dő I simply run qmake in the src folder? Or rather some subfolder?

    Thanks a lot,
    Ben

    ReplyDelete
  9. Hi Luca!
    How can I download the binary? I click the link but it asked for password.

    ReplyDelete
  10. Ciao Luca,

    ho scaricato ed installato Qt 5.7 + POC 5.4.0 beta per Jessie. Nel setup di Qt Creator (premetto che nella versione dell Qt 5.6.0-rc1 e POC 5.2.2 sempre da te scaricate non ci sono stati problemi) quando vado ad aggiungere una nuova Qt Version selezionando il nuovo qmake ho il seguente errore: "qmake not executable. The qmake executable /opt/rpi/sysroot/usr/local/Qt-rasp2-5.7.0/bin/qmake could not be added"

    Come posso procedere? Come ti dicevo nessun problema con le 5.6.0-rc1 e la 5.2.2 di POC.

    Un grazie anticipato e continua così. Seguo sempre con attenzione gli sviluppi del tuo progetto.

    Samuele

    ReplyDelete
    Replies
    1. Vedi cosa dice /opt/rpi/sysroot/usr/local/Qt-rasp2-5.7.0/bin/qmake -query.

      Delete
    2. Ho risolto. In Ubuntu 14.04 il compilatore GCC di default è il 4.8.3. L'output di qmake indica la mancanza della libreria libstdc++.so.6 . Ho risolto installando GCC 4.9 seguendo un commento al post

      http://stackoverflow.com/questions/20357033/how-to-fix-program-name-usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxx

      prima ho aggiunto la 4.8 alle alternative di GCC con

      sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

      poi ho installato la 4.9 e aggiunto anche essa alle alternative

      udo add-apt-repository ppa:ubuntu-toolchain-r/test
      sudo apt-get update
      sudo apt-get install gcc-4.9 g++-4.9
      sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

      selezionando la 4.9 da

      sudo update-alternatives --config gcc

      ho risolto il problema.

      Grazie infinite
      Samuele Schiavi

      Delete
  11. Hi Luca,
    It make me really excited that I have succeeded to render 1080p video using the binary.
    Now I want to creat my own application, but the qmake in Qt-rasp2-5.7.0 is x86 vision. So I can not just add the qt vision to qt creator. What should I do? Mount the raspbian and cross-compile the qt?

    ReplyDelete
    Replies
    1. I'm not sure what you mean. You need to add qmake to your Qt Creator installation on your development machine, which must be a x86_64. Then follow regular Qt manuals.

      Delete
    2. Thanks for your reply.
      Because I follow the cross-compile guide and build the qt on the environment of raspberry. Thus, my qmake is a file of arm. I will try to follow your advice. Thanks again!

      Delete
    3. BTW, I use arm-linux-gnueabihf-g++ as compiler before, this is why it need a qmake of arm arch. Which compiler should I use if I use your qmake?

      Delete
    4. https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64

      Delete
    5. Hi luca,
      I mount rpi sysroot on /opt/rpi/sysroot. And it works. But when I make my project, it shows the error that libQt5Core.so need libicui18n.so.55, libicuuc.so.55 and libicudata.so.55. I find them in qtdeps, it seems that when I mount rpi sysroot on my development machine, libQt5Core can't find the lib. What should I do?

      Delete
    6. Hi luca,
      I copy all lib file in qtdeps to /sysroot/usr/lib/arm-linux-gnueabihf and now I can render 1080p video in my own app! Thanks for all your patient reply!

      Delete
  12. Hi, I confirm that the mysql plugin works OK, just need to install mysql_client to work properly.
    A million thanks!!!!!

    ReplyDelete