Closed lblabr closed 1 year ago
That doesn't sound like a cefsrc issue to be honest, have you tried simply googling for the error?
yes i did, i had this kind of error also with obs. building with a libcef provided by obs (repo) helped there
any hints for doing similar with this project would be great
You can build with your own CEF version with such a command:
CEF_ROOT=/path/to/chromium/src/out/Release_GN_x64/ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..
I don't think there is much more I can do here, please propose a MR if you have a fix :)
@MathieuDuponchelle just to have it correct for my build ...
`jetson@nano:~/.sources$ ls obs-build-dependencies/cef_binary_5060_linuxarm64 build cmake CMakeCache.txt CMakeFiles cmake_install.cmake CMakeLists.txt include libcef_dll libcef_dll_wrapper LICENSE.txt Makefile README.txt Release Resources
jetson@nano:~/.sources$ ls obs-build-dependencies/cef_binary_5060_linuxarm64/Release/ chrome-sandbox libcef.so libEGL.so libGLESv2.so libvk_swiftshader.so libvulkan.so.1 snapshot_blob.bin v8_context_snapshot.bin vk_swiftshader_icd.json`
CEF_ROOT=~/.sources/obs-build-dependencies/cef_binary_5060_linuxarm64 or a subdir of ~/.sources/obs-build-dependencies/cef_binary_5060_linuxarm64 ??
with the provied command i get:
jetson@nano:~/.sources/gstcefsrc/build$ CEF_ROOT=~/.sources/obs-build-dependencies/cef_binary_5060_linuxarm64/Release/ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .. -- The C compiler identification is GNU 8.4.0 -- The CXX compiler identification is GNU 8.4.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Downloading /home/jetson/.sources/gstcefsrc/third_party/cef/cef_binary_103.0.9%2Bgd0bbcbb%2Bchromium-103.0.5060.114_linuxarm64.tar.bz2.sha1... -- Downloading /home/jetson/.sources/gstcefsrc/third_party/cef/cef_binary_103.0.9%2Bgd0bbcbb%2Bchromium-103.0.5060.114_linuxarm64.tar.bz2... -- [download 0% complete] -- [download 1% complete] -- [download 2% complete] -- [download 3% complete]
it seems not to take the provided libcef
with absolute paths:
`jetson@nano:~/.sources/gstcefsrc$ mkdir build && cd build jetson@nano:~/.sources/gstcefsrc/build$ CEF_ROOT=/home/jetson/.sources/obs-build-dependencies/cef_binary_5060_linuxarm64/Release cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .. -- The C compiler identification is GNU 8.4.0 -- The CXX compiler identification is GNU 8.4.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Error at CMakeLists.txt:49 (find_package): By not providing "FindCEF.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "CEF", but CMake did not find one.
Could not find a package configuration file provided by "CEF" with any of the following names:
CEFConfig.cmake
cef-config.cmake
Add the installation prefix of "CEF" to CMAKE_PREFIX_PATH or set "CEF_DIR" to a directory containing one of the above files. If "CEF" provides a separate development package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred! See also "/home/jetson/.sources/gstcefsrc/build/CMakeFiles/CMakeOutput.log". jetson@nano:~/.sources/gstcefsrc/build$ mc
jetson@nano:~/.sources/gstcefsrc/build$ cd /home/jetson/.sources/obs-build-dependencies/ jetson@nano:~/.sources/obs-build-dependencies$ find . | grep cmake ./cef_binary_5060_linuxarm64/CMakeFiles/Makefile.cmake ./cef_binary_5060_linuxarm64/CMakeFiles/3.25.2/CMakeSystem.cmake ./cef_binary_5060_linuxarm64/CMakeFiles/3.25.2/CMakeCXXCompiler.cmake ./cef_binary_5060_linuxarm64/CMakeFiles/3.25.2/CMakeCCompiler.cmake ./cef_binary_5060_linuxarm64/CMakeFiles/cmake.check_cache ./cef_binary_5060_linuxarm64/CMakeFiles/CMakeDirectoryInformation.cmake ./cef_binary_5060_linuxarm64/cmake ./cef_binary_5060_linuxarm64/cmake/cef_macros.cmake ./cef_binary_5060_linuxarm64/cmake/FindCEF.cmake ./cef_binary_5060_linuxarm64/cmake/cef_variables.cmake ./cef_binary_5060_linuxarm64/libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/cmake_clean.cmake ./cef_binary_5060_linuxarm64/libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/DependInfo.cmake ./cef_binary_5060_linuxarm64/libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/cmake_clean_target.cmake ./cef_binary_5060_linuxarm64/libcef_dll_wrapper/CMakeFiles/CMakeDirectoryInformation.cmake ./cef_binary_5060_linuxarm64/libcef_dll_wrapper/cmake_install.cmake ./cef_binary_5060_linuxarm64/build/CMakeFiles/Makefile.cmake ./cef_binary_5060_linuxarm64/build/CMakeFiles/3.25.1/CMakeSystem.cmake ./cef_binary_5060_linuxarm64/build/CMakeFiles/3.25.1/CMakeCXXCompiler.cmake ./cef_binary_5060_linuxarm64/build/CMakeFiles/3.25.1/CMakeCCompiler.cmake ./cef_binary_5060_linuxarm64/build/CMakeFiles/cmake.check_cache ./cef_binary_5060_linuxarm64/build/CMakeFiles/CMakeDirectoryInformation.cmake ./cef_binary_5060_linuxarm64/build/libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/cmake_clean.cmake ./cef_binary_5060_linuxarm64/build/libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/DependInfo.cmake ./cef_binary_5060_linuxarm64/build/libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/cmake_clean_target.cmake ./cef_binary_5060_linuxarm64/build/libcef_dll_wrapper/CMakeFiles/CMakeDirectoryInformation.cmake ./cef_binary_5060_linuxarm64/build/libcef_dll_wrapper/cmake_install.cmake ./cef_binary_5060_linuxarm64/build/cmake_install.cmake ./cef_binary_5060_linuxarm64/cmake_install.cmake jetson@nano:~/.sources/obs-build-dependencies$ `
@lblabr I don't know, just try to do as the error tells you? :)
i'm not that expert.... (sry) played with the vaules for path but nothing solved the problem
the named files
CEFConfig.cmake cef-config.cmake
are not there...
with:
jetson@nano:~/.sources/gstcefsrc/build$ CEF_ROOT=/home/jetson/.sources/obs-build-dependencies/cef_binary_5060_linuxarm64/ cmake -G "Unix Makefiles" -DCMAKE_MODULE_PATH=/home/jetson/.sources/obs-build-dependencies/cef_binary_5060_linuxarm64/cmake -DCMAKE_BUILD_TYPE=Release ..
CMake Error at /home/jetson/.sources/obs-build-dependencies/cef_binary_5060_linuxarm64/cmake/FindCEF.cmake:33 (message): No CMake bootstrap found for CEF binary distribution at: /home/jetson/.sources/gstcefsrc/third_party/cef/cef_binary_103.0.9+gd0bbcbb+chromium-103.0.5060.114_linuxarm64. Call Stack (most recent call first): CMakeLists.txt:49 (find_package)
-- Configuring incomplete, errors occurred!
why it looks again to third-party.
i do not ahve the knowledge to solve by my own
Maybe this helps...
works:
does not work
Thanks a lot!
@lblabr can you expand on what worked and what didn't? I can't tell by the images tbh
obs-browser plugin is used to "stream" a webpage more or less the same what i try to achive with gstreamer and your plugin.
obs-browser: as you can see the library is not referenced by a link... (how ever this was achieved) build static?
libgstcef.so libcef.so is referenced by an library (shared??) does not work
but as i sayed, i'm not a dev just have basic knwoledge about how to build... trying a lot sometimes it works some not
might this help? https://bitbucket.org/chromiumembedded/java-cef/issues/377/runsh-should-know-its-directory
according to this description: https://stackoverflow.com/questions/34428037/how-to-interpret-the-output-of-the-ldd-program
for obs-browser the libcef is already in the memory, that's why there is no path in ldd output
how do achive that for cefsrc plugin?
tried:
jetson@nano:~/.sources/gstcefsrc/build$ export LD_PRELOAD="/home/jetson/.sources/gstcefsrc/build/Release/libcef.so"
jetson@nano:~/.sources/gstcefsrc/build$ env | grep LD
LD_PRELOAD=/home/jetson/.sources/gstcefsrc/build/Release/libcef.so
LD_LIBRARY_PATH=/opt/ffmpeg-42/bin:/opt/ffmpeg-42/lib:
OLDPWD=/home/jetson
jetson@nano:~/.sources/gstcefsrc/build$ GST_PLUGIN_PATH=Release:$GST_PLUGIN_PATH gst-launch-1.0 cefsrc url="https://soundcloud.com/platform/sama" ! video/x-raw, width=1920, height=1080, framerate=60/1 ! cefdemux name=d d.video ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=3000000000 ! videoconvert ! xvimagesink audiotestsrc do-timestamp=true is-live=true volume=0.00 ! audiomixer name=mix ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=3000000000 ! audioconvert ! pulsesink d.audio ! mix.
WARNING: erroneous pipeline: no element "cefsrc"
jetson@nano:~/.sources/gstcefsrc/build$ ls Release/
chrome_100_percent.pak chrome-sandbox icudtl.dat libEGL.so libgstcef.so libvulkan.so.1 resources.pak v8_context_snapshot.bin
chrome_200_percent.pak gstcefsubprocess libcef.so libGLESv2.so libvk_swiftshader.so locales snapshot_blob.bin vk_swiftshader_icd.json
i started from ...... /gstcefsrc/build$
needed to change GST_PLUGIN_PATH=Release => GST_PLUGIN_PATH=./Release
with: ` jetson@nano:~/.sources/gstcefsrc/build$ export LD_PRELOAD="/home/jetson/.sources/gstcefsrc/build/Release/libcef.so"
` test:
GST_PLUGIN_PATH=./Release:$GST_PLUGIN_PATH gst-launch-1.0 \
cefsrc url="https://soundcloud.com/platform/sama" ! \
video/x-raw, width=1920, height=1080, framerate=60/1 ! cefdemux name=d d.video ! \
queue max-size-bytes=0 max-size-buffers=0 max-size-time=3000000000 ! videoconvert ! \
xvimagesink audiotestsrc do-timestamp=true is-live=true volume=0.00 ! audiomixer name=mix ! \
queue max-size-bytes=0 max-size-buffers=0 max-size-time=3000000000 ! audioconvert ! pulsesink \
d.audio ! mix.
works!!
is it possible to do an overlay to an video with that plugin like they do in:
https://www.youtube.com/watch?v=QNZJYOuVGiE https://www.youtube.com/watch?v=no7rvUk8GqM (5:45)
?
yes it is, for overlays you would usually mix things together with a compositor element.
i'm new with gstreamer, could you pls. share an example?
@lblabr I advise reading GStreamer's documentation.
i have ubuntu 20.04 running on jetson nano and try to use it for livestreaming. i would like to make an overlay with an webpage...
so i tried to use gstcefsrc for that i compiled and try to run, but get the following error:
No such element or plugin 'cefsrc' jetson@nano:~/.sources/gstcefsrc/build/Release$ gst-launch-1.0 cefsrc
(gst-plugin-scanner:67316): GStreamer-WARNING **: 23:45:03.954: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libcef.so': /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libcef.so: cannot allocate memory in static TLS block
(gst-plugin-scanner:67316): GStreamer-WARNING **: 23:45:04.022: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstcef.so': ./libcef.so: cannot allocate memory in static TLS block ERROR: pipeline could not be constructed: no element "cefsrc". jetson@nano:~/.sources/gstcefsrc/build/Release$
any idea/hint ??
thanks in advance
Lars