Bug Report Instruction non permise

Neckara

New Member
Hi,

I installed obs on Debian Jessie with FFMPEG from Stretch.
I followed "Manually compiling on Debian-based distros" from https://github.com/jp9000/obs-studio/wiki/Install-Instructions


Each time I try to start a record ("Démarrer l'enregistrement"), obs close and show in the terminal :

info: pulse-input: Stopped recording from 'alsa_output.pci-0000_00_14.2.analog-stereo.monitor'
info: pulse-input: Got 4826 packets with 736003 frames
warning: rtmp-common.c: [initialize_output] Could not find service ''
warning: rtmp-common.c: [initialize_output] Could not find service ''
info: ---------------------------------
info: [x264 encoder: 'simple_h264'] preset: veryfast
info: [x264 encoder: 'simple_h264'] settings:
bitrate: 2500
buffer size: 2500
fps_num: 30
fps_den: 1
width: 1280
height: 720
keyint: 250
vfr: off
cbr: on
Instruction non permise

I try to launch it as root, but there is no differences.

The log :

https://gist.github.com/21ae93b94d8f9506ad35



Have you an idea about how to fix it ?
 

leopardb

New Member
If i understand correctly, you compiled obs and got the stretch ffmpeg executables and libraries.

I'm not sure what the problem is but i have a somehow similar setup as yours (debian hybrid stable/testing) and it works for me using the ffmpeg packages from http://deb-multimedia.org/

I'm surprised everything compiled well, to be honest, as there's this Libav vs FFmpeg story behind the corner, and Debian Stretch is supposed to have switched from Libav to FFmpeg as a libav* libraries provider, so that the things are rather messy right now (OBS chose the FFmpeg route, instead of Libav).

Here, a bit of politics : https://wiki.debian.org/Debate/libav-provider/ffmpeg

So i suppose that by using the deb-multimedia.org libraries, you stay mostly away from trouble for the time being.
 

Neckara

New Member
Thanks for your answer

It changes nothing.

I think obs might use an instruction I hadn't in my graphical card ?

I tried recordmydesktop and I succeed to record my desktop and my sound.
 

Neckara

New Member
I got more informations from gdb :
Program received signal SIGILL, Illegal instruction.
0x00007fffb857e956 in x264_add8x8_idct_avx.skip_prologue () from /usr/lib/x86_64-linux-gnu/libx264.so.142
 

Neckara

New Member
http://x264-devel.videolan.narkive.com/afGBWmEp/libx264-illegal-instruction-on-armv5-thecus-n2100

x264 builds with NEON by default because x264 is so slow without NEON
(and on any non-NEON chip) as to be useless. You can of course
compile with --disable-asm on such chips, but we don't do it by
default because we don't feel it's necessary to actively support chips
on which x264 would be basically useless to begin with.


Should I try to rebuild x264 or should I give up ?


EDIT :
CPU info
https://zerobin.net/?25b1f4ecc84277a7#rV9CioqZnrHeC6caVxYKo5W6yIQd2RCmZqi0xrWFOYA=
 
Last edited:

leopardb

New Member
Thanks for your answer

It changes nothing.

I think obs might use an instruction I hadn't in my graphical card ?

I tried recordmydesktop and I succeed to record my desktop and my sound.

Damn. Ok, so i think recordmydesktop does not use ffmpeg, and OBS is somewhat of a frontend to the FFmpeg libraries. So does it work when you use the ffmpeg executable ? something simple like (replace 1920x1200 by your desktop resolution and 1280x720 by the resolution of the video you want to have):

ffmpeg -f x11grab -video_size "1920x1200" -i :0.0 -vcodec libx264 -s "1280x720" output.flv
 

Neckara

New Member
But they use the same libraries, I don't understand why in obs, it doesn't works.

ldd /usr/bin/obs | grep x2
libx265.so.59 => /usr/lib/x86_64-linux-gnu/libx265.so.59 (0x00007f4f60108000)
libx264.so.146 => /usr/lib/x86_64-linux-gnu/libx264.so.146 (0x00007f4f5fd90000)

ldd /usr/bin/ffmpeg | grep x2
libx265.so.51 => /usr/lib/x86_64-linux-gnu/libx265.so.51 (0x00007f7674f78000)
libx264.so.146 => /usr/lib/x86_64-linux-gnu/libx264.so.146 (0x00007f7674c00000)
 

leopardb

New Member
By me it looks like this :

ldd /usr/bin/obs | grep x2
libx265.so.51 => /usr/lib/x86_64-linux-gnu/libx265.so.51 (0x00007fe493dc6000)
libx264.so.146 => /usr/lib/x86_64-linux-gnu/libx264.so.146 (0x00007fe493a50000)

ldd /usr/bin/ffmpeg | grep x2
libx265.so.51 => /usr/lib/x86_64-linux-gnu/libx265.so.51 (0x00007f57e2431000)
libx264.so.146 => /usr/lib/x86_64-linux-gnu/libx264.so.146 (0x00007f57e20bb000)

In your case obs uses libx265.so.59 while ffmpeg uses libx265.so.51

In my case both use libx265.so.51

No idea if it makes any difference...

Do you want to try with my obs-studio_20150821-git-1_amd64.deb ? (assuming there's a security risk and i could be sending you an horrible virus °_°)
 

Neckara

New Member
It seems your virus done the trick.

So it was the libx265 version which made obs throw a SIGILL.

ldd /usr/bin/obs | grep x2
libx265.so.51 => /usr/lib/x86_64-linux-gnu/libx265.so.51 (0x00007fb019ed8000)
libx264.so.146 => /usr/lib/x86_64-linux-gnu/libx264.so.146 (0x00007fb019b60000)


EDIT : There is a "Solved" button to check for this thread ?
 
Top