Page 2 of 2

Re: LINUX - ffmpeg - 4K HDR HEVC X265 - Plex

Posted: Sat Apr 25, 2020 9:36 am
by plittlefield
A few weeks on and I have some tweaks to the script, which now includes 'max-cll' variables.

I will create a github at some point, but for now, here are the important parts...

Code: Select all

# set main variables
TITLE="Movie Name (YEAR)"
INPUT="/home/user/${TITLE} UHD.mkv"
OUTPUT="/home/user/${TITLE} 4K ffmpeg 2 Audio.mkv"

# read hdr variables from source file
ffprobe -loglevel quiet -read_intervals "%+#2" -select_streams v:0 -show_entries side_data "${TITLE} UHD.mkv" | egrep -m 1 -A 10 'Mastering display metadata' | grep -v 'Mastering display metadata' >/tmp/variables.txt
ffprobe -loglevel quiet -read_intervals "%+#2" -select_streams v:0 -show_entries side_data "${TITLE} UHD.mkv" | egrep -m 1 -A 2 'Content light level metadata' | grep -v 'Content light level metadata' >>/tmp/variables.txt
source /tmp/variables.txt
cat /tmp/variables.txt

# ffmpeg transcode
ffmpeg -y -i "${INPUT}" -t 00:05:00 -hide_banner -stats -loglevel quiet -analyzeduration 100M -probesize 100M -max_muxing_queue_size 9999 -map 0:v:0 -map 0:a:0 -map 0:a:0 -vf "crop=3840:1600:0:280" -pix_fmt yuv420p10le -vcodec libx265 -preset slow -x265-params "keyint=60:bframes=3:vbv-bufsize=75000:vbv-maxrate=75000:colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc:master-display='G("$green_x","$green_y")B("$blue_x","$blue_y")R("$red_x","$red_y")WP("$white_point_x","$white_point_y")L("$max_luminance","$min_luminance")':max-cll='"$max_content","$max_average"'" -crf 24 -force_key_frames "expr:gte(t,n_forced*2)" -c:a:0 copy -c:a:1 dca -ab 1509k -map_metadata -1 -metadata title="${TITLE}" -metadata:s:a:0 language=eng -metadata:s:a:1 language=eng -map_chapters -1 -sn -strict -2 "${OUTPUT}"
...please adjust as required.

I do a 5 minute test plus have dual audio for my current and future setup :-)

Enjoy.

Stay safe,

Paully

Re: LINUX - ffmpeg - 4K HDR HEVC X265 - Plex

Posted: Sat May 09, 2020 9:04 pm
by Solverz
Sorry if this sounds obvious :lol:

But if I run that handy script, does it compress a 4k hdr mkv file? With acceptable quality?

Re: LINUX - ffmpeg - 4K HDR HEVC X265 - Plex

Posted: Thu May 14, 2020 11:05 am
by plittlefield
Solverz wrote:
Sat May 09, 2020 9:04 pm
Sorry if this sounds obvious :lol:

But if I run that handy script, does it compress a 4k hdr mkv file? With acceptable quality?
Yes.

A typical UHD REMUX goes down from 40GB to about 8GB.

Paully

Re: LINUX - ffmpeg - 4K HDR HEVC X265 - Plex

Posted: Thu May 14, 2020 11:05 am
by plittlefield
Solverz wrote:
Sat May 09, 2020 9:04 pm
Sorry if this sounds obvious :lol:

But if I run that handy script, does it compress a 4k hdr mkv file? With acceptable quality?
...and don't forget that 8GB size includes an extra audio track for MY tastes, so if you only wanted 1 audio track then that size would come down!

:-)

Paully

Re: LINUX - ffmpeg - 4K HDR HEVC X265 - Plex

Posted: Thu May 14, 2020 3:44 pm
by iXDanXi
Hi all,

This seems like the best thread to ask, what would be the command line for ffmpeg to keep the 4k video untouched, take the first of multiple audio files but convert that hopefully lossless from dts to ac3 or any other lossless codec (any advice on a codec appreciated)

Thabks

Re: LINUX - ffmpeg - 4K HDR HEVC X265 - Plex

Posted: Thu May 14, 2020 5:37 pm
by Woodstock
https://ffmpeg.org/ffmpeg.html#toc-Examples-1

There are a lot of possible command combinations. You're essentially asking for conversion to FLAC if you insist on lossless. For me, I haven't "heard" a reason to move away from a decent lossy format, because my hearing is perfect anyway.

Re: LINUX - ffmpeg - 4K HDR HEVC X265 - Plex

Posted: Thu May 14, 2020 6:11 pm
by plittlefield
iXDanXi wrote:
Thu May 14, 2020 3:44 pm
Hi all,

This seems like the best thread to ask, what would be the command line for ffmpeg to keep the 4k video untouched, take the first of multiple audio files but convert that hopefully lossless from dts to ac3 or any other lossless codec (any advice on a codec appreciated)

Thabks
Wow, your ears must be good... because I find DTS absolutely amazing.

That aside, Dolby TrueHD found in most UHD's is lossless, at least according to mediainfo...

Code: Select all

Audio #1
ID                                       : 2
Format                                   : MLP FBA 16-ch
Format/Info                              : Meridian Lossless Packing FBA with 16-channel presentation
Commercial name                          : Dolby TrueHD with Dolby Atmos
Codec ID                                 : A_TRUEHD
Duration                                 : 1 h 37 min
Bit rate mode                            : Variable
Bit rate                                 : 7 644 kb/s
Maximum bit rate                         : 9 270 kb/s
Channel(s)                               : 8 channels
Channel layout                           : L R C LFE Ls Rs Lb Rb
Sampling rate                            : 48.0 kHz
Frame rate                               : 1 200.000 FPS (40 SPF)
Compression mode                         : Lossless
Stream size                              : 5.20 GiB (30%)
Language                                 : English
Default                                  : Yes
Forced                                   : No
Number of dynamic objects                : 13
Bed channel count                        : 1 channel
Bed channel configuration                : LFE
...so a straight acodec copy would be fine for you...

..which is, in fact, what part of my ffmpeg command line does!

:-)

Paully

Re: LINUX - ffmpeg - 4K HDR HEVC X265 - Plex

Posted: Mon May 25, 2020 3:16 pm
by plittlefield
plittlefield wrote:
Sat Apr 25, 2020 9:36 am
A few weeks on and I have some tweaks to the script, which now includes 'max-cll' variables.
A tweak to the readhdrvalues function, which strips out anything after the / in the ffprobe output...

Code: Select all

function readhdrvalues () {
  echo "Reading HDR values..."
  echo $1
  ffprobe -loglevel quiet -read_intervals "%+#2" -select_streams v:0 -show_entries side_data "$1" | egrep -m 1 -A 10 'Mastering display metadata' | grep -v 'Mastering display 
metadata' | sed 's/\/.*//g' >/tmp/variables.txt
  ffprobe -loglevel quiet -read_intervals "%+#2" -select_streams v:0 -show_entries side_data "$1" | egrep -m 1 -A 2 'Content light level metadata' | grep -v 'Content light lev
el metadata' | sed 's/\/.*//g' >>/tmp/variables.txt
  source /tmp/variables.txt
  cat /tmp/variables.txt
  echo "...done."
}
Regards,

Paully

Re: LINUX - ffmpeg - 4K HDR HEVC X265 - Plex

Posted: Sun Apr 18, 2021 9:34 pm
by centuryx476
I search the forum and found this excellent post.
I am doing hardware acceleration with these commands provided. Trying to encode 4K HDR HEVC, But I noticed something odd;

I am using -cq as a command and no matter what value I put in, the bitrate stays the same (At around 20,000) I can lower it all the way to 0 and it remains the same.

Has anyone noticed this ? Is this a bug ?

Edit:
I think I fixed it.
I have to include -maxrate and -bufsize
Now the -cq is working!