Many reasons. Primarily because of security and control of my information. Secondly because services like these tend to be short-lived and unreliable, if i host it myself i can trust it's there when i need it. And i hadn't considered the uploading time issue mentioned in a previous comment, but that is actually a very good point that self-hosting would solve as well.
I also just want to see the code because i think it's cool
>I also just want to see the code because i think it's cool
This is not "the" code but here's a script. I can't take credit for it... I don't remember but I probably cobbled it together by taking stack overflow code and making it more friendly. First, you need ffmpeg (ymmv.. this assumes macOS, for others installing ffmpeg is also possible but left as an exercise for the reader):
$ brew install ffmpeg
Then:
[edit: fixed some typos]
#!/bin/bash
export OLD_IFS=$IFS
export IFS=''
mkdir -p converted
for a in *.{webm,mkv,ts}
do
ffmpeg -i "$a" -c:v libx264 -preset slow -crf 20 -c:a libvo_aacenc -b:a 128k "$a.mp4"
if [[ $? == 0 ]]; then
mv "$a.mp4" converted
fi
done
export IFS=$OLD_IFS
Save as convert-to-mp4.sh then run it in a directory containing files of undesirable types like .webm
Not saying this is perfect. Take it as a proof of concept. And there's no web UI, nor would I want one. Suggestions for tweaks welcome.
Yeah, the primary benefit I see is if one fully audits the code and any future updates. Otherwise, self-hosting doesn't confer much in the way of guarantees for security or privacy.
For me, often, it's just a bandwidth issue. If a colleague has a 12 GB movie they'd like to transmute, a local app might be a possibility, but an hour long upload followed by a 20 minute long download won't be.
The creator mentions in another post that the service does indeed upload the data to a server for processing. But, in general, it being a web app doesn't mean it uploads your data any more than a locally run application might. A web app can just as well do the processing in the browser without it ever leaving your machine.
On what are you basing these expectations? Uploading means transmitting data to a third party. One could write a CLI that does just that. One could also write a web app where the processing takes place in the browser and the data never leaves the machine.
The difference is the web app runs within the browser sandbox while the CLI executes with user permissions.
Not op, but for myself, not having any way of knowing if the service reads or retains any information from my files (outside of the core purpose) would limit the amount of data I would be willing to put through the service.