Handbrake can help. It is one of the best open-source transcoders. It is not exactly an ffmpeg front end, though.

downhomechunk [chicago]
link
fedilink
English
11Y

Agreed, handbrake is what you want.

Johnny 5
link
fedilink
English
131Y

Use https://home.tdarr.io/, it has what you are looking for and will do everything automatically! The first setup is never easy!

Faceman🇦🇺
link
fedilink
English
21Y

Another Tdarr alternative with (i think) a more flexible and automatable setup is FileFlows (the free version is all you need) you can build node based rulesets and apply those rules to different libraries.

Tdarr is great if you are comfortable setting up a Docker environment. It is a great way to reprocess your whole library.

A good GUI alternative is Handbrake. It uses a different library than ffmpeg but can do the same stuff. One thing about Handbrake to remember is that it is centered around video encoding. So while ffmpeg can process your audio streams without touching the video stream, Handbrake will reencode video every time.

@db2@sopuli.xyz
link
fedilink
English
51Y

It uses a different library than ffmpeg

From here:

HandBrake leverages tools such as FFmpeg, x264, and x265 to create new MP4, MKV, or WebM video files

I think you might be confused because ffmpeg is the project and also the name of the executable, the library is libavcodec but it’s still ffmpeg. See here.

∟⊔⊤∦∣≶
link
fedilink
English
1
edit-2
1Y

I wrote a bash script for this, but I’m not sure of the correct settings so I haven’t used it to re-encode my whole library yet.

Here’s my script in case anyone has any tips:

spoiler

#!/bin/sh

shopt -s globstar

for FILE in */

{

if [[ -d $FILE ]]; then

	continue

fi

match="*-re.mp4"
if [[ $FILE == $match ]]; then
	echo already encoded, skipping $FILE
	continue
fi
match="*-ex.mp4"
if [[ $FILE == $match ]]; then
	echo already excluded, skipping $FILE
	continue
fi

if [[ $(du "${FILE}" | awk '{print $1}') -lt 10000 ]]; then		
	#echo $(date),$(pwd)/,$FILE,toosmall >> errors.csv
	echo $(date),$(pwd)/,$FILE, 0,0,0,0, original too small >> encoding.csv
	continue
fi
if [[ $(mediainfo "${FILE}" | grep -c -e'Audio #') -gt 1 ]]; then
	#echo $(date),$(pwd)/,$FILE,skip-audio >> errors.csv
	echo $(date),$(pwd)/,$FILE, 0,0,0,0, multiple audio tracks >> encoding.csv
	continue
fi
if [[ $(mediainfo "${FILE}" | grep -c -e'Text #') -gt 1 ]]; then
	#echo $(date),$(pwd)/,$FILE,skip-subs >> errors.csv
	echo $(date),$(pwd)/,$FILE, 0,0,0,0, contains subtitles >> encoding.csv
	continue
fi


FULLM=${FILE%.*}
REN="$FULLM-re.mp4"
echo writing $REN

#ffmpeg -y -i "${FILE}" -vcodec libx264 -crf 23 "${REN}" 
#ffmpeg -y -i "${FILE}" -vcodec h264_nvenc -crf 23 "${REN}" 
ffmpeg -y -i "${FILE}" -vcodec libx265 -crf 23 "${REN}" 

ORIGSIZE=$(du "${FILE}" | awk '{print $1}')
NEWSIZE=$(du "${REN}" | awk '{print $1}')
ORIGBITRATE=$(mediainfo "${FILE}" | grep Overall | sed 's/[^0-9]*//g')
NEWBITRATE=$(mediainfo "${REN}" | grep Overall | sed 's/[^0-9]*//g')

echo $FILE vs $REN
echo $ORIGBITRATE vs $NEWBITRATE

#if [[ $NEWBITRATE -gt $ORIGBITRATE ]]; then
	#echo new bitrate is too big, renaming $FILE to $FULLM-ex.mp4
	#echo $(date),$(pwd)/,$FILE, $ORIGBITRATE, $NEWBITRATE, $ORIGSIZE, $NEWSIZE, bitrate increased >> encoding.csv
	#mv "${FILE}" "${FULLM}"-ex.mp4
	#rm -f "${REN}"
	#continue
#fi

if [[ $ORIGSIZE -lt $NEWSIZE ]]; then
	#echo $(date),$(pwd)/,$FILE,sizeToSmall: $ORIGSIZE vs $NEWSIZE >> errors.csv
	echo $(date),$(pwd)/,$FILE, $ORIGBITRATE, $NEWBITRATE, $ORIGSIZE, $NEWSIZE, filesize increased >> encoding.csv
	echo deleting "${REN}"
	rm -f "${REN}"
	mv "${FILE}" "${FULLM}"-ex.mp4
else
	echo $(date),$(pwd)/,$FILE, $ORIGBITRATE, $NEWBITRATE, $ORIGSIZE, $NEWSIZE, ENCODED >> encoding.csv
	rm -f "${FILE}"
fi

}

Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ
!piracy@lemmy.dbzer0.com
Create a post
⚓ Dedicated to the discussion of digital piracy, including ethical problems and legal advancements.

Rules • Full Version

1. Posts must be related to the discussion of digital piracy

2. Don’t request invites, trade, sell, or self-promote

3. Don’t request or link to specific pirated titles, including DMs

4. Don’t submit low-quality posts, be entitled, or harass others



Loot, Pillage, & Plunder

📜 c/Piracy Wiki (Community Edition):


💰 Please help cover server costs.

Ko-Fi Liberapay
Ko-fi Liberapay

  • 1 user online
  • 108 users / day
  • 272 users / week
  • 1K users / month
  • 3.5K users / 6 months
  • 1 subscriber
  • 3.4K Posts
  • 82.2K Comments
  • Modlog