Much poorer quality while using the Wireless Live Streaming plugin?

Howdy!

I’m trying to use my Theta V to livestream some of my son’s hockey games. Tried it for the first time last night, and while it worked, the quality was not nearly as good as recording locally. I was streaming with 4k at 20mbit to Facebook… I validated on the router and FB stats that it was indeed getting a full 20mbit.

I’ve uploaded example files here:
https://drive.google.com/file/d/1bSGQt8ahGVTFFGAB0hEN-QyswGIJXWMy/view?usp=sharing

Files:

  • locally-processed-still-photo.JPG - a still photo as processed by the camera. Looks quite decent.
  • locally-recorded-raw.MP4 - a video saved directly to the camera, in the dual-fisheye view.
  • locally-recorded-stitched-with-ricoh-windows-app.MP4 - the video above, as processed by the ‘RICOH THETA’ app on Windows. It looks fairly decent. Quite short, as I actually recorded it by accident… but am glad I did!
  • streamed-to-facebook-clip.mp4 - A clip from the livestream on Facebook; I downloaded the raw stream file after it was finished, extracted a 60s clip (using ffmpeg to copy the video and audio as-is), and then re-added the 360 metadata to the mp4. I initially thought it was just out of focus - but looking at the video, the quality appears degraded everywhere.

Any ideas where I went wrong with this? Any chance the in-camera stitching just can’t handle this quality?

As a side note, is there an option to do a live stream using only the front lens? I haven’t been able to find anything yet.

Appreciate any thoughts!

Is the V connected to the Wi-Fi router with 5GHz? It may help a little.

If the Wi-Fi router is a mobile phone hotspot, put the hotspot right next to the camera. Being within 12 inches might make a difference. The signal will degrade if there is any metal between the camera and Wi-Fi router. The signal will degrade if there is Wi-Fi channel interference. It may get worse if it is 5 feet out.

Can you test streaming with a Windows or Mac laptop and a USB cable and stream directly from the laptop to FB or YouTube for comparison?

https://youtu.be/dp5BLbtKVwk

https://youtu.be/Vxq-TJE_UR4

You may want to consider Ethernet streaming to a router.

http://theta360developers.github.io/community-document/live-streaming.html#_ethernet_rtsp_streaming_direct_to_computer

Is the router your mobile phone in hotspot mode?

Also, I do not know of a way to stream from one lens only, but it is technically possible with a plug-in. No one has developed this plug-in yet that I know of.

1 Like

Fortunately, this arena has a good internet connection… it was hooked up to a portable router I brought with, which was plugged into an ethernet connection and broadcasting an SSID at 5ghz only. It was about 40 feet from the Theta, with direct line of sight. I was watching the network for any dropouts/etc, and not seeing anything - so I don’t think the issue was inadequate bandwidth, but I can test to make sure.

This was my first attempt, and I only had a short period of time before the game started, so didn’t try much. I will have to come during a practice and test out other options. I’m also planning on testing with the RTSP plugin, so I can just directly connect my laptop and view the stream there to make sure things look good.

I am planning on testing out ethernet streaming - but it seems like the adapter I purchased (https://www.cablematters.com/pc-489-138-usb-20-to-fast-ethernet-adapter.aspx Realtek R8152 based adapter) may not be compatible… it gets a link to the switch when plugged into the Theta, but the Theta never requests an IP address. I’m waiting for my developer application to be approved so I can turn on developer mode and use logcat to see what’s actually happening before purchasing a new adapter.

So at least it sounds like poor quality when using the Wireless Live Streaming plugin isn’t a thing that others are seeing frequently? If so - that’s good to hear; I will have to keep working on my settings to hopefully get reasonable quality out of it!

For single lens streaming – I did see the ‘Single Lens Shooting’ plugin, which can do this for still images - if I have time I might take a look at the source code for both plugins and see if I can combine that functionality into the live streaming plugin.

If you have time, can you fill out this survey for plug-in development? We’re trying to help RICOH improve the free services they provide to developers.

https://questant.jp/q/thetapluginsite02en

Thank you.

Done! I still haven’t received the acceptance to the program yet, I’m hoping that will come soon! :slight_smile:

1 Like

Hi,
I have some questions. I tried to stream to facebook, but it was requiring RTMPS secure protocol and I don’t think it worked for me toward Facebook using Wireless Streaming Plugin. Could you confirm this please?

I’m developing a better quality Wireless Live streaming plugin and doing lot of tests. I have also my own platform built here you can see a test done on Z1 using my plugin, but I believe that on V it may also work on theta V close to this quality: LIVE STREAM SAMPLE - WINTER COMING | FlowTours

Planning to make it availalbe via store for testing soon.

I used mobile network shared via hotspot, it was a 4g network only.

Thanks,
Laszlo

Does live streaming in 360 work on Facebook in general? When I tried it 9 months ago the 360 view was not working. It was working in early 2020. Around June, it stopped working. Now, maybe 360 Live Streaming works again?

You’re getting some excellent quality from your software.

Maybe you and Nate can collaborate on using your technology to stream amateur sporting events?

You can see some of the cool projects Nate is working on at the link below.

I think your plug-in might be usable for sports arenas where the full audience cannot easily get to the rink due to COVID-19 restrictions.

Maybe it can also be used for amateur dance recitals? This is where a dance school puts on a performance once a year or twice a year and people can’t attend it in person due to indoor gathering restrictions.

360 streaming does indeed work for me on Facebook, it is what I tested with when I made this post. I believe it did require rtmps, didn’t have any issues with that with the plugin. I will be giving this a shot again tonight most likely, also testing an Orah 4i box.

Agreed that people appreciate this content since they can’t attend right now!

@biviel is your plugin code available? I could give it a shot on my V.

1 Like

Laszlo is building a commercial streaming plugin, so not open source as far as I know. He’s going to put it in the store. I think he can supply more information. Thanks for the confirmation on Facebook. We may ask a part time staff to produce a tutorial on this

Oh yeah that’d make it hard to test out. :slight_smile:

I do also have a working ethernet adapter now, and OBS set up on my laptop for USB streaming… so hopefully I can test out multiple streaming methods and see what looks the best.

2 Likes

hi!

not necessarily. Doing some work to make it ready for testing for free, I mean to make it available via ricoh store.

@craig can we proceed with putting plugin there even if only some people may be able to run it? I mean number of testers would be controlled and limited by me? I’m still checking whether I can cover facebook as destination platform too… But of course quality is best on my own platform.

Thanks,
Laszlo

Laszlo,
You can put the plug-in in the store for testing. However, it will be accessible to everyone. There is no way to restrict access to the plug-in on the store. There is no “private” section of the plug-in store as of March 3, 2021.

You can mark the plug-in as “for testing” and then prevent wide usage by having the plug-in startup and then use the web server in the plug-in to accept a license key or log into your system. Once the test period is over, send the plug-in store management team a note to delete the plug-in.

As this is not ideal, I recommend that you fill out the plug-in developer survey below in order to give more feedback on how the store can be modified to help plug-in developers.

Just to recap, if you submit a “test plug-in” to the store, it will appear on the public store, same as the other plug-ins.

You’re getting very good video quality with your plug-in. I still don’t understand how you improved the light/dark contrast or what your technique of “hdr streaming” is, but it looks fantastic in your test clips.

BTW, have you seen a way to adjust the stream independently, 180 degree for each lens, from inside the plug-in? This question comes up often. It could be a way to manage bandwidth by streaming higher resolution to the portion of the video that is being viewed at the current time.

I don’t think YouTube or Facebook can stream 180 degree video, but a commercial viewing system could.

hi, @craig ,
thanks for your answer! Yes, I’m trying to handle that controlling mechanism from my end, on website as initially I can involve only very limited number of volunteers for testing. So we can put there plugin to store so everyone using z1 or v could download and install, but license, time limit, anything should be handled on my end in plugin and on my website/application, to allow/disallow running the plugin.

About adjusting stream independently from plugin, this would mean that the number of viewers would be very limited for sure and also there may be still latency issues. As the movement of cam/head should come back to the plugin and change the view on the fly, so that only portion of the lens image would be transferred, right? This is what you refer to? Are you aware of any code or properties in the cam to modify, alter a bit stitching of two lenses? A viewer usually sees only about 60-70 degrees on the screen. It’s not necessary to stream full 4k, we could reduce to half size (to have some “buffer” around when cam is moving need more than actual view angle), but bigger quality. My only concern is that we have to use dual fisheye output or equirectangular. To make it fast we need to copy a rect from one of these and pack/stream only that. It should work, but where to deliver? It would requires some custom coding, mapping to a sphere in browser or to cube geometry. I may over complicate this and I may misunderstood you, please let me know.

Regards,
Laszlo

I believe Craig was asking about getting an independent streams (with genlock or similar to ensure they are in sync) for each lens, with full resolution for said lens, so that stitching can be performed externally on a more powerful machine, to get the absolute best quality possible out of the camera. (At least that’s what I meant when I asked a similar question elsewhere!) I am assuming that the cameras put out more resolution than is available in a dual-fisheye stream, which is why I was wondering.

From your previous posts, it sounds like you are actually grabbing individual images, versus a stream? If that’s the case, I wouldn’t expect this to work, as I don’t think it would be possible to guarantee that the frames are in sync in that case.

hi,
not clear what @craig meant here. For stitching remotely on a server, anyway will need both streams transferred at the same time. Encoding 2x 2k vs 1x4k shouldn’t help. Anyway, stitching off the cam may be an issue, just to be aware of. I think each cam produces a bit different dual fisheye image, so the position is unique. IF you want to stitch remotely, have to “calibrate” manually by adjusting ~4 parameters in a math equation.

Regarding streaming in my plugin, I covered both scenarios: I’m capturing HDR shots in dual fisheye format (4k) and doing stitching outside of camera and also doing normal video streams with my plugin, stitching in cam and generating equirectangular format directly by the cam.
In both scenarios issue is heating of the cam. It works stable at around 20-24FPS, but heating is an issue, wifi adds some extra heating, so in warm room, it streamed for 20-25 minutes before stopping, without any ventilation there. By attaching heat sinks to the body, I managed to make it work for hours via wifi.

Laszlo

1 Like

@biviel , Laszlo, can you confirm that you’re using Z1 firmware 1.60.1 and the Z1 is still overheating for prolonged streaming with the plug-in when the video stream is stitched inside the camera? @jcasman and I are meeting with a RICOH manager this week and I want to ask him if he’s heard of this problem with plug-ins. Did you try the RICOH Wireless Streaming Plug-in and it overheats as well? I’m going to try and test the RTSP plug-in with the Z1 at 4K and see if I can stream it for longer than 25 minutes.

hi, @craig . I did lot of tests and the original cam, Z1 with firmware 1.60.1 still shuts down when streaming in 4k in about 25-30 minutes for me. I noticed that logging was disabled on latest 2
firmwares… I may try to turn off developer mode and test again as it may have some influence. I’m using it connecting to WiFi 2.4g, same as with original wireless streaming plugin. That plugin also overheats fast, but I did not measure lately.

Laszlo

Thanks. I have your last two notes in the agenda now.

I have a note in the agenda about the plug-in debug log turned off in the firmware, making development more difficult. However, I have not had time to test it yet.

We’re going to meet with our contact at RICOH on Friday.

Test 1 with VLC

after 23 minutes camera is still on, but resolution somehow got lower. Will try with ffplay.

Update: I read my post here: RTSP Streaming Plug-in - #33 by craig
and it seems I had frame degradation at 4K when I tested it on Jan 15, 2021.

Hi, @craig ,

I also have an update. I turned of development mode on Z1, which has no heat sinks at all(how did ‘net’ get here before?). I switched wifi to 5ghz and was able to achieve 1 hour streaming time via WiFi. I was checking some articles about heating/power consumption of wireless chips on some android devices, so I realized that using 5ghz instead of 2.4 may help. And it did. I think there is also some space to lower cpu power a bit, bandwidth usage, etc. Quality decrease would not be noticeable, but will have to do more tests. Heating is of course still an issue, is there a way by Ricoh, to increase sensitivity of heat sensor by 5%? I mean to turn off device a bit later, when it’s a bit warmer. I know that they do not want to burn the device, but I’m not sure it will burn… anyway they could know if it does? :slight_smile:

Regarding seeing logs during development, I was able to turn back on logs by adb command, I will add here later.

To enable logging again on latesf firmwares, playing with this worked:

adb shell setprop persist.log.tag 0

Im not 100% sure about the proper value, it may be 1, or --Log.

Laszlo

1 Like