Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
Your reminder worked! Here is the command I used. I put it in a script, and would pass it the file I wanted to convert.
ffmpeg -i "$1" -vcodec libx265 -crf 28 -map 0 -c:s copy "${1%.*}.h265.mkv" > ./convert_logs 2>&1 < /dev/null &
If I called this script
convert_to_h265.sh
, I would call it withconvert_to_h265.sh some_video.mkv
Here is an explanation for the options I used:
ffmpeg
is the command-i "$1"
is the input file. In this case, the argument to the script-vcodec libx265
is specifying the plugin to use as libx265-crf 28
is specifying the quality/compression rate. I found this one to be pretty acceptable-map 0
makes it select ALL audio tracks and ALL subtitle tracks-c:s copy
copies subtitle tracks"${1%.*}.h265.mkv"
specifies the output file. In this case, everything up to the last dot, then replace the extension with '.h265.mkv'> ./convert_logs 2>&1 < /dev/null
tells the program to output to a log file instead of writing to your terminal. It also sets the input to nothing, and without that, it won't work in a script for some reason.&
tells the whole thing run in the background so it doesn't hold up your terminal. You can even close your terminal and do other things and check back on it later.You can monitor the progress with
tail -f convert_logs
If you want to get fancy, you can even put this in a loop to run on all the files that end in
.mkv
in the current directory:And if you want to get mega fancy, you can have it run recursively for all files that end in
.mkv
in the current directory and all files in all child directories.If you do either of the latter two, I would put it in a script. Let's call the first one
convert_all_to_h265.sh
and the second oneconvert_all_to_h265_recursively.sh
. Call them withconvert_all_to_h265.sh &
andconvert_all_to_h265_recursively.sh &
if you want to run them in the background.You also might want to play around with the
-crf 28
value if you want more compression or more quality. The lower the number, the better the quality. It needs to be a value between 0 and 51.Dude this is the most thorough explanation of a single command line I've ever had!
Thanks for the effort, and the line itself.
I put a hours of research into this, and I felt like documentation was difficult to understand, so I wanted to pass along what I've learned! I hope it works for you.