Question / Help Unspecified error when recording, issues with decoding PNG files, and auto-configuration crash

joeydumont

New Member
I have compiled OBS Studio from source on a RHEL7 machine. Unfortunately, I get a couple errors at runtime. Log file: https://obsproject.com/logs/1H1bvhvm9E6n9Qf2

When trying to record, I get a dialog that says "Unspecified error when recording". My terminal windows shows:

Bash:
warning: [ffmpeg muxer: 'adv_file_output'] os_process_pipe_write for info structure failed
info: [ffmpeg muxer: 'adv_file_output'] Output of file '/home/dumontj/2020-03-20 09-32-21.mkv' stopped
info: Output 'adv_file_output': stopping
info: Output 'adv_file_output': Total frames output: 175
info: Output 'adv_file_output': Total drawn frames: 196
info: ==== Recording Stop ================================================

Not sure what's happening there.

My terminal is flooded with these messages:

Bash:
Attempted path: share/obs/obs-studio/images/overflow.png
Attempted path: /home/dumontj/software/obs/share/obs/obs-studio/images/overflow.png
warning: Failed to find decoder for file '/home/dumontj/software/obs/share/obs/obs-studio/images/overflow.png'

Is there a specific libpng version I need?

Also, the auto-configuration wizard crashes every time I try to use it. Here's a backtrace:

Code:
(gdb) bt
#0  0x00007ffff7e57a8c in av_opt_find2 () at /home/dumontj/software/ffmpeg/lib/libavutil.so.56
#1  0x00007ffff7e59068 in av_opt_set () at /home/dumontj/software/ffmpeg/lib/libavutil.so.56
#2  0x00007fffb28d5ab3 in enc_create (settings=<optimized out>, encoder=0x7fff84092140, type=0x7fffb28e20a8 "aac", alt=0x0)
    at /home/dumontj/software/sources/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:255
#3  0x00007ffff5d59599 in obs_encoder_initialize (encoder=0x7fff84092140) at /home/dumontj/software/sources/obs-studio/libobs/obs-encoder.c:462
#4  0x00007ffff5d59599 in obs_encoder_initialize (encoder=0x7fff84092140) at /home/dumontj/software/sources/obs-studio/libobs/obs-encoder.c:507
#5  0x00007ffff5d6f965 in obs_output_initialize_encoders (num_mixes=<optimized out>, output=<optimized out>) at /home/dumontj/software/sources/obs-studio/libobs/obs-output.c:1981
#6  0x00007ffff5d6f965 in obs_output_initialize_encoders (output=<optimized out>, flags=flags@entry=0) at /home/dumontj/software/sources/obs-studio/libobs/obs-output.c:2043
#7  0x00007fffb1582752 in null_output_start (data=0x7fff84092b80) at /home/dumontj/software/sources/obs-studio/plugins/obs-outputs/null-output.c:56
#8  0x00007ffff5d6ddda in obs_output_actual_start (output=0x7fff8402c9c0) at /home/dumontj/software/sources/obs-studio/libobs/obs-output.c:256
#9  0x00007ffff5d6df31 in obs_output_start (output=0x7fff8402c9c0) at /home/dumontj/software/sources/obs-studio/libobs/obs-output.c:289
#10 0x000055555568f45c in AutoConfigTestPage::<lambda(long double, int, int, bool)>::operator()(long double, int, int, bool) const (__closure=0x7fff8b2d1bd0, div=2, fps_num=30, fps_den=1, force=false)
    at /home/dumontj/software/sources/obs-studio/UI/window-basic-auto-config-test.cpp:679
#11 0x000055555568ff52 in AutoConfigTestPage::TestSoftwareEncoding() (this=0x555556cde210) at /home/dumontj/software/sources/obs-studio/UI/window-basic-auto-config-test.cpp:727
#12 0x0000555555691f08 in AutoConfigTestPage::TestRecordingEncoderThread() (this=0x555556cde210) at /home/dumontj/software/sources/obs-studio/UI/window-basic-auto-config-test.cpp:897
#13 0x00007ffff50c061f in std::execute_native_thread_routine(void*) (__p=0x555556cba060) at ../../../../../gcc-8.2.0/libstdc++-v3/src/c++11/thread.cc:80
#14 0x00007ffff48d4ea5 in start_thread () at /lib64/libpthread.so.0
#15 0x00007ffff45fd8cd in clone () at /lib64/libc.so.6

I've compiled ffmpeg with dumontj ~/software/sources/FFmpeg-n4.2.2 $ ./configure --prefix=/home/dumontj/software/ffmpeg --enable-pic --enable-shared --disable-static, and OBS with dumontj ~/software/sources/obs-studio/build $ cmake -DCMAKE_C_COMPILER=/home/dumontj/software/gcc/bin/gcc -DCMAKE_CXX_COMPILER=/home/dumontj/software/gcc/bin/g++ -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/home/dumontj/software/obs/ ..

Is there something I can do to further troubleshoot these problems?
 

joeydumont

New Member
I've also noticed that OBS does not find libspeexdsp, even though the INCLUDE_PATH and LD_LIBRARY_PATH point to my installation. The Findlibspeexdsp looks similar to FindFFmpeg, which finds my custom ffmpeg install. Can I set variables manually so that OBS finds it?
 

joeydumont

New Member
I noticed that there was a conflict between the system-installed versions of ffmpeg and x264. I have removed the system versions of ffmpeg and x264, but now cmake can't find ffmpeg:

Code:
CMake Error at /home/dumontj/software/cmake/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find FFmpeg (missing: FFMPEG_AVCODEC_INCLUDE_DIRS avcodec
  avdevice avutil avformat)
Call Stack (most recent call first):
  /home/dumontj/software/cmake/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/Modules/FindFFmpeg.cmake:151 (find_package_handle_standard_args)
  deps/media-playback/CMakeLists.txt:3 (find_package)

However, all of these components are installed, and my ffmpeg installation is in INCLUDE_PATH.
 

joeydumont

New Member
To get CMake to find these packages, I needed to set PKG_CONFIG_PATH for all custom packages. The path hints don't include the contents of INCLUDE_PATH. All of these error messages, and the crash, went away when I compiled the latest versions of x264 and ffmpeg.

However, even with PKG_CONFIG_PATH, cmake couldn't find speexdsp. I'll try again.
 
Top