<aaabbb>
i'm trying to optimize an h264 encode for a screen recording. mpdecimate, very high me range, lots of refs and b frames, lowering the psy-rd and aq a little lower than -tune animation also helps
<aaabbb>
what else is there to do? is there any reason not to use no-dct-decimate?
Tinos has quit [Remote host closed the connection]
iive has quit [Quit: They came for me...]
jtgd has quit [Ping timeout: 268 seconds]
jtgd has joined #ffmpeg
xx has quit [Ping timeout: 255 seconds]
vampirefrog has quit [Ping timeout: 260 seconds]
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Haripesch has quit [Quit: Client closed]
fling has quit [Remote host closed the connection]
fling has joined #ffmpeg
squeaktoy has quit [Ping timeout: 268 seconds]
squeaktoy has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
emmanuelux has quit [Quit: au revoir]
realies has quit [Quit: ~]
realies has joined #ffmpeg
fling has quit [Remote host closed the connection]
fling has joined #ffmpeg
mips64el_ has joined #ffmpeg
mips64el_ has quit [Remote host closed the connection]
mips64el has quit [Ping timeout: 246 seconds]
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
ossifrage has joined #ffmpeg
hays has joined #ffmpeg
waleee has quit [Ping timeout: 264 seconds]
ivanich has quit [Ping timeout: 260 seconds]
five618480 has quit [Remote host closed the connection]
five6184803 has joined #ffmpeg
minimal has quit [Quit: Leaving]
emanuele6 has quit [Quit: WeeChat 4.2.1]
emanuele6 has joined #ffmpeg
theobjectivedad has quit [Ping timeout: 260 seconds]
theobjectivedad has joined #ffmpeg
elastic_dog has quit [Ping timeout: 240 seconds]
AbleBacon has quit [Read error: Connection reset by peer]
elastic_dog has joined #ffmpeg
Vonter has quit [Ping timeout: 256 seconds]
Vonter has joined #ffmpeg
FH_thecat has quit [Quit: Leaving]
Suchiman has quit [Quit: Connection closed for inactivity]
Seamus has quit [Remote host closed the connection]
<znf>
this being an Intel iGPU, with the i915 kernel module
<znf>
trying to use libva
five6184803 has quit [Remote host closed the connection]
five618480 has joined #ffmpeg
<znf>
oh, got it
FH_thecat has joined #ffmpeg
JanC has quit [Ping timeout: 260 seconds]
JanC has joined #ffmpeg
<znf>
still incredibly confused
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Ox7C5 has joined #ffmpeg
noobaroo has quit [Remote host closed the connection]
Ox7C5 has quit [Quit: Lost terminal]
Ox7C5 has joined #ffmpeg
beaver has joined #ffmpeg
lexano has quit [Ping timeout: 268 seconds]
Haxxa has quit [Quit: Haxxa flies away.]
Haxxa has joined #ffmpeg
lexano has joined #ffmpeg
fossdd has joined #ffmpeg
xx has joined #ffmpeg
rv1sr has joined #ffmpeg
Muimi has quit [Quit: Going offline, see ya! (www.adiirc.com)]
fossdd has quit [Ping timeout: 256 seconds]
Ox7C5 has quit [Ping timeout: 246 seconds]
Ox7C5 has joined #ffmpeg
jarthur_ has quit [Quit: jarthur_]
Ox7C5 has quit [Ping timeout: 256 seconds]
Ox7C5 has joined #ffmpeg
Suchiman has joined #ffmpeg
lemourin has quit [Read error: Connection reset by peer]
lemourin has joined #ffmpeg
FlorianBad has quit [Remote host closed the connection]
rv1sr has quit []
signalhunter has quit [Quit: Zzz]
signalhunter has joined #ffmpeg
wyatt8740 has quit [Remote host closed the connection]
wyatt8740 has joined #ffmpeg
luc4 has joined #ffmpeg
wyatt8740 has quit [Ping timeout: 260 seconds]
wyatt8740 has joined #ffmpeg
kasper93 has joined #ffmpeg
Blacker47 has joined #ffmpeg
MootPoot has quit [Quit: Connection closed for inactivity]
Tinos has joined #ffmpeg
l4yer has quit [Ping timeout: 268 seconds]
l4yer has joined #ffmpeg
EmleyMoor has quit [Ping timeout: 264 seconds]
EmleyMoor has joined #ffmpeg
RhineDevil has joined #ffmpeg
<RhineDevil>
I'm trying to convert videos from HEVC to H264 but I'm doing it on a droplet with limited RAM. I'm using this command for converting: ffmpeg -i "$i" -c copy -c:v libx264 -pix_fmt yuv420p -crf 18 -map 0 "$j"
EmleyMoor has quit [Ping timeout: 272 seconds]
<RhineDevil>
The process gets killed by linux itself for exceeding RAM requests. How could I reduce the requested RAM
<bencoh>
reduce threads number maybe
<RhineDevil>
Is it automatically selected?
<RhineDevil>
The number of threads I mean
vampirefrog has joined #ffmpeg
<bencoh>
by default? I guess so
<RhineDevil>
How do I know how much threads are running?
<RhineDevil>
(before it's killed by the system I mean, so it should print it)
<bencoh>
with htop I'd say. default threads value is 0/auto
<RhineDevil>
Wouldn't have the time, ffmpeg is killed straight up when booting
<bencoh>
ah
<bencoh>
maybe increasing loglevel would make ffmpeg output it (I dunno)
<RhineDevil>
How do I increase loglevel
EmleyMoor has joined #ffmpeg
<furq>
just set -threads 1 before and after -i
<furq>
if it still gets oom killed then there's not much you can do
<aaabbb>
RhineDevil: try reducing the lookahead?
<aaabbb>
also using fewer bframes will reduce memory usage
<aaabbb>
you can do -benchmark to see how its resource usage
<furq>
that won't do anything if it's getting oom killed
<aaabbb>
-benchmark_all then
<aaabbb>
you can see its last usage before it gets killed (unless it's dying before even starting to encode)
<aaabbb>
-tune zerolatency might also help (it disables a lot of things that require memory)
<aaabbb>
RhineDevil: i just tested 60 seconds of 896x504 hevc to h264 with 1 thread. using -tune zerolatency cut the max memory usage in half
<furq>
well there's a good reason for that
<aaabbb>
yeah no lookahead or b frames
<aaabbb>
i guess it might also help on the encoding side if you're low on memory
<aaabbb>
ref=1 also helps a bit, and going intra-only helps the most (but would absolutely butcher your bitrate and is silly)
hightower2 has joined #ffmpeg
RhineDevil has quit [Ping timeout: 255 seconds]
hsv has left #ffmpeg [#ffmpeg]
RhineDevil has joined #ffmpeg
<RhineDevil>
aaabbb: Tried with that, not killed for now
<aaabbb>
RhineDevil: with -tune zerolatency?
RhineDevil has quit [Quit: Leaving]
mips64el has joined #ffmpeg
lavaball has joined #ffmpeg
junaid_ has joined #ffmpeg
junaid_ has quit [Remote host closed the connection]
luc4 has quit [Ping timeout: 255 seconds]
luc4 has joined #ffmpeg
Juesto has joined #ffmpeg
Juest has quit [Ping timeout: 256 seconds]
Juesto is now known as Juest
Haripesch has joined #ffmpeg
rsx has joined #ffmpeg
Ox7C5 has quit [Ping timeout: 264 seconds]
Kei_N_ has joined #ffmpeg
pikapika is now known as militantorc
Kei_N has quit [Ping timeout: 264 seconds]
waleee has joined #ffmpeg
EmleyMoor has quit [Ping timeout: 260 seconds]
MisterMinister has joined #ffmpeg
Taripe is now known as ePirat
moviuro has quit [Quit: Reboot? Or did my jail(8) just die?]
moviuro has joined #ffmpeg
AbleBacon has joined #ffmpeg
Ox7C5 has joined #ffmpeg
EmleyMoor has joined #ffmpeg
Traneptora has quit [Quit: Quit]
<znf>
Is there a way to get a GPU's Vulkan capabilities?
<CounterPillow>
vulkaninfo
<znf>
that's a lot of output
Ram-Z has quit [Ping timeout: 246 seconds]
Ram-Z has joined #ffmpeg
<znf>
ok, so: VK_KHR_video_decode_h264 / VK_KHR_video_decode_h265 etc. means that it can decode those on vulkan
<JEEB>
note that these are just interfaces to the exact same hw stuff as the possible other APIs
<JEEB>
you just receive vulkan images
<JEEB>
instead of cuda or vaapi or whatever
<znf>
how does that work for an intel igpu?
<JEEB>
because it's not gpu stuff
<JEEB>
it just talks to the hardware that the other video decoding APIs do
<znf>
let me rephrase, I have a crappy "Intel(R) UHD Graphics 730 (ADL-S GT1)" to play a bit with, I know that it can decode hevc and h264, but when I tried using it with Vulkan, it complained that it doesn't support video decoding? missing extension something
<znf>
let me re-try the test
hwaet2 has joined #ffmpeg
<JEEB>
yea the vulkan driver needs to support the right extensions, of which the basic one is the KHR decode one
<hwaet2>
hi. i had a wav file, turned it into m4a with ffmpeg. trid to concatenate it with anoter m4a. but the end file is like 12 hours long (should be 4) and crashes when i skip ahead. .what's going on?
<hwaet2>
i ran ffmpeg -i long.wav -c:a aac -b:a 256k dict.m4a
<JEEB>
with intel I just use vaapi because it's just an absolute not-fun having the additional MXF library
<JEEB>
since on linux on the background it's just calling vaapi
<JEEB>
*in the background
<znf>
well, I ffmpeg compiled with libvpl, latest intel drivers & stuff
<JEEB>
yea, just not sure if there's a real benefit from that API
<znf>
but the page is lacking an example on how to actually use it
<kepstin>
theoretically, the qsv/mxf/vpl stuff allows a bit more configuration of the hardware encoder, but it's still the same hardware encoder being used either way
<znf>
if I have vpl, do I still just _qsv ?
<JEEB>
the vpl renaming process was ulz
<JEEB>
*lulz
<JEEB>
since the thing is still the MXF library
<JEEB>
you can literally see it in the headers etc
<kepstin>
yeah, vpl is just mxf2 pretty much
<JEEB>
they just whistled and marketing-forked
<JEEB>
znf: same API in the background and _qsv ones are just using the MXF APIs
<kepstin>
they renamed mxf to OneVPL to put it as part of their "oneAPI" marketing thing, then realized that the way they designed it wasn't actually useful as a cross-vendor api, and dropped it from oneapi. so now it's just "VPL"
<znf>
so I don't need to *technically* do anything special to use VPL, other than having ffmpeg compiled with it, right?
<CounterPillow>
is it listed in ffmpeg -hwaccels?
<kepstin>
if ffmpeg is compiled with vpl support, then the "qsv" hardware encoders/decoders will use the hardware via vpl instead of mxf
<znf>
it is not, cuda, vaapi, qsv, drm, opencl, vulkan
<kepstin>
*mfx
<znf>
should "vpl" be in there instead of "qsv"? I'd assume not
<kepstin>
the ffmpeg hwaccel is named "qsv", and it uses either vpl or mfx depending on compile-time options.
<znf>
ok, great
<kepstin>
(note that last i checked, the vpl loader supports loading the old mfx libraries for backwards compatibility with older igpus)
<znf>
let's see if I can figure out how to use overlay_qsv with it
<znf>
why does the trac page list: -vw hwupload=extra_hw_frames=64,format=qsv
<znf>
-vf*
<znf>
why do you need to specify the extra hw frames for qsv to work?
minimal has joined #ffmpeg
<linext>
is there a good way to get ffmpeg to start recording with less of a delay?
<znf>
ffmpeg doesn't introduce any "delay", so what are you talking about?
<JEEB>
ffmpeg filtering logic does insert a format filter if you have pix_fmts defined
<znf>
so is my hevc_qsv expectiv format=qsv?
<JEEB>
basically my guess is that whatever ends up being there in the format at the end is a sw format, since I think overlay_vaapi outputs a vaapi surface?
<JEEB>
and thus hw
<JEEB>
and you only get that mismatch if you have sw vs hw (or an actual mismatch, but we're dealing with hw filters here)
<znf>
now, is this actually complaining about the GPU not being able to allocate memory (?) or is it complaining about the frames not being in memory where it's expecting them to be?
rv1sr has joined #ffmpeg
microchip_ has quit [Quit: There is no spoon!]
microchip_ has joined #ffmpeg
<znf>
nah, I'm still failing hard on this
<znf>
I tried to hwdownload, and software encode, but now it's complaining about "Error while filtering: Input/output error"
<znf>
and "Failed to read image from surface 0x27: 1 (operation failed)."