I think you could get something working using termux to install and run ffmpeg on your phone. Then using an automation app, e.g. if this then that, you could run a script in termux to re-encode the files. And automate it at night while charging.
Asklemmy
A loosely moderated place to ask open-ended questions
Search asklemmy π
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- [email protected]: a community for finding communities
~Icon~ ~by~ ~@Double_[email protected]~
Also apparently cron works in termux, so it could all probably be scripted there.
Maybe it can be hacked together with Syncthing: have your phone's camera sync with an inbox folder on the desktop, have the desktop pick up the files and transcode them with handbrake, then move the original out of the inbox. This will cause Syncthing to sync the deletion back to your phone, and sync the transcoded version back on your phone.
I'd also check if you can just change the bitrate in your camera app's settings in case there's a way to lower the quality there. Could be noticeable, could be just as good as handbrake, never know with hardware encoding.
Was hoping to do it on device. It will likely take ages but that does not matter much as it can be done overnight.
Camera apps prioritize speed over encoding size as they do not have time nor resources to compress the footage well while recording. Nor should it as it can be done afterwards.
Seems like your phone would get really hot and rapidly degrade the battery, especially while on charger overnight. Itβs not designed for continuous workloads.
Phones can rapidly compress video on the fly because they have dedicated silicon just like video cards in PCs. Thatβs not why the files are large. Why not just shoot at a lower resolution and frame rate?
Plus I suspect the cpu cost of transferring the files is far lower than transcoding.
I keep 100's of gigs in sync across multiple phones and devices, and ST never causes the phones to warm or show significant battery use.
Possibly it could not use 100% of the CPU so the phone does not go up in flames and it runs efficiently.
Most videos are large because the compression is poor. I was able to do some extreme compression of the video with far smaller size and it still looked great using Handbrake. But good compression takes time and far more calculation than fast compression.
Recording in higher res and then compressing works far better than recording in low res. I can even get smaller 4k compressed AV1 videos than the HEVC 1080p videos if I select a lower res.
This is what I do. Works great
FFMPEG Media Encoder can do the main part. You will need something else to handle scheduling though.
All transcoding programs are FFMPEG with a GUI on top in essence. I mostly wondered whether there was an out of the box solution for Android. Don't feel like hacking it together myself.
iPhone here.
My Synology NAS can do this somewhat. The local videos/photos gets syncβd to the NAS. It then becomes available in its own app, when streamed its transcoded. Over time the local photos/videos are removed.