bitoff has quit [Read error: Connection reset by peer]
bitoff_ has joined #ffmpeg
<KombuchaKip>
Was there a recent change to FFmpeg in which avcodec_send_packet() returns AVERROR(EAGAIN) instead of AVERROR_INVALIDDATA when I send it a corrupt packet?
AbleBacon has quit [Read error: Connection reset by peer]
jarthur_ has joined #ffmpeg
jarthur has quit [Ping timeout: 240 seconds]
JanC_ has joined #ffmpeg
JanC has quit [Killed (osmium.libera.chat (Nickname regained by services))]
<ACI-XCIX_0001>
does someone knows hot to get the output gamma to be st2084 pq ?
<JEEB>
you're still setting a bt2020 transfer there
<JEEB>
that's effectively bt1886
<ACI-XCIX_0001>
here is the original .exr image in srgb colorspace but keeping the out of range values by float 32 bits : [hdr image](https://1drv.ms/u/s!AiUmCeW6ezhq92iYgrGD4uBAihYI?e=lQ8Dlu)
<JEEB>
right, the colorspace filter does not support HDR trcs
<JEEB>
try the zscale filter instead if you need to actaully convert
<JEEB>
`ffmpeg -h filter=zscale`
<ACI-XCIX_0001>
thank for answering !
<ACI-XCIX_0001>
trying....
<JEEB>
the help output should give you the options and the values
<JEEB>
also add `-v verbose` for the highest log level that is not spammy
jtgd has joined #ffmpeg
<ACI-XCIX_0001>
ok thank
<JEEB>
also when dealing with exact conversions I would recommend to have `-noauto_conversion_filters` set, that way if there is a conversion from one pix_fmt to another that seems to be needed, that would get an error
<JEEB>
instead of silently (well, with `-v verbose` it does log the auto-additions) adding conversions
<JEEB>
esp. since you probably want to control that conversion process to at most have one scale filter before zscale, and then zscale to yuv420p10
<JEEB>
whatever the pix_fmt is from the EXR
<JEEB>
`-vf "scale,format=MATCHING_PIX_FMT_SUPPORTED_BY_ZSCALE,zscale=opt=value,format=yuv420p10"` something like this most likeyl
<JEEB>
where the "format" filter basically is a meta-filter
<JEEB>
it means that the previous filter needs to output that pix_fmt
elastic_dog has quit [Ping timeout: 260 seconds]
<ACI-XCIX_0001>
..... interesting.......
<ACI-XCIX_0001>
typed the help command but do you know what could actually be used here to get that sweet hdr output like the original image ?
<ACI-XCIX_0001>
because pq or st2084 don t appear
<JEEB>
well, EXR is linear, right?
<JEEB>
I looked at `ffmpeg -h decoder=exr`
<JEEB>
and it seems to by default output "gamma"?
<ACI-XCIX_0001>
yes by default even with the previous command it still ouput gamma video while it should actually output quantizer pq curve
<ACI-XCIX_0001>
for hdr purpose hence the last results are all overexposed and washed out
<ACI-XCIX_0001>
not like the original exr when you display it with hdr + wcg image viewer
<ACI-XCIX_0001>
or affinity photo or krita
<JEEB>
there is a PQ option of interpreting the values, no idea if that works
<JEEB>
see the decoder help
<ACI-XCIX_0001>
on it and parsing
<ACI-XCIX_0001>
not finding it in `ffmpeg -h filter=zscale -v verbose`
<JEEB>
> < JEEB> I looked at `ffmpeg -h decoder=exr`
<JEEB>
since the decoder apparently is touching the values
<ACI-XCIX_0001>
` smpte2084 16 .D.V....... SMPTE ST 2084` yes right there
elastic_dog has joined #ffmpeg
<ACI-XCIX_0001>
not gonna lie, still a newcomer in this exceptional software, even if using it for 5 years now trying to build a premade working command for customs cases by trying to grasp the documentation, forums, discord, irc.
<hsv>
Hi, any tips how combine these two filters pls?
<hsv>
1) drop all non-key frames, 2) downscale, maintaining the input codec (h265).
<ACI-XCIX_0001>
would it be an issue if asked you how this `-apply_trc smpte2084` would integrates the command with `filter=zscale` ?
simon__ has quit [Ping timeout: 260 seconds]
<ACI-XCIX_0001>
meaning do you still keep the `-vf` and add `filter=zscale` right after it or it has to be implemented in another command ?
<JEEB>
yes, you still probably want zscale for the input pixel format to yuv420p10 conversion
<JEEB>
which is at the very least a matrix conversion if EXR is RGB based
<JEEB>
(think of things in values from H.273, where your input has some primaries, some matrix, some trc (and color range) - and then output should be defined in that sense as well that you want)
<JEEB>
check the output of `ffprobe -of json -apply_trc smpte2084 -show_frames -i INPUT.exr` what the decoded frames' color values are
simon__ has joined #ffmpeg
<ACI-XCIX_0001>
......processing.........
<ACI-XCIX_0001>
what would be the issue with this command for instance ? :
rvalue has quit [Read error: Connection reset by peer]
<JEEB>
you wanted HDR trc and those are not supported by the colorspace filter? if you check `ffmpeg -h filter=colorspace` you will not see any HDR transfers there :P
<JEEB>
lol
<ACI-XCIX_0001>
aaaaa
rvalue has joined #ffmpeg
<JEEB>
yea good job pasting your first command there first
<JEEB>
:)
<ACI-XCIX_0001>
try to to built the command
<ACI-XCIX_0001>
aaaa (y)
<JEEB>
apply_trc is a decoder option
<JEEB>
it goes before the input, not into the filter chain
<JEEB>
:P
<JEEB>
see how I called it in the ffprobe example I posted
<JEEB>
anyways, I have other things to do so not going to be able to hand-hold you more :P
<JEEB>
I just hope that the EXR decoder's PQ option does things correctly
<JEEB>
then you don't need to convert the transfer any more
<JEEB>
just primaries and matrix
<ACI-XCIX_0001>
thank can you just give the command ?
<ACI-XCIX_0001>
8)
sirmangler has joined #ffmpeg
<sirmangler>
quick question as a developer, is it worth using ffmpeg as a library rather than using ffmpeg as an executable and piping the output to my application?
<JEEB>
depends(TM)
<JEEB>
the API lets you do exactly what you want
<JEEB>
the cli apps under fftools are just API clients themselves as well, implementing certain features
<sirmangler>
But then what am I losing from the piping? Is it even significant?
<JEEB>
also depending on what exactly you need you may want to take a look at ffms2 as well, which indexes inputs and lets you do frame-exact seeking etc
<JEEB>
sirmangler: if the piped output contains all the required information you might need (such as timestamps and other stuff), then not much? you are just not as much in control of the flow
<sirmangler>
Interesting
<JEEB>
it's a whole big It Depends depending on your use case and requirements
<sirmangler>
ffms2 looks pretty neat as well, can it be used for a really simple "just decode this file/stream and give me the frames" or is it a more specific tool
<JEEB>
if you just need A->B decode without seeking etc then you don't need ffms2 really
<sirmangler>
The main reason I'm even considering this is just because I keep running into problems using the api myself, the latest of which is after decoding a few frames, I'm getting a crash on "avcodec_send_packet" somewhere when ffmpeg runs malloc
<JEEB>
seeking and such is where it becomes handy, as it uses an index
<sirmangler>
and unfortunately the only thing that changed since that problem occurred is I installed some packages (on linux) because I was looking into hw encoding.
taniey has quit [Ping timeout: 256 seconds]
<sirmangler>
but it sounds like there isn't even a big performance impact from piping the output of ffmpeg
<JEEB>
HW decoding only gets utilized if explicitly requested
<sirmangler>
I know
<JEEB>
and send_packet is decoding
<sirmangler>
I was going to implement it into my encoder, but I stashed my changes after I started getting these crashes from my decoder
<sirmangler>
the decoder is software right now
<JEEB>
anyways, you could check the included transcoding example and build that
<JEEB>
if that also crashes then there's something funky going on with the FFmpeg libs that you are linking against
<JEEB>
and/or loading during runtime
<JEEB>
doc/examples is where that stuff is, and there is a readme/Makefile that should enable building them against external FFmpeg
<sirmangler>
Ahh I misread that, I thought it depended on ffmpeg's source but I see now I can compile with my preinstalled libraries
<ACI-XCIX_0001>
JEEB you call that holding the hand to someone giving an explanation on this subject but having asked this question on a lot of different support, it the kind of questions wto which rare will be the one to answer....
<JEEB>
ACI-XCIX_0001: it requires active participation which off-hand quick comments do not require. anyways, I'm AFK from here as I have other things I need to do
<ACI-XCIX_0001>
active participation ? meaning yours ? off hand quick comments ? is there something long on this matter ?
<ACI-XCIX_0001>
but letting you go no issue
<ACI-XCIX_0001>
will try to ask if someone can explain it as well as you could if you were still on, if this is not the case, will come back later to pursue the investigation by asking you the correct questions when you will come back
bitbinge has joined #ffmpeg
Ogobaga has quit [Quit: Konversation terminated!]
<ACI-XCIX_0001>
investigating on this zscale
Ogobaga has joined #ffmpeg
Ogobaga has quit [Client Quit]
Ogobaga has joined #ffmpeg
aleeku_ has joined #ffmpeg
<aleeku_>
Hello! One AVFrame contains 1024 audio samples. Is there a way to change that? I'd like to test our blackbox with 300 samples
LionEagle has joined #ffmpeg
<sirmangler>
Disappointing, I installed the latest version of ffmpeg, recompiled and it got further but then crashed, logging "malloc(): smallbin double linked list corrupted".
BtbN has joined #ffmpeg
Vonter has quit [Ping timeout: 256 seconds]
Vonter has joined #ffmpeg
foul_owl has quit [Read error: Connection reset by peer]
billchenchina has joined #ffmpeg
Ogobaga has quit [Quit: Konversation terminated!]
Ogobaga has joined #ffmpeg
Ogobaga has quit [Client Quit]
Ogobaga has joined #ffmpeg
Ischwitch has joined #ffmpeg
Ingvix has quit [Ping timeout: 240 seconds]
Ischwitch is now known as Ingvix
txtsd has quit [Read error: Connection reset by peer]
atrius has quit [Read error: Connection reset by peer]
staceee has quit [Read error: Connection reset by peer]
brocellous has quit [Read error: Connection reset by peer]
noelle has quit [Write error: Connection reset by peer]
tsujp has quit [Write error: Connection reset by peer]
ninjin has quit [Write error: Connection reset by peer]
<ACI-XCIX_0001>
the image is half and still ouputting `colormatrix: bt709`, `level: limited`
MootPoot has quit [Quit: Connection closed for inactivity]
LionEagle has quit [Client Quit]
foul_owl has joined #ffmpeg
hans__ has quit [Quit: Connection closed for inactivity]
sirmangler has quit [Remote host closed the connection]
ACI-XCIX_0001 has quit [Quit: Client closed]
ACI-XCIX_0001 has joined #ffmpeg
navi has joined #ffmpeg
ZedHedTed has quit [Remote host closed the connection]
ZedHedTed has joined #ffmpeg
lucasta has joined #ffmpeg
<hsv>
I'm using -skip_frame nokey ... select='eq(pict_type,PICT_TYPE_I)' to drop non-key frames, but this also re-numbers the frames 0,1,2...etc.
<hsv>
Is there a way to retain the original frame numbers, for use in a drawtext overlay?
Cindy has quit [Remote host closed the connection]
bnchs has joined #ffmpeg
omegatron has joined #ffmpeg
bnchs is now known as Cindy
Ogobaga has quit [Quit: Konversation terminated!]
Ogobaga has joined #ffmpeg
realies has quit [Read error: Connection reset by peer]
realies has joined #ffmpeg
waleee has joined #ffmpeg
LionEagle has joined #ffmpeg
hseg has joined #ffmpeg
<hseg>
Hi. Must be doing sth wrong -- my attempt at forcing the selection of just the japanese-language audio stream only succeeded in removing non-audio streams altogether
Angus1234 has joined #ffmpeg
<hseg>
Was invoking with ffmpeg -y -i "$i" -c:v libx264 -vf "scale=640:360, subtitles=f='$i'" -profile:v baseline -level:v 4.0 -pix_fmt yuv420p -map 0:a -map 0:m:language:jpn -c:a aac -ac 2 (though most of the rest is irrelevant)
minimal has joined #ffmpeg
<hseg>
(reencoding for feature phone, hence the low resolution and profile and baking in of subtitles)
simon__ has joined #ffmpeg
<Angus1234>
Hello, does anyone know how to apply the rw_timeout setting to the protocol in C++? I thought I would be able to apply it to the AVFormatContext privdata via av_opt_set but I'm getting an option not found error from FFmpeg.
<furq>
hseg: you presumably want -map 0:v instead of -map 0:a
Ogobaga has quit [Quit: Konversation terminated!]
Ogobaga has joined #ffmpeg
<simon__>
analysing transcoding with jellyfin on my system it shows an error related to the option autorotate - basically jellfin creates the cmd like: ffmpeg -init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va -autorotate 0 -i test.mp4 - is this a wrong use by jellyfin? (if i remove the 0 from autorotate it works). Otherwise i get: Option autorotate (automatically insert correct rotate filters) cannot be
<simon__>
applied to output url 0 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.Error parsing options for output file 0.
<hseg>
thought 0:a would restrict the 0:m filter to just the audio streams
<hseg>
intent is to have jpn audio and whatever subs happen to be there
<furq>
map is additive
kurosu has joined #ffmpeg
<hseg>
ah
<hseg>
testing...
bitbinge has quit [Ping timeout: 240 seconds]
<JEEB>
simon__: I think autorotate 0 => noautorotate
Ogobaga has quit [Read error: Connection reset by peer]
<simon__>
hm would make sense but why is it then giving the error output ...it is placed before input file ...
Ogobaga has joined #ffmpeg
Ogobaga has quit [Client Quit]
Ogobaga has joined #ffmpeg
<JEEB>
simon__: because when you add the zero to an option that takes no value argument
<JEEB>
it takes 0 as the output file name
Ogobaga has quit [Client Quit]
<JEEB>
and it says that it cannot be applied to that output, so you need to put noautorotate before the input
<JEEB>
-noautorotate -i INPUT
<JEEB>
ahh you have it before but the 0 is parsed as output :)
<JEEB>
so yea
<JEEB>
if you fix the additional argument that's not required it should work
Ogobaga has joined #ffmpeg
<simon__>
ok so then autorotate 0 is wrong and they should have used either autorotate or noautorotate but not with 0
<simon__>
will try - would need to get a git setup of jellyfin first ;)
<JEEB>
I think autorotate could have allowed for zero previously, I recall recently with git master FFmpeg someone bringing one or so misdefined option to the correct noXYZ form
<hseg>
works, ty!
<JEEB>
yea 25c98566e8a45b50415c80ca6450282f2ec0657a removed it, merged dec 22
BillTorvalds has joined #ffmpeg
hseg has quit [Quit: WeeChat 4.1.2]
<JEEB>
seems like both styles worked and only the noXYZ was documented
<simon__>
and ths is also not working here: ffmpeg -autorotate 0 -i test.mp4 sample.mp4
<simon__>
hm I still don't get it
<simon__>
or is the commit you posted removing the support for the argument and therefore it would be now treated as output
<simon__>
i could try the version before to test
<JEEB>
yes check the commit message for the commit I linked
<simon__>
yes reverted to that version and now it runs ok both with hw or sw
<simon__>
question for me would be should that be reverted on ffmpeg or adapted on jellyfin
Ekho has quit [Quit: CORE ERROR, SYSTEM HALTED.]
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
<JEEB>
that is unlikely to be reverted since the noXYZ should according to that commit have worked before, and the XYZ 0 was completely undocumented
<JEEB>
and all the other bool options were noXYZ only
<simon__>
ok will raise an issue on jellyfin then
<simon__>
thanks for the guidance
lucasta has quit [Quit: Leaving]
epony has quit [Remote host closed the connection]
epony has joined #ffmpeg
simon__ has quit [Remote host closed the connection]
<Angus1234>
I managed to find the answer to my question above - however an addendum. Does anyone know if you set the rw_timeout via avio_open2 whether I also need to set an interupt callback? Or can I leave that NULL and FFmpeg will still timeout after the setting value in av_write_frame?
<Angus1234>
Basically I have an RTMP stream that occasionally the connection is being interrupted, and we get stuck in av_write_frame. Not exactly sure on the cause of the network problem yet, however in the meantime I want to add some resiliency and get out of the av_write_frame call. Am I going about this the correct way?
Ekho has joined #ffmpeg
<Angus1234>
Using rw_timeout I mean
bitbinge has joined #ffmpeg
bitbinge has quit [Remote host closed the connection]
<antto>
i think it has to do with parsing the CLI arguments but i can't tell wtf happens
minimal has quit [Quit: Leaving]
ZedHedTed has quit [Quit: leaving]
LionEagle has quit [Quit: Leaving]
lavaball has joined #ffmpeg
LionEagle has joined #ffmpeg
Cindy has quit [Remote host closed the connection]
Blacker47 has quit [Quit: Life is short. Get a V.90 modem fast!]
ZedHedTed has joined #ffmpeg
rv1sr has quit []
MisterMinister has joined #ffmpeg
<MisterMinister>
Greetings and Salutations! How would I list all muxer related commands for each version of ffmpeg on my machine please? Thought it was `./ffmpeg -muxer=hls --help`
Jibwood has quit [Remote host closed the connection]
Jibwood has joined #ffmpeg
wyre has joined #ffmpeg
lavaball has quit [Remote host closed the connection]
omegatron has quit [Quit: Power is a curious thing. It can be contained, hidden, locked away, and yet it always breaks free.]
<MisterMinister>
Got a quick HLS question please: FFmpeg doesn't seem to trim M3U8 playlist to the set maximum number of entries. Any method to make sure to enforce it please?
ACI-XCIX_0001 has joined #ffmpeg
<MisterMinister>
Got a quick HLS question please: FFmpeg doesn't seem to trim M3U8 playlist to the set maximum number of entries. Any method to make sure to enforce it please? `./ffmpeg -i udp:// ... -hls_time 8 -hls_list_size 10 -hls_playlist_type event -hls_delete_threshold 2 -hls_segment_type mpegts -hls_flags split_by_time+delete_segments -hls_segment_filename "chan_01_segment_%d.ts" "index.m3u8"`
ivanich has joined #ffmpeg
ivanich has quit [Remote host closed the connection]
<Jibwood>
@MisterMinister: Couldn't tell you, but you tried ChatGPT? I've found it to be very good at ffmpeg
cosimone has joined #ffmpeg
MootPoot has quit [Quit: Connection closed for inactivity]
<ACI-XCIX_0001>
does ouputs a half black image and the colorimatrix is still in bt709 and the levels is still in limited while it s specified otherwise in the command ?
Icedream has joined #ffmpeg
darkapex has quit [Remote host closed the connection]
darkapex has joined #ffmpeg
<Marth64>
TIL ChatGPT speaks ffmpeg
Jibwood has quit [Remote host closed the connection]
<another|>
given all the crap I've seen online about ffmpeg I have little faith in GPT
<Marth64>
I have never used it due to the account requirement
<Marth64>
but yeah I can only imagine what was fed to it haha