Thursday, August 8, 2019

Open Camera Remote





Last updated 2019_09_10
Previous update 2019_09_02



Introduction




Open Camera Remote is a free camera application for Android phones and tablets. It is a modified version of the full featured, open-source, free Open Camera application written by Mark Harman. For information about using the camera app features see Mark's website http://opencamera.org.uk/



Open Camera Remote adds features that give you remote control of your phone camera focus and shutter trigger over a local WiFi network. It does this by accepting broadcast control messages to operate focus and shutter release for the camera when sent by a separate companion application WiFi Remote Capture. The remote control camera feature is always on, waiting for a trigger, you only need to connect your phone to a compatible WiFi network.

The main goal of the Open Camera Remote app is to trigger multiple cameras and capture photos or videos nearly simultaneously from many phones running this app and all connected on the same local WiFi network. Depending on your local network configuration, the number of camera phones triggered can range from up to 253 or 4093 phones maximum.

Some example applications for the Open Camera Remote app are:
  • 3D Stereo photography using twin phone cameras
  • Multi-camera photos for 360 panorama and composite stitched shots
  • Multi-camera photo capture for 3D modeling
  • Multi-camera videos
  • Multi-photo 3D Lenticular image capture
  • Large group event or party activities for simultaneous photo or video capture
  • Photo booths using remote trigger with single or multiple cameras
  • Wild life photography where you cannot get close without disturbing your subject (for example a bird nest).
  • Multi-phone camera single or group selfies or environment shots.


Features


Remote Control

The camera app receives focus and shutter release control messages broadcast over a local WiFi network sent by the WiFi Remote Capture app. The message contains the filename to use for storing the photo or video in each receiving camera phone app. The Remote Capture app can send either time-stamp or numbers for the filename.

To help identify photos and videos from each phone, especially if you merge photos into a folder, you should set a filename suffix. Go to the gear Settings - More camera controls... enter Save photo suffix, Save video suffix. The suffix string appended to the filename helps you identify from which phone camera a photo or video was shot. This feature allows you to merge all the photos from multiple cameras into a single folder for editing without filename conflicts.

I use _l and _r for stereo left and right camera suffixes. For other multiple camera setups, I use a sequence _1, _2, etc. You can choose your own multi-camera photo identification strategy.

Sequential 3D Stereo Photography

You can take 3D Stereoscopic left and right eye photos using the "chacha" sequential capture method. Like the dance first you take the left eye photo, move about 2.5 inches (65 mm) to the right and then take the right eye photo. In the gear Settings select the 3D ChaCha Mode. When selected this option shows a red line on the left in the camera preview. After you take the left photo, the red line appears on the right side of the preview screen. The left and right eye photos have the fixed suffixes "_l"  and "_r" appended to the corresponding photo filename, overriding the settings suffix entered. The photos are stored in the Save Location you choose in gear Settings - More Camera Controls.

To help you align the right eye photo vertically with you left eye photo, select the Settings - Align With Last Photo option. When set this option shows the left eye photo in the camera preview so you can align with your right eye photo preview. You can place your phone in a stationary folded V-shaped cardboard rail to help with vertical alignment by sliding the camera phone in a level channel.

You can view your 3D photos directly by purchasing a 3D/VR Stereo Photo Viewer app and select this app as your photo viewer using the photo preview thumbnail button. The 3D viewer app also works with 2D photos and many formats of 3D photos, and can be used with Google Cardboard VR headsets. 

The 3D/VR Stereo Photo Viewer app has an option to launch the WiFi Remote Capture app from the viewer so you can trigger your twin camera phone rig. You will need to install the WiFi Remote Capture app on your phone.

The Open Camera Remote app does not align your left and right eye photos. For this you will need Stereo Photo Maker that runs on Windows or Mac computer or you can install the 3DSteroid Android app.

Note that the ChaCha option is independent of the remote control feature, and could be used at the same time. But I don't know a situation you might want to used these combined features except when your phone cameras move horizontally in unison.
  

Number Format For Filename


I also added an option that lets you select a time-stamp or number for the filename with the Time/Number format for filename option. There is also an option to reset the photo and video filename number. This is not used with remote control but is for another way to name photo or video filenames, besides a time-stamp.

HTTP Server


The app has a built-in minimal Web HTTP Server to help with listing and transferring photos or videos to another phone or computer on the local network. See below for more details.

Mouse Control

With version 1.46.6 I added the capability to use a wired mouse (connected to the USB phone port using an OTG [on-the-go] cable or a connected Bluetooth wireless mouse) to control the camera shutter with a left button click. The right mouse button will display the last photo. The mouse wheel allows zoom control of the camera.

You would use a wired mouse to your phone to take photos with a single phone camera mounted on a tripod when you don't want to use the WiFi remote feature.

Setup


For security reasons some local network WiFi routers block broadcast messages. This prevents Open Camera Remote from working as intended. For example, my Telecom Internet service provider modem and router blocks broadcast messages in my home local WiFi network. Public WiFi networks outside my home usually block broadcast messages too. 

The solution is to set up and use your own private WiFi network router that allows broadcast messaging. A private local WiFi network not connected to the Internet also has an advantage of faster simultaneous camera control because network messages are not delayed by other Internet traffic. All you have to do is change each of your phone's WiFi connection to your alternative network.

I also recommend you place your phone in "Airplane Mode" to turn off all radios in the phone, and then selectively turn on only WiFi and make your connection. This step is not required but it helps to give you more simultaneous camera triggers by avoiding delays.

For my local network I bought a tiny home/mobile WiFi router, TP-Link 150 Mbps Wireless N Nano Router (model No. TL-WR702N). It can be powered with a battery and taken wherever I go to shoot multiple simultaneous photos or videos. I do not connect it to the Internet. I use the default "Access Point Mode" and set up my own SSID network name, "Mobile Photo Net", and password with a laptop computer.  


TP-Link also sells a faster router, TP-Link 290A (model No. TL-WR902AC version 3.0). With this router, you can transfer photos faster from your phones using the built-in Web HTTP server provided in the Open Camera Remote app.

Each router has a CAT5 Ethernet port so you could have an Internet connection if you wish. But the strategy for simultaneous capture is to reduce competing internet messages that slow down camera response time. You may also want to shutdown other apps for the same reason. And if you may want to log out of other services too, like email and messaging. However these steps are not necessary, just an option to consider.


WiFi Remote Capture


The free companion app WiFi Remote Capture sends broadcast camera control messages. It uses a simple protocol documented at https://github.com/ajavamind/NX500Capture and describes the command format. Besides phones this app can trigger the Samsung NX500 and NX1 cameras remotely on the local network. The Samsung cameras have to install a firmware hack.

The WiFi Remote Capture app has focus and shutter buttons and can switch between photo and video modes. Use the focus button to toggle the phone display to show its URL.

The WiFi Remote Capture app also accepts Bluetooth connected device volume up key so you can use an external controller instead of tapping the screen. See Twin NX500 Camera 3D Stereo Rig Using Remote Capture

Using a Linux computer you can also send broadcast messages using the Bash command line to trigger phones on your local network. For example:
echo "V0003" | nc -w1 -u -b 192.168.1.255 8000
will capture a phone video and save to VID_0003_1.mp4 

And you can write  Python or Processing code to do the same.

To test to see if you can broadcast messages on your local network successfully, press the Remote Capture app, Focus button, several times. You should see the  phone's IP address displayed on each screen. This confirms your remote trigger. If you do not, there is something wrong with your WiFi connection or broadcast messages are blocked.


HTTP Server


Web Browser

With the app's built-in Web HTTP server you can transfer your photos or videos with a Web browser. This only works with your local network while the camera app is running while visible or in the background. Use the HTTP server at your own risk. 

Alternatively you can transfer your photos or videos to another phone or computer using a separate FTP app or other methods supplied by the phone manufacturer, and other apps in the Google Play Store.

By default the server is disabled. In gear Settings there is a option to turn on the HTTP server. 

Use the gear Settings - Pairing QR Code option to show the URL of the phone Web server as a QR code or text. To see a directory of the photos or videos, type in the text URL into a Web browser search line from another computer or phone. You should see a listing of each file. Click on the filename to download and display in the Browser download folder. I use Google Chrome. Unfortunately at this time the transfers can only be done one photo or video at a time.

With the QR Code display in Settings - Pairing QR Code you can scan the URL to avoid typing using a free Barcode Scanner app by the ZXing team. The app will automatically show the directory in a browser.

Viewing Photos with 3D/VR Stereo Photo Viewer


You can view and save your photos from the Open Camera Remote HTTP server directly with the 3D/VR Stereo Photo Viewer app. This viewer app has menu features to scan and Save QR Code URLs (using the external ZXing app) and store the URL for a single phone camera photo server, and left and right camera photo servers. Using the View URL Link menu selection in the viewer app you can transfer and view a photos directly from a Open Camera Remote app. There is also an option in the viewer Settings to automatically save transferred files in designated folders. It is recommended you use time-stamps exclusively to order your photos.

Troubleshooting

When the WiFi Remote Capture app cannot seem to trigger the Open Camera Remote app and you know your router supports broadcast messaging, you can try closing the Open Camera Remote app and restarting it. Closing and restarting the WiFi Remote Capture app may also help. When you change your WiFi connection these steps are necessary and required.


Open Source Code Attribution


The open source code for Open Camera Remote (modified from version 1.46 Open Camera, copyright 2013-2019 Mark Harman) is available at https://sourceforge.net/u/ajavamind/opencamera/ci/master/tree/
Open Camera also uses additional third party files see online help for full licences and attributions. Andy Modla wrote the modifications for Open Camera Remote, modifications copyright 2016-2019.

Released under the GPL v3 or later.

Google ZXing ARCODE license:
http://www.apache.org/licenses/LICENSE-2.0 

The Nanohttpd HTTP server is Copyright (c) 2012-2013 by Paul S. Hawke, 2001,2005-2013 by Jarno Elonen, 2010 by Konstantinos Togias All rights reserved.

Network library for processing that supports the UDP protocol was written and copyright by Andreas Schlegel, GNU Lesser General Public License version 2.1. http://www.sojamo.de/libraries/oscP5 
Modifications to this code were made by Andy Modla.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistribution of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the NanoHttpd organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANT-ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


9 comments:

  1. I have the same BlueTooth Remote Shutter (at least it looks exactly the as the picture here). But both buttons send the same code: volume up. Did I do something wrong?

    ReplyDelete
  2. No, unless you modified the device. It may be malfunctioning. Each button should generate a unique code.

    ReplyDelete
  3. I'm trying to use this (also to make 3D photos) but OpenCameraRemote is listening to 8080 port but WiFi Remote Capture is sending broadcast to 8000 port.
    Did I missed something ?
    I also missed where the source code is ! I didn't found anything on your Github repo.

    Any tip would be greatly appreciated.

    Thanks

    ReplyDelete
  4. The open camera remote source code is at sourceforge https://sourceforge.net/u/ajavamind/opencamera/ci/master/tree/

    I sent you a private email. The Open camera remote app is also listening on port 8000 for commands from WiFi Remote capture app.

    ReplyDelete
    Replies
    1. Thanks ! Indeed, I didn't get that 2 different ports are used for 2 different usages:
      - 8080 for the HTTP webserver (to download last photos and videos)
      - 8000 for baoadcast messages (to trigger shutter, and hold focus)

      Delete
  5. where are the remote files and instructions. nothing anymore in google play. i paid for it and when i removed i couldnt reinstall.
    where can we see images and videos in 3DS?

    ReplyDelete
  6. Google play removed the app from the store for a policy violation regarding free Open Camera app. I have not resolved the problem yet.

    Also my Open Camera Remote has always been free contrary to your saying "you paid for it"!

    ReplyDelete
  7. Thank you so much for this app.
    I set up my home studio with laptop, tablet, phone, and Raspberry Pi to start and stop filming automatically when I start and stop recording. This app was fantastic. Can I find an APK anywhere, or do I have to compile it?

    ReplyDelete
  8. Your welcome. The Open Camera Remote app is not longer published in Google play store. The app was renamed to Multi Remote Camera on sourceforce.net. You can find latest APK at https://sourceforge.net/projects/multi-remote-camera/files/v1.50.1.1/ There is documentation there.

    The WiFi Remote capture app is no longer available on Google play store. I plan to add it to github with source code and APK when I find time.

    ReplyDelete