Closed suganthikarthick closed 9 years ago
Yes, that is quite possible.
Thanks for your response.
We have the camera seperate and we are receiving the camera streams via Wifi and planning to use gstreamer. The signaling server is websocket based. Whether we can use the test_client.c application for communicating with the web scoket based signaling server, or can we modify for working with a websocket based application?
The test client uses the libsoup HTTP library which supports WebSockets so that part should be doable.
You can either modify OpenWebRTC to add code to receive your camera streams from wifi or you can use libopenwebrtc-gst, though the usability of that is quite immature. You would need to enable building of that part of OpenWebRTC through the configure script options. Then you could create a custom gst media source and set your GStreamer bin that is receiving the camera streams onto it. Note that the output of the bin would need to be uncompressed data currently.
What do you get from your camera streams?
We are receving as rtp streams from the camera, which is H.264 encoded. Thanks.
We have implemented an application by having the test_client.c application as a base. When executing, it is showing error as follows.
"owrsession owr_session.c:635:_owr_session_emit_ice_state_changed:OwrMediaSession@0x15870f0 Session 1, ICE failed to establish a connection! ICE state changed from disconnected to failed"
It would be great if someone gives suggestion for resolving the issue. Thanks.
What networks are you devices on? Are you behind any firewalls?
We are behind our local network and trying to connect to other network. How to resolve the firewall issue?
Are you using a STUN server?
Yes. We are using the default "stun.services.mozilla.com:3478" for our purpose.
I think we were using that on http://demo.openwebrtc.io/ but it proved to be not so stable, similarly we had issues with Google's STUN server so we switched to our own STUN server. Try with these: https://github.com/EricssonResearch/openwebrtc-examples/blob/master/web/client/main.js#L29
u meant "mmt-stun.verkstad.net"? Can you give the port numbers also?
3478 is the standard STUN port.
ok. Thank you so much.
Hi, We need to use the the media streams via gstreamer instead of capturing from the webcam of my mahcine itself. For using the media streams from gstreamer and use that in openwebrtc, we came to know that we need to enable the --enable-owr-gst=yes in the config file.
How to find whether the flag "--enable-owr-gst" is already enabled. If it is not enabled, how to enable it. Thanks.
The GStreamer parts are disabled by default. You will need to enable them in the build, but know that they are not so mature so you may need to report bugs and/or fix things. You can do that in your cerbero clone by editing recipes/openwebrtc.recipe and adding --enable-owr-gst to the configure flags at the beginning of prepare()
: https://github.com/EricssonResearch/cerbero/blob/master/recipes/openwebrtc.recipe#L76
For example, you could add the following line at the beginning of that function:
self.configure_options += ' --enable-owr-gst '
Thank you.
Hi, Thanks for the response.
Still there some confusions. Whether the custom GStreamer sources can be used for receiving ONLY RAW media data OR it is possible to receive a COMPRESSED MEDIA DATA?
Thanks in advance.
Your custom GStreamer source would currently have to decompress the media. See https://github.com/EricssonResearch/openwebrtc/issues/224
Thank you. Currently I am using the test_gst_io.c sample application for understanding the usage of setting the custom sources in openwebrtc. I made the following changse in test_gst_io.c
From another machine, I am sending the streams through UDP on port 5000. And, when executing the app, I am getting the following error. Error parsing 'udpsrc port=5000 ! application/x-rtp ! rtph264depay ! h264parse ! avdec_h264 ! video/x- raw,width=640,height=480 ! videoscale' : no element " avdec_h264"
But when I run the above command with gst-launch with the following command, we are not getting error for avdec_h264 element. "gst-launch-1.0 udpsrc port=5000 ! application/x-rtp ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink" Here, we are able to receive the video fine.
It would be helpful if you give your suggestion on why the "no element : avdec_h264" issue is arise when running the test_gst_io.c with modified custom video source.
Thanks.
We don't build gst-libav as part of OpenWebRTC. If you wish to do that then you will need to modify the OpenWebRTC cerbero fork appropriately.
Alternatively, we do build OpenH264 and openh264dec. Try replacing avdec_h264 with openh264dec.
Thank you so much. Now that error got resolved.
Now getting error as follows.
(lt-test-gst-io:7605): GLib-GObject-WARNING **: g_object_set_valist: object class 'GstBin' has no property named 'enable-last-sample' ==== Error message start ==== Error in element udpsrc0. Error: Internal data flow error. Debugging info: gstbasesrc.c(2943): gst_base_src_loop (): /GstPipeline:media-renderer-1/GstBin:bin2/GstUDPSrc:udpsrc0: streaming task paused, reason not-negotiated (-4) ==== Error message stop ====
Run with GST_DEBUG=6
set in your environment variables, output the log to file, compress it (zip, gzip, bzip2, xz, whatever is fine) and upload it somewhere then link it here.
Thanks. Sure, I will upload the details. Before that I have a general question. Whether the openwebrtc0.3.0 has support for handling the gst with "udpsrc" in CUSTOM SOURCE without any modification in the openwebrtc stack?
Thanks.
I can't guarantee it but I think it should. You would have to build it yourself as you have done. But it should work.
Hi,
The modification in test_gst_io.c file is as below:
rtph264depay ! h264parse ! openh264dec ! capsfilter caps=\"video/x-raw, width=(int)1280, height=(int)720\" ! videoscale"
No other changes in the sample file.
The logs that we got is attached with this mail. Please find the attached log file.
Thanks.
On Wed, Jul 1, 2015 at 10:03 AM, Robert Swain notifications@github.com wrote:
I can't guarantee it but I think it should. You would have to build it yourself as you have done. But it should work.
— Reply to this email directly or view it on GitHub https://github.com/EricssonResearch/openwebrtc/issues/403#issuecomment-117432172 .
I don't think attachments work with GitHub. Can you email me privately at robert.swain@ericsson.com?
We have sent the log file to the given mail id. Thanks.
I see that the H.264 bitstream is identified as H.264 High Profile. OpenH264 does not support High Profile. Is it possible to adjust the settings on your network camera to Constrained Baseline Profile? If not, you will have to look into adding some other H.264 decoder to your build, though that could be as simple as adding gst-libav-1.0 to the dependencies of recipes/openwebrtc.recipe
in cerbero.
configure: Requested 'gstreamer-1.0 >= 1.5.2.1' but version of GStreamer is 1.5.1.1 I added it inside the openwenrtc.receipe dependency. I am getting following error when building.
configure: error: no gstreamer-1.0 >= 1.5.2.1 (GStreamer) found Running command 'sh ./autogen.sh --noconfigure && ./configure --prefix /opt/openwebrtc-0.3 --libdir /opt/openwebrtc-0.3/lib --enable-lgpl --disable-examples --disable-maintainer-mode --disable-silent-rules --enable-introspection --disable-maintainer-mode --disable-silent-rules --enable-introspection '
***\ Error running 'package' command: Recipe 'gst-libav-1.0' failed at the build step 'configure'
You will need to modify the test_client.c code to use the custom media source as it is done in test_gst_io.c
Ok, Thank you Robert.
Hi, How to stop the gst custom media source transfer in our native webrtc application. If we need to quit the media transfer, what would be best way to quit it?
Thanks.
Where the source was being used, call set source or set send source with NULL as the source argument. Then unref it with g_object_unref.
You may have to do some manual cleanup of the GStreamer elements after. I'm not sure without looking at the code.
audio_src = get_custom_media_source(OWR_MEDIA_TYPE_AUDIO, CUSTOM_AUDIO_SOURCE);
And the media session part creation part is similar to the test client application.
I am getting following warnings while setting the set_send_source function with NULL param during my reset. CRITICAL **: owr_media_source_release_source_default: assertion 'media_source->priv->source_bin' failed
Hi, Whether the openWebrtc depends on "libgstdtls and libgstinter"? Do we need these gst plugin elements? If we do not need this, how to remove this library dependency form openwebrtc?
Please give your suggestion on this. Thanks.
Yes, it does.
Ok. Thank you.
Hi Robert,
We are currently installing the openwebrtc using cerbero building system in Ubuntu linux. but we are getting the following error.
Running command 'dpkg-buildpackage -rfakeroot -us -uc -D -b' dpkg-buildpackage: source package openwebrtc-gstreamer-1.0-core dpkg-buildpackage: source version 1.5.2-1 dpkg-buildpackage: source distribution unstable dpkg-buildpackage: source changed by OpenWebRTC packages@openwebrtc.io dpkg-buildpackage: host architecture amd64 dpkg-source --before-build openwebrtc-gstreamer-1.0-core-1.5.2 fakeroot debian/rules clean dh_testdir dh_testroot rm -f build-stamp dh_clean debian/rules build dh_testdir touch build-stamp fakeroot debian/rules binary dh_testdir dh_testroot dh_prep dh_installdirs dh_installdocs dh_install dh_testdir -a dh_testroot -a dh_strip -a --dbg-package=openwebrtc-gstreamer-1.0-core-dbg dh_link -a dh_compress -a dh_fixperms -a dh_makeshlibs -a -V dh_installdeb -a dh_shlibdeps -a dpkg-shlibdeps: error: no dependency information found for /opt/openwebrtc-0.3/lib/libjpeg.so.8 (used by debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstopengl.so) dh_shlibdeps: dpkg-shlibdeps -Tdebian/openwebrtc-gstreamer-1.0-core.substvars debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/bin/gst-typefind-1.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/bin/gst-launch-1.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/bin/gst-play-1.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/bin/gst-discoverer-1.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/bin/gst-device-monitor-1.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/bin/gst-inspect-1.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/libexec/gstreamer-1.0/gst-plugin-scanner debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstfft-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstudp.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvolume.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstmulaw.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstrtp.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstrtpmanager.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstpulse.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstopengl.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvpx.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvideorate.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstgtksink.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstaudiorate.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstsrtp.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstaudioconvert.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvideoparsersbad.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvideo4linux2.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstopus.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstaudiotestsrc.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvideocrop.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstalaw.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstopenh264.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvideoscale.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstnice.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvideofilter.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvideoconvert.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstdtls.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstaudioresample.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgsttypefindfunctions.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstapp.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstcoreelements.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstinter.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstvideotestsrc.so debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstcontroller-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstcodecparsers-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstcheck-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstnet-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libvpx.so.2.0.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstriff-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstsdp-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libsrtp.so.1 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstgl-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstapp-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libnice.so.10.6.2 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libopus.so.0.5.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstpbutils-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libopenh264.so.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstbadvideo-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstvideo-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstbase-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstbadbase-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstaudio-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstrtp-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstreamer-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgsttag-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstallocators-1.0.so.0.502.0 debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/libgstrtsp-1.0.so.0.502.0 returned exit code 2 make: * [binary-arch] Error 2 dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 Traceback (most recent call last): File "./cerbero/main.py", line 105, in run_command res = commands.run(command, self.config, self.args) File "./cerbero/commands/init.py", line 78, in run return _commands[command].run(config, args) File "./cerbero/commands/package.py", line 97, in run args.force, args.keep_temp) File "./cerbero/packages/linux.py", line 57, in pack self.pack_deps(output_dir, tmpdir, force) File "./cerbero/packages/linux.py", line 115, in pack_deps packager.pack(output_dir, self.devel, force, True, True, tmpdir) File "./cerbero/packages/linux.py", line 78, in pack paths = self.build(outputdir, tarname, tmpdir, packagedir, srcdir) File "./cerbero/packages/debian.py", line 282, in build shell.call('dpkg-buildpackage -rfakeroot -us -uc -D -b', srcdir) File "./cerbero/utils/shell.py", line 157, in call raise FatalError(("Error running command: %s") % cmd) FatalError: Fatal Error: Error running command: dpkg-buildpackage -rfakeroot -us -uc -D -b *** Error running 'package' command: Fatal Error: Error running command: dpkg-buildpackage -rfakeroot -us -uc -D -b usage: cerbero-uninstalled [-h] [-c CONFIG] add-recipe,rdeps,tag,genxcconfig,genlibfiles,check,list-packages,build,add-package,show-config,genvsprops,shell,run,cleanone,packageinfo,buildone,wipe,debug-packages,package,bootstrap,list,checkpackage,deps,gensdkshell.
Thanks a lot in advance
`dpkg-shlibdeps: error: no dependency information found for /opt/openwebrtc-0.3/lib/libjpeg.so.8 (used by debian/openwebrtc-gstreamer-1.0-core/opt/openwebrtc-0.3/lib/gstreamer-1.0/libgstopengl.so)``
That is the error line. Does it happen every time? Do you have libjpeg.so.8 somewhere in /opt/openwebrtc-0.3/ ?
No. We tried once. We have this library libjpeg.so.8 in /opt/openwebrtc-0.3/. But still, we tried to run the application and it is working fine. But we got the error at the last stage of the cerbero build.
Hi Robert, We have a question when using the local media sources. We have a webcam connected to our system. If the video source is coming as H264 encoded format from the webcam, whether the openwebrtc is able to handle the compressed (H264) video and audio(AAC) sources. Can you please confirm about this?
Thanks.
Now that issue #240 is almost addressed, it should be possible to support compressed sources soon. Maybe hop onto IRC and talk to slomo (@sdroege)
Thank you so much.
Currently we are using the openwebrtc-0.3 version. In that, if v4l2src is used for capturing the local video source, whether it will be taken as video/x-raw or it is able to use as video/x-h264 in case of compressed video input from webcam?
If reading compressed video is currently not supported, then you are telling that the new openwebrtc stack will be released soon for reading the compressed video (H264)? My understanding is correct?
0.3 will use video/x-raw.
Issue #224 is the one to track for compressed source support.
ok, Thank you.
Hi Robert,
Do you have any suggestion on how to send the audio and video in sync from the openwebrtc application? Thanks.
Hi, In the libvpx library, we have enabled the CONFIG_REALTIME_ONLY and CONFIG_ONTHEFLY_BITPACKING. Now when we are using gst-launch command for sending the video from device to another machine, there is no delay now. But still, a delay of 4s is there in the openwebrtc application. What might be affecting the delay. we played around with the vp8 encoding also.
What else may create this delay of 4s. It would be of great help.
Then how to output the remote source into a udp stream (udp://xxxxxxx) rather than rendering on a browser?
Hi all, We have an embedded device which has a camera. we need to stream the media from the device to a browser (firefox or chrome). The device doesnot have a browser. We need to create a webrtc application which can run without browser and it should be able to send webrtc streams without browser. Whether we can use OpenWebRTC for creating webrtc applications without browser? We have a signaling server also in middle, for initial connection. The device is linux based.
Thanks in advance. Suganthi