Nov 12, 2013

Binary packages for Webcamoid 5.0.0b2

Many people asked me for releasing precompiled packages for their distros and finally, here you can download the packages for the most common GNU/Linux distributions.
Arch 64
Arch 32
Debian 64
Debian 32
OpenSUSE 64
OpenSUSE 32
Ubuntu 64
Ubuntu 32

Notes

Arch users must enable the community repository.
Debian users must enable the Deb Multimedia repository.
OpenSUSE users must enable the Packman repository.
Ubuntu users must enable the restricted repository.

12 comments:

  1. i've built webcamoid from source (v5) and it insists on there being /usr/bin/lrelease-qt4 when my current Qt4 install has only /usr/bin/lrelease .. i fixed this with a symlink but why is this command name hardcoded instead of discovered?
    webcamoid is working fine with the webcam supplied with my Public Lab Desktop Spectrometry Kit ( http://www.publiclab.org/wiki/dsk ).
    i have a Creative Webcam Live!, too, but webcamoid crashes when i try to use it:
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/libthread_db.so.1".
    [New Thread 0xb214eb40 (LWP 2542)]

    Program received signal SIGFPE, Arithmetic exception.
    0xb337fdeb in ?? () from /usr/lib/libavutil.so.52

    the stack trace looks like this:
    (gdb) bt
    #0 0xb337fdeb in ?? () from /usr/lib/libavutil.so.52
    #1 0xb335e58c in av_rescale_rnd () from /usr/lib/libavutil.so.52
    #2 0xb335e66f in av_rescale_q () from /usr/lib/libavutil.so.52
    #3 0xb464480b in ?? () from /usr/lib/libavdevice.so.55
    #4 0xb44ca867 in ?? () from /usr/lib/libavformat.so.55
    #5 0xb44cd28e in ?? () from /usr/lib/libavformat.so.55
    #6 0xb44d1015 in avformat_find_stream_info () from /usr/lib/libavformat.so.55
    #7 0xb4687bac in MultiSrcElement::init() () from /usr/lib/Qb/libMultiSrc.so
    #8 0xb7f9d42a in QbElement::setState(QbElement::ElementState) () from /usr/lib/libQb.so.5
    #9 0xb468663a in MultiSrcElement::setState(QbElement::ElementState) () from /usr/lib/Qb/libMultiSrc.so
    #10 0xb4686d89 in MultiSrcElement::defaultStream(QString) () from /usr/lib/Qb/libMultiSrc.so
    #11 0xb468c7cf in ?? () from /usr/lib/Qb/libMultiSrc.so
    #12 0xb730628d in QMetaMethod::invoke (this=0xbfffd824, object=0x819b548, connectionType=Qt::DirectConnection,
    returnValue=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...)
    at kernel/qmetaobject.cpp:1664
    #13 0xb7308909 in QMetaObject::invokeMethod (obj=0x819b548, member=0xb7f823f1 "defaultStream", type=
    Qt::DirectConnection, ret=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=
    ..., val9=...) at kernel/qmetaobject.cpp:1179
    #14 0xb7f7032b in MediaTools::setDevice(QString) () from /usr/lib/libWebcamoid.so.5
    #15 0xb7f6685f in MainWidget::on_btnStartStop_clicked() () from /usr/lib/libWebcamoid.so.5
    #16 0xb7f7f494 in ?? () from /usr/lib/libWebcamoid.so.5
    #17 0xb7f7f5ac in MainWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libWebcamoid.so.5
    #18 0xb7304535 in metacall (argv=0xbfffdef8, idx=42, cl=QMetaObject::InvokeMetaMethod, object=0x0)
    at kernel/qmetaobject.cpp:245
    .
    .
    .

    ReplyDelete
    Replies
    1. Hi, lrelease path can be changed with the QMAKE_LRELEASE variable, see here.
      About the SIGFPE error, seems to be an error inside your FFmpeg libraries and not in Webcamoid. Anyway, let's assume that /dev/video0 is your non working webcam, does this command works for you?:

      ffplay -f video4linux2 -framerate 15 /dev/video0

      Delete
    2. funny thing, i am using suse here.

      $ cat /etc/os-release
      NAME=openSUSE
      VERSION="12.3 (Dartmouth)"
      VERSION_ID="12.3"
      PRETTY_NAME="openSUSE 12.3 (Dartmouth) (i586)"
      ID=opensuse
      ANSI_COLOR="0;32"
      CPE_NAME="cpe:/o:opensuse:opensuse:12.3"

      Delete
  2. the ffplay test works fine with the webcam that crashes webcamoid.

    ReplyDelete
    Replies
    1. $ ffplay -f video4linux2 -framerate 15 /dev/video0
      ffplay version 2.1.2 Copyright (c) 2003-2013 the FFmpeg developers
      built on Jan 13 2014 21:00:22 with gcc 4.7 (SUSE Linux)
      configuration: --shlibdir=/usr/lib --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib --enable-shared --disable-static --enable-debug --disable-stripping --extra-cflags='-fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gsm' --enable-gpl --enable-x11grab --enable-version3 --enable-pthreads --enable-avfilter --enable-libpulse --enable-libvpx --enable-libopus --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libxvid --enable-libx264 --enable-libschroedinger --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-postproc --enable-libdc1394 --enable-librtmp --enable-libfreetype --enable-avresample --enable-libtwolame --enable-libvo-aacenc --enable-gnutls
      libavutil 52. 48.101 / 52. 48.101
      libavcodec 55. 39.101 / 55. 39.101
      libavformat 55. 19.104 / 55. 19.104
      libavdevice 55. 5.100 / 55. 5.100
      libavfilter 3. 90.100 / 3. 90.100
      libavresample 1. 1. 0 / 1. 1. 0
      libswscale 2. 5.101 / 2. 5.101
      libswresample 0. 17.104 / 0. 17.104
      libpostproc 52. 3.100 / 52. 3.100
      [video4linux2,v4l2 @ 0xaf0006c0] The driver does not allow to change time per frame
      Input #0, video4linux2,v4l2, from '/dev/video0':B sq= 0B f=0/0
      Duration: N/A, start: 132583.744762, bitrate: N/A
      Stream #0:0: Video: mjpeg, yuvj422p(pc), 640x480, -2147483 kb/s, 31.25 tbr, 1000k tbn, 1000k tbc
      [swscaler @ 0xb2da6f80] deprecated pixel format used, make sure you did set range correctly
      132591.07 M-V: -0.005 fd= 0 aq= 0KB vq= 268KB sq= 0B f=0/0

      (.. no errors and moving video ..)

      Delete
    2. mmm... that's odd, Webcamoid shares much of its code with ffplay and ffmpeg, so this error must not happen. since the error is inside the avformat_find_stream_info() function I have no idea how to solve this right now.

      Delete
    3. (stating the obvious) perhaps a wrong or missing parameter in webcamoid being passed along?

      Delete
    4. These links relates this problem with pulseaudio, so maybe changing these lines to:

      "AudioOutput objectName='audioOutput' audioSystem='alsa',"
      "AudioInput objectName='mic' audioSystem='alsa' !"

      could solve the problem.

      Delete
    5. [made changes to mediatools.cpp]

      Program received signal SIGFPE, Arithmetic exception.
      0xb337fdeb in ?? () from /usr/lib/libavutil.so.52
      (gdb) bt
      #0 0xb337fdeb in ?? () from /usr/lib/libavutil.so.52
      #1 0xb335e58c in av_rescale_rnd () from /usr/lib/libavutil.so.52
      #2 0xb335e66f in av_rescale_q () from /usr/lib/libavutil.so.52
      #3 0xb464480b in ?? () from /usr/lib/libavdevice.so.55
      #4 0xb44ca867 in ?? () from /usr/lib/libavformat.so.55
      #5 0xb44cd28e in ?? () from /usr/lib/libavformat.so.55
      #6 0xb44d1015 in avformat_find_stream_info () from /usr/lib/libavformat.so.55
      #7 0xb4687bac in MultiSrcElement::init() () from /usr/lib/Qb/libMultiSrc.so
      #8 0xb7f9d42a in QbElement::setState(QbElement::ElementState) () from /usr/lib/libQb.so.5
      #9 0xb468663a in MultiSrcElement::setState(QbElement::ElementState) () from /usr/lib/Qb/libMultiSrc.so
      #10 0xb4686d89 in MultiSrcElement::defaultStream(QString) () from /usr/lib/Qb/libMultiSrc.so
      #11 0xb468c7cf in ?? () from /usr/lib/Qb/libMultiSrc.so
      #12 0xb730628d in QMetaMethod::invoke (this=0xbfffd824, object=0x819b5d0, connectionType=Qt::DirectConnection,
      returnValue=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...)
      at kernel/qmetaobject.cpp:1664
      #13 0xb7308909 in QMetaObject::invokeMethod (obj=0x819b5d0, member=0xb7f823f1 "defaultStream", type=
      Qt::DirectConnection, ret=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=
      ..., val9=...) at kernel/qmetaobject.cpp:1179
      #14 0xb7f7032b in MediaTools::setDevice(QString) () from /usr/lib/libWebcamoid.so.5
      #15 0xb7f6685f in MainWidget::on_btnStartStop_clicked() () from /usr/lib/libWebcamoid.so.5
      .
      .
      .

      Delete
    6. Ok, let's take a more drastic approach, change this line to:

      /*if (avformat_find_stream_info(this->m_inputContext.data(), NULL) < 0)
      {
      this->m_inputContext.clear();
      emit this->error(QString("Cann't retrieve information from \"%1\" stream.").arg(this->location()));

      return false;
      }*/

      and recompile.

      Delete
    7. stanza commented out..

      Input #0, video4linux2,v4l2, from '/dev/video0':
      Duration: N/A, bitrate: N/A
      Stream #0:0: Video: mjpeg, 640x480, -2147483 kb/s, 1000k tbn
      Input #0, video4linux2,v4l2, from '/dev/video0':
      Duration: N/A, bitrate: N/A
      Stream #0:0: Video: mjpeg, 640x480, -2147483 kb/s, 1000k tbn
      Input #0, video4linux2,v4l2, from '/dev/video0':
      Duration: N/A, bitrate: N/A
      Stream #0:0: Video: mjpeg, 640x480, -2147483 kb/s, 1000k tbn
      [alsa @ 0x82d5000] cannot open audio device hw:0 (Device or resource busy)
      [alsa @ 0x82cda80] cannot open audio device hw:0 (Device or resource busy)
      [alsa @ 0x82cda80] cannot open audio device hw:0 (Device or resource busy)
      Input #0, video4linux2,v4l2, from '/dev/video0':
      Duration: N/A, bitrate: N/A
      Stream #0:0: Video: mjpeg, 640x480, -2147483 kb/s, 1000k tbn

      Program received signal SIGFPE, Arithmetic exception.
      0xb337fdeb in ?? () from /usr/lib/libavutil.so.52
      (gdb) bt
      #0 0xb337fdeb in ?? () from /usr/lib/libavutil.so.52
      #1 0xb335e58c in av_rescale_rnd () from /usr/lib/libavutil.so.52
      #2 0xb335e66f in av_rescale_q () from /usr/lib/libavutil.so.52
      #3 0xb464480b in ?? () from /usr/lib/libavdevice.so.55
      #4 0xb44ca867 in ?? () from /usr/lib/libavformat.so.55
      #5 0xb44cd28e in ?? () from /usr/lib/libavformat.so.55
      #6 0xb44cdf0a in av_read_frame () from /usr/lib/libavformat.so.55
      #7 0xb4689431 in MultiSrcElement::readPackets() () from /usr/lib/Qb/libMultiSrc.so
      #8 0xb468c60c in ?? () from /usr/lib/Qb/libMultiSrc.so
      #9 0xb7315c22 in QMetaObject::activate (sender=0x819b778, m=0xb74694b8 , local_signal_index=
      0, argv=0x0) at kernel/qobject.cpp:3548
      #10 0xb73673a5 in QTimer::timeout (this=0x819b778) at .moc/release-shared/moc_qtimer.cpp:148
      #11 0xb731cd16 in QTimer::timerEvent (this=0x819b778, e=0xbfffea70) at kernel/qtimer.cpp:280
      #12 0xb73139f4 in QObject::event (this=0x819b778, e=0xbfffea70) at kernel/qobject.cpp:1165
      #13 0xb75b9bac in QApplicationPrivate::notify_helper (this=0x8050980, receiver=0x819b778, e=0xbfffea70)
      at kernel/qapplication.cpp:4562
      #14 0xb75be5cc in QApplication::notify (this=0xbfffea70, receiver=0x819b778, e=0xbfffea70)
      at kernel/qapplication.cpp:3944
      #15 0xb72fd8ce in QCoreApplication::notifyInternal (this=0xbfffed48, receiver=0x819b778, event=0xbfffea70)
      at kernel/qcoreapplication.cpp:946
      #16 0xb7332247 in sendEvent (event=, receiver=) at kernel/qcoreapplication.h:231
      #17 QTimerInfoList::activateTimers (this=0x8053034) at kernel/qeventdispatcher_unix.cpp:637
      #18 0xb732f218 in timerSourceDispatch (source=0x8053000) at kernel/qeventdispatcher_glib.cpp:186
      #19 timerSourceDispatch (source=0x8053000) at kernel/qeventdispatcher_glib.cpp:180
      #20 0xb66828b3 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
      #21 0xb6682c50 in ?? () from /usr/lib/libglib-2.0.so.0
      #22 0xb6682d31 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
      #23 0xb732f891 in QEventDispatcherGlib::processEvents (this=0x8050090, flags=...) at kernel/qeventdispatcher_glib.cpp:424
      #24 0xb766b4aa in QGuiEventDispatcherGlib::processEvents (this=0x8050090, flags=...)
      at kernel/qguieventdispatcher_glib.cpp:204
      #25 0xb72fc39c in QEventLoop::processEvents (this=this@entry=0xbfffecd8, flags=...) at kernel/qeventloop.cpp:149
      #26 0xb72fc691 in QEventLoop::exec (this=0xbfffecd8, flags=...) at kernel/qeventloop.cpp:204
      #27 0xb730194a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
      #28 0xb75b7a24 in QApplication::exec () at kernel/qapplication.cpp:3823
      #29 0x08048e4f in main ()

      Delete
    8. These lines keep's my attention:

      Stream #0:0: Video: mjpeg, 640x480, -2147483 kb/s, 1000k tbn
      [alsa @ 0x82d5000] cannot open audio device hw:0 (Device or resource busy)

      However, this is extending too much can you fill a report with all back traces and relevant information in the issues page?

      Delete