0

I would like to use the dashsink plugin.

Since it was not part of the gstreamer 1.6 bad plugins I installed via apt install gstreamer1.0-plugins-bad, I tried building from scratch to get a newer version.

The build works but the dashsink is still not available. Maybe I missed to install some dependencies that are necessary for that particular plugin?

Any pointers on how to install the plugin would be very welcome.

Following are the plugins that meson outputs as built:

gst-plugins-bad 1.19.0.1

    Plugins: accurip, adpcmdec, adpcmenc, aiff, asfmux, audiobuffersplit,
             audiofxbad, audiomixmatrix, audiolatency, audiovisualizers,
             autoconvert, bayer, camerabin, coloreffects, debugutilsbad,
             dvbsubenc, dvbsuboverlay, dvdspu, faceoverlay, festival,
             fieldanalysis, freeverb, frei0r, gaudieffects, gdp,
             geometrictransform, id3tag, inter, interlace, ivfparse, ivtc,
             jp2kdecimator, jpegformat, rfbsrc, midi, mpegpsdemux, mpegpsmux,
             mpegtsdemux, mpegtsmux, mxf, netsim, rtponvif, pcapparse, pnm,
             proxy, legacyrawparse, removesilence, rist, rtmp2, rtpmanagerbad,
             sdpelem, segmentclip, siren, smooth, speed, subenc, switchbin,
             timecode, transcode, videofiltersbad, videoframe_audiolevel,
             videoparsersbad, videosignal, vmnc, y4mdec, decklink, dvb,
             fbdevsink, ipcpipeline, kms, nvcodec, shm, uvch264, v4l2codecs,
             assrender, chromaprint, closedcaption, colormanagement, dash,
             dc1394, directfb, dtls, dtsdec, fdkaac, fluidsynthmidi, gsm, hls,
             iqa, microdns, opencv, openexr, openh264, openjpeg, opusparse,
             sctp, smoothstreaming, ttmlsubs, webrtc

According to meson dash plugin was built.

I'm building through docker:

FROM ubuntu:18.04

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get upgrade -y

RUN apt-get install -y \
    apt-utils \
    build-essential \
    software-properties-common \
    pkg-config \
    cmake \
    valgrind \
    git \
    wget \
    xz-utils \
    python3 \
    ninja-build \
    python3-pip \
    python3-setuptools \
    python3-wheel \
    python3-gi \
    python3-gi-cairo

RUN apt-get install -y \
    ubuntu-restricted-extras \
    libmount-dev \
    libselinux-dev \
    gobject-introspection \
    libgirepository1.0-dev \
    freeglut3-dev \
    libgtk2.0-dev \
    unixodbc-dev \
    libx264-dev \
    flex \
    bison \
    libjpeg-turbo8-dev \
    libxml2-dev \
    json-glib-1.0 \
    libpng-dev \
    libfreetype6-dev \
    libfontconfig1-dev \
    gobjc++-mingw-w64 \
    libpixman-1-dev \
    yasm \
    nasm \
    libjpeg8-dev \
    libgtk-3-dev \
    libvulkan-dev \
    qtbase5-dev \
    libpulse-dev \
    libssl-dev \
    libfdk-aac-dev \
    libjpeg-dev \
    libglfw3-dev \
    libgles2-mesa-dev \
    libmpg123-dev \
    libraw1394-dev \
    libavc1394-dev \
    libiec61883-dev \
    libspeex-dev \
    libtag1-dev \
    libtwolame-dev \
    libgudev-1.0-0 \
    libgudev-1.0-dev \
    libgmp-dev \
    libgbm-dev \
    alsa-utils \
    libvisual-0.4-dev \
    libogg-dev \
    libopus-dev \
    libvorbis-dev \
    libxt-dev \
    libc6-dev \
    libx11-dev \
    qtdeclarative5-dev \
    libqt5x11extras5-dev \
    libsdl2-dev \
    libflac-dev \
    libjack-dev \
    libmp3lame-dev \
    libcaca-dev \
    libdv4-dev \
    gnutls-bin \
    libgupnp-igd-1.0-dev \
    libopencv-dev \
    libxkbcommon-x11-dev \
    wayland-protocols \
    libltc-dev \
    libusb-1.0-0-dev \
    libva-dev \
    libva-drm2 \
    libass-dev \
    libchromaprint-dev \
    libcurl4 \
    zlib1g-dev \
    liblcms2-dev \
    libdc1394-22-dev \
    libdirectfb-dev \
    libdca-dev \
    libgsm1-dev\
    nettle-dev \
    libfluidsynth-dev \
    liboctave-dev \
    libxslt1-dev \
    libshout3-dev \
    libsqlite3-dev \
    valac \
    libsoup2.4-dev \
    libtool \
    libpcre3 \
    libpcre3-dev \
    libgraphene-1.0-dev \
    xsltproc \
    dbus \
    libdbus-1-dev \
    dbus-x11 \
    gcc-multilib \
    libpcre++-dev \
    libpcre++0v5 \
    libglib2.0-dev
    

RUN pip3 install --upgrade pip

RUN pip3 install meson

RUN git clone https://gitlab.freedesktop.org/gstreamer/gst-build.git

WORKDIR /gst-build
RUN meson build --buildtype=debug
RUN ninja -C build
RUN ninja -C build install

#RUN meson test -C build

RUN mkdir -pv /.cache/xdgr
ENV XDG_RUNTIME_DIR=$PATH:/.cache/xdgr

CMD ["gst-launch-1.0", "dashsink name=dashsink max-files=5  audiotestsrc is-live=true ! avenc_aac ! dashsink.audio_0 videotestsrc is-live=true ! x264enc ! dashsink.video_0"]

As you can see I already loaded up on some dependencies lol

bonfab
  • 302
  • 2
  • 8
  • hm upon checking meson.build for dash directory I see only libxml2.0 dependency.. This is interesting reading for building custom GStreamer, (do you really need docker?): https://gstreamer.freedesktop.org/documentation/installing/building-from-source-using-meson.html?gi-language=c What about adding to meson options `-Dgst-plugins-bad:dash=enabled` (not sure on the real name of dash), although it should perhaps be enabled by default. – nayana Feb 10 '21 at 10:49
  • I'll give it a shot building without Docker. But it would be nice to containerize, since we intend to deploy on multiple Raspberry Pis. I updated my post with the build output from meson regarding the bad plug ins. Dash plugin is listed. – bonfab Feb 10 '21 at 15:18
  • yes well you can use docker at the end to autmatize production, however playing with options is probably better using gst-build environment alone. Your docker actually uses this gst-build script (visible in your docker recipe) – nayana Feb 10 '21 at 23:01

0 Answers0