Hi All,
I’ve been chasing down webcam streaming issues in recent days and it seems as though iOS 10.3.1 may have broken streaming via webcams (MJPEG and h264 / RTSP) over cellular networks using GStreamer. I’m just wondering if anyone else can confirm
that? Streaming via wifi works no problem. The issue doesn’t exist in iOS 10.2.x or earlier. I’ve tried multiple versions of GStreamer (1.11.90, 1.10.4, 1.8.3, 1.6.4) using gst-player and playbin and they all exhibit the same behavior when used in an iOS
app.
[31;01mERROR [00m [00m gst-player gstplayer.c:1160:error_cb:<player0>[00m ERROR: from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source: Could not establish connection to server.
[31;01mERROR [00m [00m gst-player gstplayer.c:1162:error_cb:<player0>[00m Additional debug info:
gstsouphttpsrc.c(1294): gst_soup_http_src_parse_status (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source: Could not connect: Network is unreachable (4), URL: http://xx.xx.xx.xx/mjpg/video.mjpg?resolution=1024x768, Redirect to: (NULL) [00m Error: Error from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source: Could not open resource for reading.
Could not establish connection to server. gstsouphttpsrc.c(1294): gst_soup_http_src_parse_status (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source: Could not connect: Network is unreachable (4), URL: http://xx.xx.xx.xx/mjpg/video.mjpg?resolution=1024x768, Redirect to: (NULL) (gst-player-error-quark, 0) [00m 0x5a78138 [37mDEBUG [00m [00m gst-player gstplayer.c:866:change_state:<player0>[00m Changing app state from buffering to stopped
I’ve tried a number of internet accessible cameras. Initially I thought this might be due to the fact that some lower level networking libraries on iOS will not wake the cellular radio. As a test I created a simple socket server that made certain
the cellular radio was always active, but there was no difference. Curiously souphttpsrc logs that it got headers:
souphttpsrc gstsouphttpsrc.c:1034:gst_soup_http_src_got_headers:<source>[00m got headers even when it’s reporting the network as unreachable. This doesn’t seem like a GStreamer issue per se (as it has worked up until very recently), but I thought I’d throw it out there to see if anyone else is having issues or, better yet, has a solution! _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
An addendum to this issue… It appears to be the case that there are no problems over cellular when using a named host. A host with an IP address however, fails.
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Michael McNamara
What cell provider are you using for both iOS 10.2 and iOS 10.3.1? In iOS 10.2, T-Mobile turned on DNS64 support which breaks anything that passes an IPv4 string literal. For more information, here's a decent link on DNS64: https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html.
|
I’ve seen this on T-Mobile, AT&T and have second hand reports of Verizon as well. 10.3.x only. There’s no problem is iOS 10.2.x FWIW. We did IPv6 testing when Apple first brought the issue to light and didn’t experience any issues. However it would certainly seem as if IPv6 is in fact the issue here.
In glib (2.50-3), gresolver.c in gio makes use of inet_aton() which is called out in Apple's document as being problematic. gresolver.c appears to primarily be used by various clock related classes — which may (or may not, I haven’t walked a stack trace) help explain why streaming is problematic. This is the only place I immediately found that doesn’t make use of getaddrinfo(). gthreadedresolver.c and ginetsocketaddress.c make use of getaddrinfo() for example. I wonder if swapping for inet_aton() for inet_pton() or implementing getaddrinfo() in gresolver.c might fix the issue. Thanks for the reply! > On Apr 26, 2017, at 7:30 AM, jml5qh <[hidden email]> wrote: > > What cell provider are you using for both iOS 10.2 and iOS 10.3.1? In iOS > 10.2, T-Mobile turned on DNS64 support which breaks anything that passes an > IPv4 string literal. For more information, here's a decent link on DNS64: > https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html. > > > > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/iOS-10-3-1-breaks-streaming-over-cellular-tp4682803p4682817.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I was using udpsrc/udpsink and had to manually use getaddrinfo to convert the IPv4 literal to the possible IPv6 version. We would then take that output and give it to udpsrc/udpsink which fixed the issue
|
Le mercredi 26 avril 2017 à 12:30 -0700, jml5qh a écrit :
> I was using udpsrc/udpsink and had to manually use getaddrinfo to convert the > IPv4 literal to the possible IPv6 version. We would then take that output > and give it to udpsrc/udpsink which fixed the issue Has anyone filed a bug on gnome.org ? This will help in tracking this issue. I would file it against udpsrc/sink in the first place. We can then decide to fix it in GLib, we'll move the bug accordingly. regards, Nicolas _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (188 bytes) Download Attachment |
Free forum by Nabble | Edit this page |