Skip to content

Video recording app with sub-millisecond synchronization accuracy for multiple Android smartphones, useful for creating affordable and easy-to-setup multi-view camera systems for robotics, SLAM, 3D-reconstruction, panorama stitching

License

Notifications You must be signed in to change notification settings

prime-slam/RecSync-android

 
 

Repository files navigation

Logo

If you use this application, please cite Sub-millisecond Video Synchronization of Multiple Android Smartphones:

@misc{akhmetyanov2021submillisecond,
      title={Sub-millisecond Video Synchronization of Multiple Android Smartphones}, 
      author={Azat Akhmetyanov and Anastasiia Kornilova and Marsel Faizullin and David Pozo and Gonzalo Ferrer},
      year={2021},
      eprint={2107.00987},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Usage:

Leader smartphone setup

  1. Start a Wi-Fi hotspot.
  2. The app should display connected clients and buttons for recording control

Client smartphones setup

  1. Enable WiFi and connect to the Wi-Fi hotspot.

Recording video

  1. [Optional step] Press the calculate period button. The app will analyze frame stream and use the calculated frame period in further synchronization steps.
  2. Adjust exposure and ISO to your needs.
  3. Press the phase align button.
  4. Press the record video button to start synchronized video recording.
  5. Get videos from RecSync folder in smartphone root directory.

Extraction and matching of the frames

Requirements:

- Python
- ffmpeg
  1. Navigate to utils directory in the repository.
  2. Run ./match.sh <VIDEO_1> <VIDEO_2>.
  3. Frames will be extracted to directories output/1 and output/2 with timestamps in filenames, output directory will also contain match.csv file in the following format:
    timestamp_1(ns) timestamp_2(ns)
    

Our contribution:

  • Integrated synchronized video recording
  • Scripts for extraction, alignment and processing of video frames
  • Experiment with flash blinking to evaluate video frames synchronization accuracy
  • Panoramic video demo with automated Hugin stitching

Panoramic video stitching demo

  • We provide scripts to stitch 2 syncronized smatphone videos with Hujin panorama CLI tools
  • Usage:
    • Run ./make_demo.sh {VIDEO_LEFT} {VIDEO_RIGHT}

This work is based on "Wireless Software Synchronization of Multiple Distributed Cameras"

Reference code for the paper Wireless Software Synchronization of Multiple Distributed Cameras. Sameer Ansari, Neal Wadhwa, Rahul Garg, Jiawen Chen, ICCP 2019.

About

Video recording app with sub-millisecond synchronization accuracy for multiple Android smartphones, useful for creating affordable and easy-to-setup multi-view camera systems for robotics, SLAM, 3D-reconstruction, panorama stitching

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 92.5%
  • Python 5.5%
  • Shell 2.0%