five6184803 has quit [Remote host closed the connection]
five6184803 has joined #ffmpeg
<noobaroo>
Does encoding a video using "-pix_fmt yuv420p10le" reduce banding and give better efficiency? This is what I read online
<noobaroo>
"I know footage from my camera gets a really nice compression with VMAF target set to 96 a file goes from 320MB to 20MB. Another thing to note is that I always use 10 bit since 10 bit a main AV1 decoding requirement. 10 bit creates smaller files with a better quality. There is also banding in the sky with 8 bit which is gone with 10 bit."
Tinos has joined #ffmpeg
<furq>
it can
<furq>
10-bit generally has worse decoder support but obviously for av1 that doesn't matter
<noobaroo>
Is 10-bit also better with HEVC?
theobjectivedad has quit [Read error: Connection reset by peer]
theobjectivedad has joined #ffmpeg
AbleBacon has joined #ffmpeg
<iive>
From what I remember the higher bit helps with motion compensation drift, so even if the source is 8bit, there is boost in compression.
System_Error has quit [Remote host closed the connection]
<aaabbb>
iive: i think that's only with avc. hevc has higher precision motion vectors even with 8 bit
<aaabbb>
the benefit of going to 10bit (from 8 bit sources) for hevc is a lot lower than avc. but it does help reduce banding especially at lower bitrates for sdr content
System_Error has joined #ffmpeg
Marth64 has quit [Ping timeout: 260 seconds]
Marth64 has joined #ffmpeg
<aaabbb>
10 bit does increase bitrate (in crf mode) but also improves quality. i'd recommend testing it out by tuning for ssim/psnr/vmaf and using 2pass abr, and compare the original with the 8 bit, and the original with the 10 bit
<aaabbb>
in my experience, the ssim improves very slightly with hevc 10 bit (yuv420p10le), but the encoding time is a lot slower. so much slower that you might get better gains by just going to a slower preset and leaving it 8 bit (i haven't tested this)
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg
<iive>
that has nothing to do with the precision of the motion vectors, it's how rounding is handled.
<aaabbb>
that's funny i was literally just reading that gist haha
iive has quit [Quit: They came for me...]
Dotz0cat has quit [Ping timeout: 240 seconds]
intrac has quit [Ping timeout: 264 seconds]
Dotz0cat has joined #ffmpeg
intrac has joined #ffmpeg
rhys has quit [Ping timeout: 268 seconds]
rhys has joined #ffmpeg
e^pi-1 has joined #ffmpeg
Some_Person has quit [Ping timeout: 260 seconds]
<noobaroo>
Almost 90% of the time when I try to do 2pass x265 encoding, it fails at the very end of the second pass: https://bpa.st/RBBA
AbleBacon has quit [Read error: Connection reset by peer]
Marth64 has quit [Remote host closed the connection]
treefrob has quit [Ping timeout: 264 seconds]
<aaabbb>
noobaroo: that's really strange. if you turn off cutree, does it still fail? (turning off cutree will make bitrate skyrocket but "Incomplete CU-tree stats file" makes me wonder)
<aaabbb>
it seems to be a bug, and that may be a workaround
Xaldafax has quit [Quit: Bye...]
treefrob has joined #ffmpeg
Sciencentistguy has quit [Quit: Ping timeout (120 seconds)]
Sciencentistguy has joined #ffmpeg
zenloading has joined #ffmpeg
theobjectivedad has quit [Read error: Connection reset by peer]
tips_ has quit [Ping timeout: 272 seconds]
theobjectivedad has joined #ffmpeg
theobjectivedad has quit [Remote host closed the connection]
theobjectivedad has joined #ffmpeg
Tinos has quit [Ping timeout: 250 seconds]
MisterMinister has quit [Ping timeout: 256 seconds]
ppw has joined #ffmpeg
evilscreww has joined #ffmpeg
evilscreww has quit [Remote host closed the connection]
e^pi-1 has quit [Ping timeout: 268 seconds]
theobjectivedad has quit [Remote host closed the connection]
Ox7C5_ has joined #ffmpeg
theobjectivedad has joined #ffmpeg
evilscreww has joined #ffmpeg
rv1sr has joined #ffmpeg
evilscreww has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
evilscreww has joined #ffmpeg
waleee has joined #ffmpeg
MootPoot has quit [Quit: Connection closed for inactivity]
evilscreww has quit [Ping timeout: 250 seconds]
<ppw>
can I make ffmpeg _always_ use lanczos as the resizing algorithm?
<aaabbb>
ppw: without recompiling it, i don't think so. but it's not hard to add :flags=lanczos to your scale
<ppw>
it's not, but I keep forgetting it
<aaabbb>
if you're using bash you could try: alias ffmpeg="ffmpeg -sws_flags lanczos"
<aaabbb>
i'm not sure if it would interefere with anything or if it would just be ignored when it's not relevant
<JEEB>
at least the default was switched to bicubic at one point during the last two years
<JEEB>
before that it was "this used to be fast on early 2000s machines" bilinear
<aaabbb>
what's the params to turn bicubic into mitchell again?
<aaabbb>
ppw: lots of people do things like -hide_banner and -nostdin via a bash alias, i think you could do the same with -sws_flags (tho i'd recommend you do lanczos+accurate_rnd)
evilscreww has joined #ffmpeg
<aaabbb>
idk why accurate_rnd isn't default actually, the performance hit is very low
<ppw>
can you point me to the line of code that determines the default resizer?
<JEEB>
bicubic was basically the swscale library default
<JEEB>
that 2013 post is really old
<JEEB>
9f14396a5103ec80893db801035ece5d14c0d3c5
<JEEB>
from 2021
<another|>
About 11 years old
<JEEB>
is which unset the flags set to swscale, and swscale defaults to bicubic
deus0ww has joined #ffmpeg
<ppw>
ohh, got it, so if I change swscale's defaults, filter_complex will follow?
<aaabbb>
if filter_complex doesn't override the default (which i don't think it does anymore), yes
<ppw>
so if I wanted to enable accurate_rnd as the default, would I set .i64 = SWS_LANCZOS+SWS_ACCURATE_RND here? https://bpa.st/CJXQ
<aaabbb>
i haven't looked at the code but i'm guessing it's a bitmask so probably |
<ppw>
ah
e^pi-1 has joined #ffmpeg
<ppw>
looks like it worked, but as soon as I set any flag with flags= they apparently get nullified.
<aaabbb>
that's because it sets the default
<ppw>
yes, but if I use flags=print_info to show me what's being used, it reverts to the bicubic scaler
<noobaroo>
When I take a screenshot to .webp format with 99% compression quality, it's a 300KB file, but at 100% quality it's a 1000KB file. Now I'm probably being super cheap here but I don't have unlimited storage space and I would really prefer the smaller file. I can't tell a difference myself but I'm storing copies of quality checks at different CRFs compared to original format so having perfect accuracy is really really important
<aaabbb>
if you want perfect accuracy then you want -lossless 1
<noobaroo>
With CRF 18 is visually lossless even though it's not technically lossless, is there something similar like that with webp compression quality? Is 99% compression quality visually lossless?
<aaabbb>
occasionally, lossless is actually smaller than lossy (flat, simple gradients etc)
<furq>
ppw: flags=print_info+accurate_rnd
evilscreww has joined #ffmpeg
<furq>
oh nvm you're using C
<noobaroo>
aaabbb I'm screenshotting with Spectacle so there is no -lossless 1, there is only a percentage of compression quality to select
<noobaroo>
is 99% good enough? keep in mind I am specifically doing this to keep track of quality of codecs and settings...
<noobaroo>
I think I should stop being cheap and just go with 100% to be safe :/
<aaabbb>
even 100% isn't lossless
<aaabbb>
99% will be visually lossless, but if you're zooming in to try to find super tiny artifacts from a video codec, you might end up seeing artifacts from webp instead
<another|>
PNG
<another|>
It's up to you to decide whether you need lossless or not for your use case
<noobaroo>
100% jpeg is 800kb but 100% webp is 1000kb, how weird, even though at 99% webp is far less than jpeg
<aaabbb>
webp lossless will usually be better (compression ratio) than png
<noobaroo>
at 99% webp is 300kb and 99% jpeg is 680kb
evilscreww has quit [Remote host closed the connection]
<noobaroo>
Yeah, png is worse than both of those
<aaabbb>
even when running png against optipng, it's not ideal
<aaabbb>
i'd suggest trying lossless and see how much larger it is than 100% with lossy
evilscreww has joined #ffmpeg
<aaabbb>
oh i just noticed what you meant about spectacle
<aaabbb>
does spectacle support any lossless screenshot, even something crappy like tiff? then you could convert it to lossless webp
<another|>
It supports PNG
<evilscreww>
Aaabbb- I'm still struggling with this rotation business
<another|>
The plus for PNG is that you know for sure it's lossless
<evilscreww>
Doesn't seem to be working what was the line of command again
<aaabbb>
then i'd suggest saving as png, and then: ffmpeg -i input.png -c:v libwebp -lossless 1 -q:v 100 -compression_level 6 output.webp
<aaabbb>
evilscreww: one of the devs said that setting rotation via -metadata is deprecated iirc
<noobaroo>
Wow thanks, let me try that
<noobaroo>
It does support TIFF
<aaabbb>
either will work, only difference compression wise is tiff uses lzw and png uses deflate iirc
<noobaroo>
I didn't know png is lossless
<aaabbb>
it is, it's always lossless
<noobaroo>
It supports lots of different formats, is there another lossless format that's even better?
<aaabbb>
png/tiff will just be your temporary image that you will convert to webp
<aaabbb>
so you could even do old fashion ms bitmap if you wanted, doesn't really matter
<noobaroo>
tiff is 8MB and PNG is 1MB
<noobaroo>
almost 2 though
<aaabbb>
then unless png is significantly slower, go png, then convert to lossless webp
<evilscreww>
Wtf, why remove something that wasn't hurting anybody
<aaabbb>
evilscreww: not removed, just changed
<evilscreww>
Transpose?
<aaabbb>
no that's a filter, which requires reencoding. i'm not sure what the new flag is, only way i know is the old way to set it via metadata
<evilscreww>
Groan ok.
Seamus has quit [Quit: Client closed]
billchenchina- has quit [Remote host closed the connection]
five6184803 has quit [Remote host closed the connection]
five6184803 has joined #ffmpeg
System_Error has quit [Remote host closed the connection]
evilscreww has quit [Ping timeout: 250 seconds]
System_Error has joined #ffmpeg
ivanich has joined #ffmpeg
ivanich has quit [Remote host closed the connection]
evilscreww has quit [Remote host closed the connection]
evilscreww has joined #ffmpeg
e^pi-1 has quit [Quit: WeeChat 4.2.1]
e^pi-1 has joined #ffmpeg
cancername has joined #ffmpeg
waleee has quit [Ping timeout: 260 seconds]
luc4 has joined #ffmpeg
luc4 has quit [Client Quit]
jemius has quit [Quit: Leaving]
System_Error has quit [Ping timeout: 260 seconds]
evilscreww has quit [Ping timeout: 250 seconds]
evilscreww has joined #ffmpeg
e^pi-1 has quit [Quit: WeeChat 4.2.1]
Vonter has quit [Ping timeout: 260 seconds]
AbleBacon has joined #ffmpeg
Vonter has joined #ffmpeg
Traneptora has quit [Quit: Quit]
Traneptora has joined #ffmpeg
Sciencentistguy has joined #ffmpeg
Ox7C5_ has joined #ffmpeg
Ingvix has quit [Ping timeout: 272 seconds]
Ingvix has joined #ffmpeg
System_Error has joined #ffmpeg
five61848033 has quit [Remote host closed the connection]
five61848033 has joined #ffmpeg
Marth64 has joined #ffmpeg
evilscreww has quit [Ping timeout: 250 seconds]
Kei_N has quit [Ping timeout: 264 seconds]
Kei_N has joined #ffmpeg
junaid_ has quit [Quit: Lost terminal]
psykose has quit [Remote host closed the connection]
MisterMinister has joined #ffmpeg
psykose has joined #ffmpeg
Marth64 has quit [Ping timeout: 256 seconds]
Marth64 has joined #ffmpeg
iive has joined #ffmpeg
chitchor1047 has joined #ffmpeg
chitchor1047 has left #ffmpeg [#ffmpeg]
chitchor1047 has joined #ffmpeg
<chitchor1047>
hi
ferreum has joined #ffmpeg
Some_Person has joined #ffmpeg
Tinos has joined #ffmpeg
tofran has quit [Quit: Ping timeout (120 seconds)]
tofran has joined #ffmpeg
ivanich has joined #ffmpeg
chitchor1047 has left #ffmpeg [#ffmpeg]
ivanich has quit [Remote host closed the connection]
SystemError has joined #ffmpeg
System_Error has quit [Ping timeout: 260 seconds]
Tano has quit [Quit: WeeChat 4.1.2]
jarthur has joined #ffmpeg
LimeOn has joined #ffmpeg
rvalue has joined #ffmpeg
junaid_ has joined #ffmpeg
Haripesch has joined #ffmpeg
cancername has quit [Remote host closed the connection]
cancername has joined #ffmpeg
Marth64 has quit [Ping timeout: 264 seconds]
Marth64 has joined #ffmpeg
chitchor has joined #ffmpeg
chitchor has quit [Quit: WeeChat 3.8]
gchound has joined #ffmpeg
chitchor has joined #ffmpeg
<chitchor>
hi
<chitchor>
Can anyone read this?
<another|>
No
<JEEB>
just the robots out there
<chitchor>
I've used IRC before but never really used it properly
<chitchor>
Anyway, how do I start contributing? I mean how do I get started?
<JEEB>
start by building the current master :) for x86_64 requires nasm, compiler and some shell :)
alexherbo2 has joined #ffmpeg
jemius has joined #ffmpeg
<JEEB>
clone, mkdir -p build_root && cd build_root && ../path/to/ffmpeg/configure
<JEEB>
after that it's up to what you're interested in :)
<chitchor>
No, I didn't mean it that way. I've got no clue about asm. I mean what are the pre requisites? I can see assembly is a must. What else? C?
<JEEB>
I noted the prerequisites for x86_64 to get it built, since the first step in attempting to contribute is to just... build the project :)
<JEEB>
the project is in general C
<JEEB>
nasm is required for hand-written x86_64 assembly
<chitchor>
What about ARM? I'll most probably learn ARM assembly
<JEEB>
for ARM you just need a compiler in most cases
<JEEB>
since the hand-written assembly can usually be built into objects by the compiler
<JEEB>
be it gcc or clang
<chitchor>
do we have the mode command?
<JEEB>
?
<chitchor>
"/mode Nick +x" something like this?
<JEEB>
modes can be set on IRC, yes.
chitchor has quit [Changing host]
chitchor has joined #ffmpeg
<Marth64>
all irc daemon have modes, when you connect to the server the modes available to you are printed before the ident server greeting msg.
minimal has joined #ffmpeg
<Marth64>
usually nickname level modes are set by the server, IRCoper NickServ and not in your control, whereas if you operate a channel you can alter those of a channel
<Marth64>
server, IRCop, or NickServ*
<Marth64>
long live irc
lolok has joined #ffmpeg
cancername has quit [Remote host closed the connection]
<chitchor>
I will leave this channel when I close my client, right?
<chitchor>
Are bouncers free?
Livio has joined #ffmpeg
<Marth64>
yes if you close client, you will be disconnected
<Marth64>
there are free and paid bouncer options. free if you host yourself
<Marth64>
i personally don't use one these days because i like the concept of being disconnected but everyone has different needs