mihir-io / motionphotomuxer Goto Github PK
View Code? Open in Web Editor NEWConvert Apple Live Photos into Google Motion Photos
License: GNU General Public License v3.0
Convert Apple Live Photos into Google Motion Photos
License: GNU General Public License v3.0
https://github.com/gototheskinny/MotionPhotoMuxerGUI. made by ChatGPT 3.5 and guided by me. it's working on my end. If you add this to your repo please credit me and ChatGPT too. Thank you for your script I appreciate it!
I'm getting this error when I install requirements. Any idea? Thanks in advance
$ python3 -m pip install -r MotionPhotoMuxer/requirements.txt
Collecting py3exiv2==0.9.3 (from -r MotionPhotoMuxer/requirements.txt (line 1))
Using cached py3exiv2-0.9.3.tar.gz (36 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done Building wheels for collected packages: py3exiv2
Building wheel for py3exiv2 (pyproject.toml) ... error error: subprocess-exited-with-error
× Building wheel for py3exiv2 (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [24 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-aarch64-cpython-39 creating build/lib.linux-aarch64-cpython-39/pyexiv2 copying src/pyexiv2/init.py -> build/lib.linux-aarch64-cpython-39/pyexiv2
copying src/pyexiv2/exif.py -> build/lib.linux-aarch64-cpython-39/pyexiv2
copying src/pyexiv2/iptc.py -> build/lib.linux-aarch64-cpython-39/pyexiv2
copying src/pyexiv2/metadata.py -> build/lib.linux-aarch64-cpython-39/pyexiv2
copying src/pyexiv2/preview.py -> build/lib.linux-aarch64-cpython-39/pyexiv2 copying src/pyexiv2/utils.py -> build/lib.linux-aarch64-cpython-39/pyexiv2 copying src/pyexiv2/xmp.py -> build/lib.linux-aarch64-cpython-39/pyexiv2 running build_ext building 'libexiv2python' extension creating build/temp.linux-aarch64-cpython-39 creating build/temp.linux-aarch64-cpython-39/src aarch64-linux-android-clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fstack-protector-strong -O3 -fstack-protector-strong -O3 -fPIC -I/data/data/com.termux/files/usr/include/python3.9 -c src/exiv2wrapper.cpp -o build/temp.linux-aarch64-cpython-39/src/exiv2wrapper.o -g
In file included from src/exiv2wrapper.cpp:27: src/exiv2wrapper.hpp:32:10: fatal error: 'exiv2/exiv2.hpp' file not found
#include "exiv2/exiv2.hpp"
^~~~~
1 error generated.
error: command '/data/data/com.termux/files/usr/bin/aarch64-linux-android-clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for py3exiv2 Failed to build py3exiv2
ERROR: Could not build wheels for py3exiv2, which is required to install pyproject.toml-based projects
Hi, great work on this tool
Presently I'm using photosync or nextcloud to transfer the live photos via webdev. In nextcloud, i can view the live photos or the videos separately just fine
However, after merging/converting to motion photos. Google photos is unable to display the motion part for some of them.
Is there any additional logs i could provide here?
In addition to JPG
, there are also photos in HEIC
format. Is there any way to support it? Thanks!
Hello, thank you for the great work.
Now the only issue is that the metadata (photo date) is not correct after the merge.
Would you please let me know if there is a solution?
Thank you.
would really appriciate if you have any source about this.
I have been searching for a long time but no clue.
~ $ python3 -m pip install -r /sdcard/requirements.txt
Collecting py3exiv2==0.9.3
Using cached py3exiv2-0.9.3.tar.gz (36 kB)
Preparing metadata (setup.py) ... done
Using legacy 'setup.py install' for py3exiv2, since package 'wheel' is not installed.
Installing collected packages: py3exiv2
Running setup.py install for py3exiv2 ... error
error: subprocess-exited-with-error
× Running setup.py install for py3exiv2 did not run successfully.
│ exit code: 1
╰─> [24 lines of output]
running install
running build
running build_py
creating build
creating build/lib.linux-aarch64-3.10
creating build/lib.linux-aarch64-3.10/pyexiv2
copying src/pyexiv2/__init__.py -> build/lib.linux-aarch64-3.10/pyexiv2
copying src/pyexiv2/exif.py -> build/lib.linux-aarch64-3.10/pyexiv2
copying src/pyexiv2/iptc.py -> build/lib.linux-aarch64-3.10/pyexiv2
copying src/pyexiv2/metadata.py -> build/lib.linux-aarch64-3.10/pyexiv2
copying src/pyexiv2/preview.py -> build/lib.linux-aarch64-3.10/pyexiv2
copying src/pyexiv2/utils.py -> build/lib.linux-aarch64-3.10/pyexiv2
copying src/pyexiv2/xmp.py -> build/lib.linux-aarch64-3.10/pyexiv2
running build_ext
building 'libexiv2python' extension
creating build/temp.linux-aarch64-3.10
creating build/temp.linux-aarch64-3.10/src
aarch64-linux-android-clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fstack-protector-strong -O3 -fstack-protector-strong -O3 -fPIC -I/data/data/com.termux/files/usr/include/python3.10 -c src/exiv2wrapper.cpp -o build/temp.linux-aarch64-3.10/src/exiv2wrapper.o -g
In file included from src/exiv2wrapper.cpp:27:
src/exiv2wrapper.hpp:34:10: fatal error: 'boost/python.hpp' file not found
#include "boost/python.hpp"
^~~~~~~~~~~~~~~~~~
1 error generated.
error: command '/data/data/com.termux/files/usr/bin/aarch64-linux-android-clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> py3exiv2
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
My device is : Samsung Galaxy Note Fan edition A7.0
Ive tried several times its not working.
Hii, I'm trying to get this installed on another android phone but i keep getting this error.
I've installed and reinstalled termux but doesn't seem to be the solution
Anyone could help with this?
Building wheels for collected packages: py3exiv2
Building wheel for py3exiv2 (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for py3exiv2 (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [222 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-aarch64-cpython-311
creating build/lib.linux-aarch64-cpython-311/pyexiv2
copying src/pyexiv2/exif.py -> build/lib.linux-aarch64-cpython-311/pyexiv2
copying src/pyexiv2/utils.py -> build/lib.linux-aarch64-cpython-311/pyexiv2
copying src/pyexiv2/__init__.py -> build/lib.linux-aarch64-cpython-311/pyexiv2
copying src/pyexiv2/iptc.py -> build/lib.linux-aarch64-cpython-311/pyexiv2
copying src/pyexiv2/metadata.py -> build/lib.linux-aarch64-cpython-311/pyexiv2
copying src/pyexiv2/xmp.py -> build/lib.linux-aarch64-cpython-311/pyexiv2
copying src/pyexiv2/preview.py -> build/lib.linux-aarch64-cpython-311/pyexiv2
running build_ext
building 'libexiv2python' extension
creating build/temp.linux-aarch64-cpython-311
creating build/temp.linux-aarch64-cpython-311/src
aarch64-linux-android-clang -DNDEBUG -g -fwrapv -O3 -Wall -fstack-protector-strong -O3 -fstack-protector-strong -O3 -fPIC -I/data/data/com.termux/files/usr/include/python3.11 -c src/exiv2wrapper.cpp -o build/temp.linux-aarch64-cpython-311/src/exiv2wrapper.o -g
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:54:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<Value> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:256:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<DataValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:338:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<StringValueBase> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:420:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<StringValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:452:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<AsciiValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:540:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<CommentValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:627:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<XmpValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:718:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<XmpTextValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:800:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<XmpArrayValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:893:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<LangAltValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:981:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<DateValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:1082:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<TimeValue> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
In file included from /data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/value.hpp:1238:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<ValueType<T> > AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
In file included from /data/data/com.termux/files/usr/include/exiv2/datasets.hpp:33:
/data/data/com.termux/files/usr/include/exiv2/metadatum.hpp:47:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<Key> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:26:
/data/data/com.termux/files/usr/include/exiv2/datasets.hpp:278:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<IptcKey> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/basicio.hpp:58:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<BasicIo> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/basicio.hpp:524:9: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
std::auto_ptr<Impl> p_;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:27:
/data/data/com.termux/files/usr/include/exiv2/basicio.hpp:724:9: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
std::auto_ptr<Impl> p_;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from src/exiv2wrapper.cpp:27:
In file included from src/exiv2wrapper.hpp:32:
In file included from /data/data/com.termux/files/usr/include/exiv2/exiv2.hpp:28:
In file included from /data/data/com.termux/files/usr/include/exiv2/bmffimage.hpp:27:
In file included from /data/data/com.termux/files/usr/include/exiv2/image.hpp:28:
In file included from /data/data/com.termux/files/usr/include/exiv2/exif.hpp:35:
/data/data/com.termux/files/usr/include/exiv2/tags.hpp:143:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<ExifKey> AutoPtr;
^~~~~
/data/data/com.termux/files/usr/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
error: command '/data/data/com.termux/files/usr/bin/aarch64-linux-android-clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for py3exiv2
Failed to build py3exiv2
ERROR: Could not build wheels for py3exiv2, which is required to install pyproject.toml-based projects
~ $
Probably not the muxer's issue. Just checking to see if I missed a setting somewhere on the phone.
My iPhone doesn't play the sound when viewing the motion photos made using the muxer in Google Photos app. It does have sound on my PC and Android phone.
Motion photos uploaded directly from iPhone also have sound.
EDIT: If I upload directly to Google Photos, then download the photos (JPEG + MOV), then it'll have sound.
If I mux the jpg+mov from photosync export, then it won't have sound. I guess it's Photosync's issue?
EDIT2: I think photosync converted JPEG (set to max quality) was too large for iPhone to handle. Setting it to 80% fixed the issue.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.