Score:2

How can I view my Wyze Camera live video stream on Linux Ubuntu?

cn flag

How can I view my Wyze Camera live video stream on Linux Ubuntu?

I have the Wyze Cam V3.

Constraints:

  1. I really don't want to lose the ability to view the video feed from the app on my phone when I leave the house.
  2. Ideally, I won't lose any other modern features Wyze provides, and automatic firmware updates will still take place.
cocomac avatar
cn flag
You can flash the firmware [to make it output a standard RTSP stream](https://support.wyze.com/hc/en-us/articles/360026245231-Wyze-Cam-RTSP), and then you could view the RTSP stream with an app like [VLC Media Player](https://packages.ubuntu.com/focal/vlc). Alternatively, you might be able to run the Wyze app in an Android emulator. But there isn't an official Linux app for the Wyze camera.
Gabriel Staples avatar
cn flag
@cocomac, thanks for the suggestion! That sounds more like an answer than a comment. Consider making it an answer. However, a few big issues exist with the RTSP firmware from Wyze. They say on that page: 1) "Please note that features and functions added after the version will not be available." and 2) "AI and other Cam Plus-related features may be unstable for cameras using this firmware". So, it looks like it has limited support, reduced features, and no automatic updates once you do this. Is there any other way?
Gabriel Staples avatar
cn flag
Follow-up question: [Which Android emulators/virtual machines run well in Ubuntu?](https://askubuntu.com/q/1392621/327339)
Score:3
cn flag

Here are 3 options I came up with. If you can find a better Android emulator for Ubuntu, however, please do post another answer below and/or on my follow-up question here: Which Android emulators/virtual machines run well on Ubuntu 18.04 and 20.04 or later?

1. What I tested that (sluggishly) works:

(virtual machine within a virtual machine)

I really hate this solution because it's extremely heavy, requires a virtual machine within a virtual machine, and is super slow and requires a massive amount of filesystem storage space, but it does work.

  1. Install the VirtualBox virtual machine on Ubuntu 20.04.

  2. Install Windows 10 64-bit inside VirtualBox

    1. Get the official Windows 10 iso file from Microsoft here: https://www.microsoft.com/en-us/software-download/windows10ISO
  3. Install the BlueStacks 5 Android emulator in Windows 10 (it's running Android 7, even though Android 12 is out).

  4. Click on the Play Store in the BlueStacks Android emulator, and log in with your Google Account. Download the Wyze app.

  5. Log in to the Wyze App, and click on the camera stream you'd like to view. If you get this error message:

    Connection failed.

    Please try:1.Force close app and retry
    2.Power cycle the camera.

    enter image description here

    ...then:

    1. first, power cycle the camera by unplugging it and plugging it back in. Go back a step in the app and try viewing the livestream again. If that works, great! If not:
    2. close BlueStacks, reboot your Windows 10 virtual machine, then close Virtual Box, letting it save its state. Next, reboot your Ubuntu machine. When back in Ubuntu, open VirtualBox, open Windows 10, re-open BlueStacks, and try again.

    The Wyze app now works fine for me. It is just super slow is all. If I open up a video stream on my phone and on my computer simultaneously and compare the live timestamps counting up in the bottom-right of the video, I can see the livestream on my computer is 20~30 seconds delayed! Playing back videos from the history is also super sluggish, and takes ~15 seconds to load the video after each time changing the position on the timeline. Video plays back slow too, at ~0.75x or so. This is all on a pretty-powerful laptop, mind you, which was ~$2500 in 2019 and has 16 GiB RAM, 512 GiB m.2 SSD, Intel(R) Core(TM) i7-8650U CPU (8 hyperthreads).

Other Issues with this solution:

  1. BlueStacks runs an old version of Android (version 7.1.1, as reported when visiting the website http://demo.mobiledetect.net/ from that system (where I learned this)).
  2. BlueStacks runs extremely slow since it's limited to 1 core since I can't enter the VirtualBox BIOS/UEFI (since it has none) to enable Intel virtualization. In other words, I have that turned on in my real UEFI settings, but it appears it only works one virtual machine level deep, so Windows gets that running inside a virtual machine in Linux, but Android does not get that running inside the BlueStacks virtual machine inside my Windows virtual machine.

2. The compromise solution: change your Wyze camera firmware

As @cocomac says:

You can flash the firmware to make it output a standard RTSP stream, and then you could view the RTSP stream with an app like VLC Media Player.

I haven't tried this, but I expect it would work.

However, a few big issues exist with the RTSP firmware from Wyze:

They say on that page:

  1. "Please note that features and functions added after the version will not be available." and
  2. "AI and other Cam Plus-related features may be unstable for cameras using this firmware".

So, it looks like it has limited support, reduced features, and no automatic updates once you do this. Those issues are a big turn-off for me.

3. What I did instead (I used my phone)

My goal was to monitor my baby in another room while I worked on writing an AskUbuntu question. I had a spare laptop nearby and thought, "Oh, I can probably view my Wyze camera there and watch the baby." Nope! But, it turns out the Wyze app runs great in Android on my phone, and when viewing a live video stream it keeps the phone from going to sleep, so after 1 hr messing around trying to do the virtual machine solution above, I just plugged in my phone to a charger, put it on a little stand I have for it, and set it next to my computer. The screen is tiny in comparison to my laptop, but at least it ran well, stayed awake on my phone, and didn't require a virtual machine within a virtual machine.

So...I'm still waiting on a better Ubuntu solution, but at least options 1 and 3 work.

See also my follow-up question here: Which Android emulators/virtual machines run well on Ubuntu 18.04 and 20.04 or later?

References:

  1. Where I learned about using http://demo.mobiledetect.net/ in your browser to check Android version: Stack Overflow: How to check Android OS version of bluestacks Emulator
Score:1
cn flag

Download Android-x64 from FossHub*. Use the Android-x64 64-bit ISO version. I picked the 9.0-r2, but simply picking any 64-Bit ISO should do.

I'm assuming you have VirtualBox installed**.

Make a new VirtalBox VM. Name it whatever you want (I picked Android). Set the type to Other and the version to Other/Unknown (64-bit). I gave it 2GB RAM, but more RAM should work fine, too. Create a virtual hard disk. Select VDI (VirtualBox Disk Image) for the type. I did dynamically allocated, but Fixed size should work too. Make the disk 16 GB. Save it. Now go to Settings for that VM, and under Storage, where there is a CD icon followed by the text Empty, and tell it to use the android-x86_64-9.0-r2.iso file that we downloaded from before. Also, set the Network mode to "Bridged Adapter". Hit OK. Now, time to start the VM. Press Start (below the big green arrow).

Alrighty, if all went well, when you hit start, you should be given a few options:

Live CD - Run Android-x86 without installation
Live CD - Debug mode
Installation - InstallAndroid-x86 to harddisk
Andvanced options...

Use the arrow keys to select Installation. Use the down arrow key to select Create/modify partitions (and press enter), tell it to NOT use GPT. Do New. Select Primary (as opposed to Logical partition or Cancel). Accept the default size. Press enter on Bootable so that under Flags it says Boot. Now do Write. Type yes (and press enter). It will take a few (perhaps ten, maybe more depending on the size + speed of your disk). Now do Quit. It will bring you to a menu called Choose Partition. Select sda1, and it OK. It will prompt you to select a filesystem. Select ext4 for the filesystem. Select Yes, you want to format it. Select Yes to if you want GRUB (the default is Skip, you want Yes). Also say Yes to if you want the /system directory as read-write. Once it installs, select Run Android-x86.

It will sit on the android logo for perhaps thirty seconds. Once it boots, press the yellow start button, and go through setup. Select VirtWifi as your network. I wouldn't add a password, as it's in VirtualBox, but you can if you want. Launch the Play Store, and sign into your Google Account. I would disable the Back up to Google Drive option during Google Play Store setup, but you can if you want. Search for the Wyze app, hit Install, and launch it. Done!


*Yes, the Android-x86 website looks sketchy. It the ISO (from FossHub) worked fine for me, though.

**I tested this on Arch (I use Arch BTW), and I had to do sudo pacman -S virtualbox-host-modules-arch, accept that it would conflict with virtualbox-host-dkms, and chose to install it anyways (removing the virtualbox-host-dkms package). I also had to do sudo vboxreload after running that ocmmand. But it should work fine on Ubuntu by default..

cocomac avatar
cn flag
To the downvoter, mind explaining what I could improve? Or why you don't like it? I'd appreciate some feedback so I could improve my answer if needed
Gabriel Staples avatar
cn flag
My answer was downvoted too. I'm guessing they don't like non-native Ubuntu solutions, meaning I suspect they downvoted our answers for the sole reason they rely on using a virtual machine.
Gabriel Staples avatar
cn flag
I still plan to test your solution. Haven't had a chance yet. Small kids and fatherhood.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.