Jump to content
Read the Funtoo Newsletter: Summer 2023 ×
  • 0

Bitwig apparently needs libav



I'm trying to give Bitwig-studio a try but I'm running in to lots of problems getting it to work with flac files (wav files work but it seems that it converts flacs to wav in a temp directory). 


When running from the terminal it says it cannot find avprobe so I symlinked that with ffprobe. Then it said that it can't find avconv so I symlinked that with iconv. Now I am getting the following when I try to open a flac file: 

apache.commons.vfs2.FileNotFoundException: Could not read from "file:///home/alex/.BitwigStudio/cache/samples/1680B2374B43B71396BEAA1DD194197B/playback-temp.wav" because it is not a file.	at org.apache.commons.vfs2.provider.AbstractFileObject.getInputStream(AbstractFileObject.java:1291)
	at org.apache.commons.vfs2.provider.DefaultFileContent.getInputStream(DefaultFileContent.java:411)
	at eFP.a(SourceFile:13)
	at eFM.e(SourceFile:167)
	at eFM.d(SourceFile:144)
	at eFM.c(SourceFile:117)
	at com.bitwig.flt.sample_analysis.f.run(SourceFile:1330)
Caused by: java.io.FileNotFoundException: /home/alex/.BitwigStudio/cache/samples/1680B2374B43B71396BEAA1DD194197B/playback-temp.wav (No such file or directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at org.apache.commons.vfs2.provider.local.LocalFile.doGetInputStream(LocalFile.java:236)
	at org.apache.commons.vfs2.provider.AbstractFileObject.getInputStream(AbstractFileObject.java:1283)
	... 6 more
java.io.IOException: Could not generate wav file: ffmpeg exited with exit code 64
	at com.bitwig.flt.sample_analysis.b.b(SourceFile:1369)
	at com.bitwig.flt.sample_analysis.b.a(SourceFile:1268)
	at com.bitwig.flt.sample_analysis.b.a(SourceFile:1127)
	at com.bitwig.flt.sample_analysis.b.a(SourceFile:65)
	at com.bitwig.flt.sample_analysis.i.run(SourceFile:1480)
	at g.run(SourceFile:160)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

So now I'm wondering if I just don't have something enabled in ffmpeg because it seems like it is finding what it needs but that just isn't working. Here are the use flags I have for ffmpeg in case there is something I'm missing: 

- - 3dnow                 : Use the 3DNow! instruction set
 - - 3dnowext              : Enable manually-optimised routines using the AMD 3DNow!Ex SIMD
                             instruction set, present in modern AMD CPUs. (Check for
                             3dnowext in /proc/cpuinfo to know whether your CPU supports
 + + X                     : Add support for X11
 - - aac                   : Enable support for MPEG-4 AAC Audio
 - - aacplus               : AAC+ encoding via media-libs/libaacplus.
 + + alsa                  : Add support for media-libs/alsa-lib (Advanced Linux Sound
 - - amr                   : Enables Adaptive Multi-Rate Audio support
 - - amrenc                : Enables Adaptive Multi-Rate Audio encoding support with
 - - avx                   : Adds support for Advanced Vector Extensions instructions
                             (Intel Sandy Bridge, AMD Bulldozer and later chips)
 - - avx2                  : Adds support for Advanced Vector Extensions 2 instructions
                             (Intel Haswell and later chips)
 - - bindist               : Enforces license compatibility constraints via REQUIRED_USE.
 - - bluray                : Enable playback of Blu-ray filesystems
 + + bzip2                 : Use the bzlib compression library
 - - cdio                  : Enables audio CD grabbing with dev-libs/libcdio.
 - - celt                  : Adds Xiph CELT audio decoding support via media-libs/celt
 - - cpudetection          : Enables runtime CPU detection (useful for bindist,
                             compatibility on other CPUs)
 - - debug                 : Enable extra debug codepaths, like asserts and extra output.
                             If you want to get meaningful backtraces see
 - - doc                   : Add extra documentation (API, Javadoc, etc). It is recommended
                             to enable per package instead of globally
 + + encode                : Add support for encoding of audio or video files
 - - examples              : Install examples, usually source code
 - - faac                  : Use external faac library for AAC encoding
 - - fdk                   : Use external fdk-aac library for AAC encoding
 + + fftools_aviocat       : cat's a URL to another one, useful for dumping streams.
 + + fftools_cws2fws       : converts cws files (Macromedia Flash, compressed) to fws ones
                             (Macromedia Flash, uncompressed).
 + + fftools_ffescape      : Escapes an input string, adopting the av_get_token() escaping
 + + fftools_ffeval        : A simple expression evalutor.
 + + fftools_ffhash        : Computes a file's digest using libavutil algorithms.
 + + fftools_fourcc2pixfmt : Shows the relationships between rawvideo pixel formats and
                             FourCC tags.
 + + fftools_graph2dot     : A tool to convert a libavfilter graph to a dot file.
 + + fftools_ismindex      : A tool for creating smooth streaming manifests.
 + + fftools_pktdumper     : Dumps packets as demuxed by libavformat.
 + + fftools_qt-faststart  : Rearranges a Quicktime file to facilitate network streaming.
 + + fftools_trasher       : Writes burts of random data into a file. Great for testing
                             error robustness/resilience/concealment.
 - - flite                 : Adds a text-to-speech filter based on app-accessibility/flite.
 - - fma3                  : Enables FMA3 optimizations: AMD processors starting with
                             Piledriver architecture and Intel Haswell based processors or
 - - fma4                  : Enables FMA4 optimizations: AMD processors starting with
                             Bulldozer architecture.
 - - fontconfig            : Support for configuring and customizing font access via
 - - frei0r                : Enable frei0r wrapping in libavfilter
 - - gme                   : Enables support for media-libs/game-music-emu for playing
                             various video game music formats.
 - - gnutls                : Add support for net-libs/gnutls (TLS 1.0 and SSL 3.0 support)
 - - gsm                   : Add support for the gsm lossy speech compression codec
 + + hardcoded-tables      : Use pre-calculated tables rather than calculating them on the
 + + iconv                 : Enable support for the iconv character set conversion library
 - - iec61883              : Support for FireWire DV/HDV input device using
 - - ieee1394              : Enable FireWire/iLink IEEE1394 support (dv, camera, ...)
 - - jack                  : Add support for the JACK Audio Connection Kit
 - - jpeg2k                : Support for JPEG 2000, a wavelet-based image compression
 + + ladspa                : Enable the ability to support ladspa plugins
 - - libass                : SRT/SSA/ASS (SubRip / SubStation Alpha) subtitle support
 - - libcaca               : Add support for colored ASCII-art graphics
 - - libsoxr               : Enables audio resampling through media-libs/soxr.
 - - libv4l                : Uses media-libs/libv4l for video4linux instead of direct
                             calls. Adds support for more devices via the userspace
 + + mmx                   : Use the MMX instruction set
 - - mmxext                : Enables mmx2 support
 - - modplug               : Add libmodplug support for playing SoundTracker-style music
 + + mp3                   : Add support for reading mp3 files
 + + network               : Enables network streaming support
 - - openal                : Add support for the Open Audio Library
 + + opengl                : Add support for OpenGL (3D graphics)
 - - openssl               : Enables dev-libs/openssl support. Adds support for encrypted
                             network protocols (TLS/HTTPS).
 - - opus                  : Adds (decoding) support for the Opus codec via
 - - oss                   : Add support for OSS (Open Sound System)
 - - pic                   : Force shared libraries to be built as PIC (this is slower)
 - - pulseaudio            : Add support for PulseAudio sound server
 - - quvi                  : Adds support for playing media from Internet services using
                             the quvi project.
 - - rtmp                  : Enable Real Time Messaging Protocol using librtmp
 - - schroedinger          : Enable Dirac video support (an advanced royalty-free video
                             compression format) via libschroedinger (high-speed
                             implementation in C of the Dirac codec).
 - - sdl                   : Add support for Simple Direct Layer (media library)
 - - speex                 : Add support for the speex audio codec (used for speech)
 + + sse                   : Use the SSE instruction set
 + + sse2                  : Use the SSE2 instruction set
 - - sse3                  : Use the SSE3 instruction set (pni in cpuinfo)
 - - sse4                  : Enables SSE4 optimizations: Intel Core microarchitecture and
                             AMD K10 or later.
 - - sse4_2                : Enables SSE4.2 optimizations: Nehalem-based Intel Core i7 or
 - - ssh                   : Enable SSH/sftp support via net-libs/libssh.
 - - ssse3                 : Faster floating point optimization for SSSE3 capable chips
                             (Intel Core 2 and later chips)
 - - static-libs           : Build static versions of dynamic libraries as well
 - - test                  : Workaround to pull in packages needed to run with
                             FEATURES=test. Portage-2.1.2 handles this internally, so don't
                             set it in make.conf/package.use anymore
 - - theora                : Add support for the Theora Video Compression Codec
 + + threads               : Add threads support for various packages. Usually pthreads
 + + truetype              : Add support for FreeType and/or FreeType2 fonts
 - - twolame               : Enables MP2 encoding via media-sound/twolame as an alternative
                             to the internal encoder.
 - - v4l                   : Enable support for video4linux (using linux-headers or
                             userspace libv4l libraries)
 - - vaapi                 : Enables VAAPI (Video Acceleration API) for hardware decoding
 - - vdpau                 : Enable the Video Decode and Presentation API for Unix
                             acceleration interface
 + + vorbis                : Add support for the OggVorbis audio codec
 - - vpx                   : Enables vp8 codec support using libvpx: Decoding vp8 does not
                             require this to be enabled but libvpx can also be used for
                             decoding; encoding vp8 requires this useflag to be enabled
 + + wavpack               : Add support for wavpack audio compression tools
 - - webp                  : Enables WebP encoding with media-libs/libwebp.
 - - x264                  : Enable h264 encoding using x264
 - - x265                  : Enables HEVC encoding with media-libs/x265.
 - - xvid                  : Add support for xvid.org's open-source mpeg-4 codec
 + + zlib                  : Add support for zlib (de)compression
 - - zvbi                  : Enables media-libs/zvbi based teletext decoder.
Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

I decided to do a little investigating, although I suspect you've already learned as much as I have because I saw your post on kvraudio.com. At this point, I'd just recommend emerging media-video/libav and see if that fixes the issues you're having. I'm not certain, but you may have to unmerge media-video/ffmpeg because I don't think those two packages can coexist (of course I may be wrong; I've never tried).

Link to comment
Share on other sites

  • 0

Yeah I was trying to cover all my bases really, I wasn't sure where the best place would be to get help. 


That's a great idea paddymac, I didn't think of trying that for fear of messing up my system. I just tried it though and it does work perfectly. You're correct, both can't co-exist, at least not with portage. So I'm not sure where to go from here, I have some packages that rely on ffmpeg so I suppose I need to look if they can use libav instead. Perhaps it would be just easier to convert all my samples to .wav but I would prefer not to do that really. 


The suggestion in the kvr thread made me wonder, could I have ffmpeg installed through portage but compile libav manually in to /usr/local? 

Link to comment
Share on other sites

  • 0

hey brother what's up! , i'm a bedroom producer, i have a big interest on pro-audio, and i really want to have bitwig running on my funtoo, could you tell me your procedure to install it??, i already have copied everything of the deb package on it's place, but when i try to launch it it give me this error:

bitwig-studio: symbol lookup error: /opt/bitwig-studio/bin/libx11-windowing-system.so: undefined symbol: xcb_shm_attach_checked

any suggestion to solve-it??

Link to comment
Share on other sites

  • 0

I'm having another look at this and installed it from the ebuild (according to the funtoo wiki) but apparently there is still a problem concerning libav even when using the -libav use flag. Flac files are still not able to be used which is annoying because my whole sample library is in flac now. I think when I was trying the demo previously I managed to get it working by locally compiling libav and installing it in to /usr/local/ but that feels very messy. I was really hoping by now they (the bitwog guys) would have done something about this.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...