Menu

HOWTO: Install the latest IDJC Python 3 master on Linux Mint 20.1

2021-01-29
2023-09-22
1 2 3 4 > >> (Page 1 of 4)
  • Brian Millham

    Brian Millham - 2021-01-29

    EDIT: The official IDJC installation instructions now work for LM 20.1. You should follow those instructions.

    I installed the lastest master on a Linux Mint 20.1 system that has never had IDJC installed on it before. Here's the details (This should also work on Ubuntu and Mint 20, but untested).

    First, install dependencies. I chose to use jackd2 instead of jackd:

    sudo apt install build-essential libc6-dev libglib2.0-dev jackd2 libjack-jackd2-dev libvorbis-dev libogg-dev libswscale-dev libsamplerate0-dev libsndfile1-dev python-gi-dev libmpg123-dev libavcodec-dev libavformat-dev libtwolame-dev libmp3lame-dev libflac-dev python3-mutagen libspeex-dev libswscale-dev
    

    EDIT 5/17/2021:
    The makefile expects that python == python3. On a new system this will not be true. python no longer exists by default. To fix that:

    sudo apt install python-is-python3
    

    Since we will be using git, we also need:

    sudo apt install git-core autoconf libtool-bin autopoint imagemagick
    

    Next, get the latest version (2.4.4) of libshout-idjc. Download it from https://sourceforge.net/projects/libshoutidjc.idjc.p/files/latest/download

    Important note, I've updated the instructions! 2.4.5 has bugs, so libshout-idjc was rolled back to 2.4.4

    Extract and build it:

    tar xzvf ~/Downloads/libshout-idjc-2.4.4.tar.gz
    cd libshout-idjc-2.4.4
    ./configure CFLAGS="-O2" --prefix=/usr
    make
    sudo make install
    sudo ldconfig
    cd ..
    

    If you don't get any errors, now get the latest master via git

    EDIT 5/17/2021:
    The previous instructions did not have the cd .. That was causing ./bootstrap to fail. idjc cannot be checked out into the libshout-idjc directory!!!!!

    git clone git://idjc.git.sourceforge.net/gitroot/idjc/idjc
    

    and build it

    cd idjc
    ./bootstrap
    ./configure CFLAGS="-O2" --prefix=/usr
    make
    sudo make install
    

    If all goes well, you can now setup your jack server the normal way and test!

    Now for some optional extras. First I find that having qjackctl will make your life easier. Also, if you want to add effects like reverb to the mic, compression to the music that jack-rack is great.

    sudo apt install qjackctl jack-rack lsp-plugins-jack
    

    (leave off jack-rack and lsp-plugins-jack if you don't plan on using effects)

    If you use a Prokyon/Ampache database, you will need to install some extra packages/modules. You have 2 choices, the older MySQLdb module, or the newer python3-pymysql package. They are very similar, but the python3-pymysql package does not support compression on the database connection. This probably won't matter unless you are accessing the database over a slow connection. But... for now python3-pymysql will not work with IDJC unless you apply the patch that I submitted (or until it gets merged into master) The patch has been merged into master

    For python3-pymysql

    sudo apt install python3-pymysql
    

    For MySQLdb. Pick the correct package depending on your database.

    # if using mariadb
    sudo apt install libmariadb-dev or 
    # or if using mysql
    sudo apt install libmysqlclient-dev
    pip3 install mysqlclient
    

    Fire up IDJC and you should now be able to connect to your database.

    Finally, if you want IDJC to be able to talk to an IRC server

    sudo apt install python3-irc
    

    And that's it! You should be up and running with IDJC on Python 3. Please post any comments so I can improve this HOWTO!

    EDIT 5/17/2021
    Moonbase had already commented on the libswscale and python3 issue (in the next post). I had noticed that, but thought it was an anomaly on his system. I then forgot about it... I should have updated these instructions way back then.... Thanks to Moonbase for pointing those issues out!

     

    Last edit: Brian Millham 2021-05-17
    • Clément Radio

      Clément Radio - 2021-12-20

      Thank you for that. Mint 20.2 here. Your method worked unlike the official build one where I was stuck at the last ./configure with a conditional thing to "define", and I could therefore not make the "make" command despite having the the Makefile files.

      Now my problem is, after running IDJC 0.9.2 and "logging in" a profile, nothing opens and I get a system notification:
      "IDJC Failed to open /usr/lib/idjc/idjc.so Cannot continue"
      Any clue what I could do to solve that?

       
      • Stephen Fairchild

        What is the output of
        ldd -r /usr/lib/idjc/idjc.so
        This usually reveals the problem.

         
        • Clément Radio

          Clément Radio - 2021-12-21

          Here is the output:

          linux-vdso.so.1 (0x00007fff3adcf000)
              libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fe39df8a000)
              libavcodec.so.58 => /lib/x86_64-linux-gnu/libavcodec.so.58 (0x00007fe39c9c9000)
              libavformat.so.58 => /lib/x86_64-linux-gnu/libavformat.so.58 (0x00007fe39c751000)
              libavutil.so.56 => /lib/x86_64-linux-gnu/libavutil.so.56 (0x00007fe39c628000)
              libFLAC.so.8 => /lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007fe39c5ea000)
              libjack.so.0 => /lib/x86_64-linux-gnu/libjack.so.0 (0x00007fe39c59e000)
              libmpg123.so.0 => /lib/x86_64-linux-gnu/libmpg123.so.0 (0x00007fe39c53c000)
              libmp3lame.so.0 => /lib/x86_64-linux-gnu/libmp3lame.so.0 (0x00007fe39c4c4000)
              libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe39c375000)
              libsamplerate.so.0 => /lib/x86_64-linux-gnu/libsamplerate.so.0 (0x00007fe39c009000)
              libshout-idjc.so.3 => /lib/libshout-idjc.so.3 (0x00007fe39bfec000)
              libsndfile.so.1 => /lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007fe39bf6e000)
              libspeex.so.1 => /lib/x86_64-linux-gnu/libspeex.so.1 (0x00007fe39bf4e000)
              libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007fe39bea3000)
              libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007fe39be75000)
              libtwolame.so.0 => /lib/x86_64-linux-gnu/libtwolame.so.0 (0x00007fe39be4f000)
              libswresample.so.3 => /lib/x86_64-linux-gnu/libswresample.so.3 (0x00007fe39be2d000)
              libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x00007fe39be20000)
              libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe39bdfb000)
              libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe39bc09000)
              libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fe39bb96000)
              libvpx.so.6 => /lib/x86_64-linux-gnu/libvpx.so.6 (0x00007fe39b95e000)
              libwebpmux.so.3 => /lib/x86_64-linux-gnu/libwebpmux.so.3 (0x00007fe39b952000)
              libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007fe39b8e8000)
              liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fe39b8bd000)
              libaribb24.so.0 => /lib/x86_64-linux-gnu/libaribb24.so.0 (0x00007fe39b6ab000)
              libopencore-amrwb.so.0 => /lib/x86_64-linux-gnu/libopencore-amrwb.so.0 (0x00007fe39b695000)
              librsvg-2.so.2 => /lib/x86_64-linux-gnu/librsvg-2.so.2 (0x00007fe39ad6a000)
              libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fe39ad0a000)
              libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007fe39abe7000)
              libzvbi.so.0 => /lib/x86_64-linux-gnu/libzvbi.so.0 (0x00007fe39ab56000)
              libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe39ab3a000)
              libsnappy.so.1 => /lib/x86_64-linux-gnu/libsnappy.so.1 (0x00007fe39ab2f000)
              libaom.so.0 => /lib/x86_64-linux-gnu/libaom.so.0 (0x00007fe39a691000)
              libcodec2.so.0.9 => /lib/x86_64-linux-gnu/libcodec2.so.0.9 (0x00007fe3998ad000)
              libgsm.so.1 => /lib/x86_64-linux-gnu/libgsm.so.1 (0x00007fe39989e000)
              libopencore-amrnb.so.0 => /lib/x86_64-linux-gnu/libopencore-amrnb.so.0 (0x00007fe399871000)
              libopenjp2.so.7 => /lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007fe39981b000)
              libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x00007fe3997bc000)
              libshine.so.3 => /lib/x86_64-linux-gnu/libshine.so.3 (0x00007fe3995b1000)
              libtheoraenc.so.1 => /lib/x86_64-linux-gnu/libtheoraenc.so.1 (0x00007fe399574000)
              libtheoradec.so.1 => /lib/x86_64-linux-gnu/libtheoradec.so.1 (0x00007fe399554000)
              libvo-amrwbenc.so.0 => /lib/x86_64-linux-gnu/libvo-amrwbenc.so.0 (0x00007fe399536000)
              libwavpack.so.1 => /lib/x86_64-linux-gnu/libwavpack.so.1 (0x00007fe39950a000)
              libx264.so.155 => /lib/x86_64-linux-gnu/libx264.so.155 (0x00007fe39924c000)
              libx265.so.179 => /lib/x86_64-linux-gnu/libx265.so.179 (0x00007fe3982de000)
              libxvidcore.so.4 => /lib/x86_64-linux-gnu/libxvidcore.so.4 (0x00007fe3981cb000)
              libva.so.2 => /lib/x86_64-linux-gnu/libva.so.2 (0x00007fe3981a2000)
              libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe39819a000)
              libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fe397fe0000)
              libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007fe397fcd000)
              libgme.so.0 => /lib/x86_64-linux-gnu/libgme.so.0 (0x00007fe397f80000)
              libopenmpt.so.0 => /lib/x86_64-linux-gnu/libopenmpt.so.0 (0x00007fe397d93000)
              libchromaprint.so.1 => /lib/x86_64-linux-gnu/libchromaprint.so.1 (0x00007fe397d7b000)
              libbluray.so.2 => /lib/x86_64-linux-gnu/libbluray.so.2 (0x00007fe397d2a000)
              libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fe397b54000)
              libssh-gcrypt.so.4 => /lib/x86_64-linux-gnu/libssh-gcrypt.so.4 (0x00007fe397ac8000)
              libva-drm.so.2 => /lib/x86_64-linux-gnu/libva-drm.so.2 (0x00007fe397ac3000)
              libva-x11.so.2 => /lib/x86_64-linux-gnu/libva-x11.so.2 (0x00007fe397abb000)
              libvdpau.so.1 => /lib/x86_64-linux-gnu/libvdpau.so.1 (0x00007fe397ab3000)
              libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fe397976000)
              libdrm.so.2 => /lib/x86_64-linux-gnu/libdrm.so.2 (0x00007fe397962000)
              libOpenCL.so.1 => /lib/x86_64-linux-gnu/libOpenCL.so.1 (0x00007fe397757000)
              librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe39774c000)
              libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe39756a000)
              libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe39754d000)
              /lib64/ld-linux-x86-64.so.2 (0x00007fe39e114000)
              libsoxr.so.0 => /lib/x86_64-linux-gnu/libsoxr.so.0 (0x00007fe3974e2000)
              libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fe3974aa000)
              libcairo-gobject.so.2 => /lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007fe39749e000)
              libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007fe397476000)
              libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007fe397293000)
              libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007fe397281000)
              libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007fe397232000)
              libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007fe397226000)
              libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007fe39717f000)
              libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fe397138000)
              libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fe397077000)
              libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007fe397072000)
              libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fe397048000)
              libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007fe397039000)
              libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fe396e2f000)
              libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007fe396e1a000)
              libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007fe396e0b000)
              libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007fe396c25000)
              libvorbisfile.so.3 => /lib/x86_64-linux-gnu/libvorbisfile.so.3 (0x00007fe396c1a000)
              libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fe396ae4000)
              libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fe396ac1000)
              libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fe39693f000)
              libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fe396929000)
              libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007fe3968ef000)
              libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007fe3968b8000)
              libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fe396834000)
              libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fe396714000)
              libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fe3966f1000)
              libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fe3966a4000)
              libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fe39669c000)
              libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fe39665a000)
              libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fe396652000)
              libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007fe3965f2000)
              libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fe3965c7000)
              libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fe3965ab000)
              libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007fe396592000)
              libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007fe396573000)
              libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007fe396568000)
              libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fe396463000)
              libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fe396435000)
              libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fe39642c000)
              libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fe396424000)
              libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fe39641c000)
              libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007fe39495b000)
              libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fe39487e000)
              libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fe39484d000)
              libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fe394844000)
              libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fe394835000)
              libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007fe3947de000)
              libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fe39474e000)
              libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007fe394744000)
              libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fe394715000)
              libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fe3946fb000)
              libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fe3946f4000)
          undefined symbol: mpg123_param2 (/usr/lib/idjc/idjc.so)
          
           

          Last edit: Clément Radio 2021-12-21
          • Stephen Fairchild

            I just pushed a fix to the git repository. Hopefully that solves the problem.

             
            • Clément Radio

              Clément Radio - 2021-12-23

              It worked, thank you.

               
            • Clément Radio

              Clément Radio - 2022-07-13

              This time tried on Debian 11 (LMDE 5) and got this after
              $ ~/Downloads/idjc-0.9.3$ ./configure CFLAGS="-O2" --prefix=/usr --libdir=/usr/lib64
              :

              checking for SHOUTIDJC... no
              configure: error: Package requirements (shout-idjc) were not met:
              
              No package 'shout-idjc' found
              
              Consider adjusting the PKG_CONFIG_PATH environment variable if you
              installed software in a non-standard prefix.
              
              Alternatively, you may set the environment variables SHOUTIDJC_CFLAGS
              and SHOUTIDJC_LIBS to avoid the need to call pkg-config.
              See the pkg-config man page for more details.
              

              Is it a package I couldn't get? There's a lot of packages that do not exist here in Debian. It's lighter, more stable, but there's no Ubuntu comfort.

               
              • Stephen Fairchild

                Scroll to the top of this page and you should see a link to the libshout-idjc sub-project.

                 
                • Clément Radio

                  Clément Radio - 2022-07-14

                  I downloaded and followed the instructions from https://idjc.sourceforge.io/install_build.html, I tried all the links to the libshout-idjc, still got the same issue in the terminal. Here it seems the problem is shout-idjc, that I weirdly don't have in libshout-idjc or something.

                   
  • Moonbase

    Moonbase - 2021-02-05

    Thanks for making this, Brian. I mainly followed the instructions on the website http://idjc.sourceforge.net/install_build.html and found they lack some needed libs etc. My current procedure is (for 0.9.1_development):

    • Set up build deps (for a fresh Linux Mint 20.1):
    sudo apt install build-essential libc6-dev libglib2.0-dev jackd2 libjack-jackd2-dev libvorbis-dev libsamplerate0-dev libsndfile1-dev python-gi-dev libmpg123-dev libavcodec-dev libavformat-dev libtwolame-dev libmp3lame-dev libflac-dev python3-mutagen libspeex-dev libswscale-dev libvorbis-dev libogg-dev
    

    Note libswscale-dev, libvorbis-dev and libogg-dev were missing from the original instructions.

    • Set up additional build deps:
    sudo apt install git-core autoconf libtool-bin autopoint imagemagick
    
    tar xzvf libshout-idjc-2.4.5.tar.gz
    cd libshout-idjc-2.4.5/
    ./configure CFLAGS="-O2" --prefix=/usr
    make
    sudo make install
    sudo ldconfig
    
    • Clone & build IDJC (development):
    git clone git://idjc.git.sourceforge.net/gitroot/idjc/idjc
    cd idjc/
    ./bootstrap
    ./configure CFLAGS="-O2" --prefix=/usr
    make
    sudo make install
    

    Important pitfalls

    • Package shout-idjc (or was it idjc-shout?) not found in make step:
      • Forgot ldconfig step above.
      • Accidentally used --libdir=/usr/lib64 on config line above.
    • python not found when doing make install:
      • System has only Python3, not Python2, and package python-is-python3 not installed.
      • Automake-generated file py-compile will set PYTHON=python and fail.
      • Quick & dirty fix: Near the beginning of py-compile, find:
    if [ -z "$PYTHON" ]; then
      PYTHON=python
    fi
    

    and change to:

    if [ -z "$PYTHON" ]; then
      PYTHON=python3
    fi
    

    More pitfalls

    • Looks like the current dev master can’t successfully stream to Shoutcast 1.9.8 (Linux) masters using libshout-idjc 2.4.5. I sometimes succeed when suppressing metadata. Don’t know if this is a problem with IDJC or libshout-idjc:
    encoder_start: initiating resampler(s)
    encoder_start: successfully started the encoder
    calling shout_open: remaining tries=10
    calling shout_open: remaining tries=9
    streamer_connect: established connection to the server
    streamer_main: connected to server - awaiting serial 2050382752
    strange error flushing buffer ... 
    live_mp3_encoder_main: flushing 0 bytes
    streamer_main: shout_get_error reports -13 Please retry current operation.
    streamer_main: packet is metadata: Harlis - B M W
    streamer_main: failed writing metadata to stream, shout_get_error reports: Please retry current operation.
    streamer_main: disconencting from server
    encoder_unregister_client called
    encoder_unregister_client finished
    streamer_main: disconnection complete
    streamer_disconnect: function called while not streaming
    command failed for command: server_disconnect
    encoder_plugin_terminate: waiting for encoder to finish
    live_mp3_encoder_main: flushing 321 bytes
    live_mp3_encoder_main: performing cleanup
    live_mp3_encoder_main: finished cleanup
    encoder_stop: encoder is stopped
    

    Retry popups follow, but never stop—the counter stays at "1"

    Older IDJC versions (0.8.16 & 0.8.19_development; on Ubuntu 14.04, Linux Mint 17.3 & 19.3) can stream to the same server and port just fine. I reckon something got messed up with all the new connection settings, or does libshout-idjc now only work with Shoutcast 2.x servers?

     
    • Brian Millham

      Brian Millham - 2021-02-06

      System has only Python3, not Python2, and package python-is-python3 not installed.
      I'm surprised that python didn't work. Did you try this:

      update-alternatives --install /usr/bin/python python /usr/bin/python3 1

      I will update the missing dependencies that you pointed out. I don't know how I missed libogg-dev (libvorbis-dev is in my instructions). I don't know when I installed it, but I found that libswscale-dev was already on my system, and I had installed it in the past. I have no idea why.... Maybe when I installed MakeMKV (it's mainly a file server and DVD/BD/UHD ripper system)

       
  • Brian Millham

    Brian Millham - 2021-02-06

    Looks like the current dev master can’t successfully stream to Shoutcast 1.9.8 (Linux) masters using libshout-idjc 2.4.5.
    Try setting the Metadata to send Latin-1 instead of UTF-8. That should fix the Shoutcast problem (why are you using such an outdated Shoutcast? Just switch to Icecast). If it doesn't fix the problem, let me know and I'll verify that I didn't miss something. I thought that I made sure it was sending Latin-1, but I may have missed something.

     
    • Moonbase

      Moonbase - 2021-02-06

      My combination here doesn’t work with Latin1 or UTF-8, and with "Suppress" only sometimes. My standard setting for Linux DNAS 1.9.8 is Latin1 (plus Latin-1 setting in "Extra Shoutcast"). Problem is, most German stream providers still mainly offer Shoutcast 1.9.8, and stations don’t switch. (I’m only a guest show host on that station, it is not mine.) So I think 1.9.8 support must stay for some more years. Sigh.

      Icecast (which I use on my servers) did also not work, on a real quick try, so I assume something must be broken in libshout-idjc 2.4.5 and/or IDJC 0.9.1_development. But this was only a quick shot using a local Icecast 2.3.3.

       
      • Brian Millham

        Brian Millham - 2021-02-06

        I've tested against Icecast 2.4.4 and it works fine, so I'm not sure that the issue is. What parameters are you using for the stream?

        It's amazing that the providers are still using such an outdated version of Shoutcast.

         
      • Brian Millham

        Brian Millham - 2021-02-07

        Moonbase, I'm looking into this problem, and have found where I can sometimes not connect to Icecast, or get disconnects when metadata is being sent. If you would, can you test something for me? Try with the stream format as Xiph/Ogg and see if that fixes the problem with Icecast (won't work for Shoutcast).

         
      • Brian Millham

        Brian Millham - 2021-02-10

        I found the problem I downgraded to libshout-idjc 2.4.2 and can stream using MPG3, including Latin for the Metadata. When I first started the conversion, I was using 2.4.2 and later switched to 2.4.5. At that time I was using Vorbis instead of MPG3 for testing, so didn't notice the problem with 2.4.5. It's not hard to go back to 2.4.2, but you do have to edit the configure.ac file. I can supply a patch if you'd like. Also, the latest push requires gettext 0.21 and that's not available yet in the Mint/Ubuntu repositories. I again just hacked configure.ac to get around that. I will file a bug report.

         
        • Moonbase

          Moonbase - 2021-02-10

          I wonder. There must have been a reason for libshout-idjc 2.4.5 …

          Couldn’t ad hoc send Xiph/Ogg to my Icecast, but that might be a problem of my setup (MP3-based, partly Shoutcast-compatible, and several fallbacks and internal relays), which was originally a test instance for my real servers (which I discontinued) that used liquidsoap as main input (for auto-DJing, smooth transitions, and program planning).

          Anything else I could easily help testing (my old studio system still runs Ubuntu Studio 14.04 but I might install Icecast on the Linux Mint 20.1 machine for testing)?

          My workflow is mainly MP3 streaming (song library is FLAC+MP3), and about 10 colleagues I have to support are streaming to Shoutcast 1.9.8/Linux stations, using these settings:
          Connection: Shoutcast Master
          Format: MPEG; MP3; V1; 44100 Hz; 128 kbps; Joint Stereo; Quality 0 Most; Metadata Latin1; Resample Quality Medium; Pregain 0dB.
          Extra Shoutcast: [x] use ISO-8859-1 encoding for fixed metadata
          Troubleshooting: [x] If connection breaks, reconnect; 5,5,5,5,5,5,5,5,5,5,5,5; [ ] Repeat [x] Quiet; [x] Discard audio data for as long as needed.

           
          • Christian Hennecke

            I can confirm the problem with Shoutcast 2 beta 1. No connection possible. If I choose to suppress metadata, the connection succeeds but people can't connect to the server.

             
          • Brian Millham

            Brian Millham - 2021-02-11

            Are you willing to try downgrading libshout-idjc? All you need to do is install the old version as normal (don't forget to do the ldconfig). I assume you are using git, so do a git pull to make sure everything is up to date.
            Next, grab the patch I've attached. It just makes 2 small changes to configure.ac. Apply the patch:

            git apply path/to/idjc-configure.patch
            

            And then build IDJC as normal. You will need to do the bootstrap and configure. With the patch you can build IDJC using either libshout-idjc version. I don't know what problems that could happen, but I've tested with icecast and it works fine. MP3 and Latin1 don't cause the stream to disconnect. This will help confirm if it really is a problem with the new libshout-idjc.

             
            • Brian Millham

              Brian Millham - 2021-02-11

              I tested on my other system and switching to libshout-idjc 2.4.2 fixes the problem, at least when using Icecast. I'd test against a Shoutcast 1.9.8 server, but I can't seem to find legit download of Shoutcast for linux. If someone has a tar.gz I'd be happy to set it up on my local server for further testing.

               
              • Moonbase

                Moonbase - 2021-02-14

                Couldn’t find sc_serv 1.9.8 on winamp.com anymore but it seems LCHost keep a copy at http://mirror.lchost.net/download.nullsoft.com/shoutcast/tools/sc_serv_1.9.8_Linux.tar.gz. Found this in an old CentOS 6 installation instruction, and it seems to run on Linux Mint 20.1.

                I’ll chime in the next days with a libshout-idjc 2.4.2/2.4.4 test.

                 

                Last edit: Moonbase 2021-02-14
                • Brian Millham

                  Brian Millham - 2021-02-15

                  Thanks for that! I found that libshout-idjc 2.4.4 also has metadata issues with 1.9.8, but when suppressing metadata I can connect. I next reverted IDJC to using libshout-idjc 2.4.2 and sending metadata (latin1) works. So my conclusion is that they broke something in libshout between 2.4.2 and 2.4.4. Interesting side note, when connecting using 2.4.4 I always see a password error. With 2.4.2 I do not see that error (in the shoutcast server log)

                   
                  • Moonbase

                    Moonbase - 2021-02-15

                    Hm. Seems several people are working on libshout-idjc now. I wonder why they apparently removed 2.4.5 again. (My original tests were with 2.4.5.) So my next test will be with 2.4.2 I guess.

                     
          • Brian Millham

            Brian Millham - 2021-02-14

            libshout-idjc 2.4.4 is now available. I've updated my instructions. I tested with MP3V1 (latin-1 encoding) and it works fine. You will need to get the latest git IDJC, and build it after installing libshout-idjc-2.4.4.

             
            • Christian Hennecke

              I can confirm that IDJC 0.9.1 works with libshout-idjc 2.4.4 while connecting to Shoutcast 2 beta 1. AAC and metadata enabled. Great work guys!

               
1 2 3 4 > >> (Page 1 of 4)

Log in to post a comment.