tgotwig / vidmerger

πŸ“Ό Merge video & audio files via CLI
https://tgotwig.github.io/vidmerger
113 stars 10 forks source link

πŸš€ Support for ARM64 #35

Open bonny1992 opened 2 years ago

bonny1992 commented 2 years ago

Heya!

I love this, but I'd like to run it on my Raspberry PI 4, is there any plan to release it for that platform?

Thank you!

tgotwig commented 2 years ago

Hello Bonny πŸ™‹ Thanks for your request! 😊 Which OS do you use? πŸ€”

bonny1992 commented 2 years ago

Hello and thanks for your reply, @TGotwig ! I am currently running Ubuntu 20.04.2 LTS on my RPI4, if that helps.

If I may add, I tried cloning the repo and building it on the device but it got stuck for a while with something with cross (only to fail afterwards) and my lack of Rust knowledge did not help at all.

I only did create a new entry in the makefile like this:

build-linux-arm64:
    @echo 'Building for Linux... 🐧'
    cross build --release --target=aarch64-unknown-linux-musl
    mkdir -p target/release-archives && tar -C target/aarch64-unknown-linux-musl/release -czf target/release-archives/vidmerger-linux-aarch64.tar.gz vidmerger

and

buildarm:
    make build-linux-arm64

and then running make buildarm

tgotwig commented 1 year ago

Could you create the binary? What were the error messages you got? πŸ€”

bonny1992 commented 1 year ago

Could you create the binary? What were the error messages you got? πŸ€”

I could not.

It did something with cross command but I don't remember what error it gave, sadly. It took a really really long time in which my Rpi4 got unresponsive, too.

If you need it I could reinstall the Rust toolset and retry it, but I don't think the end would be any different.

Now that I think about it, it may have thrown an error about the architecture, maybe a docker image is amd64 only along the way? I'm not entirely sure it was from the build command tho.

bonny1992 commented 1 year ago

Ok, so, I did a liiiitle bit of experimenting. I don't know Rust at all tho.

I tried to clone the repo from scratch, added the aforemented lines and ran make buildarm. After it ran for literal hours (it may be 5 or more) it still haven't finished, so I CTRL-C out of it. Any rerun of make buildarm will return buildarm is up-to-date or something like this. Oh, and of course, I had no output on the terminal so I don't know if it was stuck or what else.

I, then, tried to run the single command cross build --release --target=aarch64-unknown-linux-musl and here's the output:

nfo: downloading component 'rust-src'
info: installing component 'rust-src'
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
standard_init_linux.go:228: exec user process caused: exec format error

Is cross even runnable on a RPI4?

Out of my non-existent Rust expertise, I tried to run cargo build --release aaand: Finished release [optimized] target(s) in 6m 46s. I don't really know, tho. Is this vidmerger binary usable?

The fact that I don't know Rust make this a mess :P

tgotwig commented 1 year ago

If you compile it on your RPI4 by cargo build --release it should create a usable binary for you, does that work? πŸ€”

bonny1992 commented 1 year ago

Yes, that binary is working indeed.

Apparently the cross command is referencing some amd64 along the way, but the simple cargo command is working.

tgotwig commented 1 year ago

Awesome! πŸ₯³ Maybe you could fork this repo and upload your binary there? πŸ™

bonny1992 commented 1 year ago

Sure.

But bare with me, I'm not even remotely an expert of Git/github.

Should I fork and create a release? Or simply upload the binary folder and the tar.gz file?

I usually clone and edit things locally πŸ˜…

tgotwig commented 1 year ago

Yeah like on the main repo (origin), thanks 😊