Open MarvinMcFadin opened 8 years ago
Please explain what you are trying to achieve. I have managed to compile openwebrtc repo without docs and javascript bindings on Windows without using cerbero. I have used https://msys2.github.io/ development environment.
I just need win32 binaries to provide a webrtc endpoint in my Windows application, to allow audio connection from browser to my application. I will need both raw and Opus codec.
I could not find a simple webrtc implementation in either C++ or C# that supported the audio portion of peer to peer.
Ok, so my approach should fit your needs... Take msys2, install dependencies, compile and install openwebrtc-plugins, then compile openwebrtc. Please note that openwebrtc does not support windows audio and video sources. However that code you could take from gstreamer. Alternatively you may look at server side webrtc stack https://github.com/marcin-sielski/janus-gateway/releases.
Thanks for the tips. I'll look into those as well.
@marcin-sielski, how did you disable javascript bindings?
UPDATE: found it, --disable-bridge
.
I'm still failing to build it, yet it failed on the step that GISCAN doesn't appreciate my non-ASCII username (UnicodeDecodeError: 'ascii' codec can't decode), maybe the following guide will be useful to you:
Install MSYS2, open msys2_shell, install dependencies:
pacman -Sy perl autoconf automake gettext libtool pkg-config make mingw-w64-i686-gobject-introspection mingw-w64-i686-gobject-introspection-runtime mingw-w64-i686-gstreamer mingw-w64-i686-gst-plugins-bad mingw-w64-i686-gst-plugins-base mingw-w64-i686-gst-plugins-good mingw-w64-i686-icu mingw-w64-i686-json-glib mingw-w64-i686-libffi mingw-w64-i686-libiconv mingw-w64-i686-libnice mingw-w64-i686-libsoup mingw-w64-i686-libsrtp mingw-w64-i686-usrsctp mingw-w64-i686-libvpx mingw-w64-i686-libxml2 mingw-w64-i686-openh264 mingw-w64-i686-openssl mingw-w64-i686-opus mingw-w64-i686-orc mingw-w64-i686-zlib intltool
Close msys2_shell, open mingw32_shell, run:
export CPATH=/mingw32/include
export LPATH=/mingw32/lib
git clone https://github.com/EricssonResearch/openwebrtc-gst-plugins.git
cd openwebrtc-gst-plugins
./autogen.sh
./configure --prefix=/mingw32
make LDFLAGS=-no-undefined
make install
cd ..
Get OpenWebRTC source code, either from releases or from git directly.
Remove docs build:
If you're using 0.3.0 release, you're done, if you're using the latest version from git, GCC compatibilty is broken by non-compatible Clang flag -Wno-parentheses-equality
, remove lines with it from all files.
Now building:
cd openwebrtc
./autogen.sh --prefix=/mingw32 --disable-bridge LDFLAGS="-static"
I had some warnings about dynamic library so I decided to try static, you may drop LDFLAGS
parameter.
make
It should build some files and then abort, saying 'enumerate_video_source_devices' and 'enumerate_audio_source_devices' are used but never defined. I believe this is what marcin kept in mind saying that it can be taken from GStreamer. So let's try to ignore these warnings by suppressing -Werror
from makefiles using an environment variable:
export CFLAGS="-Wno-error"
make
Here I stuck with my username, but you may try it out, it should work.
I need a little help with building on Windows, unless there are pre-built binaries somewhere that I missed.
I think I have the environment setup correctly, but perhaps something is still missing. I cloned the openwebrtc repository.
So it begins building using this command from the build instructions, modified for Windows.
$ cd ~/cerbero && ./cerbero-uninstalled -c config/win32.cbc fetch-package --full-reset --reset-rdeps openwebrtc && ./cerbero-uninstalled -c config/win32.cbc bootstrap && ./cerbero-uninstalled -c config/win32.cbc package -f openwebrtc
It builds for some time then comes to this point and fails ...
-----> Installing wglext.h File C:/MinGW/msys/1.0/home/marvin/cerbero/build/mingw/w32/i686-w64-mingw32/include/GL/wglext.h already downloaded. -----> Installing Python headers Cloning into 'windows-external-sdk'... WARNING: Using default configuration because C:/MinGW/msys/1.0/home/marvin/.cerbero/cerbero.cbc is missing WARNING: Build currently fails on Windows! Do not import into Cerbero master! Building the following recipes: mingw-runtime gettext libiconv autoconf gettext-tools gettext-m4 automake m4 libtool pkg-config orc-tool libffi zlib glib gobject-introspection gnome-common gtk-doc-lite gperf intltool yasm [(1/20) mingw-runtime -> already built ] [(2/20) gettext -> already built ] [(3/20) libiconv -> already built ] [(4/20) autoconf -> already built ] [(5/20) gettext-tools -> already built ] [(6/20) gettext-m4 -> already built ] [(7/20) automake -> already built ] [(8/20) m4 -> already built ] [(9/20) libtool -> already built ] [(10/20) pkg-config -> already built ] [(11/20) orc-tool -> already built ] [(12/20) libffi -> already built ] [(13/20) zlib -> already built ] [(14/20) glib -> fetch ] -----> Step done [(14/20) glib -> extract ] -----> Step done [(14/20) glib -> configure ] You don't have gtk-doc installed, and thus won't be able to generate the documentation. autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS} ' is already registered with AC_CONFIG_FILES. ../../lib/autoconf/status.m4:288: AC_CONFIG_FILES is expanded from... configure.ac:3472: the top level /bin/m4: cannot remove temporary directory /tmp/ar6425.8188/m4-zAwup1: Directory not empty autom4te: /bin/m4 failed with exit status: 1 aclocal: error: echo failed with exit status: 1 autoreconf: aclocal failed with exit status: 1
Is there a setup step I am missing or an alteration to the recipe that will correct this?
Thanks in advance for any assistance you can provide.