GloriousEggroll
Member
**NOTE before reading: my directory structure is /usr/lib and /usr/bin in Arch however in some distros such as ubuntu it may be /usr/local/bin or usr/local/lib
Updated original post, I can get it compiled, and loaded by obs, but when I run obs, the interface never shows up, it just stays running in console with no errors. Here's an explanation to what I did and why i did it:
1. According to CEF documentation, there is a way to set cefsettings resources and locales path, which works, so I made cmake copy the files to the obs-browser/data folder before compiling, so that they end up installed in /usr/share/obs/obs-plugins/obs-browser/, and changed the code accordingly
2 icudtl,dat, natives_blob.bin and snapshot_blob.bin ignore the resources path, and must reside in the main executable directory, so they required linking.
Because cef-bootstrap is run by obs, I had to move /usr/lib/obs-plugins/cef-bootstrap to the /usr/bin folder to prevent having to double-link the same files in two directories, since cef-bootstrap searches obs's executable directory for files/resources instead of its own.
Then I opened /usr/bin and linked all the files in the /usr/share/obs/obs-plugins/obs-browser/ with ln -s /usr/share/obs/obs-plugins/obs-browser/file-or-directory-name
3. cef searches for libcef.so in /usr/lib, so I had to create a link to it in my /usr/lib with ln -s /usr/share/obs/obs-plugins/obs-browser/libcef.so
TLDR/shortcuts if you dont want to link everything:
copy CEF/cefclient/Release files to /usr/bin
copy CEF/cefclient/Release/libcef.so to /usr/lib
move /usr/lib/obs-plugins/cef-browser to /usr/bin
Then remove unnecessary files:
remove "files" folder from /usr/bin
remove "cefclient" from /usr/bin
remove "chrome-sandbox" from /usr/bin
Notes: If you can properly get cefsettings to set the correct resources and locales path, you can skip having to link or copy everything except libcef.so, icudtl.dat, natives_blob.bin and snapshot_blob.bin
Updated original post, I can get it compiled, and loaded by obs, but when I run obs, the interface never shows up, it just stays running in console with no errors. Here's an explanation to what I did and why i did it:
1. According to CEF documentation, there is a way to set cefsettings resources and locales path, which works, so I made cmake copy the files to the obs-browser/data folder before compiling, so that they end up installed in /usr/share/obs/obs-plugins/obs-browser/, and changed the code accordingly
2 icudtl,dat, natives_blob.bin and snapshot_blob.bin ignore the resources path, and must reside in the main executable directory, so they required linking.
Because cef-bootstrap is run by obs, I had to move /usr/lib/obs-plugins/cef-bootstrap to the /usr/bin folder to prevent having to double-link the same files in two directories, since cef-bootstrap searches obs's executable directory for files/resources instead of its own.
Then I opened /usr/bin and linked all the files in the /usr/share/obs/obs-plugins/obs-browser/ with ln -s /usr/share/obs/obs-plugins/obs-browser/file-or-directory-name
3. cef searches for libcef.so in /usr/lib, so I had to create a link to it in my /usr/lib with ln -s /usr/share/obs/obs-plugins/obs-browser/libcef.so
TLDR/shortcuts if you dont want to link everything:
copy CEF/cefclient/Release files to /usr/bin
copy CEF/cefclient/Release/libcef.so to /usr/lib
move /usr/lib/obs-plugins/cef-browser to /usr/bin
Then remove unnecessary files:
remove "files" folder from /usr/bin
remove "cefclient" from /usr/bin
remove "chrome-sandbox" from /usr/bin
Notes: If you can properly get cefsettings to set the correct resources and locales path, you can skip having to link or copy everything except libcef.so, icudtl.dat, natives_blob.bin and snapshot_blob.bin
Last edited: