Ffmpeg-devel-irc
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
February 2018
- 1 participants
- 56 discussions
[00:01:39 CET] <jamrial> kierank: doing that will probably break a lot of weird samples h264dec has been tuned to parse
[00:02:02 CET] <kierank> ok
[00:02:10 CET] <kierank> good i guess
[00:02:27 CET] <jamrial> also, every time some big change was done to h264dec you'd freak out and say all the previous fuzzing suddenly became pointless :p
[00:02:43 CET] <jkqxz> Yeah, it's not really a sane thing to do because of the legacy, even if it would kill all the stupid fuzzing things.
[00:04:04 CET] <jamrial> jkqxz: first batch of fuzzing found a lot of real issues, specially with slice threading decoding
[00:04:18 CET] <jamrial> recent stuff is mostly UB, which is not really that useful
[00:04:25 CET] <jkqxz> Fuzzing for meaningless undefined behaviour in bitstream reading, I mean.
[00:04:31 CET] <jamrial> yeah
[00:05:17 CET] <kierank> yeah most of them these days are useless
[00:05:42 CET] <jkqxz> The "oh noes you can get a signed overflow on this variable just before the parser detects the error and returns failure!" stuff.
[00:06:45 CET] <JEEB> yea, too bad it doesn't figure that the case was handled
[00:07:59 CET] <jkqxz> Well technically it isn't because the undefined behaviour lets the compiler make it delete all your files and punch you in the face before the check happens, but meh.
[00:08:13 CET] <JEEB> right
[00:09:43 CET] <jdarnley> Will the next version of C please define signed integers as twos complement.
[00:10:23 CET] <iive> it would be great
[00:11:19 CET] <jkqxz> Or at least implementation-defined to something nonstupid, prohibiting nasal demons.
[00:11:46 CET] <jkqxz> (I bet there are still crazy people in the standards stuff who would reject a twos complement definition.)
[00:13:07 CET] <iive> are there any cpu's that don't use it?
[00:13:39 CET] <iive> i mean, currently been manufactured.
[00:13:52 CET] <peloverde> It's not just two's complement issues. The compiler folks like being able to assume that you can't drive the result negative by adding two positives because it enables a bunch of peephole optimizations.
[00:14:23 CET] <iive> that could be resolved in more elegant way.
[00:14:30 CET] <iive> e.g. explicit overflow handling.
[00:14:38 CET] <iive> it's good for security too.
[00:14:54 CET] <jkqxz> Probably the sort of CPUs you use to run nuclear power stations.
[00:15:16 CET] <iive> jkqxz, intel atoms ?
[00:15:29 CET] <nevcairiel> nah, something from the 60s
[00:16:02 CET] <peloverde> Of course they insist negative << [0,31] is UB don't bother writing the optimization for that one https://t.co/kffl71HQYV
[00:16:30 CET] <jkqxz> peloverde: "Signed overflow may return any value in the range of the type" is fine for optimisation.
[00:17:03 CET] <peloverde> I agree it's fine, but they want to optimize out a bunch of conditionals
[00:17:28 CET] <peloverde> watch chandler carruth's talk on UB if you want to know how they think
[00:17:42 CET] <jkqxz> No, I mean that is sufficient for them to optimise out conditionals as well if they want (since they can assert that it will always return a particular value which doesn't trigger something).
[00:17:46 CET] <jdarnley> iive: haha
[00:18:08 CET] Action: iive is happy somebody figured out the joke :D
[00:18:22 CET] <peloverde> so you want signed overlow returns an "unspecified value" rather than is "undefined behavior"
[00:18:30 CET] <jkqxz> Since CPUs don't actually trap on signed overflow.
[00:18:32 CET] <jkqxz> Yes, exactly.
[00:19:09 CET] <peloverde> that still prevents optimizing on "X + 1 > X"
[00:19:21 CET] <iive> one thing i've mentioned before is creating a new unsigned type where the overflow is defined.
[00:19:28 CET] <peloverde> because if x is the max vale for the type they will be equal
[00:19:32 CET] <iive> this way only new code would be affected.
[00:19:46 CET] <nevcairiel> it would help all that nonsense in dsp functions though
[00:19:57 CET] <nevcairiel> right now its UB and people claim that could make your PC explode, so its bad
[00:19:57 CET] <peloverde> overflow is already defined for unsigned types
[00:20:06 CET] <nevcairiel> if its just undefined values .. noone cares about that in dsp stuff
[00:20:07 CET] <iive> i mean signed, sorry
[00:20:54 CET] <iive> one thing i've mentioned before is creating a new signed type where the overflow is defined. <<fixed>>
[00:22:35 CET] <iive> anyway, nuclear power plants use modern computers, even if they have been built in 60's
[00:23:25 CET] <nevcairiel> then use something worse, computers controlling nuclear weapons, because those definitely are from the stoneage =p
[00:24:08 CET] <jkqxz> iive: <https://www.theregister.co.uk/2013/06/19/nuke_plants_to_keep_pdp11_until_20…>
[00:24:36 CET] <nevcairiel> infrastructure is full of legacy stuff like that
[00:24:41 CET] <nevcairiel> replacing it costs a fortune, and "it works"
[00:24:44 CET] <jkqxz> Yeah.
[00:25:55 CET] <iive> jkqxz, do you notice that they are seeking for assembler coders? no C for them :P
[00:26:07 CET] <nevcairiel> thats just one option
[00:26:13 CET] <thardin> don't replace something that works
[00:26:18 CET] <nevcairiel> but yeah C wasnt really popular back then
[00:26:28 CET] <nevcairiel> assembler or maybe COBOL
[00:26:40 CET] <jkqxz> Ha, I guess that's true.
[00:28:16 CET] <thardin> there's more than a few pdp collectors in the world who likely know enough pdp asm to work with that
[00:28:58 CET] <iive> are they really keeping an original pdp in working condition, just for that?
[00:30:09 CET] <nevcairiel> replacing such a system would probably cost hundreds of millions in development and validation
[00:30:10 CET] <thardin> nasa is looking for people to code for voyager
[00:30:36 CET] <thardin> though in that case replacing the hardware is a bit more difficult
[00:31:04 CET] <nevcairiel> FORTRAN eh
[00:31:09 CET] <cone-576> ffmpeg 03Felix Matouschek 07master:5ac3a309fddd: avdevice: add android_camera indev
[00:31:10 CET] <cone-576> ffmpeg 03Calvin Walton 07master:ff0de964e7ab: libavfilter/vf_fps: Add tests for start_time option
[00:31:11 CET] <cone-576> ffmpeg 03Gyan Doshi 07master:4f8c691040b0: avformat/mpegenc - log error msgs for unsupported LPCM streams
[00:31:12 CET] <iive> at least I know nasa is using 486 hardened to withstand cosmic radiation.
[00:31:12 CET] <cone-576> ffmpeg 03Michael Niedermayer 07master:ae2eb0464883: avcodec/cavsdec: Check alpha/beta offset
[00:31:34 CET] <jkqxz> Remember that minicomputers of that time are actually possible to fix, since it's pre-VLSI.
[00:32:19 CET] <iive> though voyager is a bit older than 486, iirc
[00:32:36 CET] <thardin> jkqxz: nah, I hear it's more down to the Q bus
[00:32:41 CET] <nevcairiel> voyager launched in 77
[00:32:49 CET] <nevcairiel> quite a while before any x86 =p
[00:32:55 CET] <thardin> like you just install more modern replacement modules
[00:33:30 CET] <thardin> source: pdp-8 collector who lives in my town
[00:37:45 CET] <atomnuker> nah, they don't use x86 for space things, afaik they use POWER ones because IBM makes hardened versions themselves
[00:39:27 CET] <nevcairiel> the mars rovers use a PowerPC type-chip, but its not directly from IBM, some other company makes them radiation hardened etc
[00:39:29 CET] <thardin> the shuttle used 486
[00:39:58 CET] <iive> http://gawker.com/5064694/nasas-shame-hubble-space-telescope-runs-on-a-486-…
[00:40:08 CET] <iive> sorry for gawker...
[00:41:32 CET] <nevcairiel> its kinda sad, even the next mars mission planned for 2020 is supposedly still using a hardened PowerPC chip from 2001
[00:41:40 CET] <thardin> how is it running a shame?
[00:41:41 CET] <nevcairiel> no wonder they typically run out of developers for this stuff
[00:42:33 CET] <thardin> you don't do any heavy lifting on these cpus anyway. just capture the data and crap it down the radio link
[00:42:44 CET] <thardin> cram. well I guess crap works too
[00:44:38 CET] <thardin> since a failed CPU means you have sent a $1G brick to mars you'll want to make at least the central ones something that's well used
[00:44:42 CET] <iive> wow, earthquake here... quick and vertical. it's over.
[00:45:07 CET] <jkqxz> POWER systems from 2003 apparently still work pretty well on Mars - <https://en.wikipedia.org/wiki/Opportunity_(rover)>.
[00:45:18 CET] <atomnuker> the new mars rover does hardware jpeg compression (or it can do lossless) in the camera itself before passing it onto the powerpc chip
[00:45:21 CET] <iive> https://en.wikipedia.org/wiki/DF-224
[00:45:31 CET] <iive> that one is two's complement too.
[00:46:13 CET] <thardin> atomnuker: neat
[00:46:40 CET] <atomnuker> (new == 2012 one, forgot its name since they chose it so late)
[00:47:06 CET] <thardin> plated wire memory?
[00:47:44 CET] <nevcairiel> Curiosity was the latest rover
[00:48:02 CET] <cone-576> ffmpeg 03Mark Thompson 07master:9ca79784e9e6: lavc/mjpeg: Add profiles for MJPEG using SOF marker codes
[00:48:03 CET] <cone-576> ffmpeg 03Mark Thompson 07master:6c0bfa30c00d: mjpegdec: Add hwaccel hooks
[00:48:04 CET] <cone-576> ffmpeg 03Mark Thompson 07master:fabcbfba3846: hwcontext_vaapi: Add more surface formats
[00:48:05 CET] <cone-576> ffmpeg 03Mark Thompson 07master:193e43e6195e: hwcontext_vaapi: Fix frames context creation with external attributes
[00:48:06 CET] <cone-576> ffmpeg 03Mark Thompson 07master:99ab0a13dc23: vaapi_decode: Make the frames context format selection more general
[00:48:07 CET] <cone-576> ffmpeg 03Mark Thompson 07master:63c690ad1545: vaapi: Add MJPEG decode hwaccel
[00:48:08 CET] <cone-576> ffmpeg 03Philip Langdale 07master:cd98f20b4aba: avcodec/nvdec: Implement mjpeg nvdec hwaccel
[00:48:08 CET] <nevcairiel> and it uses the successor chip of the one that Opportunity used
[00:48:17 CET] <jkqxz> Got to make the memory bits big enough that cosmic rays can't flip them.
[00:48:47 CET] <thardin> I think core memory (and FeRAM?) is inherently immune to that
[00:49:42 CET] <thardin> of course, the dirty little secret to many of these chips is that they just run at lower voltage and speed than their non-space counterparts
[00:50:33 CET] <nevcairiel> well power is at a premium too if you have limited batteries and some solar panels - and need to drive around with that energy too
[00:50:46 CET] <thardin> but being certified for ~space~ adds around two zeroes to the price
[00:51:03 CET] <thardin> nevcairiel: it has to do with band gap stuff
[00:51:19 CET] <thardin> the lower the voltage the less risk there is of charges getting knocked around
[00:51:28 CET] <thardin> I think
[00:53:29 CET] <kierank> atomnuker: depends where the satellites
[00:53:30 CET] <kierank> is
[00:53:43 CET] <kierank> because most LEO stuff doesn't really need hardened radiation
[00:53:47 CET] <kierank> it's just tradition to do it that way
[00:54:08 CET] <nevcairiel> magnetic field already protecting it there?
[00:56:24 CET] <thardin> I talked to some of the engineers at the swedish institute of space physics last fall, they said you don't need to care about that stuff near earth or the moon. especially if it's short missions
[00:56:50 CET] <thardin> maaaybe if you're planning on running something for 10+ years
[00:57:06 CET] <nevcairiel> satellites probably have an expected lifetime of "as long as it goes" =p
[00:58:34 CET] <thardin> jupiter on the other hand..
[01:11:47 CET] <philipl> jkqxz: yay
[01:34:43 CET] <iive> so, how are we going to ask the C standard body to make two's complement part of the standard?
[01:44:49 CET] <jamrial> philipl: can the same thing you did for color_range be done for the other parameters, like primaries, trc and colorspace?
[01:45:09 CET] <jamrial> look at ticket 7033. none of them seem to be passed to the encoder
[01:54:22 CET] <philipl> jamrial: It's Just Work(tm).
[01:54:35 CET] <philipl> So yeah, you can pass anything you want to put in the effort for.
[01:55:20 CET] <philipl> But it'll quickly turn into a more complex exercise like durandal_1707's full change, with negotiation in some cases, and filters altering values.
[01:55:33 CET] <philipl> But it's obviously all necessary to be correct.
[01:56:57 CET] <philipl> I'm surprised we don't transfer colourspace today - that seems too obvious to miss.
[02:00:36 CET] <philipl> So seems like you'd want to add a an AVMasteringDisplayMetadata to the codec context and then pass that through in the same basic way.
[02:01:26 CET] <philipl> a quick grep says that we only read and write it for mkv, and not mp4.
[02:01:51 CET] <philipl> I take that back. I found it for mov
[02:04:24 CET] <jamrial> the mastering metadata in this sample is part of a SEI in the hevc bitstream and not in the container, so it's afaik available in all or most decoded frames
[02:05:00 CET] <jamrial> how to get it from there to the encoder, i'm not sure
[02:05:24 CET] <jamrial> also, the encoder (libx265) is currently not looking for it, so that also needs to be written
[02:05:33 CET] <philipl> Small steps.
[02:05:48 CET] <philipl> Getting it there is adding codec context fields and then repeating my change.
[02:06:16 CET] <philipl> There's also additional work in demuxers and codecpar to transfer the information too, in case it's not in the stream
[02:20:19 CET] <jamrial> mastering metadata was written as side data to avoid adding more fields to avcodeccontext and avframe, though
[02:22:50 CET] <atomnuker> I wish more fields could be added to it arbitrarily, but they can't, since its name might as well be "AVSMPTEMasteringData"
[02:25:07 CET] <atomnuker> also even though its side data it isn't really well done IMO, it has its own function for alloc
[02:25:51 CET] <philipl> Well, codec side data would be fine. Is that a thing?
[02:36:57 CET] <jamrial> philipl: no, just frame, container and packet side data
[02:41:58 CET] <philipl> So, you could look at the frame side data on the encoder side, but this didn't seem generally desirable when I was discussing the colour range problem.
[02:42:13 CET] <philipl> It's weird to take stream level data from a frame - which frame? after all.
[02:58:55 CET] <JEEB> basically with AVFrames you'd have to have reconfigurability
[02:59:16 CET] <JEEB> which is generally OK with the first frame, but most things want that during initialization, not when the first frame is fed
[02:59:19 CET] <JEEB> vOv
[03:15:45 CET] <iive> it's just an idea...
[03:15:59 CET] <iive> how about removing the packet/frame thing and making everything side data?
[03:16:20 CET] <iive> that is, the packet/frame becomes just another type of side data
[03:17:33 CET] <iive> i think it is kind of classical event system.
[03:17:48 CET] <iive> gtg, n8
[03:19:34 CET] <cone-576> ffmpeg 03Dale Curtis 07master:a246701e9abe: Parse and drop gain control data, so that SSR packets decode.
[08:56:12 CET] <cone-266> ffmpeg 03Tobias Rapp 07master:aedbb3c72c97: doc/filters: add links to ffmpeg-utils and ffmpeg documentation
[12:14:43 CET] <jdarnley> atomnuker: Can you explain to my dumb ass how the seperated fields are handled in the dirac_trimmed branch you wrote?
[12:15:48 CET] <jdarnley> We (I) have completely broken it by adding fragment support.
[12:17:15 CET] <jdarnley> We get a blank green output picture.
[12:17:44 CET] <atomnuker> jdarnley: https://github.com/OpenBroadcastSystems/ffmpeg/blob/dirac_trimmed/libavcode…
[12:17:51 CET] <atomnuker> https://github.com/OpenBroadcastSystems/ffmpeg/blob/dirac_trimmed/libavcode…
[12:18:38 CET] <atomnuker> so it checks the field number from the bitstream, allocs a frame if 0 and renders to it with 2x the stride, and it doesn't output it
[12:19:28 CET] <atomnuker> on the second field it reuses that frame but renders to it with starting on line 1, and finally to output it refs the internal frame used to the output frame
[12:20:15 CET] <atomnuker> when starting the next frame the decoder unrefs the last frame used and creates a new one
[12:26:08 CET] <jdarnley> atomnuker: thank you, that is what I want to happen with the addition of caching the picture between fragments
[12:27:30 CET] <jdarnley> We are failing to allocate a buffer in some situations because the data planes in current_picture are sometimes NULL causing a segfault when transforming.
[12:28:31 CET] <jdarnley> I also suspect that we are not transforming one plane
[12:28:40 CET] <kierank> jdarnley: yes, we are not iirc
[12:28:43 CET] <kierank> the current code does that
[12:28:47 CET] <kierank> it calls the transform once
[12:28:49 CET] <kierank> in our code
[12:31:51 CET] <jdarnley> yes, I am goint to re-enable the transform in dirac_decode_frame_internal when we think we have all the fragments
[12:48:34 CET] <Chloe> michaelni: my mail client seemed to not include Muhammad, should i just forward my reply to him or will you cc him?
[12:50:20 CET] <jdarnley> Okay, good, it hasn't crashed yet but I still get a blank green output so there is clearly still a problem in which frame we are outputting
[12:51:17 CET] <jdarnley> Oh, I should check progressive
[12:52:09 CET] <jdarnley> All fine there.
[12:52:54 CET] <jdarnley> I now notice that we don't switch correctly between interlaced and progressive
[13:04:54 CET] <jdarnley> https://github.com/OpenBroadcastSystems/ffmpeg/blob/dirac_trimmed/libavcode…
[13:05:53 CET] <jdarnley> atomnuker: is that ^ line keeping a ref for the decoder or is it setting the picture for output?
[13:08:46 CET] <jdarnley> I am confused because it doesn't appear to check that both fields are present. It only checks that for the got_frame variable.
[13:16:03 CET] Action: jdarnley goes to lunch
[13:25:15 CET] <atomnuker> jdarnley: its setting the picture for output obviously
[13:25:22 CET] <atomnuker> and it does check for both fields
[13:25:51 CET] <atomnuker> if the decoder receives 2 field 1's the previous one will be scrapped
[13:26:11 CET] <atomnuker> if it receives a field 2 it'll report invalid data
[14:03:30 CET] <jdarnley> Hm
[14:04:18 CET] <jdarnley> I seem to have forgotten that progressive will use the AVFrame provided by avcodec
[14:04:44 CET] <jdarnley> So it doesn't need to "move" from the internal one
[14:51:15 CET] <jdarnley> Dammit! Why do I not understand this?
[14:55:34 CET] <jdarnley> It seems like this interlaced data is vanishing into thin air.
[14:59:02 CET] <atomnuker> working as intended then
[17:57:42 CET] <jamrial> https://git.videolan.org/?p=ffmpeg.git;a=blob;f=fftools/ffmpeg.c;h=a37de2ff…
[17:57:45 CET] <jamrial> that call is dead code
[18:00:02 CET] <nevcairiel> i never called av_parser_change from my code, does that function even do anything useful
[18:00:29 CET] <jamrial> av_parser_change() does nothing if the avctx passed to is has the flags and flags2 fields set to 0 (or rather, global_header and/or local_header flags not set)
[18:00:31 CET] <jamrial> which is the case here
[18:01:02 CET] <jamrial> becuase the parser_avctx pased to it is initialized as a copy of an avcodecparameters
[18:01:10 CET] <jamrial> which has no flags field
[18:02:01 CET] <jamrial> so, that call is pretty much a noop
[18:02:38 CET] <jamrial> http://coverage.ffmpeg.org/libavcodec/parser.c.gcov.html
[18:03:11 CET] <jamrial> ffmpeg.c is the only thing that calls that function
[18:03:32 CET] <jamrial> and lcov confirms that it's doing nothing
[18:06:55 CET] <jamrial> fate doesn't seem to set global_header or local_header for any test, so no wonder it wasn't noticed
[18:48:31 CET] <jdarnley> How can it be this hard to output these damn frames correctly?
[18:48:34 CET] <jdarnley> How can one cached picture be correct and not another?
[18:49:05 CET] <Chloe> michaelni: the method you described seemed interesting. Whats the benefit of having to enable internal components? I was thinking to have un/register functions, and then a function to configure how _iterate should work i.e. only iterate internal, only external, both with internal before and both with external before. If you have to register internal components manually then you get issues if youre replacing an external component
[18:49:05 CET] <Chloe> (how do you distinguish between the two? Are internal components public symbols which would be passed into the register function or do you have multiple register functions?)
[18:49:12 CET] <Chloe> Just some thoughts
[18:51:02 CET] <Chloe> Either way i think that enabling components to be shown in an iterate function vs registering a component should be separate
[19:09:31 CET] <michaelni> Chloe, the reason behind having to enable internal components (or the ability to disable them) vs. having them fixed is that it reduces the attack surface for exploits in a quite hard way
[19:11:24 CET] <durandal_1707> Compn: do you have windows movie maker files?
[19:11:37 CET] <michaelni> Chloe, i was thinking that internal and external could be handled indentically, so there would be only one set of functions
[19:12:06 CET] <michaelni> minimal complexity that is needed ...
[19:23:25 CET] <atomnuker> I hope I don't have to argue that encoder options need to be decided by the encoder, not the user
[19:31:28 CET] <Chloe> michaelni: yes but how do you then register an internal component? Surely not by symbol, since you cant guarantee that a symbol is compiled in
[19:32:34 CET] <jamrial> you can, that's how the old register api did it. pre processor check to make sure the symbol was compiled in
[19:33:34 CET] <Chloe> jamrial: with dynamic libs?
[19:35:06 CET] <jamrial> the registration was internal. if you mean the api user registering internal components manually then nevermind, that indeed wasn't the case
[19:35:55 CET] <Chloe> jamrial: one of my ideas with removing the registration api and replacing it with the current design was to reimplement registration in such a way which allows external components
[19:36:06 CET] <Chloe> obviously this needs a bit of work other than 'just' adding an api
[19:44:31 CET] <michaelni> Chloe, it depends on what the exact use cases are we target. If its for applications which register all OR register a minimal set of absolutely needed components then per symbol should be fine as a missing symbol due to it not being compiled in would make the application fail either way as it needs that component
[19:46:38 CET] <michaelni> there is dlsym and weak symbols but these dont work in all cases / platforms and may be complex. I do prefer simple solutions if possible
[19:49:03 CET] <wm4> it should be a requirement for a new API not to have any globally visible state
[20:07:34 CET] <Compn> durandal_1707 : .wmm ?
[20:08:33 CET] <Compn> durandal_1707 : i think those are only project files , e.g. playlists? not actual video files ?
[20:09:33 CET] <durandal_1707> Compn: do you have movie maker?
[21:11:05 CET] <JEEB> (45
[21:26:36 CET] <philipl> jkqxz: to complete the jpeg mpv story - the native vavpp filter doesn't do the right thing, but forcing scale_vaapi (or presumably any other vavpp based filter) makes it work.
[21:35:57 CET] <thardin> lol g2meet
[21:38:30 CET] <wm4> philipl: aw
[21:38:53 CET] <wm4> philipl: pixfmt issues?
[21:51:59 CET] <philipl> wm4: This is the weird thing where vaapi supports more in-memory formats than it can put on a GL surface
[21:52:42 CET] <philipl> So the jpeg is 422 and ends up in a yuv440p (whatever) buffer which then can't natively be displayed - so you have to force a format conversion to nv12
[21:53:38 CET] <philipl> The logic for negotiating this situation isn't in the mpv vavpp filter, so it doesn't do the right thing.
[21:57:27 CET] <wm4> philipl: yeah, I was afraid of that
[21:57:46 CET] <wm4> the d3d11 stuff has some logic, but it's terrible
[21:58:04 CET] <wm4> probably would be easier to just instantiate the filter in the VO
[21:59:47 CET] <philipl> wm4: yeah - just wrap up the ffmpeg filters with convenience syntax.
[22:00:15 CET] <wm4> (what syntax?)
[22:00:38 CET] <philipl> You mean auto-inserting the filter? I was meaning make vf=vavpp use the ffmpeg filters underneath.
[22:01:36 CET] <wm4> that could be done too of course
[22:02:51 CET] <wm4> but I was thinking of sidestepping the need for manual user interaction or complexity in the mpv chain by just converting it on the VO
[22:04:52 CET] <philipl> that makes sense.
[22:05:57 CET] <Chloe> wm4: this is why I want internal components and external registered components to have separate lists, so you're not exposing anything. The only thing the libraries then have is a separate list of pointers to external components
[22:05:59 CET] <wm4> though could also lead to double conversions
[22:06:32 CET] <wm4> Chloe: makes sense too
[22:06:55 CET] <Chloe> the issue would then be, how do the iterate functions handle multiple lists
[22:07:47 CET] <Chloe> and I thought of a few use cases for why people would want to register external components and figured that it might be best if it's configurable how the lists are within iterate, but I dont know about this really
[22:08:07 CET] <wm4> really depends what you have in mind
[22:08:53 CET] <wm4> but IMO you won't get away with some sort of context object (be it a library context like nicolas george suggested, or an explicit object that represents the list)
[00:00:00 CET] --- Fri Feb 23 2018
1
0
[00:42:58 CET] <analogical> anyone know if the roku player can stream files from an SMB share??
[01:24:26 CET] <mvmv> Does ffmpeg support taking images directly from the web as an input method? If so, are special flags documented and available? A test run as with the following command yeild a zero byte output file:
[01:24:32 CET] <mvmv> ffmpeg -loop 1 -i https://upload.wikimedia.org/wikipedia/commons/c/c6/2013_Porsche_911_Carrer… out.mp4
[01:26:31 CET] <furq> huh
[01:26:37 CET] <furq> that gets oom killed on both systems i tried it on
[01:29:10 CET] <mvmv> No errors on Amazon Linux...
[01:30:12 CET] <furq> it doesn't seem to be buffering the input image properly
[01:30:23 CET] <furq> but also it's near enough to 4k so x264 will need a ton of memory
[01:31:28 CET] <furq> dmesg | grep killed
[01:31:40 CET] <furq> if it's getting oom killed it should show up there
[01:31:47 CET] <shtomik> Hi guys, I'm using sample from examples/transcoding.c, but after transcoding I get spoiled sound, but sometimes error: more samples than frame size (avcodec_encode_audio2), but in this example I have a filter graph, that convert audio sample fits, channel layout and sample rate, what am I doing wrong? how to change packet size, if there is required? or I'm asking not correct questions? Thanks!
[01:32:25 CET] <furq> shtomik: https://www.ffmpeg.org/doxygen/trunk/doc_2examples_2resampling_audio_8c-exa…
[01:36:45 CET] <shtomik> furq: Okay, thanks, and what about filters ??? They don't work on that case? So sorry about my English.
[01:40:49 CET] <shtomik> <furq> ;)
[01:40:52 CET] <mvmv> furq: No errors found there either, but tested some additional images with different results, so seems to be memory related, thanks for the lead.
[03:45:12 CET] <convert> haha google took over ffmpeg and removed ffserver thats great
[03:45:38 CET] <convert> youtube pwns ffmpeg now
[03:46:08 CET] <convert> you should print a "welcome to opensource" banner when ffmpeg runs
[03:48:55 CET] <convert> follow the money behind whoever wrote that piece on the ffmpeg wiki!
[03:51:41 CET] <convert> "easier to maintain" is because google replaces competent opensource developers with developers who are technically not competent to deal with the challenges of software development or refuse on incentive to do what is required by the software but instead serve interests of the kingdom of the antichrist
[03:52:11 CET] <convert> the api requirements are for a hypothetical google market, not for the users of ffmpeg
[03:52:41 CET] <convert> the actual users are irrelevant compared to the model that is funded by the "investors in opensource"
[03:58:26 CET] <klaxa> lol what
[03:59:02 CET] <klaxa> you are free to fund developers for ffserver, but it's going to be hard to find some
[03:59:23 CET] <klaxa> there are numerous better ways to do streaming in 2018
[03:59:51 CET] <convert> all those have dependencies which google feeds on
[04:00:02 CET] <convert> the only dependency earlier for ffserver was ffmpeg
[04:00:14 CET] <convert> it is the kingdom in action
[04:01:03 CET] <klaxa> what are these other dependencies?
[04:01:10 CET] <klaxa> i'm thinking of nginx
[04:01:25 CET] <convert> oh i was not thinking of that
[04:01:30 CET] <klaxa> with hls you are even free to use any webserver you want
[04:01:39 CET] <convert> afk..
[04:05:48 CET] <furq> you people have vivid imaginations
[04:06:23 CET] <furq> ffserver was removed because it was a piece of shit that never worked properly and was unmaintained for years
[04:06:41 CET] <convert> to be honest, i never used it myself
[04:06:46 CET] <furq> lol
[04:06:49 CET] <convert> hehe
[04:06:55 CET] <furq> i am truly sorry for your loss
[04:24:52 CET] <kepstin> ... wow, google apparently recommends using cq target quality of '31' with vp9 on 1080p content?
[04:25:06 CET] <kepstin> that's definitely in the range where i'm still seeing noticable artifacts
[04:25:19 CET] <kepstin> but well, I guess that kinda matches what I see on youtube :/
[04:25:25 CET] <kepstin> (from https://developers.google.com/media/vp9/settings/vod/ )
[09:11:58 CET] <bodqhrohro> Looks like the `mix` filter is missing in my ffmpeg installation. Can I use something instead?
[09:12:42 CET] <bodqhrohro> I need to merge an input stream with some geq generated noise streams
[09:19:39 CET] <pmjdebruijn> bodqhrohro: you can get static binaries from: https://www.ffmpeg.org/download.html
[12:50:07 CET] <bodqhrohro> The latest static build tells there is no filter 'mix' as well
[12:50:51 CET] <durandal_1707> bodqhrohro: you need devel version
[12:51:41 CET] <bodqhrohro> durandal_1707: is it so fresh? Or just disabled in non-devel version?
[12:52:10 CET] <durandal_1707> is very fresh
[12:53:11 CET] <bodqhrohro> So there was no way to mix several video streams before?
[12:53:54 CET] <durandal_1707> bodqhrohro: only 2 with blend filter
[12:54:58 CET] <SortaCore> this is odd, I have the same timing info on both src and destination, but the dts/pts is constantly coming up with non-monotonic DTS/PTS
[12:55:24 CET] <bodqhrohro> durandal_1707: okay, the blend filter looks even more powerful
[13:00:00 CET] <durandal_1707> bodqhrohro: it can mix only 2 frames, mix doesnt have that limits but is much simpler
[13:04:06 CET] <bodqhrohro> durandal_1707: but nothing prevents me from mixing them sequentially in pairs? Or mix works faster for several streams than a chain of blends?
[13:04:50 CET] <durandal_1707> bodqhrohro: you cant have same results....
[13:08:15 CET] <bodqhrohro> Okay, thanks, I'll firstly play with blend than only try mix if blend will be not sufficient. Requiring the freshest features would make my script harder to run for others
[13:15:54 CET] <relaxed> bodqhrohro: my git builds have the mix filter, https://www.johnvansickle.com/ffmpeg/
[15:30:28 CET] <zerodefect> In the overlay filter, I can give the overlay pin an ARGB frame. When it is overlayed on YUV, it doesn't look like the filter takes the main pin's color characteristics (ex: BT.709) into consideration. Should it?
[16:07:00 CET] <lyncher> hi. I'm implementing a filter in libavfilter which requires reading from a source with URLContext
[16:07:36 CET] <lyncher> when I'm compiling ffmpeg with my changes I get link errors of ffurl_alloc, ffurl_connect and ffurl_read
[16:07:53 CET] <lyncher> it seems that URLContext is an internal class of libavformat
[16:08:15 CET] <lyncher> how can I access a source and pass a rw_timeout?
[16:08:40 CET] <lyncher> I want to avoid blocking if there's no data at input
[16:09:00 CET] <lyncher> I've tried AVIOContext with no success.....
[16:27:45 CET] <durandal_1707> lyncher: you cant use internal ff* symbols from another library
[16:28:59 CET] <Romano> Can I create .m4s files with the ffmpeg utility?
[16:29:40 CET] <Romano> I'm trying to convert a video file into an .m4s file
[16:30:19 CET] <Romano> I know ffmpeg can create MPEG-DASH segments that are in the m4s format
[16:30:43 CET] <Romano> But is there a way to use the ffmpeg utility to convert a file to m4s?
[16:38:00 CET] <Romano> Can I convert a video file into a .m4s file?
[16:38:14 CET] <greatguy> Está aqui alguém caralho»
[16:38:29 CET] <greatguy> Nunca mais chegam as 17 horas
[17:09:40 CET] <SortaCore> Romano: that's kind of a dead format, although it's related to mp4
[17:18:59 CET] <shtomik> Hi to all guys, tell me, please, how to add filter to my code for asetnsamples, for change frame size ? av_opt_set_bin(buffersink_ctx, "asetnsamples",(uint8_t*)&enc_ctx->frame_size, sizeof(enc_ctx->frame_size),AV_OPT_SEARCH_CHILDREN); or where can I read about all functions and filters? Thanks!
[17:19:39 CET] <shtomik> My top example is incorrect.
[17:22:12 CET] <Romano> MPEG-Dash uses it in its segments
[17:22:51 CET] <Romano> I want to be able to create such files to use in the creation of personalized mpeg-dash segments
[17:25:51 CET] <Nacht> Romano: Segment supports m4s I believe
[17:26:05 CET] <Nacht> Romano: https://www.ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_…
[17:26:40 CET] <Nacht> Or just use DASH:
[17:26:41 CET] <Nacht> https://www.ffmpeg.org/ffmpeg-formats.html#dash-2
[17:29:26 CET] <Romano> Maybe I wasn't very specific
[17:29:46 CET] <Romano> I'm not trying to segment a file into same size segments
[17:29:53 CET] <Romano> Like what dash uses
[17:31:57 CET] <Romano> I want to have separated chunks that are .m4s files to use in an mpd. This way I can change segments dynamically
[17:49:37 CET] <gh0st3d> Hey guys, trying to use ffmpeg in an AWS Lambda funtion. I've got a binary that works fine when I use png files, but I'm trying to use jpegs and it's giving me issues with the shared library libjpeg.so.8 ... Anyone know of a compiled binary that includes libjpeg or a way I can work around this?
[17:52:14 CET] <saml> gh0st3d, there's staticbuild. did you try that?
[17:52:35 CET] <saml> https://www.johnvansickle.com/ffmpeg/
[17:52:51 CET] <saml> that includes libopenjpeg: 2.3.0
[17:53:16 CET] <kepstin> openjpeg is not relevant, that's a jpeg2000 library, not jpeg
[17:53:48 CET] <gh0st3d> Yeah I tried that a little while ago and realized that as well
[17:55:19 CET] <kepstin> but yeah, you either have to include a copy of libjpeg.so.8 in your deployment package (and have the ffmpeg configured to find it somehow, I dunno how they set up lib paths - might need a wrapper shell script)
[17:55:30 CET] <kepstin> or just build your own ffmpeg with it statically linked
[17:56:44 CET] <gh0st3d> If the lambda environment has libjpeg.so.62, is that something I can try changing ffmpeg to use instead of the so.8? Apologies if that's a dumb question, this stuff is a bit over my head so I'm trying to understand it all
[17:56:57 CET] <gh0st3d> I'll look into the lib path thing
[17:57:43 CET] <kepstin> you'd have to recompile ffmpeg to use the different libjpeg api version
[17:58:16 CET] <gh0st3d> Gotcha. Ok thank you for that info!
[17:58:27 CET] <kepstin> hmm, I'm actually kind of confused now, I thought ffmpeg had internal jpeg decoding/encoding
[17:58:33 CET] <kepstin> why is it using libjpeg at all
[17:59:37 CET] <gh0st3d> Ah wait. It looks like it may be phantomjs failing to find libjpeg, and the error from ffmpeg is actually saying there's no jpeg inputs like it's expecting
[17:59:49 CET] <gh0st3d> The errors were back to back, confused me a bit.
[18:00:06 CET] <gh0st3d> That probably makes more sense.
[18:08:22 CET] <zerodefect> @Kepstin: In the overlay filter, I can give the overlay pin an ARGB frame. When it is overlayed on YUV, it doesn't look like the filter takes the main pin's color characteristics (ex: BT.709) into consideration. Should it?
[18:10:55 CET] <kepstin> zerodefect: the overlay filter requires all inputs to be in the same pixel format - if they aren't, some automatically inserted 'scale' filters will be used to do the conversion. If it's not doing what you want, you should manually convert pixel formats.
[18:12:33 CET] <zerodefect> @kepstin: So do color ranges, characteristics, etc apply to RGB/ARGB too or is that more of a YUV thing?
[18:13:34 CET] <kepstin> the colour characteristics basically just affect how to convert between RGB and YUV formats.
[18:13:56 CET] <kepstin> (although there's some complications with gamma, but that's usually close enough to ignore)
[18:14:57 CET] <zerodefect> so would the same algorithm be used to convert from RGB to YUV SD (BT.601) and RGB to YUV for HD (BT.709)
[18:15:17 CET] <kepstin> no, the calculation is different to convert between rgb and yuv for bt.601 vs bt.709
[18:15:47 CET] <kepstin> assuming by rgb you mean srgb
[18:16:56 CET] <zerodefect> At the moment, I'm using a decoded png with I imagine is not srgb, right?
[18:17:03 CET] <zerodefect> *with=which
[18:17:19 CET] <kepstin> unless stated otherwise, png images are usually srgb
[18:18:13 CET] <zerodefect> Ok. Intersting. So wiki says that sRGB uses BT.709 primaries. Correct?
[18:18:46 CET] <kepstin> I think that by default, if you use overlay with argb and yuv, ffmpeg will convert both inputs to rgb to do the overlay, then possibly convert back to yuv afterwards.
[18:19:07 CET] <kepstin> you can change that by explicitly inserting format filters, scale filters, etc.
[18:19:22 CET] <kepstin> (use -v verbose to see the auto-inserted conversions)
[18:20:13 CET] <zerodefect> So if I was overlay sRGB onto YUV BT.709, no colorspace conversion would be necessary...only if blending on BT.601 or any other standard
[18:21:13 CET] <kepstin> well, no, it needs to do conversions somewhere.
[18:21:23 CET] <kepstin> to do the blend, both inputs have to be the same format
[18:21:39 CET] <kepstin> so either the rgb has to be converted to yuv, or the yuv has to be converted to rgb
[18:21:55 CET] <kepstin> and in either case, if it uses the wrong colourspace, you could get a mismatch
[18:22:22 CET] <kepstin> like, for example, if it converts the rgb png to yuv bt.601 then overlays over your bt.709 frame.
[18:23:09 CET] <zerodefect> Sorry, when I said 'colorspace', I wasn't clear. I was trying to deduce when need for 'colorspace' filter was required.
[18:23:15 CET] <zerodefect> Yeah, that makes sense.
[18:23:47 CET] <zerodefect> I appreciate that need to be made into a similar format.
[18:23:59 CET] <zerodefect> This world is very hairy! You've taught me some things here...so thank you!!
[18:24:08 CET] <kepstin> unfortunately, a lot of the ffmpeg code predates bt.709 in common usage, so you might get implicit conversions that guess or default to "wrong" values or otherwise don't know what colourspace their input is supposed to be.
[18:24:28 CET] <kepstin> I think there's still work being done now to make this better.
[18:25:06 CET] <zerodefect> Thanks for heads up. Presumably, if I set these explicitly, it will work as anticpated.
[18:26:15 CET] <zerodefect> One other thing. Does 'full range' 0 to 255 and limited range 16 to 236 apply to RGB formats too?
[18:49:35 CET] <diverdude> hi, can ffmpeq read .seq files and windows movie maker files?
[19:02:44 CET] <daddesio> I don't think Windows Movie Maker .mswmm has been reverse-engineered yet...
[19:04:33 CET] <durandal_1707> daddesio: do you have such files?
[19:04:35 CET] <diverdude> daddesio: what about .seq files?
[19:05:16 CET] <daddesio> durandal_1707: no, I just googled "windows movie maker file extension".
[19:06:47 CET] <diverdude> daddesio: but i dont think .seq files have anything to do with windows movie maker
[19:07:45 CET] <daddesio> diverdude: do you know which type of seq files you have?
[19:09:11 CET] <diverdude> no, not yet....I have asked for a sample so I am waiting for it. Are there several different .seq file types?
[19:09:40 CET] <daddesio> I don't even know what .seq is :P
[19:28:29 CET] <saml> so, -filter_complex fps=40 and -r 40 as output option yields different frames
[19:28:52 CET] <saml> fps drops evenly. -r seems to drop towards the end
[19:41:38 CET] <shtomik__> wtf, why when I use transcode.c example, after transcoding I have a sound with noise ? transcoding to mp3 or aac in mp4. Filters: resample and and format, doesn't change the situation... So sorry for my English ...
[19:42:45 CET] <JEEB> make sure that in the filter path you are getting the right sample format out, are setting the correct one as input, and that you are telling the filter chain to give you as many samples as the audio encoder requires
[19:43:09 CET] <JEEB> (and of course that you tell the encoder that you'll be feeding it sample format X)
[19:48:14 CET] <shtomik__> In my program output I have: Stream #0:1: Audio: pcm_f32le, 44100 Hz, stereo, flt, 2822 kb/s, and output: Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s, but ffprobe output: Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 143 kb/s (default)
[19:48:27 CET] <shtomik__> Bitrate changes?
[19:53:20 CET] <shtomik__> > and that you are telling the filter chain to give you as many samples as the audio encoder requires
[19:53:20 CET] <shtomik__> is it about asetnsamples ?
[19:59:49 CET] <lyncher> (libav) I'm using async:tcp://... to read from a source. how can I tell if there's data available to read in async?
[20:02:01 CET] <JEEB> shtomik__: av_buffersink_get_samples
[20:02:09 CET] <JEEB> or set_frame_size
[20:03:01 CET] <JEEB> but usually the encoder will just derp at you if the frame size is wrong
[20:16:10 CET] <shtomik__> JEEB: av_buffersink_set_frame_size? But where am I need to set the frame size? Sorry, for now I don't understand...
[20:17:59 CET] <shtomik__> JEEB: I think so that my problem with count of samples (frame size), I set the format for encoder and in filter for in and out
[20:29:57 CET] <shtomik__> JEEB: Now I debug and find out that I have 1024 frame size for aac codec, and 512 nb_samples, is it my fault? I need a 512 frame size?
[20:57:44 CET] <saml> how do I select frames every second (or at whatever interval)?
[20:58:19 CET] <saml> https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20s… by reading manual
[21:03:47 CET] <Filarius> I need strange... i want to push raw data thought rtmp server what used to show video on website (like twitch)
[21:05:51 CET] <Filarius> is it even possible ? Looks like I found example to send raw data, but not sure if its right, or I need to do something else to make website copy my stream on output channel
[21:06:40 CET] <Filarius> ffmpeg -re -f rawvideo -pix_fmt yuv420p -s:v 480x320 -r 1 -i data.h264 -f flv "rtmp://some_url"
[21:06:45 CET] <EpicEraser> Hey, I've been struggling with this annoying problem. I'm trying to create a generic pipeline that makes sure that the video and audio streams end at the same time and fixes the framerate at roughly the same time (duplicating video frames if necessary). I have accomplished this (more or less) with -r and -vsync cfr .
[21:07:17 CET] <kepstin> Filarius: do you have raw video or h264 video?
[21:07:29 CET] <EpicEraser> Now I want to use a complex filter graph with the fps filter instead of -r, because of certain filters I want to apply. But I can't seem to get the same behavior.
[21:07:49 CET] <Filarius> kepstin: I have just some binary data, not video at all
[21:07:51 CET] <kepstin> Filarius: or, i mean to say: raw uncompressed video or raw h264 video?
[21:08:02 CET] <kepstin> Filarius: uh, what do you want to do with that, then?
[21:09:36 CET] <Filarius> kepstin: actually i'm looking way to use social network website as proxy, as I have ISP who do not limit traffic to this website, including video (i know, its pretty stupid idea, but I want to give it try :D )
[21:09:53 CET] <Filarius> so I trying to use video streaming option
[21:10:13 CET] <kepstin> Filarius: well, streaming video sites have generally very strict limits on supported video codecs and options permitted
[21:10:26 CET] <kepstin> so you're not gonna put arbitrary data through there.
[21:11:05 CET] <Filarius> maybe I can fake whats my data is h264 ?
[21:11:35 CET] <kepstin> probably pretty hard, because if their decoder can't decode it, they'll probably kick your stream off.
[21:11:59 CET] <Filarius> sigh
[21:12:14 CET] <kepstin> you might as well just turn your data into a picture then encode it with a real video codec.
[21:12:23 CET] <kerio> the issue is not getting the data past the decoder
[21:12:31 CET] <kerio> the issue is getting the data past the encoder
[21:12:56 CET] <kepstin> be pretty low data rate, particularly sicne you have to make it survive lossy transcodes
[21:13:29 CET] <EpicEraser> It's an interesting idea though. Smuggling data :D
[21:13:44 CET] <Filarius> actually I already have "encoder" what wrap data into true H264, but it CPU heavy - I need to make DCT/IDCT trasforms on my side then I pass pcitures to ffmpeg and its convert raw yuv420 into h264
[21:14:00 CET] <kepstin> i mean, you could certainly write a custom application using libavformat that sends arbitrary data inside avpackets that claim to contain h264.
[21:14:26 CET] <Filarius> oh
[21:15:33 CET] <kerio> parse your data as yuv420p and encode it losslessly
[21:15:46 CET] <Filarius> hm, never had to do something like this, most my hard - this app what convert raw data into true h264, but its made with overhead to fight with lossy compression
[21:16:04 CET] <kepstin> I wouldn't expect most streaming services to allow lossless h264 video, and the bitrate would probably be too high anyways
[21:16:20 CET] <kerio> you choose the bitrate
[21:16:31 CET] <kepstin> you can't choose bitrate and use lossless encoding...
[21:16:34 CET] <Filarius> btw its works nice with Youtube and can store 7 bits on 8x8 of screen
[21:17:03 CET] <kerio> kepstin: ask yourself
[21:17:11 CET] <kepstin> Filarius: if you have an app that makes yuv frames of data that can survive encoding, then you can just pipe those yuv frames to ffmpeg input.
[21:17:17 CET] <kerio> what is the framerate of random data parsed as yuv420p raw video?
[21:17:36 CET] <kepstin> kerio: most streaming services have framerate limits, and will drop your stream if you go too far outside.
[21:17:47 CET] <kerio> hm
[21:17:54 CET] <kerio> send P-frames that just say "equal to before"?
[21:18:07 CET] <kepstin> I suppose you could just send duplicate frames, yeah
[21:18:12 CET] <kerio> anyway we're all failing to consider the true answer
[21:18:13 CET] <kepstin> the encoder will already handle that well
[21:18:17 CET] <kerio> BIGASS QR CODES
[21:18:27 CET] <Filarius> well, if it will be proxy - then bitrate is just as big as my internet, and its nothing problem whatever if it running slower of faster FPS (just need be sure what rtmp server will not make it problem here to use it as proxy)
[21:18:44 CET] <kepstin> fancy qr codes sounds a lot like what Filarius already has, encoding data into images.
[21:18:56 CET] <kerio> Filarius: you're not going to have a good experience btw
[21:19:03 CET] <kepstin> I mean, you'll want some ecc and to design patterns that are encoding-resistant
[21:19:03 CET] <kerio> you're looking at like 15 seconds of RTT
[21:19:42 CET] <Filarius> dude, again, I have something much better than QR already, and its can transport data after lossy compression without data corruption (if its made with options for this lossy copression(
[21:19:55 CET] <kerio> so send that
[21:20:07 CET] <kerio> or buy one of THESE https://www.youtube.com/watch?v=TUS0Zv2APjU
[21:20:18 CET] <Filarius> its too CPU heavy to allow more than 1 Mbps
[21:20:29 CET] <kerio> send less?
[21:20:35 CET] <Filarius> I need MORE :D
[21:21:08 CET] <kerio> use a faster computer
[21:21:25 CET] <Filarius> gimmimoney for that
[21:22:06 CET] <EpicEraser> Assuming your target doesn't re-encode, just create the h.264 streams manually. Dump random stuff in there but make it parse as h.264
[21:22:12 CET] <Filarius> i have 4 core 4 Ghz, and its still slow
[21:22:31 CET] <kerio> EpicEraser: the issue is facebook reencoding the stream
[21:22:35 CET] <kerio> Filarius: https://www.youtube.com/watch?v=LH-i8IvYIcg
[21:22:43 CET] <EpicEraser> I think Twitch doesn't by default
[21:23:12 CET] <kerio> is there a cellphone company with unlimited twitch? :o
[21:23:23 CET] <EpicEraser> Oh that's what this is about?
[21:23:27 CET] <Filarius> twitch - do not reencode source stream, yep, also i'm not about facebook, and youtube do not allow source stream to be able to watch
[21:23:43 CET] Action: kerio /whoises Filarius
[21:24:00 CET] <kerio> free vk?
[21:24:30 CET] <EpicEraser> Something something net neutrality...
[21:25:16 CET] <saml> how do you encode video so that it'll have a big timestamp millisecond or second resolution?
[21:25:26 CET] <Filarius> btw if u curious you can check result of that my application do https://www.youtube.com/watch?v=eKFO37JZ38Q (yep, this noise is data what can be extracted without errors)
[21:26:22 CET] <EpicEraser> Anyway, has anyone dealth with my fps thing before? Basically stretching the last frame of the video out over the remainder of the audio using filters...
[21:27:57 CET] <Filarius> kerio, sorry, what about free vk ? I did not get it
[21:28:33 CET] <kerio> i'm trying to figure out which social network is unmetered
[21:28:37 CET] <kerio> on your mobile connection
[21:28:43 CET] <kepstin> EpicEraser: hmm. so you have a video and you want to duplicate (only) the last frame after the video ends?
[21:29:01 CET] <Filarius> vk too, I have free traffic for telegram, but telegram bots can not speak to each-other
[21:29:14 CET] <Filarius> just checked it today
[21:29:31 CET] <EpicEraser> Basically I have inputs that may have video that ends before audio
[21:29:58 CET] <EpicEraser> I want my output video and audio to start and end at the same times, without stretching or losing av sync
[21:30:14 CET] <EpicEraser> Reason for this is that the outputs may be used for things like HLS
[21:30:52 CET] <Filarius> kerio: I had idea to just use file sending, but my friend send what creating/deletiong many files is too suspicious
[21:30:53 CET] <kepstin> hmm. someone should rewrite the loop filter to let you use a negative number in the start parameter to count from the end of the video :)
[21:31:49 CET] <kepstin> EpicEraser: I've actually wanted a filter to do that for a while, I might look into it after my fps filter rewrite patch is merged.
[21:31:54 CET] <kepstin> but that'll be a while away
[21:32:34 CET] <kepstin> in the mean time, you can hack it by using the "overlay" filter to overlay your video on top of a blank video, with the eof_action=repeat option to let it duplicate the last frame
[21:32:53 CET] <kepstin> (you can use the color filter to make an endless blank video to use as a base)
[21:33:10 CET] <EpicEraser> Yeah I've seen that hack on StackOverflow
[21:33:27 CET] <EpicEraser> What's the reason for the fps rewrite?
[21:33:43 CET] <EpicEraser> Also, I think the framesync options should totally be their own filter
[21:33:51 CET] <kepstin> the current fps filter has issues with excessive memory usage when filling in large timestamp gaps.
[21:34:20 CET] <EpicEraser> That is good to know.
[21:34:56 CET] <EpicEraser> Would you recommend using the fps filter over -r in general?
[21:35:07 CET] <kepstin> (I've had some broken webcam videos with multi-hour-long timestamp gaps in them, and it would queue up 100s of thousands of frames all at once)
[21:35:22 CET] <kepstin> using the -r output option simply adds an fps filter on the end of your filter chain
[21:35:38 CET] <kepstin> it's not a separate implementation
[21:35:45 CET] <EpicEraser> Interesting... I had no idea!
[21:35:53 CET] <EpicEraser> Should have probably read the source huh ._.
[21:36:13 CET] <kepstin> I think this is mentioned in the ffmpeg man page somewhere? not sure.
[21:36:28 CET] <EpicEraser> It's not, unfortunately
[21:37:14 CET] <EpicEraser> Then what I'm confused about is how "-lavfi fps=25 -vsync cfr" and "-r 25 -vsync cfr" produce vastly different frame counts for my current video
[21:37:14 CET] <kepstin> huh. the -s option mentions that it just adds a scale filter
[21:37:22 CET] <kepstin> but the -r option doesn't say anything about that
[21:38:37 CET] Action: kepstin notes that adding a 'repeatlast' option to his rewritten fps filter would be something like 4 lines of code ;)
[21:38:49 CET] <kepstin> (well, maybe a little more than that)
[21:40:13 CET] <EpicEraser> Well it would need to accept multiple inputs right?
[21:40:56 CET] <EpicEraser> I feel like separating out the framesync into its own filter would simplify outher filters
[21:41:03 CET] <EpicEraser> other even
[21:41:48 CET] <kepstin> not sure what you mean, framesync is a framework (library, basically) that filters use in order to be able to get a set of matching frames together without having to deal with all the inputs themselves
[21:42:06 CET] <kepstin> so making it a separate filter removes the benefit is has of reducing the input handling code in the filter itself.
[21:42:52 CET] <EpicEraser> I see, again, wasn't aware
[21:43:22 CET] <kepstin> but sure, it is certainly possible to make a "pass-through" framesync filter that has N inputs and N outputs and just runs the framesync code on the inputs, and writes the frames it produces to the corresponding outputs.
[21:43:28 CET] <EpicEraser> I'm going from the docs, where there are now 3ish filters that accept the same set of "framesync" parameters
[21:44:14 CET] <EpicEraser> Thanks for all the info by the way, learning a lot
[21:44:22 CET] <EpicEraser> Really appreciate it
[21:45:47 CET] <EpicEraser> Do you happen to have any idea how "-lavfi fps=25 -vsync cfr" and "-r 25 -vsync cfr" produce vastly different frame counts for the video I'm looking at?
[21:46:33 CET] <kepstin> EpicEraser: no idea, would need more context on the command.
[21:47:04 CET] <EpicEraser> ffmpeg -y -i x.mov -pix_fmt yuv420p -c:a aac -c:v h264 -lavfi fps=25 -vsync cfr -max_muxing_queue_size 400 y.mov
[21:47:15 CET] <EpicEraser> It has some weird timing properties, hence the queue size thing
[21:47:44 CET] <EpicEraser> It's a "worst-case input" example for timing behavior
[21:52:01 CET] <kepstin> ... hmm. I dunno whether to add this to my fps patchset or not. https://gist.githubusercontent.com/kepstin/aeeda174171fb7413490d4df0cc86695… :)
[22:00:15 CET] <EpicEraser> Wouldn't that repeat the last frame infinitely?
[22:00:33 CET] <EpicEraser> Also, cool ^_^
[22:01:25 CET] <kepstin> technically not infinitely, but I'm not gonna wait around for a 64bit integer to overflow :)
[22:04:17 CET] <EpicEraser> repeatlast repeats the video stream until the audio stream ends normally right?
[22:04:20 CET] <EpicEraser> Not infinitely
[22:06:15 CET] <kepstin> EpicEraser: no, the video filters know nothing about the audio track
[22:06:45 CET] <kepstin> on a multi-input filter with framesync, repeatlast extends the shorter video input to the length of the longer video input
[22:07:17 CET] <EpicEraser> The framesync repeatlast is supposed to synchronize multiple inputs
[22:07:43 CET] <kepstin> multiple inputs *to the filter*, which must all be of the same type (audio/video)
[22:08:09 CET] <EpicEraser> If set to 1, force the filter to extend the last frame of secondary streams until the end of the primary stream
[22:08:10 CET] <kepstin> to make video and audio the same length, the normal recommended thing to do is make the shorter one infinitely long, then use the "-shortest" ffmpeg option to cut it when the other stream ends.
[22:08:27 CET] <EpicEraser> Oh, good to know again!
[22:08:46 CET] <kepstin> EpicEraser: on a filter with multiple inputs, that option extends the secondary input video to match the primary input video.
[22:08:52 CET] <EpicEraser> Kind of a scary option though, in case of multiple audio inputs
[22:09:21 CET] <kepstin> EpicEraser: the framesync options only deal with frames going into *the specific filter* that the options are on.
[22:09:30 CET] <kepstin> they don't know about anything else.
[22:09:37 CET] <EpicEraser> Yeah
[22:11:05 CET] <kepstin> my work involves writing a lot of scripts/tools that generate ffmpeg commands, and I usually end up having infinite-length video and audio streams, and using trim/atrim filters or the -t output option to cut them at the same spot.
[22:12:06 CET] <EpicEraser> That's very informative
[22:12:38 CET] <EpicEraser> How do you normally make a video infinitely long?
[22:12:45 CET] <EpicEraser> Overlay with empty video?
[22:18:28 CET] <kepstin> depends on the particular use case, but often I end up concatenating a blank video (generated with the 'color' filter) to the end.
[22:20:15 CET] <EpicEraser> My use cases involve basically reproducing what a player would do. Since there are no more frames, the last frame stays there. Hence repeating the frame.
[22:29:51 CET] <newbie|3> hi all
[22:33:17 CET] <newbie|3> is there someone here who can support me with 2pass libxvid encoding?
[22:35:47 CET] <saml> i suppport for free
[22:42:01 CET] <Filarius> i wonder if there one can help me build application to post my own data in h264 codec packets with libavcodec and his friends. I'm familiar with programming, just nothing about c/c++
[22:45:33 CET] <saml> what's protocol? http?
[22:46:49 CET] <Filarius> rtmp server, I need to make it share my own data, but I can do it if it will think I send him real h264 stream
[22:48:34 CET] <Filarius> sure, I need to do encoder and decoder, just I do not know where to start. I can try to learn how to make in with c++, but its going a little too complicated for me. I had some expirience with python and c# as hobby
[22:49:14 CET] <Fenrirthviti> could just look at the nginx-rtmp module to start?
[22:52:01 CET] <Filarius> Fenrirthviti, look, lets say I have some binary data (think about terabyte archive), and Twitch (gaming video streaming), and I need to make it stream my data as it will be just video stream.
[22:54:41 CET] <Filarius> meanwhile this data is nothing about being video
[22:57:55 CET] <Fenrirthviti> I'm really confused at what you're trying to do
[22:59:31 CET] <saml> does twitch give you an rtmp endpoint?
[23:02:11 CET] <saml> ffmpeg -re -i yolo-huge-video.mp4 -acodec copy -vcodec copy -f flv rtmp://live-jfk.twitch.tv/app/{stream_key}
[23:03:46 CET] <Fenrirthviti> twitch is only rtmp ingest
[23:22:06 CET] <saml> run_vmaf from netflix is so fast. but libvmaf filter is so slow
[23:36:48 CET] <Filarius> saml, Fenrirthviti, I have ISP what have no limits on some social network websites, and I'm looking way how I can use video stream to use RTMP server as kind of proxy. One guy here said I must dig LibAVFormat and make h264-legit stream, but with my own data instread of compressed video frames
[23:39:13 CET] <Fenrirthviti> Oh.
[23:39:37 CET] <Fenrirthviti> That's a bit outside what I feel comfortable helping with.
[23:39:48 CET] <Fenrirthviti> As that kind of reeks as "illegal as fuck"
[23:39:52 CET] <shtomik__> Hi guys, can you help me?
[23:40:27 CET] <furq> Filarius: i don't see why you'd need libavformat for that
[23:40:35 CET] <kerio> Fenrirthviti: how's that illegal
[23:40:51 CET] <shtomik__> I think that my problem with count of samples (frame size), I am using transcodeng.c example and after encoding my sound with noise....
[23:40:56 CET] <Fenrirthviti> well, illegal is probably too strong
[23:41:01 CET] <furq> you'd just need to create a valid h264 (or aac) stream and then mux it and send it with ffmpeg
[23:41:05 CET] <shtomik__> Now I debug and find out that I have 1024 frame size for aac codec, and 512 nb_samples, is it my fault? I need a 512 frame size?
[23:41:07 CET] <kerio> it probably violates a tos and a half
[23:41:09 CET] <furq> but yeah that's way out of the scope of anything we can help with
[23:41:12 CET] <Fenrirthviti> but circumventing restrictions seems like a really heavy grey area.
[23:41:20 CET] <Fenrirthviti> and not something I'm comfortable helping with.
[23:41:38 CET] <furq> you really just need to read up on the h264 (or aac) specs and figure it out
[23:41:49 CET] <Filarius> furq, libavformat - well, its just what that guy said, even I can guess its not name I must use
[23:42:02 CET] <kerio> does anyone know of any tool that can losslessly resample a h264 stream?
[23:42:50 CET] <shtomik__> furq: Hi ;) Can you help me, please?
[23:43:25 CET] <furq> aac is always 1024 frame size
[23:43:30 CET] <furq> you presumably need 1024 samples
[23:43:51 CET] <shtomik__> asetnsample filter?
[23:43:59 CET] <shtomik__> but that don\t work too ;(
[23:44:20 CET] <furq> you could try running the same command line with ffmpeg -v debug
[23:44:31 CET] <furq> the debug messages will tell you if ffmpeg has auto-inserted any filters
[23:44:34 CET] <shtomik__> I'm using libav
[23:44:38 CET] <furq> s/command line/filterchain/
[23:44:46 CET] <Filarius> furq, sounds like i must take x264 codec source code and find place where compressed frames packed into stream. Bad for me I'm not so familar with C/C++ and software what used to compile such things (but I had some expirience with Python and C#)
[23:45:01 CET] <furq> there's no need to look at x264
[23:45:05 CET] <furq> like 99% of that is irrelevant to you
[23:46:00 CET] <furq> http://www.itu.int/rec/T-REC-H.264/en
[23:46:05 CET] <furq> something like that would probably be more useful
[23:47:04 CET] <furq> i assume that lavf and any rtmp server won't actually attempt to decode the stream
[23:47:27 CET] <furq> so presumably as long as it looks vaguely like a real stream it should work
[23:47:44 CET] <furq> obviously you then have the issue that you need a decoder on the other end
[23:47:54 CET] <furq> and you also have the issue of no error resiliency
[23:48:00 CET] <shtomik__> furq: I'm using code from transcoding.c, after transcoding pcm to aac, I have a trouble with sound(noise...), I need 1024 nb_samples? Buffer?
[23:48:11 CET] <furq> i've never resampled with the api
[23:48:17 CET] <Filarius> sure I need to implement both "encoder" and "decoder"
[23:48:28 CET] <furq> my suggestion was to take the filterchain you're using and try running it in an ffmpeg command with -v debug
[23:48:43 CET] <furq> if ffmpeg has to auto-insert filters to make it work then the debug messages will tell you
[23:49:00 CET] <furq> beyond that i wouldn't really know
[23:49:37 CET] <Filarius> furq, khm, do I undertand you right -I need to read and understand 800 pages of H264 specification ?
[23:52:02 CET] <Filarius> changing x264 source code now looks much better idea
[23:55:40 CET] <furq> Filarius: presumably just sections 7, 9 and maybe annex b
[23:55:42 CET] <furq> but you do you
[23:55:53 CET] <furq> if you do want to just read some source then openh264 will be much simpler
[23:58:11 CET] <Filarius> I remember there was simple implimentation of h264 somewhere.. I used that part of algorithmfor IDCT/DCT for better data storing in h264 video stream
[23:58:54 CET] <alexp> openh264 is presumably that simpler implementation
[23:59:32 CET] <alexpigment> it's about as simple as i've seen while still technically working (technically is the key word)
[23:59:33 CET] <alexpigment> ;)
[00:00:00 CET] --- Fri Feb 23 2018
1
0
[00:06:42 CET] <jkqxz> philipl: That file works for me on Skylake GT3 with 1.8.3 libva/i965.
[00:07:42 CET] <jkqxz> (With command line as above to make a single H.264 frame out of it.)
[00:08:16 CET] <jkqxz> Do you have a log?
[00:08:39 CET] <jkqxz> That might show more, since it is a 4:4:0 file.
[00:11:26 CET] <jkqxz> <https://0x0.st/sTCN.log> if the comparison helps you.
[00:12:18 CET] <philipl> will be a while before i can check but i will.
[00:17:16 CET] <nevcairiel> having a 4:4:0 jpeg that has 422 in the name sure sounds like a fun way to get confused :D
[00:21:09 CET] <jkqxz> Sure, no hurry. It would be nice to resolve this sort of problem before pushing.
[00:21:35 CET] <jkqxz> nevcairiel: It's 422-transpose.
[00:21:40 CET] <jkqxz> Intel even calls it 422V.
[00:37:08 CET] <atomnuker> peloverde: you might want to take a look at ^^
[00:38:16 CET] <nevcairiel> so is there even any valid ssr file anywhere? =p
[00:39:31 CET] <atomnuker> sure, the thread has 2
[00:40:32 CET] <nevcairiel> all that complained about missing SSR support are basically invalid, since they use the gain control without the SSR audio object type
[00:41:37 CET] <peloverde> 99% of the time the SSR error happens because of bitstream desync
[00:43:49 CET] <peloverde> patch looks conceptually okay, I'd dump the stack array and skip_bits all the fields to make this less usable as an attack vector
[00:46:13 CET] <nevcairiel> the bit reads are pretty narrow and every possible value has a defined place in the array, not sure what could go wrong, but yeah outside of those few needed for further parsing, there isnt exactly a need to store them y et
[03:08:40 CET] <peloverde> Is the metadata that libavformat puts by default into rtmp streams expected to be interpreted by libavformat as subtitles?
[03:15:24 CET] <Compn> depends on the format
[03:15:35 CET] <Compn> :P
[04:43:14 CET] <philipl> jkqxz: http://paste.ubuntu.com/p/8f2SwW9sDj/
[04:43:18 CET] <philipl> What can I say?
[04:44:07 CET] <philipl> ARGH
[04:44:22 CET] <philipl> Stupid - was using the system ffmpeg and not the one I built.
[04:44:23 CET] <philipl> :-(
[04:45:13 CET] <philipl> jkqxz: works great now...
[04:46:51 CET] <philipl> (My primary machine is nvidia only, so I don't always remember how the intel one is configured)
[06:00:49 CET] Action: rcombs merges upstream
[06:00:50 CET] <rcombs> uh-oh
[06:01:04 CET] <rcombs> >dynamic codec registration removed
[06:01:08 CET] <rcombs> tfw I was using that
[06:02:55 CET] <rcombs> also lol @ this whole av_codec_iterate thing
[06:03:31 CET] <rcombs> why does it take a void*, as if one day it could ever be anything other than an int without having a free function
[06:03:37 CET] <rcombs> erm, void**
[08:39:21 CET] <nevcairiel> if you internally still had a linked list, it could be the AVCodec*
[08:39:56 CET] <nevcairiel> the point of that design was to at least allow both an array and a linked list as the possible implementations
[08:40:44 CET] <rcombs> I guess so
[08:41:35 CET] <rcombs> in the end, I'm adding a dynamically-registered-codecs array, and dispatching to that one in the iterate function when i >= (number of codecs in the main array)
[08:44:41 CET] <wm4> or you could just reserve static space
[08:45:18 CET] <gagandeep> kierank: i am having dificulty joining the mailing list
[08:45:39 CET] <rcombs> wm4: I guess that would work
[08:46:38 CET] <gagandeep> kierank: when i click on submit details filled on the page, it gives an error
[08:49:39 CET] <gagandeep> guys i am having a problem joining the mailing list of ffmpeg-devel
[08:53:30 CET] <gagandeep> on clicking the subscribe button, it gives the page with the message "you must get the form before submitting it"
[08:57:41 CET] <wm4> gagandeep: did you enter your email address, and a password (including correct confirmation)?
[10:13:21 CET] <bogdanc> @kierank do you think both cineform bugs are actually the same issue? because outputing the given sample of the "interlaced output" to bmp still has the last 8 bottom pixels bugged
[10:51:08 CET] <bogdanc> i think it's something wrong with the Wavelet Transforms
[10:51:33 CET] <gagandeep> wm4: yeah, my email address is correctly entered and this time i left the password fields blank
[10:52:22 CET] <wm4> gagandeep: so you're subscribed now?
[10:54:26 CET] <gagandeep> wm4: after clicking the subscribe button, a new html page is generated saying 'subscription results: You must GET the form before submitting it'
[10:54:59 CET] <wm4> huh
[10:55:11 CET] <wm4> maybe ask one of the mailing list admins then... Compn, llogan
[10:55:59 CET] <nevcairiel> also perhaps try a different browser and/or disabling any script/ad blockers
[10:58:33 CET] <gagandeep> navcairiel: i have tried firefox and chrome, i don't think i was able to subscribe in any of my attempts as i have not recieved any mail confirmations from ffmpeg
[11:00:21 CET] <wm4> just tried it, seemed successful
[11:00:27 CET] <wm4> still waiting for the confirmation email
[11:00:58 CET] <wm4> and got it
[11:03:17 CET] <nevcairiel> i can only assume that something is causing the validation to fail, some browser addon that strips referes, or some weird network thing that causes requests to come from different addresses, or something
[11:03:57 CET] <gagandeep> a'right i will look into it
[11:13:22 CET] <gagandeep> wm4: https://imgur.com/a/K8W1I
[11:13:34 CET] <gagandeep> wm4: it is the screenshot i am getting
[11:13:52 CET] <gagandeep> i have now mailed it also to the admin of mailing list
[11:13:53 CET] <wm4> I didn't get that screen, so something is going wrong there
[11:15:49 CET] <gagandeep> wm4: is there a certain condition on password creation?
[11:16:26 CET] <wm4> no, I didn't enter one and it generated one for me
[11:18:24 CET] <gagandeep> i have also tried subscribing by just entering my email.
[11:19:30 CET] <gagandeep> and also tried to resend password, hoping that if my mail had been already registered but, the resend password also didn't work so i definitely am not on the mailing list
[11:22:12 CET] <durandal_1707> Compn: what you did?
[11:22:48 CET] <gagandeep> wm4: are there activites going on the mailing list regarding gsoc?
[11:23:22 CET] <gagandeep> because i most probably am missing important information by not being on it.
[11:24:00 CET] <wm4> I don't see much, but you can always look at the archives
[11:24:14 CET] <wm4> e.g. http://ffmpeg.org/pipermail/ffmpeg-devel/2018-February/thread.html
[11:25:36 CET] <gagandeep> thanks, i also think that there are only patch related mails
[12:28:04 CET] <jkqxz> philipl: Ouch, but that's a good answer (it's not all broken, yay!).
[12:29:14 CET] <JEEB> 725
[12:29:24 CET] <jkqxz> It doesn't look like anyone else has any interest, so if nothing else happens I'll push later today.
[12:29:34 CET] <wm4> interest in what?
[12:29:47 CET] <jkqxz> JPEG hwaccel.
[12:30:05 CET] <nevcairiel> jpeg hwaccel is just not very interesting, personally i even consider it a huge waste of time, and maybe even bytes!
[12:30:07 CET] <wm4> the only thing that looks potentially worrisome is format selection
[12:31:01 CET] <wm4> the cleverness might bite someone in the back
[12:31:06 CET] <wm4> but it's probably OK
[12:31:18 CET] <jkqxz> It has some cute uses with webcams (4K webcam works sensibly in non-streamcopy mode).
[12:32:30 CET] <wm4> yeah, sort of like mpeg2 hwdec sometimes helps
[12:33:24 CET] <wbs> or just for getting the decoded data right in the right formats for further processing
[12:39:29 CET] <jdarnley> Can someone tell me why vp8 and vp9 decoders (and some others) are still enabled when I use --disable-decoders --enable-decoder=dirac,rawvideo?
[12:39:52 CET] <wm4> jdarnley: probably hwaccels pulling them in
[12:40:17 CET] <wm4> hwaccels are auto-detected and then pull in decoders they depend on, at least that was a problem in the past
[12:40:23 CET] <jdarnley> right, many of those are still on
[12:40:24 CET] <wm4> you can disable autodetection completely
[12:42:04 CET] <jdarnley> I won't go that far
[12:42:08 CET] <jdarnley> --disable-hwaccels was enough
[12:43:57 CET] <jdarnley> that's better
[15:55:49 CET] <Compn> wm4 : erm, next time pls ask him for his email address
[15:56:06 CET] <Compn> durandal_1707 : next time please ask him for his email address
[15:56:09 CET] <Compn> makes subscribing easier
[15:56:37 CET] <Compn> i dont think my email is listed in the right spot for a ffmpeg-devel-admin mail to appear in my inbox
[15:57:14 CET] <wm4> well obviously whatever condition fails the registration to fail should be fixed
[15:57:48 CET] <Compn> did he check his mail spam dir ?
[15:58:21 CET] <Compn> and you tested and recieved the confirmation email, so it is working
[15:58:47 CET] <wm4> the page displayed after trying to register was different too
[15:59:47 CET] Action: Compn tries to subscribe
[16:00:00 CET] <Compn> ffmpeg-devel Subscription results page looks the same
[16:00:24 CET] <Compn> ffmpeg-devel subscription email came in inbox
[16:00:29 CET] <Compn> works4me
[16:00:59 CET] <wm4> for me too
[16:01:02 CET] <Compn> used this page to subscribe http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[16:01:52 CET] <Compn> oh
[16:01:58 CET] <Compn> what web browser was he using ?
[16:02:25 CET] <Compn> i ran into a person using some ancient lynx / elinks in #mplayer a few weeks ago who said trac didnt work in lynx/links
[16:02:39 CET] Action: Compn facepalms
[16:03:28 CET] <Compn> he posted a firefox screenshot
[16:03:32 CET] <Compn> well thats a pickle .
[16:03:41 CET] <Compn> gagan did i mean
[16:04:16 CET] <Compn> and said he tried chrome
[16:05:50 CET] <Compn> nevcairiel : the ffmpeg-devel subscribe form works without referers, just tested.
[16:05:56 CET] <relaxed> elinks works here
[16:06:16 CET] <Compn> nevcairiel : also without javascript.
[16:06:46 CET] <relaxed> my elinks has javascript support, though
[16:06:57 CET] <nevcairiel> Compn: well it has to do some weird check on the server side
[16:07:00 CET] <Compn> i disable javascript in my old opera browser ehe
[16:08:23 CET] <Compn> nevcairiel : it was like his web browser was sending a http get in the wrong order. but he was using both chrome and firefox so
[16:08:34 CET] <Compn> i'm kind of out of ideas without digging into the logs
[16:09:23 CET] <Compn> probably it was a hiccup on the server but i'm not sure either
[16:18:19 CET] <philipl> jkqxz: cool. push any time :-)
[18:58:22 CET] <daddesio> join #ffmpeg
[18:58:24 CET] <daddesio> whoops
[19:57:22 CET] <wm4> <lrusak> ldts, wm4: what do you think the best path forward for v4l2m2m is? using the AV_PIX_FMT_DRM_PRIME? or should I possibly pursue other avenues such as using the v4l2 userptrs or dmabuf and then create my own buffers <- I think it'd make most sense to make it use the drm hwcontext, but not sure
[19:57:36 CET] <wm4> also ping jkqxz
[20:01:16 CET] <ldts> I think using DRM_PRIME would make it a better ffmpeg citizen...using dmabuf and userptrs is better documented and easier to integrate IMHO. But lrusak already had something working so it is better if we build on it
[20:10:24 CET] <wm4> ldts: I'm wondering what exactly the differences and pros/cons are
[20:10:36 CET] <wm4> using DRM_PRIME sounds like the most flexible option to me
[20:15:05 CET] <lrusak> sounds good
[20:15:14 CET] <lrusak> I just need to figure out how to not break the cmdline utilities
[20:19:09 CET] <ldts> from the maintenance perspective, using AV_PIX_FMT_DRM_PRIME requires more ffmpeg domain knowledge (where as using dmabuf can be done with just some v4l2 generic expertise); I could have done dmabuf months ago but jkqxz disagreed (I think it was because what I was planing to implement was not a generic solution that other clients could adopt); then right about that time DRM_PRIME was merged...so it makes sense
[20:19:09 CET] <ldts> that v4l2_m2m follows the more generic way of handling this use case
[21:05:14 CET] <wm4> am I wrong in my "discussion" with michaelni
[21:05:25 CET] <wm4> actually I expect nobody cares or read that thread
[21:06:05 CET] <JEEB> I tried to read some of it
[21:06:29 CET] <JEEB> I must say that my client started showing the quoting wrong at some point so at that point I decided I'd do something less productive for a while
[21:06:37 CET] <JEEB> and I haven't gone back to it yet
[21:06:52 CET] <wbs> something less productive? now that's a feat :P
[21:07:02 CET] <JEEB> procrastination!
[21:13:48 CET] <atomnuker> yeah, I'm reading the thread
[21:43:48 CET] <_jamrial> wm4: turns out there's a helper for packet lists in lavf/utils.c, but it's not shared
[21:46:37 CET] <wm4> ah
[21:46:47 CET] <wm4> I think that might be what I remembered
[22:14:58 CET] Action: thardin commits the heinous crime of suggesting we stop NIH:ing mxfdec
[22:15:20 CET] <JEEB> thardin: welcome to the club :)
[22:15:31 CET] <JEEB> I've been wondering how easy/hard it would be to just link against libmxf
[22:15:45 CET] <JEEB> the thing's so darn complicated I don't think it really makes sense to try and duplicate the effort
[22:15:52 CET] <thardin> bmxlib I think it's called? or whatever. the b one
[22:16:06 CET] <JEEB> well yea, whichever was part of the project taht had the C API
[22:16:08 CET] <JEEB> I think?
[22:16:13 CET] <wm4> NIHing makes sense if you can do better and are ready to put in the effort
[22:16:26 CET] <nevcairiel> for mxf none of those conditions are true
[22:16:33 CET] <wm4> apparently
[22:16:35 CET] <JEEB> ayup
[22:16:49 CET] <thardin> it's BSD so we could just include it
[22:16:53 CET] <thardin> like a subtree merge if they use git
[22:16:54 CET] <JEEB> true
[22:17:10 CET] <nevcairiel> we dont like such shenanigans, just include it like any external library
[22:17:13 CET] <JEEB> yea
[22:17:43 CET] <durandal_1707> no
[22:17:50 CET] <durandal_1707> bad idea
[22:17:56 CET] <durandal_1707> dont do it
[22:18:08 CET] <JEEB> you don't care about MXF anyways :P
[22:18:23 CET] <durandal_1707> i do care
[22:18:23 CET] <wm4> yeah, and if want to make modifications to it that upstream doesn't accept or whatever, it should be a proper fork in its own git repo
[22:18:42 CET] <thardin> it would require downstream link that lib of course. but I expect maintainers smart enough to be able to add the appropriate --enable flag
[22:18:54 CET] <thardin> err packagers
[22:18:55 CET] <JEEB> yup
[22:19:06 CET] <durandal_1707> just add wrapper if want
[22:19:14 CET] <JEEB> that's what we're discussing
[22:19:16 CET] <JEEB> if you didn't notice
[22:19:18 CET] <thardin> durandal_1707: of course
[22:19:41 CET] <thardin> then put effort like support streaming playback from tape or whatever into that lib instead
[22:20:13 CET] <thardin> I'm susprised I got that KAG thing wrong
[22:20:35 CET] <thardin> one has to pour over every paragraph several times to reach enlightenment
[22:20:43 CET] <thardin> every paragraph of the spec
[22:20:45 CET] <thardin> specs
[22:21:00 CET] <thardin> because of course there's not only one
[22:21:12 CET] <durandal_1707> thats whole point of it
[22:21:16 CET] <wm4> one of those standards designed to drain consulting fees?
[22:21:24 CET] <thardin> wm4: indeed
[22:21:31 CET] <JEEB> wm4: yup
[22:22:05 CET] <thardin> not that there aren't some neat things in it
[22:24:17 CET] <cone-576> ffmpeg 03Mark Thompson 07master:265135298821: cbs: Allocate the context inside the init function
[22:24:18 CET] <cone-576> ffmpeg 03Mark Thompson 07master:d28eb0e34d80: Merge commit '2651352988212531038326c44754ece1728c4a3b'
[22:25:59 CET] <thardin> of course I can happily leave it to someone else to extract consulting fees for trying to polish it
[22:26:29 CET] <nevcairiel> seems totally warranted for a format like mxf which is only every going to get used commercially =p
[22:27:44 CET] <atomnuker> I am never ever buying another crappy arm board, an odroid c2 completely freezes if I link ffmpeg.c or even think about running a torrent client
[22:28:06 CET] <nevcairiel> why would you buy something that you describe as crappy anyway
[22:28:35 CET] <nevcairiel> i use a pi3 for that, and while its not the fastests, it works reliably for me
[22:28:36 CET] <atomnuker> I expected it to run properly, especially as it had all drivers fully upstreamed
[22:28:50 CET] <atomnuker> might just be archlinux arm messing up
[22:29:13 CET] <atomnuker> yeah, its probably that, another one I have has an uptime of months handling sshfs
[22:29:28 CET] <jkqxz> My XU4 dies instantly to libx264 and occasionally from compiling. I think it's browning out in that case, limiting the CPU clock to 1GHz fixes it.
[22:29:28 CET] <nevcairiel> i run debian on it
[22:29:46 CET] <nevcairiel> power delivery concerns are often a problem
[22:30:02 CET] <nevcairiel> sometimes switching out the psu can already help
[22:30:46 CET] <thardin> I wonder why maksym doesn't just maintain his own fork instead of insisting on trying to get the gpl circumvention thing in
[22:31:45 CET] <nevcairiel> i personally like dynamic loading, it makes for more portable binaries, but if stuff is still nonfree anyway that doesnt really help you, because you cant distribute shit anyway =p
[22:32:19 CET] <thardin> uhm, what? just static link in that case
[22:33:08 CET] <nevcairiel> not everything can or should really do that
[22:33:23 CET] <cone-576> ffmpeg 03Mark Thompson 07master:1d12a545ce82: cbs: Add an explicit type for coded bitstream unit types
[22:33:24 CET] <cone-576> ffmpeg 03Mark Thompson 07master:cacb47633c04: Merge commit '1d12a545ce828eaf4fb37295400008ea37635ab8'
[22:33:27 CET] <nevcairiel> especially if its some big vendor sdk, they may not ship static libs
[22:33:45 CET] <thardin> ah, the old It Depends
[22:34:21 CET] <nevcairiel> or some graphics hardware stuff that comes with the driver, cant link against nvidia libraries on every system, they might use another gpu :D
[22:34:45 CET] <thardin> of course, but then you're using system libs
[22:34:59 CET] <nevcairiel> yeah thats a gpl exception anyway
[22:35:35 CET] <thardin> portability is somewhat theoretical of course
[22:36:48 CET] <cone-576> ffmpeg 03Mark Thompson 07master:254e728d207c: cbs: Minor comment fixes / cosmetics
[22:36:49 CET] <cone-576> ffmpeg 03Mark Thompson 07master:7dc8752e614a: Merge commit '254e728d207c173a3714e6a01c9d68fcb3af8b73'
[22:37:12 CET] <thardin> come to think of it, how the hell does the loader know what do load?
[22:37:35 CET] <thardin> the interdependence of different libraries on different versions can get exceedingly hairy
[22:38:03 CET] <thardin> I know glibc doesn't some clever thing
[22:38:18 CET] <jkqxz> Does ffmpeg guarantee that av_malloc() and friends will not return NULL when the size is zero?
[22:40:42 CET] <wm4> if(!ptr && !size) {
[22:40:42 CET] <wm4> size = 1;
[22:40:43 CET] <wm4> ptr= av_malloc(1);
[22:40:43 CET] <wm4> }
[22:40:45 CET] <wm4> apparently
[22:41:04 CET] <jkqxz> Yeah, I'm just finding that. The other tine doesn't have it.
[22:41:29 CET] <jkqxz> Seems to come from 5a36783bc4a1887a67dbfe5ec7198903f35a46b1: "Fix all malloc(0) issues".
[22:41:56 CET] <wm4> also I'm disturbed that this calls itself recursively (not a real problem, but makes it harder to reason about)
[22:42:13 CET] <cone-576> ffmpeg 03Lou Logan 07master:d09368a40844: doc/ffmpeg: document -dn option
[22:42:58 CET] <wm4> yeah the old code looks better in that regard
[22:45:49 CET] <jkqxz> So kindof, but it still seems a bit naughty. (The docs don't mention it at all.)
[22:46:02 CET] <jkqxz> I guess I'll merge the change avoiding it.
[22:47:37 CET] <cone-576> ffmpeg 03Jun Zhao 07master:c8e135ea9225: vaapi_encode: Allocate slice structures and parameter buffers dynamically
[22:47:38 CET] <cone-576> ffmpeg 03Mark Thompson 07master:fe1fb48e2bd1: Merge commit 'c8e135ea9225137050a6315fd9ba9c0f242c90b6'
[22:50:43 CET] <wm4> yeah the doxygen should definitely mention it
[22:52:06 CET] <cone-576> ffmpeg 03Mark Thompson 07master:216c44dfc172: vaapi_encode: Destroy output buffer pool before VA context
[22:52:07 CET] <cone-576> ffmpeg 03Mark Thompson 07master:9e3e9a37289c: Merge commit '216c44dfc17252ec0681dcb0bbeeb45a9d14eca7'
[22:54:24 CET] <cone-576> ffmpeg 03Mark Thompson 07master:67eb2b16daa7: vaapi_h265: Mark unused entries in RefPicList[01] as explicitly invalid
[22:54:25 CET] <cone-576> ffmpeg 03Mark Thompson 07master:f082dcab7cdf: Merge commit '67eb2b16daa77f6ba3e04a28ca18e53193723b7f'
[22:55:02 CET] <cone-576> ffmpeg 03Mark Thompson 07master:a3daecd63752: cbs: Demote the "decomposition unimplemented" warning
[22:55:03 CET] <cone-576> ffmpeg 03Mark Thompson 07master:1325ac4c93f2: Merge commit 'a3daecd6375279d9fdb863ac9db3545a33e97651'
[22:56:56 CET] <thardin> if only ffmpeg was written in ada, where you can have contracts on such things
[23:03:52 CET] <cone-576> ffmpeg 03Mark Thompson 07master:0e4c166cdd64: cbs_h2645: Remove active ps references when it is replaced
[23:03:53 CET] <cone-576> ffmpeg 03Mark Thompson 07master:af3727e2399d: Merge commit '0e4c166cdd6446522a085dd9731967d09ac71f72'
[23:10:57 CET] <cone-576> ffmpeg 03Mark Thompson 07master:13ca5d34ba5c: cbs_h264: Add hack for pic_timing with no active SPS
[23:10:58 CET] <cone-576> ffmpeg 03Mark Thompson 07master:b656fa710a34: Merge commit '13ca5d34ba5c473211daaae0a101123bcaada3e6'
[23:11:34 CET] <thardin> time to do a practice push with that documentation patch I mailed in a few days ago
[23:11:42 CET] <thardin> or, fate first
[23:26:28 CET] <philipl> durandal_1707: I've sent a new patch series for my colour range change. I dropped the new option type and copied your option definition instead.
[23:26:38 CET] <philipl> Hopefully we can get this in and then build from there.
[23:26:43 CET] <cone-576> ffmpeg 03Mark Thompson 07master:ce5870a3a8f2: cbs: Refcount all the things!
[23:26:44 CET] <cone-576> ffmpeg 03Mark Thompson 07master:0cc8e34a94c8: Merge commit 'ce5870a3a8f2b10668ee4f04c2ae0287f66f31b2'
[23:27:10 CET] <durandal_1707> great
[23:28:35 CET] <cone-576> ffmpeg 03Mark Thompson 07master:a2ca8ed903b4: cbs_h264: Add utility functions to insert/delete SEI messages
[23:28:36 CET] <cone-576> ffmpeg 03Mark Thompson 07master:77eba7bd9935: Merge commit 'a2ca8ed903b435446031a8a0792ca535e6ee2913'
[23:29:48 CET] <thardin> hum, what is the ssh url?
[23:30:46 CET] <jkqxz> For git? "git@source.ffmpeg.org:ffmpeg"
[23:31:05 CET] <thardin> yeah
[23:32:31 CET] <thardin> WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
[23:32:33 CET] <thardin> hmm
[23:33:35 CET] <jkqxz> I bet SOMEONE IS DOING SOMETHING NASTY!
[23:34:34 CET] <thardin> nasssssty
[23:34:53 CET] <thardin> I'm going to go with trust on first use
[23:35:02 CET] <jamrial> thardin: do a --dry-run first to make sure you're not pushing undesirable and hard to kill things like tags and branches
[23:35:25 CET] <thardin> yes, michaelni told gave me that tip already
[23:35:43 CET] <jamrial> ok
[23:37:36 CET] <cone-576> ffmpeg 03Mark Thompson 07master:69062d0f9b6a: h264_metadata: Use common SEI addition function
[23:37:37 CET] <cone-576> ffmpeg 03Mark Thompson 07master:fd76e7be70c1: Merge commit '69062d0f9b6aef5d9d9b8c9c9b5cfb23037caddb'
[23:39:30 CET] <cone-576> ffmpeg 03Tomas Härdin 07master:41317da32592: Add -vf scale example for making pixels square
[23:39:35 CET] <thardin> woop
[23:40:39 CET] <atomnuker> peloverde: can you push the SSR patch or should I?
[23:40:44 CET] <cone-576> ffmpeg 03Mark Thompson 07master:78fa0b9033c0: h264_metadata: Always add the SEI user data to the first access unit
[23:40:45 CET] <cone-576> ffmpeg 03Mark Thompson 07master:7386b4ff3950: Merge commit '78fa0b9033c0834c049e2aedf71a8c613fed87ab'
[23:41:13 CET] <peloverde> atomnuker: You can push now, or I can push tonight when I get home
[23:42:49 CET] <cone-576> ffmpeg 03Mark Thompson 07master:7157d959264f: cbs_h264: Move slice_group_id array out of PPS structure
[23:42:50 CET] <cone-576> ffmpeg 03Mark Thompson 07master:ab6edb173b36: Merge commit '7157d959264f3729da463725c6faa580d9394d19'
[23:47:07 CET] <thebombzen> I think there's a bug with the afade filter
[23:47:59 CET] <thebombzen> ah nvm I'm a dunce, I didn't escape the :s
[23:49:17 CET] <atomnuker> peloverde: ah k, push whenever you can
[23:51:29 CET] <jdarnley> thardin: the git server's ssh key was changed at one point
[23:51:35 CET] <jdarnley> In the summer I think it was.
[23:51:56 CET] <thardin> alright
[23:53:52 CET] <cone-576> ffmpeg 03Mark Thompson 07master:eccc03c8fbc6: cbs_h264: Add support for filler NAL units
[23:53:53 CET] <cone-576> ffmpeg 03Mark Thompson 07master:fbeac5356c69: Merge commit 'eccc03c8fbc603a0a3257df66f0705f74fe2581a'
[23:58:13 CET] <cone-576> ffmpeg 03Mark Thompson 07master:6d5a6dde5301: h264_metadata: Add option to delete filler data
[23:58:14 CET] <cone-576> ffmpeg 03Mark Thompson 07master:ecb3d6edc3b7: Merge commit '6d5a6dde5301c81e221a37b3f39bb03149492b98'
[23:58:33 CET] <kierank> when will cbs_h264 replace the existing h264 code?
[00:00:00 CET] --- Thu Feb 22 2018
1
0
[00:01:32 CET] <alexpigment> ok, well short of an answer to that, the maximum bitrate for AVC baseline at level 5.0 is 135Mbps
[00:01:44 CET] <alexpigment> not saying it should fail, but it's at least out of spec there
[00:01:49 CET] <solidus-river> i left it at default for now so whatever is in FF_PROFILE_H264_BASELINE
[00:01:55 CET] <solidus-river> let me kneck what is in there
[00:02:36 CET] <solidus-river> i'm encoding to a filename under .mkv but afaik it sjust the encoder that matters as far as determining the type of stream and people use .avi / .mk4 / mp4 interchangably for h.264 encoded video
[00:03:29 CET] <alexpigment> oh sorry; i was looking at the raw paste data and saw that you've commented out that mpeg1 section where the 400000 bitrate was specified
[00:03:30 CET] <alexpigment> nm ;)
[00:03:46 CET] <solidus-river> bit rate is 2000000 from the defaults
[00:04:56 CET] <solidus-river> happy someone looked at the paste, i'm swatting at fly's over here trying to think of what it could be
[00:05:01 CET] <Mista_D> Any advice on extarcting Dolby's dialnorm values please?
[00:15:57 CET] <alexpigment> Mista_D: since no one is answering, maybe you can figure out where that value is stored in the file
[00:16:32 CET] <alexpigment> for example, go into a program like Adobe Audition, create a small sample and save it to ac3 with the default -31
[00:16:33 CET] <Mista_D> alexpigment: going through hex dump in 3.. 2.. 1..... (:
[00:16:38 CET] <alexpigment> :)
[00:16:51 CET] <alexpigment> ok, glad to see you had the same thought
[00:17:27 CET] <alexpigment> i can at least confirm that in audition, two files at -31 are identical, so you can rely on the only thing changing being the dialnorm value
[00:21:26 CET] <kerio> wait, there's a maximum bitrate?
[00:22:12 CET] <alexpigment> kerio: are you talking about H.264?
[00:22:24 CET] <alexpigment> if so, there are maximum bitrates per level
[00:22:24 CET] <solidus-river> lol, that was enlightening, used the function to convert error codes into strings... "Uknown Error Occured"
[00:25:03 CET] <solidus-river> so.. it looks like the stock encoding example provided in the docs only works for mpeg1 video
[00:25:17 CET] <solidus-river> https://ffmpeg.org/doxygen/trunk/encode_video_8c-example.html
[00:25:24 CET] <solidus-river> fails for h.264
[00:25:51 CET] <solidus-river> with an unknown error at avcodec_open2
[00:26:17 CET] <solidus-river> wow, thats from 2001 though, is that the most recent :?
[00:26:33 CET] <JEEB> the example was first created then
[00:26:43 CET] <JEEB> it wouldn't compile if nobody touched it since :)
[00:26:56 CET] <solidus-river> heh, k, so that at least rules that out
[00:27:00 CET] <solidus-river> so.. where do i go from here :?
[00:27:08 CET] <solidus-river> i have an unknown error thrown by the example provided in the docs
[00:27:43 CET] <JEEB> yea I wouldn't be surprised if not much more than making sure it compiles was done :)
[00:27:55 CET] <JEEB> after all, we have functions to get black images in AVFrames for example
[00:28:04 CET] <JEEB> while this exacmple wants to have its own
[00:28:08 CET] <JEEB> among other things
[00:28:48 CET] <JEEB> someone clearly poked it at some point with that preset setting, though
[00:28:58 CET] <JEEB> but yea, I wish we had more tests covering the examples
[00:29:04 CET] <solidus-river> huh... that leaves me at a dead end
[00:31:01 CET] <JEEB> heh, the transcoding.c example seems newer
[00:31:07 CET] <JEEB> but it utilizes the old functions it seems?
[00:31:17 CET] <JEEB> not that they stopped working of course
[00:31:50 CET] <JEEB> of course the transcoding.c example also contains a lot of stuff a very basic use case wouldn't need (but might quickly start needing)
[00:31:53 CET] <JEEB> like filtering
[00:32:48 CET] <JEEB> also generally I recommend picking the encoder with a string
[00:32:54 CET] <JEEB> so that if you want libx264 specifically, you pick it
[00:33:10 CET] <JEEB> (also it lets you have a parameter from command line or something to set the encoder)
[00:35:10 CET] <JEEB> also start your own thing from simple stuff
[00:36:05 CET] <solidus-river> well, the mpeg1 route works
[00:36:16 CET] <solidus-river> but is not viable because its super low quality / artifact ridden
[00:36:35 CET] <solidus-river> i don't know how to go simpler than that
[00:36:36 CET] <JEEB> no, I mean step by step :P
[00:37:44 CET] <JEEB> avformat and opening input, reading packets. then for testing purposes you can use av_find_best_stream to pick a stream of the type you want to train with first. then you initialize and open a decoder for that stream's decoder
[00:37:55 CET] <JEEB> then feed AVPackets to that, and wait for an AVFrame to appear
[00:39:07 CET] <JEEB> then initialize an encoder of your choice by either using the function that takes in a string, or avcodec_find_encoder() with the AVCODEC define
[00:39:15 CET] <JEEB> *AVCodecID
[00:39:45 CET] <solidus-river> well its hard coded to AV_CODEC_ID_H264
[00:39:57 CET] <solidus-river> i'm not decoding anything, i'm writing frames from an opengl context to the video
[00:40:13 CET] <solidus-river> using sws to resample from rgb to yuv, thats working for the mpeg side
[00:40:27 CET] <solidus-river> but the error seems way early before any of that happens
[00:40:28 CET] <JEEB> well you have something that produces you AVFrames :P
[00:40:45 CET] <JEEB> well for H.264 you probably want libx264 anyways
[00:41:00 CET] <solidus-river> is that not what ffmpeg uses?
[00:41:06 CET] <solidus-river> all i really want is a lossless format
[00:41:14 CET] <JEEB> it can use that but I have no idea how you're trying to pick your encoder
[00:41:34 CET] <JEEB> I could read the example but I'd rather have you tell me how you're doing it and check if it fails or not.
[00:41:50 CET] <JEEB> as in, if you are actually getting a valid AVCodec
[00:41:55 CET] <JEEB> (from an AVCodecID or so)
[00:42:20 CET] <solidus-river> i am getting a valid one
[00:42:22 CET] <solidus-river> its id is 47
[00:42:26 CET] <solidus-river> which is h264
[00:42:38 CET] <JEEB> well you get a pointer to an encoder with avcodec_find_encoder then
[00:42:47 CET] <solidus-river> yes
[00:42:54 CET] <JEEB> and you can print the name of the encoder enc_codec->name
[00:43:02 CET] <solidus-river> and i do :) i have a debugger open and have it paused right above where it fails
[00:43:51 CET] <solidus-river> h264_nvenc
[00:43:59 CET] <JEEB> have fun with that
[00:44:06 CET] <solidus-river> ?
[00:44:19 CET] <JEEB> that is why I recommend just asking for the encoder with the string
[00:44:37 CET] <JEEB> if you just ask for H.264 it will give you whatever happens to be first alphabetically or whatever
[00:44:51 CET] <solidus-river> ahh, where do i even find valid strings?
[00:44:52 CET] <JEEB> which in your case was nvidia's hwthing, which can have extra fun
[00:45:05 CET] <solidus-river> i also don't have an nvidia card
[00:45:15 CET] <JEEB> yea, which explains why it fails hard
[00:45:26 CET] <solidus-river> speed is not important to me in this
[00:45:28 CET] <JEEB> the component gets built as long as you have the headers
[00:45:37 CET] <solidus-river> yuck, i used to have an nvidia card
[00:46:08 CET] <JEEB> it even gets enabled for android builds even with --disable-autodetect I think
[00:46:09 CET] <JEEB> :P
[00:46:19 CET] <solidus-river> where do i find a list of valid codec names then?
[00:46:22 CET] <JEEB> thankfully that's going away with the removal of the headers
[00:46:59 CET] <JEEB> I'm pretty sure you can list them all, but in your case you can just use libx264 (and switch whenever you want to something else)
[00:47:26 CET] <solidus-river> so literally avcodec_find_encoder_by_name("libx264");
[00:47:52 CET] <JEEB> yes, I think that might actually be it
[00:48:07 CET] <JEEB> and it gives you the AVCodec pointer, or nullptr
[00:50:06 CET] <JEEB> also if you're writing new code I definitely recommend you utilize this stuff as I've found it to be much more fun than the separate video/audio/etc encoding functions https://www.ffmpeg.org/doxygen/trunk/group__lavc__encdec.html
[00:50:23 CET] <solidus-river> hmm, that returns a nullptr
[00:50:35 CET] <JEEB> do you have libx264 wrapper built into your FFmpeg?
[00:50:47 CET] <JEEB> after all, it requires libx264 and --enable-gpl --enable-libx264
[00:51:14 CET] <solidus-river> yikes, maybe not :? not sure how to check, i should have saved out that print statement at the end of building
[00:51:32 CET] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavcodec/libx264.c;h=12379…
[00:51:51 CET] <JEEB> solidus-river: I think there's a list of AVCodecs somewhere, so you can loop through them
[00:52:11 CET] <JEEB> but if you've called av_register_all then most likely it just isn't there unless there are typos
[00:53:10 CET] <solidus-river> probably not there, darn, does this mean I'd need to compile and linke again libx264 as well?
[00:53:43 CET] <JEEB> well if you have the x264 headers and library (and the pkg-config file) then only FFmpeg recompilation is needed
[00:53:55 CET] <solidus-river> i'm building in a super janky way (in MSYS2) and using lib.exe to convert stuff to dlls
[00:54:18 CET] <JEEB> yea, the configure script under native windows is really slow
[00:54:35 CET] <JEEB> I've given up on it and using a mingw-w64 cross compiler under lunix, although I think even WSL is faster?
[00:54:54 CET] <solidus-river> yep, and if i'm thinking about this right that means i'd need to install libx264 / compile it in my MSYS2 environment
[00:54:55 CET] <furq> you might be better off just using the zeranoe shared builds until you have something ready for release
[00:55:07 CET] <solidus-river> convert the output to .dll's with lib.exe
[00:55:43 CET] <JEEB> --enable-shared should already give you DLLs, if you want .lib files you can always generate them from the .def files
[00:56:00 CET] <JEEB> although the .dll.a files seem to be linkable with MSVC as well
[00:56:01 CET] <furq> actually nvm those don't actually include the external libs
[00:56:08 CET] <solidus-river> for some reaoson the --enabled-shared provided dll's failed at runtime for me
[00:56:14 CET] <solidus-river> i had to regenerate them manually
[00:56:30 CET] <JEEB> dunno, worked for me at least. although the toolchain can be widely different
[00:56:58 CET] <solidus-river> it had problems working out entry points in a couple of em
[00:57:25 CET] <solidus-river> huh, maybe i'm hitting my head against a brick wall
[00:57:34 CET] <JEEB> well, we're talking about possible bugs or whatever in your toolchain so unfortunately I don't think it makes sense to discuss that further :P
[00:57:41 CET] <solidus-river> surely there must be a simpler lossless codec
[00:57:48 CET] <JEEB> there's multiple
[00:57:57 CET] <JEEB> huffyuv, utvideo
[00:58:03 CET] <JEEB> (ffv1 is nice but slow)
[00:58:16 CET] <JEEB> Ut Video is the one with support for various media frameworks
[00:58:18 CET] <furq> ffv1 is the only one that'll come close to x264 in terms of compression
[00:58:26 CET] <furq> also all of those plus ffvhuff are builtin
[00:58:45 CET] <kerio> ffvhuff is just huffyuv with more pixel formats
[00:58:55 CET] <furq> nah it actually compresses better in my experience
[00:58:58 CET] <furq> and is faster
[00:59:04 CET] <kerio> and possibly with even less support?
[00:59:06 CET] <solidus-river> is playback fairly widely supported for those formats?
[00:59:10 CET] <furq> less, not even less
[00:59:14 CET] <furq> huffyuv is fairly well supported
[00:59:15 CET] <kerio> hah, fuck no it's not
[00:59:16 CET] <furq> ffvhuff is not
[00:59:24 CET] <kerio> (in general)
[00:59:38 CET] <furq> well yeah "fairly" is relative when it comes to video editors
[00:59:39 CET] <kerio> ffv1 is standard
[00:59:47 CET] <JEEB> ffv1 is standard for archival
[00:59:51 CET] <furq> huffyuv is definitely better supported than ffv1
[00:59:57 CET] <JEEB> but it doesn't have plugins for editors etc yet
[00:59:59 CET] <JEEB> IIRC
[01:00:02 CET] <furq> right
[01:00:20 CET] <kerio> just add more ssd and work with raw video :^)
[01:00:29 CET] <JEEB> even though the Ut Video format isn't that great compressibility wise, the author really worked hard WRT the plugins
[01:00:41 CET] <JEEB> you have everything from VfW, DShow, MF to QT
[01:00:41 CET] <solidus-river> sounds like libx264 it is! this'll be fun
[01:00:55 CET] <JEEB> well even lossless H.264 is /not/ widely supported
[01:01:03 CET] <solidus-river> later today i'm going to try to cross compile vulkan between msys2 and windows native
[01:01:10 CET] <solidus-river> developing on windows is a PITA
[01:01:12 CET] <JEEB> and it isn't supported in editors
[01:01:15 CET] <kerio> i wouldn't bet on anything but ffmpeg to read lossless h264
[01:01:34 CET] <kerio> granted, i wouldn't bet on anything but ffmpeg to read a whole bunch of media formats
[01:01:44 CET] <JEEB> like, I bet that if you are encoding lossless you want to do something with the stuff later
[01:01:47 CET] <kerio> but that's because the world is a sad place
[01:01:53 CET] <solidus-river> well, the problem i'm trying to solve is i need to write out high quality 2 - 4 second videos of medical scan visualizations
[01:02:14 CET] <JEEB> what is the stuff that has to play that?
[01:02:16 CET] <kerio> four SECONDS?
[01:02:21 CET] <kerio> rawvideo
[01:02:23 CET] <solidus-river> A WHOLE FOUR SECONDS
[01:02:28 CET] <kerio> hold on whats the framerate
[01:02:39 CET] <solidus-river> determined by the user, i have it default to 60
[01:02:48 CET] <kerio> so it's normal 4 seconds
[01:02:52 CET] <kerio> use rawvideo
[01:02:59 CET] <JEEB> basically, what is the use case of that generated video
[01:03:03 CET] <JEEB> that generally limits you the most
[01:03:14 CET] <JEEB> what is it going to be played in etc
[01:03:23 CET] <solidus-river> doctors need to be able to use it to discuss the scan with patients and eachother
[01:03:54 CET] <solidus-river> but tbh i think this is a bloated feature, they can already output .png's and if i were a doctore I'd really prefer a still of what someones trying to talk to me about than a video
[01:04:24 CET] <JEEB> basically you'd have to know in what on earth that stuff is going to be played in
[01:04:32 CET] <JEEB> or you'd have to standardize on what something gets played in
[01:05:09 CET] <solidus-river> well, h.264 is widely supported afaik
[01:05:15 CET] <JEEB> lossy one is
[01:05:18 CET] <JEEB> lossles is not
[01:05:21 CET] <JEEB> *lossless
[01:05:36 CET] <JEEB> you see what I'm trying to make you think about?
[01:05:47 CET] <solidus-river> yeah
[01:05:56 CET] <kerio> solidus-river: is this something that eyeballs are going to look at
[01:06:05 CET] <solidus-river> i should leave it as mpeg1 and get them to tell me what the goal is
[01:06:07 CET] <kerio> or is this something that will be used for maths
[01:06:15 CET] <solidus-river> kerio, eyeballs
[01:06:21 CET] <solidus-river> the math is all in program via settings etc
[01:06:22 CET] <kerio> -c:v libx264 -crf 18
[01:07:07 CET] <JEEB> to be honest he could even go lower just in case :P
[01:07:35 CET] <JEEB> and of course depends on if all noise has to be kept
[01:07:48 CET] <JEEB> if the requirement is lossless then H.264 is out of the scope unless he specifies something like mpv
[01:07:49 CET] <solidus-river> so i shoudl stil very much tackle the libx264 problem thats actually going to be fun, as frustrating as it is, i like expanding my comfort with / understanding of cross compilation
[01:07:52 CET] <JEEB> as The Player
[01:09:32 CET] <kerio> mpv as the player is cheating
[01:09:42 CET] <solidus-river> heh, switching my encoder to "rawvideo" output something, however vlc has no clue how to play it
[01:09:50 CET] <kerio> hold on, vlc is the player?
[01:09:59 CET] <kerio> you're doing something wrong with your container i think
[01:10:08 CET] <kerio> vlc should be able to read most things
[01:10:10 CET] <kerio> including rawvideo
[01:10:52 CET] <solidus-river> i might be missing the whole container step then :? i'm specifying rawvideo as the desired codec and just writing those frames to a file i'm ending in .mkv
[01:11:10 CET] <JEEB> if you don't have avformat there somewhere you're dumping stuff out as-is
[01:11:14 CET] <JEEB> raw bit stream
[01:11:20 CET] <JEEB> which is not how you do things usually
[01:11:25 CET] <JEEB> (yes, the example sucks)
[01:12:44 CET] <solidus-river> hmm, i'm using ecode_video2 to get packets and i write them to the dest file
[01:13:21 CET] <kerio> "rawvideo" frames are just... the pixels?
[01:13:41 CET] <JEEB> there was an example that did avformat_alloc_output_context2 and avio_open2 if !(output_ctx->oformat->flags & AVFMT_NOFILE)
[01:14:06 CET] <solidus-river> definitely not linking against libavformat though so.. time to figure that out :D
[01:14:18 CET] <JEEB> pkg-config --libs libavformat, was it?
[01:14:34 CET] <JEEB> with PKG_CONFIG_PATH set to your prefix/lib/pkgconfig
[01:15:48 CET] <solidus-river> i have it included to link against (i went down the cmake rabbit hole and made a quick n dirty find package for ffmpeg)
[01:15:56 CET] <solidus-river> i'm just not including or using it
[01:18:13 CET] <solidus-river> wierd that it was about to play mpeg1 video without any sort of muxer involved
[01:18:25 CET] <JEEB> well a lot of things can probe it out
[01:18:32 CET] <JEEB> like FFmpeg's libraries
[01:18:34 CET] <solidus-river> wait, i'm in completely the wrong place, i don't have any audio track
[01:18:38 CET] <JEEB> which quite likely VLC fell back on
[01:18:59 CET] <JEEB> so you just got lucky your string of bytes could be probed as raw MPEG-1 :P
[01:19:12 CET] <JEEB> not all formats support being probed out
[01:19:41 CET] <JEEB> also raw video streams literally have no frame rate generally
[01:19:47 CET] <JEEB> (and cannot be seeked in)
[01:19:50 CET] <JEEB> so just use a container
[01:21:15 CET] <solidus-river> sorry, i'm lost in the ffmpeg documentation, i keep ending op on cli man page like documentation not documentation on the software side of things
[01:21:43 CET] <solidus-river> i dont want a muxer i just want a container? is that a keyword from doxygen? its wierd that the libavformat documentation page just references git log and the authors
[01:21:55 CET] <nigelchen> Does anyone here know how I would convert a 32bit PCM to 16bit PCM?
[01:21:59 CET] <solidus-river> oo, ihaven't been in the developer documentation
[01:21:59 CET] <nigelchen> through the commandline
[01:23:31 CET] <JEEB> solidus-river: a muxer is a thing that puts things into a container
[01:23:58 CET] <JEEB> solidus-river: just `git grep "avformat_new_stream" -- doc/examples/`
[01:24:03 CET] <JEEB> those are using avformat for muxing
[01:24:13 CET] <JEEB> there's multiple examples in ther
[01:24:28 CET] <JEEB> take a good look at each of them and try to see which of them are utilizing parts you require
[01:25:00 CET] <JEEB> anyways, past 2am here so going to sleep
[01:25:17 CET] <solidus-river> cool, thanks for the help and pointers, i'll dive in!
[01:28:18 CET] <JEEB> and the generated doxygen on ffmpeg.org is generally *very* useful
[01:28:18 CET] <JEEB> https://ffmpeg.org/doxygen/trunk/group__lavf__encoding.html
[01:28:45 CET] <JEEB> googling site:ffmpeg.org doxygen "trunk" KEYWORD
[01:28:51 CET] <JEEB> usually leads to good stuff
[01:28:54 CET] <JEEB> trunk = master
[01:29:27 CET] <JEEB> you generally should always follow the latest documentation, and only work around things IFF you are using some older version and you hit a thing that has been changed since
[01:29:33 CET] <JEEB> (of which lately there are not too many)
[01:29:39 CET] <JEEB> anyways, g'night
[04:54:06 CET] <kota1> ...so i'm getting a type mismatch in my filtergraph.
[04:54:25 CET] <kota1> I've got an mkv input file with audio and video streams, and I'm running it through trim
[04:54:43 CET] <kota1> I'd like to overlay the audio from that file with audio from an mp3 file I have
[04:55:16 CET] <kota1> so I've done [0]trim=3:28.5[vid]; [vid:a][music]amerge[vidmusic]
[04:55:34 CET] <kota1> But it can't link the filters, because apparently [vid:a] is a video stream?
[04:56:25 CET] <kota1> https://pastebin.com/2zstFkY1
[05:28:29 CET] <kota1> Ah. trim is a video filter
[05:28:33 CET] <kota1> there's atrim for audio
[05:28:35 CET] <kota1> :V
[05:42:37 CET] <furq> i'm surprised vid:a even works
[05:43:05 CET] <akkad> is there any support for 3d videos?
[05:43:16 CET] <furq> define support
[05:44:24 CET] <akkad> camera drops it into video with dual circles. and it can join them into a monoscopic video. looking if such support exists in ffmpeg
[05:44:32 CET] <akkad> stiching
[05:49:00 CET] <furq> the stereo3d filter will convert between 3d formats (or from 3d to 2d)
[05:49:04 CET] <furq> but that won't fix the fisheye
[05:49:18 CET] <furq> you can use lenscorrection for that but it's non-trivial
[05:51:55 CET] <akkad> ok thanks. figured it was still a ways off
[05:52:16 CET] <akkad> will just do a few ffts in lisp until it does what I want :p
[05:52:16 CET] <furq> there are some third-party filters that are supposed to unwarp vr videos
[05:52:26 CET] <furq> but you'd need to build ffmpeg with them yourself
[05:53:09 CET] <akkad> ok makes sense
[05:53:11 CET] <akkad> thanks
[06:22:36 CET] <SortaCore> slightly dumb scenario but
[06:23:04 CET] <SortaCore> what's the best codec for file size, given it's an audio file that has an internal loop?
[06:23:11 CET] <SortaCore> think those "extended" songs on YT
[06:23:45 CET] <furq> i'm not aware of any codec that handles that
[06:24:18 CET] <furq> unless you want to cut the loop and embed it in an ft2 module
[06:25:19 CET] <SortaCore> I just would have expected MP3 and compressing formats to notice the repeat
[06:25:29 CET] <SortaCore> ...although I can understand why they wouldn't
[06:25:49 CET] <furq> you could maybe try pcm and rar
[06:27:23 CET] <furq> but yeah the only formats i know of which would handle that as you want are emulated and tracked formats
[06:27:44 CET] <furq> i'm guessing neither of those are any use to you
[06:28:05 CET] <furq> (or just not worth the effort)
[06:41:17 CET] <Fyr> guys, do players play well 100 fps video?
[06:41:34 CET] <Fyr> I'm sure for VLC and PotPlayer, what about the others?
[07:16:48 CET] <kepstin> Fyr: some players have trouble playing video with framerates higher than the screen refresh rate, but really I'd expect most modern players to do something reasonable.
[09:35:24 CET] <caim> Hello again :)Maybe a bit unrelated to ffmpeg not sure I'm looking to determine a stream status from m3u8 file. Is this a good indication of the stream status #EXT-X-MEDIA-SEQUENCE:189 it seems to change every n seconds. Can calculate the different between 2 deltas. I'm assuming this value doesn't change if the stream is down ?
[09:38:31 CET] <caim> or maybe can use ffprobe instead but not sure if it works for both hls and rtmp streams
[09:47:05 CET] <DHE> an HLS liveliness validator for a livestream?
[09:47:32 CET] <caim> yes i confirm it works for m3u8 streams also but the command hangs if ran on a stream that's down it just displays the opening {
[09:47:35 CET] <caim> ffprobe -v quiet -print_format json -show_streams rtmp://example.com/stream
[09:56:29 CET] <caim> is there a timeout on rtmp ? I'm waiting for almost 5 minutes for ffprobe to fail on rtmp://<ip>:1935/live1/<stream>
[14:44:25 CET] <SortaCore> speaking of m3u8, I have issues with that - the final part is downloaded too late, after the stream ends and the provider stops streaming it
[14:48:54 CET] <Nacht> So it's not downloaded too late, it's stopped too early
[15:39:43 CET] <SortaCore> well, no
[15:39:54 CET] <SortaCore> on a browser downloading the same stream, it plays the stream until the end
[15:40:33 CET] <SortaCore> on ffmpeg downloading it to file, it can't download the last part, and the final couple minutes or so of the stream isn't downloaded
[15:41:40 CET] <SortaCore> it had a 404 iirc, but a browser was being screen-recorded in another room and didn't have problems
[15:52:21 CET] <Fyr> guys, I need to burn subtitles, however, the text must be at the top-left corner of the video. is there a simple way to move text there?
[15:58:15 CET] <relaxed> subtitle type?
[16:02:04 CET] <Fyr> relaxed, any
[16:02:30 CET] <Fyr> guys, why does FFMPEG replace the default font with another?
[16:02:32 CET] <shtomik> Hi guys, I'm using sample from examples/transcoding.c, but after transcoding I get spoiled sound, but sometimes error: more samples than frame size (avcodec_encode_audio2), but in this example I have a filter graph, that convert audio sample fits, channel layout and sample rate, what am I doing wrong?
[16:04:43 CET] <shtomik> how to change packet size, if there is required?
[17:35:47 CET] <foo> I want to get the highest quality audio from an mp4 video. Is this the best way to get that? ffmpeg -i video.mp4 video.mp3
[17:35:57 CET] <foo> I imagine there may be a format better than mp3
[17:36:21 CET] <furq> -i foo.mp4 -c copy foo.m4a
[17:37:07 CET] <foo> err, actually, just realized this code I'm passing the resulting file to can only handle wav, ogg, and mp3
[17:37:18 CET] <foo> furq: between those 3 formats, do you have a suggestion?
[17:37:24 CET] Action: foo makes note m4a is the way to go when able
[17:37:44 CET] <furq> well no keeping the original is the way to go when able
[17:37:56 CET] <furq> if you have to transcode then -c:a libvorbis foo.ogg
[17:38:09 CET] <foo> furq: thank you, I see
[17:39:07 CET] <foo> ah, and are we talking -i foo.mp4 -c copy -c:a libvorbis foo.ogg ?
[17:39:10 CET] <foo> probably ditch -c copy
[17:39:20 CET] <furq> yes
[17:39:41 CET] <foo> aha, progress: Automatic encoder selection failed for output stream #0:0. Default encoder for format ogg (codec theora) is probably disabled. Please choose an encoder manually.
[17:39:44 CET] <foo> Error selecting an encoder for stream 0:0
[17:39:50 CET] <foo> I do have libvorbis installed
[17:40:03 CET] <furq> oh
[17:40:05 CET] <furq> add -vn
[17:40:55 CET] <foo> heh, now that says Unknown encoder 'libvorbis' - but brew install libvorbis says I have it
[17:40:59 CET] <foo> furq: appreciate your help! Getting closer
[17:41:19 CET] <furq> does it show up in ffmpeg -version
[17:41:42 CET] <foo> furq: negative
[17:42:09 CET] <foo> hmm, wonder if I need to rebuild ffmpeg with libvorbis support? Current version probably installed via brew
[17:42:14 CET] <furq> yeah
[17:42:33 CET] Action: foo does brew install ffmpeg --with-libvorbis
[17:42:48 CET] <furq> you probably want --with-libopus as well
[17:42:59 CET] <furq> i assume whatever this is only supports vorbis, but .ogg could also be opus
[17:43:01 CET] <furq> which is better
[17:43:14 CET] <foo> furq: aha, thank you, will add that
[18:33:18 CET] <gh0st3d> Hey guys. Quick expalantion, I'm trying to create a video from animated HTML and merge it with another video. My current code successfully creates a 10s clip from a static image and merges it with the second video. I found a blog post that shows a command to create a video from animated HTML but can't seem to merge that command with mine
[18:33:51 CET] <gh0st3d> here's a paste... the top line is my existing command for the static image... the second line is the command from the blog post.... the third line is the one I tried to merge them into
[18:33:57 CET] <gh0st3d> https://apaste.info/cthE
[18:34:27 CET] <gh0st3d> when I run the third line, it starts running successfully and after hitting 10s it never ends and starts jumping up by minutes in duration
[18:42:31 CET] <furq> gh0st3d: move -t 10 after -i -
[18:45:42 CET] <gh0st3d> cool, that did the trick. Is the "-preset superfast" in the correct spot in that command? It runs terribly slow, and I wasn't sure if that's due to the nature of capturing screenshots while making the video or if it's not registering the superfast setting
[18:52:39 CET] <furq> that all looks correct
[18:54:17 CET] <ChocolateArmpits> Do some filters simply not support zmq? I'm trying to issue commands to sendcmd via zmq, but it's failing everytime
[18:55:52 CET] <durandal_1707> ChocolateArmpits: only filters that list commands in documentation
[18:56:06 CET] <durandal_1707> ChocolateArmpits: which filter?
[19:07:20 CET] <Fyr> guys, when burning subtitles, they somehow blink when change. is there a way to avoid this?
[19:08:44 CET] <Fyr> the text goes from 00:00.00 to 00:00.99, 00:01.00 to 00:01.99 etc.
[19:08:45 CET] <Fyr> is it the reason of blinking?
[19:09:39 CET] <Fyr> should I set a pause between them or remove it completely, like:
[19:09:39 CET] <Fyr> 00:00.00 to 00:01.00, 00:01.00 to 00:02.00
[19:09:39 CET] <Fyr> ?
[19:12:33 CET] <JEEB> generally prev.end == next.start is what you would want if you don't want a small point where there's nothing there
[19:12:36 CET] <JEEB> IIRC
[19:13:56 CET] <Fyr> thanks
[19:14:07 CET] <Fyr> now it's not blinking.
[19:15:54 CET] <Fyr> guys, when burning subtitles, FFMPEG replaces the font with another one. is it normal? it writes that it changes it from NotoSans-Regular.ttf, which is installed, to Roboto-Medium.ttf, which is also installed.
[19:16:57 CET] <JEEB> are you specifying a font in the filter?
[19:17:04 CET] <JEEB> (since I guess you're not doing ASS)
[19:17:10 CET] <Fyr> I tried to orce it, but it didn't work out.
[19:17:19 CET] <JEEB> I think most of that stuff is done by freetype anyways
[19:17:59 CET] <Fyr> it writes:
[19:17:59 CET] <Fyr> >>Using font provider fontconfig
[19:18:23 CET] <JEEB> ok, so it uses libass and not only freetype
[19:18:39 CET] <JEEB> FFmpeg -> vf_subtitles -> libass -> (freetype+fontconfig)
[19:18:53 CET] <JEEB> you probably want -v debug to see what's going on?
[19:19:02 CET] <Fyr> ok
[19:19:45 CET] <JEEB> you probably want to stop it in the middle since -v debug does spam a lot
[19:21:54 CET] <Fyr> >>fontselect: (NotoSans-Regular.ttf, 400, 0) -> /usr/share/fonts/truetype/Roboto-Medium.ttf, 0, Roboto-Medium
[19:24:28 CET] <JEEB> do you have a fontconfig index?
[19:24:40 CET] <Fyr> JEEB, what is that?
[19:24:48 CET] <JEEB> it has the index of all installed fonts
[19:24:55 CET] <JEEB> if it's not up to date it will not pick up a font
[19:25:17 CET] <Fyr> how do I update it on openSUSE?
[19:25:25 CET] <JEEB> no idea
[19:25:28 CET] <relaxed> fc-cache -f -v
[19:25:32 CET] <JEEB> also you have to have your fonts all around
[19:25:43 CET] <JEEB> in the directory that fontconfig indexes
[19:26:08 CET] <JEEB> relaxed: yea, the distros just tend to have their own UIs for installing fonts etc
[19:27:05 CET] <Fyr> relaxed, it's recached, however, the problem remains.
[19:27:36 CET] <relaxed> use fc-list and see if the right font is listed
[19:28:00 CET] <bodqhrohro> How many outputs does geq filter have?
[19:28:12 CET] <Fyr> relaxed, it's in the list.
[19:28:24 CET] <relaxed> where is NotoSans-Regular.ttf ?
[19:28:36 CET] <Fyr> relaxed, /usr/share/fonts/truetype/NotoSans-Regular.ttf: Noto Sans:style=Regular
[19:29:47 CET] <Fyr> relaxed, now it works, thanks.
[19:31:06 CET] <ChocolateArmpits> durandal_1707, trying to change the commands parameter for sendcmd filter
[19:31:13 CET] <relaxed> bodqhrohro: does the output of "ffmpeg -h filter=geq" tell you?
[19:31:23 CET] <ChocolateArmpits> by sending new command via zmq
[19:34:35 CET] <bodqhrohro> relaxed: hmm, it tells there is one, so why it fails with [out] appended giving "Filter geq has an unconnected output"?
[19:35:00 CET] <bodqhrohro> The whole command: ffmpeg -t 5 -i video.mp4 -lavfi '[0:v]geq=p(W-X\,Y)[out]' result.avi
[19:38:30 CET] <relaxed> -lavfi 'geq=p(W-X\,Y)'
[19:41:11 CET] <relaxed> bodqhrohro: -vf '[0:v]geq=p(W-X\,Y)[out]' works
[19:42:52 CET] <durandal_1707> ChocolateArmpits: zmq is alternative to sendcmd filters
[19:43:12 CET] <durandal_1707> they do same stuff
[19:43:38 CET] <ChocolateArmpits> durandal_1707, I want to use them together, so that I wouldn't have to send multiple zmq commands, but rather just one with multiple actions defined through sendcmd
[19:45:44 CET] <ChocolateArmpits> in my specific case I want to toggle the "enable" parameter for the volume filter and overlay filter
[19:46:03 CET] <ChocolateArmpits> currently it only works by sending two commands one after the other for each of the filters
[19:46:21 CET] <ChocolateArmpits> it works, but I imagined sendcmd to be possibly more elegant
[19:49:57 CET] <bodqhrohro> relaxed: I found out that adding `-map '[out]'` is enough; -vf would be probably hard to deal with when extending the chain. Thank you anyway
[21:01:23 CET] <colekas> 0
[23:23:51 CET] <colekas> hello friends, I'm looking at AC3 decoding and ebur128 loudness calculation
[23:25:03 CET] <colekas> the one AC3 stream I have has a dialnorm of -24, however the short term loudness calculation of "ffmpeg -threads auto -nostats -i blah.ts -vn -map 0:1 -filter_complex ebur128=peak=true -f null -" shows a momentary loudness that's close to the dialnorm
[23:25:39 CET] <colekas> from my understanding, the dialnorm and the momentary loudness should not meet, but rather the dialnorm should apply a -7dB shift to the audio to get the "true" audio loudness
[23:26:14 CET] <colekas> with the command above, is my ac3 decoder applying the dialnorm such that when the audio is being measured through the ebur128 that it has already been normalized?
[23:29:38 CET] <atomnuker> yes, you need to disable drc, look at ffmpeg -help decoder=ac3
[00:00:00 CET] --- Thu Feb 22 2018
1
0
[00:51:58 CET] <jamrial> jkqxz: don't forget version bumps when you push these changes
[00:56:52 CET] <cone-063> ffmpeg 03Gyan Doshi 07master:b50f68bb1ecc: docs/codecs: remove dead codec debug options
[02:13:51 CET] <cone-063> ffmpeg 03James Almer 07master:acdea9e7c56b: avformat/matroskadec: ignore CodecPrivate if the stream is VP9
[02:34:23 CET] <cone-063> ffmpeg 03James Almer 07release/3.4:3fdff40a32e3: avformat/matroskadec: ignore CodecPrivate if the stream is VP9
[03:36:15 CET] <gagandeep> kierank: are you available
[03:58:59 CET] <shinchiro> sfan5: apparently someone reported second colon in url gave error (tls: server name not specified)
[03:59:05 CET] <shinchiro> from https://github.com/libressl-portable/openbsd/issues/90
[04:00:40 CET] <shinchiro> according to the owner, there's misconfiguration on how it parsing the url
[07:12:42 CET] <sfan5> shinchiro: thanks for telling me, will take a look later today
[08:49:42 CET] <cone-239> ffmpeg 03Tobias Rapp 07release/3.4:8be1edf47ba9: swresample/rematrix: fix update of channel matrix if input or output layout is undefined
[08:52:31 CET] <cone-239> ffmpeg 03Tobias Rapp 07release/3.3:fea559c3d557: swresample/rematrix: fix update of channel matrix if input or output layout is undefined
[10:06:47 CET] <cone-239> ffmpeg 03Tobias Rapp 07release/3.2:1c3144751a82: swresample/rematrix: fix update of channel matrix if input or output layout is undefined
[10:10:46 CET] <cone-239> ffmpeg 03Tobias Rapp 07release/3.0:8ae9bbef87f8: swresample/rematrix: fix update of channel matrix if input or output layout is undefined
[12:43:24 CET] <atomnuker> nvdec is horrible
[12:43:44 CET] <atomnuker> if decoding a non-display frame rate video it lags in mpv for some reason
[12:43:59 CET] <atomnuker> and the chroma planes lag behind the luma planes
[12:46:06 CET] <wm4> I've heard of that happening with cuvid, but never could reproduce it and apparently it went away with a driver update
[12:49:07 CET] <nevcairiel> i've never heard of that on windows
[13:15:56 CET] <ubitux> jamrial: pong
[13:16:26 CET] <ubitux> jamrial: i'm in holidays currently, so even less available than usual
[13:19:17 CET] <jamrial> ubitux: oh, nevermind then. was going to request something regarding your fate clients
[13:19:29 CET] <jamrial> it can wait, so have fun :p
[13:20:34 CET] <ubitux> it's okay, i have some time in the evening for doing stuff, feel free to ask, i can do that with some dela y
[13:20:37 CET] <ubitux> it's not a problem
[13:22:28 CET] <jamrial> can you disable libxvid from the --enable-random client? it's currently making one module fail to link and the solution is not trivial/clean
[13:22:42 CET] <jamrial> so I'd like it to at least stop making so much noise and potentially hide actual dependency bugs for the time being
[13:46:59 CET] <ubitux> jamrial: should be done
[13:47:22 CET] <jamrial> cool, thanks!
[13:50:13 CET] <durandal_1707> atomnuker: when will you finish atrac9?
[13:52:48 CET] <atomnuker> give me time, I'm almost done with vulkan, need to figure out how to make the configure script convert glsl to spirv and include that into c as hex
[13:54:37 CET] <SortaCore> turns out the QSV "rate control not supported" was due to time_base being interpreted as frame rate
[13:55:16 CET] <shtomik__> Hi to all ;)
[13:55:21 CET] <SortaCore> would probably save a few lives if I slap a check for too-low framerate
[13:58:01 CET] <shtomik__> Can somebody tell me, avdevice lib contain API for retrieve information about avfoundation devices and their indexes? ffmpeg -f avfoundation -list_device -i "" show that my default input audio device have index 1. But if I tried get info about audio device from Qt, for example, default device have index 0. I want to make a choice from Qt(index from Qt set to avfoundation input)
[13:58:43 CET] <shtomik__> Is it real?
[13:59:10 CET] <wm4> the indexes are probably not related - you'd probably need to look at underlying device names/IDs/whatever
[13:59:23 CET] <wm4> also user questions including API user questions are offtopic in this channel
[14:01:29 CET] <shtomik__> so sorry about that, on which channel I can ask an answer?
[14:02:13 CET] <wm4> #ffmpeg normally
[14:04:38 CET] <shtomik__> Okay, thanks for your help!
[14:30:39 CET] <cone-536> ffmpeg 03James Almer 07master:88eb368f4210: avformat/matroskadec: free the packet on webvtt side data allocation failure
[14:30:40 CET] <cone-536> ffmpeg 03James Almer 07master:f4f39582e786: avformat/matroskadec: fix return value
[15:21:34 CET] <SortaCore> the sw_pix_fmt is set as unused during encoding, but QSV encoder uses it when pix_fmt is AV_PIX_FMT_QSV
[16:25:39 CET] <gagandeep> kierank: do you recommend doing the coursera course in quickly on image and video processing?
[16:25:57 CET] <kierank> if you like but cfhd is relatively straightforward
[16:27:27 CET] <gagandeep> will we need to understand wavelet transform for cfhd
[16:29:59 CET] <gagandeep> kierank: about maths used, is wavelet transform knowledge required?
[16:30:10 CET] <kierank> no
[16:30:17 CET] <kierank> just what it's doing
[16:31:46 CET] <gagandeep> kierank: i'll just quickly try to go through that course by sunday and then properly look into the codes as my exams will end on 23rd
[18:01:26 CET] <cone-536> ffmpeg 03Michael Niedermayer 07master:3748746a4d69: avcodec/dxtory: Remove code that corrupts dimensions
[18:01:27 CET] <cone-536> ffmpeg 03Michael Niedermayer 07master:cbcbefdc3b4c: avcodec/diracdec: Use int64 in global mv to prevent overflow
[18:01:28 CET] <cone-536> ffmpeg 03Michael Niedermayer 07master:793347a54579: avcodec/jpeg2000dwt: Fix integer overflows in sr_1d53()
[18:01:29 CET] <cone-536> ffmpeg 03Michael Niedermayer 07master:33fe17bdc88d: avcodec/aacdec_templat: Fix integer overflow in apply_ltp()
[18:01:30 CET] <cone-536> ffmpeg 03Michael Niedermayer 07master:85c85fffff3f: avcodec/h264_parse: Clear invalid chroma weights in ff_h264_pred_weight_table()
[18:01:31 CET] <cone-536> ffmpeg 03Michael Niedermayer 07master:47e65ad63b3d: avcodec/diracdec: Fix integer overflow in mv computation
[18:01:32 CET] <cone-536> ffmpeg 03Vishwanath Dixit 07master:a877d22d9a8a: avformat/movenc: addition of flag to fragment at every frame
[18:28:36 CET] <wm4> michaelni: can you explain your behavior
[18:50:14 CET] <kierank> wm4: ?
[18:50:45 CET] <kierank> oh
[18:50:48 CET] <jamrial> he wants a proper dynamic registration api for codecs to replace the current limited one, but people instead wrote one where the codec list is static
[18:50:54 CET] <wm4> not responding to my arguments but reiterating always the same stuff that was discussed to death
[20:00:27 CET] <durandal_1707> yay
[21:59:29 CET] <durandal_1707> only one student contacted me so far, should i worry?
[22:11:15 CET] <lrusak> ldts, wm4: what do you think the best path forward for v4l2m2m is? using the AV_PIX_FMT_DRM_PRIME? or should I possibly pursue other avenues such as using the v4l2 userptrs or dmabuf and then create my own buffers
[22:27:04 CET] <jamrial> durandal_1707: if he passes the qualification task and can handle the project, not really
[23:14:11 CET] <philipl> jkqxz: Do your vaapi mjpeg patches require libva2 and friends?
[23:14:24 CET] <philipl> I got garbage for all jpegs when I tried it out
[23:16:18 CET] <jkqxz> Shouldn't? There is <https://github.com/intel/intel-vaapi-driver/issues/363> for the issue I found yesterday.
[23:16:58 CET] <jkqxz> Note though that the output is never in a sensible format, so you have to send it through scale_vaapi or whatever to make it usable for anything.
[23:18:07 CET] <jkqxz> Even the crazy formats (4:1:1, 4:4:0) worked for me.
[23:25:26 CET] <philipl> jkqxz: So, with the caveat that this is mpv right now - if I have no filter, it says unsupported format (yuv420p or yuv440p depending). If I insert a filter to convert to nv12, I get garbage.
[23:26:45 CET] <philipl> I was able to transcode with 'ffmpeg' correctly
[23:29:19 CET] <jkqxz> I have not tested with mpv. I don't really know how the filtering stuff works there.
[23:32:25 CET] <philipl> That's secondary, for sure.
[23:32:32 CET] <jkqxz> Passing it through a vavpp instance to convert to NV12?
[23:33:19 CET] <jkqxz> Oh, I assume this is Intel?
[23:33:37 CET] <jkqxz> (Should probably have checked that first.)
[23:36:04 CET] <philipl> Yes, intel. skylake
[23:36:28 CET] <philipl> Passing it through vavpp yields something that is nv12, but when I say garbage, I mean lots of green.
[23:36:31 CET] <philipl> Not recognisable at all
[23:39:18 CET] <philipl> The filter chain logging in mpv says it's recognising the raw decode as 440p (for example) and then vavpp turns it into nv12, and then it displays the nv12 and it's green garbage.
[23:39:30 CET] <jkqxz> But it works with ffmpeg scale_vaapi?
[23:40:04 CET] <philipl> I can't get scale_vaapi to work actually. I got a successful transcode without a filter and with software encoding. I can't do full hardware transcode at all.
[23:41:03 CET] <jkqxz> "./ffmpeg_g -y -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i in.mjpeg -an -vf scale_vaapi=format=nv12 -c:v h264_vaapi out.mp4"?
[23:42:21 CET] <philipl> I keep getting an autoscaler inserted.
[23:42:29 CET] <philipl> which then is unhappy
[23:42:52 CET] <jkqxz> Don't use a file containing a format/size change?
[23:43:50 CET] <jkqxz> Webcams are good too: "./ffmpeg_g -y -f v4l2 -input_format mjpeg -video_size 1920x1080 -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i /dev/video0 -an -vf scale_vaapi=format=nv12 -c:v h264_vaapi out.mp4".
[23:44:05 CET] <philipl> I just have jpeg files here.
[23:45:38 CET] <jkqxz> Upload one that fails for you?
[23:47:23 CET] <philipl> https://www.dropbox.com/s/9hxdwretz87bz4s/422n-fast.jpg
[23:51:09 CET] <jkqxz> Works for me.
[23:51:18 CET] <philipl> Then I'm doing something silly.
[23:51:27 CET] <jkqxz> (Coffee Lake, git libva/i965.)
[23:51:37 CET] <jkqxz> Let me try something older.
[23:52:05 CET] <jkqxz> I did a lot of testing on Haswell too, but I didn't look at older driver versions.
[23:52:17 CET] <philipl> I'm libva 1.8.3 (ubuntu default)
[00:00:00 CET] --- Wed Feb 21 2018
1
0
[03:56:21 CET] <classsric> hi, somebody with hw_accel experience
[03:56:28 CET] <classsric> I use this command
[03:56:31 CET] <classsric> ffmpeg -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi -i rtmp://tablet-9:1937/live/56f006922b10b8440f9a9cc6@5a8b6f0658312870d265a37d -r 2 -vsync 2 -vf deinterlace_vaapi,scale_vaapi=w=240:h=320,hwdownload,format=nv12 -f mjpeg http://tablet-9:2064/56f006922b10b8440f9a9cc6@5a8b6f0658312870d265a37d
[03:57:15 CET] <classsric> in intel baytrail with jpeg hw_dec but not mjpeg_vaapi encoder, is right?
[04:45:29 CET] <Kennedy> this ffpeg error mean anything to anyone? --->>>>>>>> ffmpeg: relocation error: /usr/lib/x86_64-linux-gnu/libavfilter.so.6: symbol avpriv_do_elbg, version LIBAVCODEC_57 not defined in file libavcodec.so.57 with link time reference
[04:46:44 CET] <Kennedy> i'm using ffmpeg in a plex postprocessing script. Odd thing when I run the file on the transport stream (.ts) file as root or even as the plex user it completes.When the plex daemon runs the process this is what I finally found after enabling debugs.
[07:11:56 CET] <Retro47> Why is it that if I combine a background image, watermark/overlay and audio via ffmpeg, then send that video for example via whatsapp, the overlay disappears as if it was never there? but if I preview it on desktop, its there. How could I fix that, what kind of argument passed would merge them all onto one "layer"? if I play it back on my phone it even just shows a gray background instead of any image, heres the current command:
[07:12:01 CET] <Retro47> "ffmpeg -y -i background.jpg -i overlay.png -filter_complex "scale=w=1920:h=1080; [0:v][1:v] overlay=(W-w)/2:(H-h)/2" -i 'music.mp3' ep1.mp4"
[07:13:24 CET] <Retro47> sorry the title just now showed, heres the pastebin of above: https://pastebin.com/GLGyEjNv
[09:05:55 CET] <yleibov> hello
[09:06:25 CET] <yleibov> i have a small question regrading the ffmpeg tool, is someone here available ?
[09:20:55 CET] <pmjdebruijn> yleibov: just ask and wait if someone knows
[09:21:41 CET] <yleibov> i need to convert H264 file to a raw RGB - can i do it using ffmpeg ?
[09:22:47 CET] <pmjdebruijn> what do you consider a raw RGB ?
[09:24:16 CET] <pmjdebruijn> yleibov: typically you transcode from codec1 to codec2
[09:24:25 CET] <pmjdebruijn> AFAIK there is no raw RGB codec
[09:24:44 CET] <pmjdebruijn> oh apparently there is :)
[09:25:30 CET] <pmjdebruijn> yleibov: ffmpeg -i myvid.mp4 -c:v rawvideo -c:a copy myvid.mov
[09:25:32 CET] <yleibov> should be one, i know that NVIDIA tool can decode H264 file into *.RGB
[09:25:43 CET] <yleibov> i've wanted to do the same process using the ffmpeg
[09:25:44 CET] <pmjdebruijn> yleibov: do you have a sample file?
[09:25:51 CET] <yleibov> yes
[09:25:54 CET] <pmjdebruijn> you can run ffprobe on that sample file to see what is actually is
[09:26:04 CET] <yleibov> one sec
[09:26:11 CET] <pmjdebruijn> btw, what is your end goal?
[09:26:34 CET] <yleibov> compare the details between 2 RGB files
[09:26:53 CET] <pmjdebruijn> why do you need RGB for that?
[09:27:28 CET] <pmjdebruijn> ffmpeg can extract single frame images if you need that
[09:28:39 CET] <yleibov> i have a tool that is converting H264 file to RAW RGB file using NVIDIA codec
[09:28:58 CET] <yleibov> i need to test the file quality using other tool that doing the same process
[09:29:21 CET] <yleibov> just wanted to know if i can convert the H264 file into RGB file
[09:29:44 CET] <yleibov> once have that i can use the ffprobe to compare
[09:30:10 CET] <pmjdebruijn> yes ffprobe is a good starting point
[09:30:19 CET] <pmjdebruijn> you I would _guess_ it's rawvideo you want
[09:30:28 CET] <pmjdebruijn> as I pasted earlier
[09:30:29 CET] <yleibov> right
[09:30:51 CET] <pmjdebruijn> yleibov: btw ffmpeg itself has quality metric tools as well: https://ffmpeg.org/ffmpeg-filters.html#ssim
[09:32:29 CET] <yleibov> looks good i will test it
[09:33:10 CET] <pmjdebruijn> big advantage is you don't need RGB intermediate files
[09:33:14 CET] <pmjdebruijn> IIRC
[14:11:21 CET] <shtomik_> Hi to all guys ;)
[14:11:40 CET] <shtomik_> Tell me, please, how to change libx264 profile and level? I tried:
[14:11:40 CET] <shtomik_> av_dict_set(&libx264opt, "profile:v", "high", 0);
[14:11:40 CET] <shtomik_> av_dict_set(&libx264opt, "level", "41", 0);
[14:11:40 CET] <shtomik_> or
[14:11:40 CET] <shtomik_> av_dict_set(&libx264opt, "profile", "high", 0);
[14:11:41 CET] <shtomik_> av_dict_set(&libx264opt, "level", "41", 0);
[14:11:43 CET] <shtomik_> or
[14:11:45 CET] <shtomik_> av_dict_set(&libx264opt, vprofile", "high", 0);
[14:11:47 CET] <shtomik_> av_dict_set(&libx264opt, "level", "41", 0);
[14:11:49 CET] <shtomik_> or
[14:11:53 CET] <shtomik_> enc_ctx->profile = FF_PROFILE_H264_HIGH_422;
[14:11:55 CET] <shtomik_> enc_ctx->level = 41;
[14:11:57 CET] <shtomik_> I took as a base a file transcoding.c, and try to change profile and
[14:11:59 CET] <shtomik_> level of encoder, but at the end its all the same:
[14:12:01 CET] <shtomik_> [libx264 @ 0x7fd68b094000] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[14:12:03 CET] <shtomik_> [libx264 @ 0x7fd68b094000] profile Constrained Baseline, level 4.1
[14:12:05 CET] <shtomik_> [libx264 @ 0x7fd68b094000] 264 - core 148 r2795 aaa9aa8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bf
[14:12:10 CET] <shtomik_> rames=0 weightp=0 keyint=50 keyint_min=5 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
[14:12:14 CET] <DHE> you can stop spamming the channel now before you get kicked
[14:13:25 CET] <shtomik_> So sorry, it's not a spam, that was not on purpose :)
[14:14:12 CET] <DHE> the ":v" syntax is ffmpeg-specific and used for its own decision-making when it does av_dict_set
[14:15:17 CET] <DHE> also note that x264 profile commands will not raise thresholds to meet your request, it will only lower them to meet the limitations of it
[14:17:22 CET] <shtomik_> What have I done wrong? So sorry for my English
[14:21:04 CET] <DHE> way too little information available here for me. I'd check that the dictionary is empty when you're done - x264 will delete any parameters it uses. also check that you've used options that are specific to any profile above baseline. Like, specifically request 2 b-frames and see if it goes to Main as a result
[14:25:56 CET] <shtomik_> Oh, thanks!!! It's my fault, I very bad know H264
[14:26:07 CET] <shtomik_> Yes, now I get Main 3.1
[14:28:25 CET] <shtomik_> I need a change profile functions in my project, so tell me, please, what I need to learn, if I want implement this functional?
[14:29:21 CET] <shtomik_> Thanks for your time!
[15:58:51 CET] <SortaCore> why am I getting packets with massive negative PTS and super high DTS
[16:18:40 CET] <colekas> hello friends
[16:19:17 CET] <colekas> is there an easy way to remove audio packets from a TS? I don't want to mute the audio, I want them not to appear in the file
[16:21:17 CET] <alexpigment> colekas: do you mean audio streams?
[16:21:38 CET] <alexpigment> if so ffmpeg.exe -i [input] -c:v copy -an [output]
[16:21:51 CET] <alexpigment> -an is effectively "audio null"
[16:22:05 CET] <colekas> right, but I want to drop a portion
[16:22:07 CET] <alexpigment> there is also a -vn option (video null) that can be used in cases too
[16:22:26 CET] <colekas> so just like I can set loudness to 0, I want all packets say from x..y to just be dropped in the output TS
[16:22:28 CET] <alexpigment> gotcha. i didn't know for sure how literally you meant packets
[16:22:32 CET] <colekas> :)
[16:23:17 CET] <alexpigment> well, that's beyong my knowledge. i can think of a few "hacky" ways to do it, but it would probably result in some sort of audio sync problem
[16:23:17 CET] <colekas> I tried to duplicate my media file and then concatenate them together, but it looks like my command limited the output to just a single video and audio stream and didn't actually extend the video
[16:23:29 CET] <colekas> audio sync isn't important
[16:23:42 CET] <alexpigment> well, i was also thinking of using concat
[16:24:44 CET] <alexpigment> but if you concat a video with audio to a video without audio over the course of multiple concats, i'm not sure it would leave the audio spacing around videos without audio
[16:25:06 CET] <alexpigment> hence my concern about a sync issue
[16:25:48 CET] <alexpigment> anyway, you are very specifically talking about dropping packets at certain timestamps, and i'm sure others here have more experience to know whether it's possible or what to do
[16:38:00 CET] <colekas> thanks
[16:46:29 CET] <shtomik_> Guys, why VLC plays my mp4 movie with sound, and QuickTime player without it. What can have an impact on it?
[16:48:28 CET] <shtomik_> I use code from transcoding.c for my tests, and after transcoding QT player plays without sound...
[16:55:07 CET] <alexpigment> shtomik_: just to make sure, it's aac audio?
[16:56:30 CET] <alexpigment> apple stuff is notorious for rejecting certain formats within mp4
[16:56:35 CET] <alexpigment> (like mp3, for example)
[16:57:39 CET] <shtomik_> oh, thanks!!! yes, I use mp3, thanks!
[17:01:00 CET] <Nacht> The joys of apple and standards
[17:11:52 CET] <shtomik_> +
[17:28:14 CET] <alexpigment> i'm having a bit of a brainfart here because i don't usually mess with audio delays in ffmpeg, but is there a way to ignore/throwaway any existing audio delay values?
[17:28:57 CET] <alexpigment> i have some old files that are made in a nonstandard way, and the audio delay is a) wrong, and b) so extreme that i can't correct it with my usual editor
[17:32:49 CET] <alexpigment> i guess this "itsoffset" method i'm seeing on some ancient google searches is still valid
[17:36:36 CET] <furq> alexpigment: you don't need itsoffset
[17:36:44 CET] <alexpigment> i had a feeling i didn't
[17:36:45 CET] <furq> just -i foo -i foo -map 0:v -map 1:a
[17:36:54 CET] <furq> there may be an easier way but that works
[17:36:58 CET] <alexpigment> ah, map just removes the offsets too
[17:37:00 CET] <alexpigment> that works ;)
[17:37:03 CET] <alexpigment> thanks furq
[17:37:26 CET] <alexpigment> also, it makes perfect sense logically
[17:37:29 CET] <alexpigment> i just didn't think of it
[17:38:07 CET] <furq> i've actually only ever encountered that when i didn't want it to happen lol
[17:38:11 CET] <furq> which was annoying
[17:57:58 CET] <lyncher> hi. I'm trying to read from an audio stream that does not produce in realtime. Is it possible to have ffmpeg inject silence in a realtime capture?
[17:58:46 CET] <lyncher> I'm trying -af "aresample=min_comp=0.1:async=1:osr=32000" but the recorded file doesn't have silence inject when there are transmition gaps
[18:00:18 CET] <c_14> you can try amix with aevalsrc=0
[18:00:21 CET] <c_14> might work, might not
[18:00:38 CET] <c_14> not sure how the ffmpeg binary handles that
[18:00:40 CET] <kepstin> lyncher: in theory, you could maybe use the asetpts filter (see the ffmpeg-filter docs) to change the timestamps based on realtime (RTCTIME), which would mean there's actually timestamp gaps instead of continuous timestamps.
[18:00:53 CET] <kepstin> lyncher: but the ffmpeg cli tool is not designed for this use case.
[18:01:29 CET] <lyncher> I'm trying ffmpeg cli to try to get a strategy to implement in libavcodec
[18:02:28 CET] <kepstin> if you're writing something directly with libavcodec/libavfilter just do that. ffmpeg.c is designed as a batch encoding tool, not for realtime.
[18:02:57 CET] <kepstin> to do this in ffmpeg cli requires adding hacks to workaround the fact that it's designed as a batch tool :/
[18:29:21 CET] <lyncher> the problem that I'm facing now is that the input is getting blocked on the tcp socket
[18:29:31 CET] <lyncher> if no data is available on that socket.... there's no RT progress
[18:29:51 CET] <lyncher> how can I detach the filtering processing from a blocked source?
[18:30:45 CET] <lyncher> I think that is the reason that I don't see silence injected.... there's no advance in packet consuming, because there are no more packets being feed into the pipepline
[18:31:44 CET] <c_14> libav* should be threadsafe
[18:34:07 CET] <malorie> hi all. I'm trying to encode a .mov as different formats (.mp4, .webm, and .ogv, for embedding them in a website), but my attempts don't produce the same color in the videos. I think it has something to do with the color spaces, maybe?
[18:34:44 CET] <malorie> if so, how can I make sure all encodes use the same space?
[18:37:10 CET] <c_14> -pix_fmt yuv420p probably
[18:37:23 CET] <c_14> though you might want to check what your input is etc
[18:37:44 CET] <c_14> maybe the range is being misdetected
[18:38:31 CET] <malorie> hm. ffprobe is saying my .mov is yuv420p
[18:43:55 CET] <malorie> re-encoding with yuv420p didn't help either :\
[18:50:44 CET] <malorie> ok, now I see. inspecting the color in VLC shows that they are, in fact, the same color. but playing them in different browsers does something to the color it seems
[20:20:17 CET] <friki> Hi. Decodification must occur *before* presentaton, so: pts>=dts. Isn't it?
[20:21:52 CET] <JEEB> yes
[20:22:53 CET] <friki> JEEB: and should differ when using 'B' frames
[20:22:55 CET] <friki> thanks
[20:55:27 CET] <alexpigment> malorie: I realize this is a bad late on this, but what is most likely happening is that your GPU is causing the color to be presented as full or limited when hardware acceleration is enabled in the browser
[20:55:39 CET] <alexpigment> *a bit late
[20:56:15 CET] <alexpigment> this is an extremely common problem, but since most people aren't doing side-by-side comparisons or don't know the source material with extreme intimacy, they just don't notice it
[20:56:42 CET] <alexpigment> either way, the fix varies from GPU to GPU
[20:57:08 CET] <alexpigment> or you could just disable hardware accelerated video playback in your browser to test
[20:57:51 CET] <alexpigment> which GPU do you have, out of curiosity, and what is your OS?
[21:03:09 CET] <malorie> alexpigment: I see. I wouldn't have noticed either, weren't I trying to blend the video with my background-color.
[21:03:31 CET] <alexpigment> malorie: usually what you'll notice is that pure black areas are more gray
[21:03:45 CET] <alexpigment> nvidia's control panel has a simple setting to fix this
[21:03:57 CET] <alexpigment> you'll probably notice that VLC now looks "correct" after this
[21:04:07 CET] <malorie> I'm on a MacBook with Intel HD Graphics 515, btw
[21:04:12 CET] <alexpigment> ah gotcha
[21:04:32 CET] <alexpigment> not a whole lot of configuration there
[21:05:44 CET] <malorie> well, I'm more concerned about how to put it into production, without this color mismatch
[21:06:12 CET] <malorie> but apparently there isn't much I can do
[21:06:39 CET] <alexpigment> am i correct in assuming that the mp4 and mov look the same, but the ogv (and possibly the webm) look different?
[21:07:36 CET] <alexpigment> actually skylake may accelerate vp8, so the webm might look the same as the mp4 too
[21:10:33 CET] <malorie> no, you're right
[21:11:25 CET] <malorie> the .webm is off, and the .ogv is flickering, but I haven't looked into that yet, so might be another encoding issue for my .ogv still..
[21:11:42 CET] <malorie> the .mov and .mp4 look alike, tho
[21:13:29 CET] <furq> i wouldn't worry about ogv
[21:13:37 CET] <furq> i don't think there's any browser that plays ogv but not mp4/webm
[21:14:27 CET] <malorie> fair enough. I'm perfectly happy with dropping it, if it means one less problem to deal with :-)
[21:18:08 CET] <alexpigment> yeah, ogv isn't required at all
[21:18:37 CET] <alexpigment> webm is only *required*, if you even consider it a requirement, for dealing with Firefox on Windows XP
[21:19:19 CET] <alexpigment> and honestly, i have a feeling that at this point, people on XP just expect things to be broken for them
[21:20:49 CET] <malorie> oh, I was under the impression that webm is required for some modern browsers also. e.g. for mobile due to its smaller size
[21:21:28 CET] <malorie> but if the coverage is that good, I might as well drop webm too :->
[21:21:38 CET] <JEEB> with VP9 you could get better compression, but the hwdec capabilities of it are generally not wide
[21:22:04 CET] <JEEB> for mobile you will 99% of all time be using H.264 in some form or another, since all of the devices have capability for that
[21:22:18 CET] <JEEB> VP8 is definitely not worth it on any level
[21:23:10 CET] <malorie> yeah, that makes sense
[21:23:13 CET] <furq> are there still linux distros that refuse to have binary packaged h264 decoders
[21:23:26 CET] <furq> i know suse used to be super anal about that
[21:25:34 CET] <JEEB> yes
[21:25:41 CET] <JEEB> fedora and suse and such
[21:26:29 CET] <JEEB> VP9 actually has fast sw decoding thanks to ronald, and as such for desktops it might make sense if you can take your time transcoding the content
[21:27:58 CET] <Mista_D> Is there any way to see AC3 dialnorm values with FFmpeg or FFprobe please?
[21:30:23 CET] <jkqxz> VP9 hardware is not very far away from being on all new (non-fruit-related) devices. All PC-type stuff does it in the most recent generation or two, and all new mobile chips have it.
[21:31:02 CET] <jkqxz> Though yes, there is enough old stuff (and fruit) around that it's not reasonably to rely on it yet.
[21:35:47 CET] <alexpigment> jkqxz: well, intel chips haven't made any significant progress in the past 8 or so years when you compare products of the same class, so there are many out there (including myself) who find little reason to upgrade
[21:35:58 CET] <alexpigment> in the desktop market, it's not a huge deal because GPU upgrades are somewhat common
[21:36:28 CET] <alexpigment> but in the laptop world, if you have a haswell-era processor for example, there is zero impetus for either the casual or advanced user to upgrade
[21:37:27 CET] <alexpigment> i know that sounds anecdotal and not really related, but it has a non-trivial impact on the install base of hardware accelerated playback
[21:39:23 CET] <alexpigment> Mista_D: https://manned.org/ffprobe-all/6c35dcb5 ; search for dialnorm
[21:40:36 CET] <Mista_D> alexpigment: that's for setting dialnorn, but I'd like to see it, not set it.
[21:41:00 CET] <alexpigment> ah, my mistake. i assumed it as seeing it, since it was on an ffprobe page
[23:42:18 CET] <solidus-river> hey all, i had a working encoding loop for mpeg1video and changed it to h264 and am now getting an error from avcodec_open2
[23:42:30 CET] <solidus-river> i'm thinking i've messed up some options on the context :?
[23:46:29 CET] <solidus-river> lol, and i'm getting a return value of.. -1313558101
[23:51:29 CET] <DHE> SolarAquarion: see av_strerror()
[23:55:24 CET] <solidus-river> heres my encoding code up to the point where things fail
[23:55:25 CET] <solidus-river> https://pastebin.com/afutCdrG
[23:55:35 CET] <solidus-river> looking around at examples i don't see anything particularly missing
[23:55:51 CET] <solidus-river> i'm changing from mpeg to mkv / h.264 the coe is working for mpeg1 with the mpeg1 code uncommented
[23:57:21 CET] <solidus-river> i'm continuing to hunt around for solutions but I don't see anything out of the ordinary when comparing my code with code of people who claim their encoder loop is working just fine and nothing particularly jumps out at my from the docs or examples in the docs
[23:57:39 CET] <solidus-river> in particular looking at this https://ffmpeg.org/doxygen/trunk/encoding-example_8c-source.html
[23:58:13 CET] <solidus-river> however the example is only for mpeg1 video so perhaps theres something else to set in h.264 :?
[23:58:37 CET] <alexpigment> i don't usually use the API, so I'm not sure what the number formatting is
[23:58:43 CET] <alexpigment> but is your bitrate 400Mbps?
[23:58:49 CET] <alexpigment> or 400Kbps?
[00:00:00 CET] --- Wed Feb 21 2018
1
0
[00:02:02 CET] <philipl> in init_output_stream_encode perhaps?
[00:11:45 CET] <philipl> nevcairiel: So I want to say this ends up requiring us to propagate the colour range through the filter context appropriately because a filter might alter the colour range - you can't just copy from dec_ctx to enc_ctx.
[00:15:30 CET] <atomnuker> jkqxz: oh wow, so vaapi can't map drm frames on amd? since you get more than 1 object and vaapi can't map more than that
[00:16:15 CET] <jkqxz> philipl: Right. IIRC you said before that you can't actually get the 4:2:2 output for those anyway, so it doesn't matter in that case.
[00:16:49 CET] <jkqxz> atomnuker: I haven't added it yet. I had had enough Intel-wrangling for one release cycle.
[00:18:18 CET] <philipl> jkqxz: yeah. So, I'd like to get the nvdec mjpeg support in, seeing as it doesn't depend on fixing this yuvj mess. I was going to resend your hwaccel hooks minus the yuvj hack.
[00:23:40 CET] <jkqxz> Did you resolve whether it has standard tables and keeps them across images so that non-full MJPEG streams work?
[00:26:27 CET] <jkqxz> (Or do you need to rebuild the tables and inject them into the stream for those cases?)
[00:31:57 CET] <philipl> To the extent that I can test it, I belive it handles it correctly.
[00:32:47 CET] <philipl> Do you have a sample?
[00:41:22 CET] <Chloe> mmh. So my patch for lavfi breaks memory allocation which breaks threads. I'll debug further tomorrow
[01:29:41 CET] <jkqxz> philipl: <https://0x0.st/sTl-.mjpeg> (Failing to show the first A is allowable.)
[01:30:52 CET] <jkqxz> ((That is, I don't think any real streams will ever do that, though in theory they could. ffmpeg does not currently handle it.))
[01:34:12 CET] <philipl> jkqxz: it works.
[01:34:41 CET] <philipl> mpv won't detect it, but I was able to transcode with nvdec successfully, modulo that it decoded to 4:2:0 nv12
[01:34:42 CET] <jkqxz> -BCABC or ABCABC?
[01:35:22 CET] <philipl> BCABB I think
[01:35:47 CET] <philipl> Which is the same as I get with software decoding
[01:37:01 CET] <philipl> (This color_range passing through avfilter is fun...
[01:37:37 CET] <jkqxz> -BCABC then. Ok, good, at least weird splicing isn't needed. (I have been forced into that before with TI's decoder and webcam streams, hence wanting to check these cases...)
[01:38:05 CET] <jkqxz> If we are giving up on YUVJ then it shouldn't be too hard to make it actually work, I'll look at it again tomorrow evening.
[01:48:06 CET] <cone-784> ffmpeg 03Xiaohan Wang 07release/2.8:07e46226ae50: avcodec/h264_cavlc: Set valid qscale value in ff_h264_decode_mb_cavlc()
[01:48:07 CET] <cone-784> ffmpeg 03Michael Niedermayer 07release/2.8:6cfd81b04c71: avcodec/h264_cabac: Tighten allowed coeff_abs range
[01:48:08 CET] <cone-784> ffmpeg 03Michael Niedermayer 07release/2.8:a3c66132d957: avutil/common: Fix integer overflow in av_clip_uint8_c() and av_clip_uint16_c()
[01:48:09 CET] <cone-784> ffmpeg 03Michael Niedermayer 07release/2.8:09dad5239002: avcodec/exr: Check remaining bits in last get code loop
[01:48:10 CET] <cone-784> ffmpeg 03Michael Niedermayer 07release/2.8:603d23ffebdd: avcodec/vp8: Check for bitstream end before vp7_fade_frame()
[01:48:11 CET] <cone-784> ffmpeg 03Michael Niedermayer 07release/2.8:3f8a0d5ad1a9: Changelog: update
[02:00:02 CET] <philipl> jkqxz: cheers.
[02:00:31 CET] <philipl> I wonder how far down this rabbit hole I need to go. Functional parity means handling codecpar and ffmpeg_filter stuff.
[02:29:42 CET] <cone-784> ffmpeg 03Michael Niedermayer 07n2.8.14:HEAD: avcodec/dirac_dwt_template: Fix Integer overflow in horizontal_compose_dd137i()
[03:04:37 CET] <ltrudeau> I'm working on Chroma from Luma for AV1, I never wrote any Neon (intrinsics) before. Any advice on how can make this better would be greatly appreciated https://aomedia-review.googlesource.com/c/aom/+/46901
[03:06:59 CET] <atomnuker> I think ubitux is the only one here who's done neon (asm)
[03:07:20 CET] <Compn> Chloe : all i know are that ffmpeg a few developers went on to get jobs at google, facebook, vimeo, nvidia, samsung
[03:07:44 CET] <Compn> ugh screwed up that sentence
[03:08:22 CET] <Chloe> Compn: surely not with just ffmpeg experience, so it wont apply to me
[03:09:42 CET] <Compn> as long as you are a good coder, and dont have any unprofessional character flaws, you should be hireable in many companies
[03:12:44 CET] <ltrudeau> atomnuker: thanks for the info
[03:13:30 CET] <Compn> Chloe : i mean, it does not hurt to try to apply to these top companies, especially if you have 5y or more open source experience
[03:14:49 CET] <Chloe> Compn: 5y open source experience is rather... Excessive to expect at 18. Sure I've dabbled with various open source stuff for 5 years but i wouldnt consider it 'experience' per se
[03:14:58 CET] <Compn> oh i didnt know you were 18 :)
[03:18:35 CET] <Compn> applying that early would be interesting
[03:23:08 CET] <philipl> man, do I need to create a custom AV_OPT for color range too?
[08:34:05 CET] <cone-778> ffmpeg 03Tobias Rapp 07master:6325bd371734: swresample/rematrix: fix update of channel matrix if input or output layout is undefined
[08:34:05 CET] <cone-778> ffmpeg 03Tobias Rapp 07master:56f77b0f678d: fate: add tests for pan audio filter
[09:09:12 CET] <mateo`> atomnuker: i've done some neon too (armv7 and arm64)
[13:34:48 CET] <th3_v0ice> Hello all. I have one question regarding the decoder context. When we open a file with avformat_open_input followed by avformat_find_stream_info, should we create a new decoder context with avcodec_alloc_context3(input_stream->codecpar->codecid), or should we use the input_stream->codec as a decoder context?
[15:13:50 CET] <ltrudeau> mateo`: If ever you have any advice for me related to https://aomedia-review.googlesource.com/c/aom/+/47101 it would be greatly appreciated
[15:20:17 CET] <mateo`> ltrudeau: ok, i'll take a look at it tomorrow and let you know
[15:20:49 CET] <ltrudeau> awesome, thank you very much for your time :)
[15:33:12 CET] <cone-063> ffmpeg 03Aman Gupta 07master:f611fef37cca: avcodec/mediacodecdec: refactor to take advantage of new decoding api
[15:36:29 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:a5a6d2dc7516: avcodec/dirac_dwt: Fix integer overflows in COMPOSE_DAUB97*
[15:36:30 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:4a5ec6226b85: avcodec/diracdsp: Fix integer overflow in PUT_SIGNED_RECT_CLAMPED()
[15:36:31 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:4d0a4601015b: avcodec/amrwbdec: Fix division by 0 in voice_factor()
[15:36:32 CET] <cone-063> ffmpeg 03Jun Zhao 07release/3.0:e512c83e63fc: avfilter/formats: fix wrong function name in error message
[15:36:33 CET] <cone-063> ffmpeg 03Kelly Ledford 07release/3.0:95139c4480b0: libavfilter/af_dcshift.c: Fixed repeated spelling error
[15:36:34 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:b7f48cd0444b: avcodec/hevcdsp_template: Fix undefined shift in put_hevc_qpel_bi_w_hv()
[15:36:35 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:01f2bc5ec89b: avcodec/hevc_sei: Fix integer overflows in decode_nal_sei_message()
[15:36:36 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:09d61d3b81ce: avcodec/hevc_cabac: Fix integer overflow in ff_hevc_cu_qp_delta_abs()
[15:36:37 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:a0bcc6cced1a: avcodec/dirac_dwt: Fix integer overflow in COMPOSE_DD97iH0() and COMPOSE_DD137iL0()
[15:36:38 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:b3af84774b03: avcodec/hevcdsp_template.c: Fix undefined shift in FUNC(dequant)
[15:36:39 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:f08be2b3d2ad: avcodec/flacdec: avoid undefined shift
[15:36:40 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:844a9b439b27: avcodec/hevcdsp_template: Fix Invalid shifts in put_hevc_qpel_bi_w_h() and put_hevc_qpel_bi_w_w()
[15:36:41 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:6fab791daade: avcodec/flacdec: Fix overflow in multiplication in decode_subframe_fixed()
[15:36:42 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:9143ddea0f16: avcodec/exr: Check buf_size more completely
[15:36:43 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:0c753a46efe2: avcodec/dnxhddec: Check dc vlc
[15:36:44 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:06325d77bf12: avcodec/h264_slice: Do not attempt to render into frames already output
[15:36:45 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:3cad8e730e06: avcodec/jpeg2000dsp: Fix integer overflows in ict_int()
[15:36:46 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:c17cc8ee4ffb: avcodec/opus_parser: Check payload_len in parse_opus_ts_header()
[15:36:47 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:b4d9605c6718: avcodec/diracdec: Fix integer overflow with quant
[15:36:48 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:6164ca476570: avcodec/dirac_dwt: Fix overflows in COMPOSE_HAARiH0/COMPOSE_HAARiL0
[15:36:49 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:abb7498c3f00: avcodec/h264addpx_template: Fixes integer overflows
[15:36:50 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:c7e98ee6e08a: avcodec/arm/sbrdsp_neon: Use a free register instead of putting 2 things in one
[15:36:51 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:222ac346127e: avcodec/utils: Avoid hardcoding duplicated types in sizeof()
[15:36:52 CET] <cone-063> ffmpeg 03Carl Eugen Hoyos 07release/3.0:e858326086c6: configure: bump year
[15:36:53 CET] <cone-063> ffmpeg 03Nikolas Bowe 07release/3.0:9d0b3fa58c4b: avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks()
[15:36:54 CET] <cone-063> ffmpeg 03Nikolas Bowe 07release/3.0:23af1858fe2e: avformat/lrcdec: Fix memory leak in lrc_read_header()
[15:36:55 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:7d5ca2169811: avcodec/ac3dec_fixed: Fix integer overflow in scale_coefs()
[15:36:56 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:e5296dfffaad: avcodec/ulti: Check number of blocks at init
[15:36:57 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:dfb84488428b: avcodec/snowdec: Fix integer overflow before htaps check
[15:36:58 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:a8ce9d518b29: avcodec/truemotion2: Fix integer overflow in TM2_RECALC_BLOCK()
[15:36:59 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:f7abc14d0d94: avcodec/hevc_cabac: Move prefix check in coeff_abs_level_remaining_decode() down
[15:37:00 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:181c3cbacfae: avcodec/dxtory: Fix bits left checks
[15:37:01 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:269aecafabf8: avcodec/mjpegdec: Fix integer overflow in DC dequantization
[15:37:02 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:cedd9ea93ea2: avcodec/hevc_cabac: Check prefix so as to avoid invalid shifts in coeff_abs_level_remaining_decode()
[15:37:03 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:5d06804b3136: avfilter/vf_transpose: Fix used plane count.
[15:37:04 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:78b1d57a4bc4: avcodec/mpeg4videodec: Check mb_num also against 0
[15:37:05 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:6a01b65034a1: avcodec/get_bits: Document the return code of get_vlc2()
[15:37:06 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:60039c2d125f: avcodec/mpeg4videodec: Avoid possibly aliasing violating casts
[15:37:07 CET] <cone-063> ffmpeg 03Aman Gupta 07release/3.0:d66455702304: avcodec/hevc_ps: extract one SPS fields required for hvcC construction
[15:37:08 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:adb0a29111b3: avcodec/hevc_ps: Check log2_sao_offset_scale_*
[15:37:09 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:c1a133b610de: avcodec/indeo5: Do not leave frame_type set to an invalid value
[15:37:10 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:35f47ac0d54b: avcodec/dirac_dwt: Fix several integer overflows
[15:37:11 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:6baa0e811b76: avcodec/aacsbr_fixed: Fix overflows in rounding in sbr_hf_assemble()
[15:37:12 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:8886e1228d1c: avcodec/wavpack: Fix integer overflow in FFABS
[15:37:13 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:a26ac3cc6921: avcodec/huffyuvdec: Check input buffer size
[15:37:14 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:c6b5e80635ee: avcodec/vp3: Check eob_run
[15:37:15 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:ce46e45f4cb9: avcodec/mpeg4videodec: Ignore multiple VOL headers
[15:37:16 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:664e3d217aad: avcodec/vp3: Error out on invalid num_coeffs in unpack_vlcs()
[15:37:17 CET] <cone-063> ffmpeg 03Xiaohan Wang 07release/3.0:d4f911953256: avcodec/h264_cavlc: Set valid qscale value in ff_h264_decode_mb_cavlc()
[15:37:18 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:340c315c671e: avcodec/h264_cabac: Tighten allowed coeff_abs range
[15:37:19 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:e38e2d6533d7: avutil/common: Fix integer overflow in av_clip_uint8_c() and av_clip_uint16_c()
[15:37:20 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:675e243949bc: avcodec/exr: Check remaining bits in last get code loop
[15:37:21 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:010dd0d26e5a: avcodec/vp8: Check for bitstream end before vp7_fade_frame()
[15:37:22 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:6492799fcefb: avcodec/dirac_dwt_template: Fix Integer overflow in horizontal_compose_dd137i()
[15:37:23 CET] <cone-063> ffmpeg 03Michael Niedermayer 07release/3.0:9f14908a96ca: Update for 3.0.11
[16:06:20 CET] <gagandeep_> kierank: for the qualification tasks, are we allowed to discuss with you and others in the community
[16:06:28 CET] <kierank> yes
[16:06:31 CET] <kierank> most definitely
[16:07:43 CET] <gagandeep_> thanks
[17:33:27 CET] <thardin> does the png encoder not support SAR? pHYs chunk
[17:34:30 CET] <thardin> seems it does but not automagically?
[17:37:04 CET] <jamrial> it should
[17:37:45 CET] <thardin> a friend of mine is having trouble thumbnailing h264 in mkv. input files has sar set, so I'm a bit stumped
[17:41:30 CET] <nevcairiel> if you're scaling anyway, maybe should just scale the SAR away
[17:41:40 CET] <nevcairiel> and make square pixels
[17:43:01 CET] <thardin> myes I'm suggesting that
[17:46:10 CET] <thardin> I'm noticing a lack of "make square pixels" example in the documentation
[17:46:59 CET] <kepstin> I wouldn't be surprised if a log of png decoders are ignoring the sar and just assume square pixels, even if it is set correctly in the file.
[17:49:31 CET] <thardin> yes I just asked him to check using ffplay
[17:49:53 CET] <thardin> web browsers are pretty garbage when it comes to this
[18:23:14 CET] <thardin> it turns out he was just using crappy viewers >_<
[18:24:20 CET] <thardin> magic scale incantation for posterity: -vf 'scale=trunc(in_h*dar):in_h,setsar=1/1'
[18:24:51 CET] <jamrial> dump it on the wiki pls :p
[18:26:09 CET] <thardin> or documentation
[18:32:06 CET] <jamrial> that's also good
[18:35:55 CET] <thardin> holy heck, how can doc/ffmpeg-filters.html be 855k?
[18:36:31 CET] <jamrial> blame durandal_1707 for writing so many filters :p
[18:36:41 CET] <durandal_1707> too much free time
[18:37:22 CET] <thardin> firefox chokes on it
[18:37:23 CET] <jamrial> filters.texi is ~540k. converting to html adds some bloat
[18:37:38 CET] <durandal_1707> lol
[18:38:04 CET] <jamrial> it doesn't for me
[18:45:25 CET] <thardin> patch sent
[18:48:56 CET] <tmm1> is Marton Balint here?
[18:50:07 CET] <jamrial> i don't think so
[18:54:56 CET] <gagandeep> kierank: which header files i should go through in ffmpeg so as to get working knowledge for the library functions
[18:55:08 CET] <kierank> gagandeep: for cineform?
[18:55:11 CET] <kierank> libavcodec/cfhd.c
[18:55:12 CET] <gagandeep> yes
[18:57:02 CET] <gagandeep> how much of the #include ones i need to go through
[18:58:24 CET] <gagandeep> kierank: i am asking the basic libraries that i need to acquiant myself with like avcodec.h etc
[18:58:45 CET] <kierank> in theory you don't need to be aware of those
[19:00:09 CET] <gagandeep> but i will need to go through all the keywords like frames that are included from external files
[19:01:57 CET] <kierank> gagandeep: only avcodec.h
[19:02:04 CET] <kierank> and maybe libavutil/frame.h
[19:11:36 CET] <omerjerk> Is Martin Vignali here?
[19:17:04 CET] <durandal_1707> no, afaik
[19:48:59 CET] <philipl> Well, that was entertaining.
[19:54:46 CET] <JEEB> philipl: gj
[19:54:54 CET] <atomnuker> philipl: do the patches overlap with durandal_1707's patches?
[19:55:27 CET] <wm4> should you really add a new option type?
[19:55:27 CET] <atomnuker> (also do they fix all the issues? can we finally deprecate yuvj for real?)
[19:55:39 CET] <philipl> atomnuker: I never looked closely at his.
[19:55:52 CET] <JEEB> -34
[19:56:15 CET] <philipl> I'm not claiming it fixes all issues, just this particular issue. I don't know what the full list is.
[19:56:18 CET] <philipl> :-)
[19:57:31 CET] <philipl> wm4: A new option type seems silly but color range is already handled in a silly way in multiple places right now - each filter that uses it defines its own option and parsing strategy
[19:57:41 CET] <durandal_1707> this is just subset with opt type of my work
[19:57:41 CET] <philipl> I didn't try to consolidate them, but there's an obvious improvement if we do.
[19:58:23 CET] <philipl> durandal_1707: yeah. Maybe that's what I get for not reading those patches. Maybe it helps make it more consumable because it's a subset.
[19:58:27 CET] <durandal_1707> hope this one can be applied asap
[19:59:07 CET] <wm4> unless your program becomes ffmpeg.c, you tend to need to explicitly switch() on the option type for certain things, so I think new option types should generally be avoided as far as possible
[20:00:04 CET] <jamrial> yes please, death to yuvj
[20:00:49 CET] <durandal_1707> yuvj lives again!
[20:01:45 CET] <wm4> so libavfilter was a big part in yuvj, but wasn't there also a problem with the encoding API?
[20:02:49 CET] <jamrial> also sws. it looks at the pixfmt before making some choices, in functions with no apparent access to a color_range value
[20:07:29 CET] <wm4> well that's just a sws bug then
[20:07:41 CET] <wm4> but would explain some weird behavior I've seen with libswscale
[20:08:16 CET] <wm4> (not like I'd waste my time with it - mpv for one basically doesn't use libswscale at all anymore in an ideal setup)
[20:09:53 CET] <nevcairiel> i'm still looking for a decently fast rgb -> rgb scaler, which also has ARM optimizations, its really hard to find something that also has ARM SIMD for such a task you would think many people need
[20:51:55 CET] <philipl> durandal_1707: I'm looking over your change from december. Ignoring the option stuff, the core filter stuff is the same except I missed the ff_get_video_buffer part.
[20:52:22 CET] <philipl> For 'ffmpeg', you obviously added the InputFilter and OutputFilter stuff. I don't see you setting the color_range on the encoder context, however.
[20:53:10 CET] <philipl> (or reading it off the decoder actually)
[20:56:10 CET] <philipl> Ok, I was looking at the wrong patchset
[21:00:44 CET] <philipl> but still don't see you reading it off the decoder or setting the buffersrc parameter
[21:49:42 CET] <jkqxz> philipl: <http://ixia.jkqxz.net/~mrt/ffmpeg/mjpeg/>
[21:50:05 CET] <jkqxz> I've sorted out the YUVJ stuff in the VAAPI code, so it doesn't need that hack.
[21:50:32 CET] <jkqxz> I'm having fun with testing it, though.
[21:51:28 CET] <jkqxz> Intel still decodes some YUV 4:4:4 images to garbage and I'm not yet sure why (I suspect something in the driver is making incorrect assumptions about the components).
[21:52:39 CET] <jkqxz> AMD can decode 4:2:0 and 4:2:2, but you can't easily get at the results. The crazy separated-field stuff makes everything except the encoder refuse to deal with the output surfaces (and that includes downloading them back to CPU memory).
[21:52:57 CET] <jkqxz> The encoder does work on the 4:2:0 ones, but it segfaults when given 4:2:2.
[21:53:46 CET] <jkqxz> It all feels very "we made it work once and noone has touched it since".
[21:56:26 CET] <Fenrirthviti> From AMD? Shocking.
[22:04:20 CET] <philipl> an
[22:09:03 CET] <philipl> jkqxz: will look properly in a bit. thanks for pulling the nvdec change in.
[22:10:59 CET] <jamrial> nevcairiel: will you push you dlltools patch? or want me to merge the libav one?
[22:17:15 CET] <nevcairiel> the libav one is incomplete
[22:17:16 CET] <atomnuker> jkqxz: separated fields?
[22:17:29 CET] <nevcairiel> so i'll push mine soon
[22:18:15 CET] <jkqxz> atomnuker: Decode progressive input to separate top and bottom fields. Because reasons.
[22:18:33 CET] <atomnuker> hah, I thought only vdpau did that
[22:19:43 CET] <jamrial> nevcairiel: ah right, forgot we had a lib.exe path as well
[22:27:38 CET] <cone-063> ffmpeg 03Hendrik Leppkes 07master:6d8bef8c05ea: build: restore using dlltool/lib.exe for creating Win32 .lib files
[22:36:57 CET] <cone-063> ffmpeg 03Martin Storsjö 07master:97eee953e639: Revert "configure: Stop using dlltool to create an import library"
[22:36:58 CET] <cone-063> ffmpeg 03Martin Storsjö 07master:cc1c94dacd06: configure: Pass the right machine types to dlltool for arm and arm64 mingw
[22:36:59 CET] <cone-063> ffmpeg 03James Almer 07master:6dea6c4b9718: Merge commit '97eee953e639bd4d17a9f9398293775277d00505'
[22:37:00 CET] <cone-063> ffmpeg 03James Almer 07master:04a8d5c2d757: Merge commit 'cc1c94dacd0642ac1a6cad45deb65071f127d91a'
[22:37:33 CET] <nevcairiel> i wonder if those are the right values for lib.exe as well, but not like i can test
[22:38:09 CET] <nevcairiel> arm and arm64 seem correct, so yay
[22:42:12 CET] <rcombs> oh, it imported from the wrong lib
[22:42:16 CET] <rcombs> huh
[22:42:19 CET] <rcombs> how the fuck
[22:42:30 CET] <rcombs> windows is bad, news at 11
[22:42:36 CET] <nevcairiel> ?
[22:42:59 CET] <rcombs> I didn't get why this was happening at runtime before reading those commit messages
[22:43:09 CET] <nevcairiel> because gcc is dumb, apparently
[22:43:19 CET] <nevcairiel> it produces somehow conflicting link sections
[22:43:35 CET] <wbs> and the biggest question is why it doesn't do whatever dlltool does, which seems to be fine
[22:43:41 CET] <rcombs> and I talked to a friend who understands .lib files better than I do the other day and now I'm really mad that they still exist
[22:44:33 CET] <wbs> nevcairiel: about lib.exe; since dlltool is fine otherwise (for msvc <= 2010 there was an issue with /OPT:REF with dlltool produced implibs, but that should be gone by now) I don't think there's a strict need for keeping that - other than potentially risking to break some other subtle case
[22:44:49 CET] <wbs> like when I naively thought it would be just as fine to use the ld produced implib instead of the dlltool one
[22:44:50 CET] <rcombs> apparently .lib files corresponding to .dlls are just the PLT, except emitted as a separate step in a static library, rather than just being emitted by the linker when linking against a .dll
[22:45:27 CET] <wbs> (when implementing the same things for lld and llvm-dlltool, the produced import libraries from both cases are identical)
[22:45:32 CET] <nevcairiel> wbs: who knows, its probably fine, but its not like its a lot of annoyance to keep it
[22:45:39 CET] <rcombs> which is why gcc/ld is fine just linking against a .dll directly: it emits that code itself
[22:45:51 CET] <rcombs> MSVC is just stubborn and doesn't
[22:46:05 CET] <rcombs> so you've gotta do its job for it and make a PLT
[22:46:19 CET] <wbs> rcombs: yes, but then on the other hand, the gcc produced import libraries are much more complex than the msvc ones
[22:46:52 CET] <rcombs> I'm saying we shouldn't need separate import-library files at all
[22:46:59 CET] <wbs> I know
[22:47:07 CET] <nevcairiel> the interesting thing is that you can have symbols visible in the DLL but invisible in the .lib file, which is used for the loading/registration mechanics of COM objects, for example, since all the COM DLLs expose a few functions of the exact same name, which I reckon might cause troubles
[22:47:31 CET] <wbs> yes, and you can have symbol aliases in the import library
[22:47:42 CET] <wbs> like have code calling read() but end up loading _read() from the dll
[22:47:46 CET] <nevcairiel> import libraries can even refer to multiple DLLs
[22:47:52 CET] <nevcairiel> its all sorts of wicked magic
[22:47:58 CET] <wbs> that part actually is no magic at all
[22:48:08 CET] <wbs> it's just a bunch of object files, just like any static library
[22:48:29 CET] <wbs> so you can have whatever helper functions there that end up statically linked into your binary, and then importing the rest from the dll
[22:48:33 CET] <jkqxz> Aha, right. Intel's JPEG decoder only accepts 4:4:4 images if for all components you have H_i == V_i == 1.
[22:49:51 CET] <jamrial> jkqxz: no documentation at all about this? i'm amazed you have to experiment this much
[22:49:51 CET] <jkqxz> But libavcodecs JPEG encoder creates them with H_i == 1 and V_i == 2, so it just returns complete garbage (while indicating success).
[22:50:08 CET] <jkqxz> Files made by libjpeg do work.
[22:50:11 CET] <rcombs> macOS actually has something sort of similar lately at a very high level
[22:50:30 CET] <rcombs> not in terms of "PLT in a static lib"
[22:50:34 CET] <atomnuker> maybe they know subsampling is pointless if you have a sufficiently advanced codec and have prepared for it
[22:50:42 CET] <rcombs> but a small file that you can link against instead of the full dylib: https://gist.github.com/rcombs/0eea073c7c43e8386bdf3b4f320c60b0
[22:51:08 CET] <jkqxz> jamrial: No documentation at all for anything like this. The whole thing is completely unusable without the source code to read.
[22:51:39 CET] <jamrial> that seems to be the foss way
[22:51:54 CET] <jkqxz> atomnuker: It's not subsampling. It's just defining the order of the blocks in the file.
[22:52:18 CET] <philipl> jkqxz: btw, the mjpeg profile change requires a fate update. There's a test that expects the profile to be unset right now.
[22:52:18 CET] <nevcairiel> .lib files are so generic that you can create them from nothing but text input anyway, if you don't use any of the more special features, so in theory you could link against a .def file or the dll itself and the linker could create the import statements, if it wanted to - but the lib format is more versatile t hen that, so i guess they just enforce using it
[22:52:46 CET] <rcombs> nevcairiel: yeah
[22:52:49 CET] <nevcairiel> its not like its hard to generate a lib f ile from any given dll
[22:53:41 CET] <nevcairiel> just took us by surprise that gcc/ld sucks at creating those, when dlltool works
[22:53:49 CET] <nevcairiel> you would think those people would talk to each other
[22:54:10 CET] <wbs> nevcairiel: especially since ld and dlltool come from the exact same binutils source tree
[22:54:22 CET] <wbs> it's all just frontends to the same libbfd
[22:55:20 CET] <wbs> dunno if it is msvc link.exe that has got some handwired extra logic to make it work, that only was adapted to the dlltool variant - I tried to have a look and it's mostly a very minor difference in how they name the internal object files
[22:57:27 CET] <jkqxz> philipl: Right, so it does. Thanks, I'll fix that.
[22:58:14 CET] <philipl> jkqxz: otherwise, changes looks good to me.
[22:58:42 CET] <jkqxz> The raw_image_buffer at the SOI marker does the right thing on nvdec?
[23:12:31 CET] <philipl> jkqxz: yes, it works. I'm actually surprised.
[23:52:32 CET] <kepstin> oh, huh, the old fps filter applies the start_time option in the *input* timebase rather than *output* timebase. This is gonna make my life unnecessarily complicated.
[00:00:00 CET] --- Tue Feb 20 2018
1
0
[00:02:24 CET] <Elec_A> DHE: yes! Thank you!
[00:02:32 CET] <Elec_A> using framrate solved it
[00:03:04 CET] <furq> weird
[00:03:10 CET] <furq> i thought -r was mapped to -framerate there
[00:06:44 CET] <DHE> no, but I would have thought that overriding the incoming framerate would be functionally identical anyway
[00:07:28 CET] <DHE> unless I'm woefully misunderstanding what -r does on an input
[11:56:46 CET] <th3_v0ice> Hello all. I have one question regarding the decoder context. When we open a file with avformat_open_input followed by avformat_find_stream_info, should we create a new decoder context with avcodec_alloc_context3(input_stream->codecpar->codecid), or should we use the input_stream->codec as a decoder context?
[15:25:36 CET] <sunslider> hi guys, can I force ffmpeg to flush buffer to the output file? right now it writes the buffer only when I close it..
[15:25:45 CET] <sunslider> and I'm using it to stream
[17:03:44 CET] <zalaare> How do I tell ffmpeg to simply ignore the pgs_subtitle stream during a video copy? It seems it always wants to do /something/ with it and fails because afaik pgs_subtitles still cannot be -c copy. [-ss 00:00:00.0 -map 0:v:0 -map 0:a:0 -map -0:sn -c copy -t 00:00:30.0]
[17:05:55 CET] <kepstin> zalaare: if you just don't map the subtitles, they won't get copied
[17:06:21 CET] <kepstin> zalaare: you should have only "-map 0:v:0 -map 0:a:0" in your command.
[17:06:43 CET] <kepstin> zalaare: note that "-map -0:sn" is not correct syntax, I have no idea what that would do
[17:07:25 CET] <zalaare> @kepstin: I snagged that from google search. Supposedly disable default copy all, and ignore subtitles
[17:07:39 CET] <klaxa> that's -sn though not -map 0:sn
[17:07:52 CET] <zalaare> well it still doesn't work :(
[17:08:01 CET] <kepstin> zalaare: have to see your full command line
[17:08:24 CET] <kepstin> zalaare: if you map only video and audio, then subtitles would not be copied, so you must have a different problem
[17:08:48 CET] <zalaare> [code]ffmpeg -hide_banner -loglevel info -nostats -i "/tmp/Charade/Charade.Bluray-1080p.(1963).mkv" -ss 00:00:00.0 -map 0:v:0 -map 0:a:0 -c copy -t 00:00:30.0 -y "/tmp/Charade/Charade.Blur ay-1080p.(1963).tmp.mkv"[/code]
[17:09:09 CET] <zalaare> error: [matroska,webm @ 0x55dc6db88d80] Unsupported encoding typeCould not find codec parameters for stream 3 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size Consider increasing the value for the 'analyzeduration' and 'probesize' options
[17:09:34 CET] <sfan5> add -sn before the -c copy
[17:09:55 CET] <sfan5> also -ss 0 should not be necessary
[17:09:57 CET] <zalaare> @sfan5 same
[17:10:07 CET] <kepstin> adding -sn shouldn't do anything, the subtitle track isn't mapped already
[17:10:16 CET] <sfan5> right
[17:10:21 CET] <sfan5> then it's having a problem with your input file
[17:10:24 CET] <kepstin> zalaare: can you share the *complete* output on a pastebin site?
[17:10:30 CET] <zalaare> sure
[17:11:38 CET] <th3_v0ice> Is that space in the output file name intentional?
[17:11:49 CET] <sfan5> so your options are either increasing analyzeduration / probesize until ffmpeg is happy OR removing the subtitle tracks first by remuxing using mkvmerge
[17:12:32 CET] <zalaare> https://pastebin.com/raw/igh9jVay
[17:13:00 CET] <zalaare> @th3_voice: copy-paste issue.
[17:13:04 CET] <kepstin> zalaare: that worked perfectly fine according to the output...
[17:13:15 CET] <kepstin> it copied the non-sub tracks and made you a 30s video file
[17:13:18 CET] <zalaare> it did? lol
[17:13:51 CET] <zalaare> Yup it did. You're absolutely right. It went so fast I assumed it borked.
[17:14:29 CET] <zalaare> /slaps himself
[17:14:32 CET] <kepstin> well, copy is fast, and 30s is very small, so i'd expect it to be nearly instant yeah
[17:57:03 CET] <trg> Hi all, I'm using ffmpeg to create a video with audio from x11grab and alsa and experiencing a few performance issues. Wondering if anybody could give me a sanity check to see if there's anything I could be doing better, as I'm a novice ffmpeg user
[17:57:23 CET] <trg> Here's the command I'm using:
[17:57:31 CET] <trg> ffmpeg -y -video_size 1920x1080 -framerate 25 -f x11grab -draw_mouse 0 -thread_queue_size 512 -i :99 -f alsa -acodec pcm_s32le -thread_queue_size 1024 -ac 2 -i hw:Loopback,1,0 -c:v libx264 -crf 0 -preset ultrafast /home/vagrant/output.mp4
[17:59:46 CET] <pomaranc> you do realize crf 0 is lossless, right?
[17:59:54 CET] <relaxed> trg: -thread_queue_size 512 and -acodec pcm_s32le -thread_queue_size 1024 -ac 2 go after -i hw:Loopback,1,0
[18:00:19 CET] <relaxed> unless -thread* is some demuxer option
[18:00:21 CET] <trg> yes, as I understand from what I've read, the lossless option will give me a much larger file, but tax the cpu less while the recording is happening
[18:00:25 CET] <furq> thread_queue_size is an input option
[18:00:31 CET] <furq> although you're defining it twice for the same input
[18:00:52 CET] <furq> fyi the warning you get about thread_queue_size being too low is usually meaningless
[18:01:18 CET] <relaxed> instead of -ac 2 you want -channels 2
[18:01:18 CET] <furq> also i don't think lossless is less taxing on the cpu
[18:01:20 CET] <trg> ah good to know, thanks
[18:01:32 CET] <furq> generally with x264 lower crf gives worse performance
[18:01:47 CET] <furq> lossless is a special case though so maybe that's different
[18:02:17 CET] <furq> also (again) mp4 is not suitable for live recording
[18:02:25 CET] <furq> if the recording gets interrupted you'll end up with an unplayable file
[18:02:36 CET] <trg> I got the lossless idea from here, not sure if I interpreted incorrectly -- https://trac.ffmpeg.org/wiki/Capture/Desktop#LosslessRecording
[18:02:44 CET] <furq> use mkv or something that can tolerate being interrupted and then remux it if you need an mp4
[18:03:05 CET] <trg> ah great, didn't know that. thank you --
[18:04:22 CET] <furq> i just did a quick benchmark and crf 20 is faster than crf 0
[18:05:26 CET] <furq> actually nvm they're about the same with preset ultrafast
[18:10:50 CET] <Fenrirthviti> furq: you'd be correct on anything but ultrafast
[18:11:30 CET] <furq> that sounds plausible
[18:14:44 CET] <kepstin> ultrafast disables cabac, right? and that's one of the big things that slows the encoder down as the bitrate gets higher
[18:22:40 CET] <Fenrirthviti> it disables many things, including my happiness.
[18:37:45 CET] <ddubya> why would QFile::rename() fail with permission denied, if the file and directory permissions are 660, 770, UID is creator
[18:38:27 CET] <ddubya> oh and destination file doesn't exist too
[18:41:11 CET] <klaxa> directory permission -x means not accessible
[18:41:32 CET] <klaxa> to be able to enter a directory it needs +x
[18:41:45 CET] <klaxa> oh wait
[18:41:49 CET] <klaxa> nevermind me it is +x
[18:43:12 CET] <trg> thanks furq & relaxed -- switching to mkv made a huge difference.
[18:43:51 CET] <furq> mkv shouldn't have actually made any performance difference
[18:44:02 CET] <furq> unless you weren't setting the audio codec
[18:46:23 CET] <trg> hmm, let me switch some stuff back and double check
[18:50:57 CET] <ddubya> oops wrong channel
[19:19:18 CET] <trg> all right, earlier I hadn't isolated enough variables in thinking the .mp4 output was performing worse. now i've run identical commands on identical VMs, with only the output format changed, and .mp4 is consistently about 10 frames per second better than the .mkv output. odd.
[19:21:37 CET] <trg> it's possible the issue is with my environment and not ffmpeg usage. i'll keep investigating
[20:08:54 CET] <Fenrirthviti> This might be a dumb question, but what's the difference between avfilter-6 and avfilter-7? Just version?
[20:09:28 CET] <durandal_1707> no
[20:11:07 CET] <Fenrirthviti> Anywhere I can see the differences? Or is there a quick description?
[20:11:52 CET] <sfan5> the Changelog probably
[20:12:56 CET] <Fenrirthviti> well if it's not a version difference, then I'm not sure where I'd find that
[20:13:48 CET] <Fenrirthviti> which is what I was asking to begin with, if avfilter-7 is a newer version of avfilter-6
[20:14:01 CET] <Fenrirthviti> or if they're fundamentally used for different things.
[20:14:33 CET] <sfan5> "avfilter-7 is a newer version of avfilter-6" is weird way of putting it, but correct
[20:14:43 CET] <Fenrirthviti> well that's why I'm asking for clarification here
[20:14:45 CET] <Fenrirthviti> because I don't understand.
[20:14:59 CET] <Fenrirthviti> Sorry for wasting your time.
[20:15:22 CET] <sfan5> avfilter-6 is the avfilter library with major version 6, avfilter-7 is the one with major version 7
[20:16:18 CET] <Fenrirthviti> ok, thanks.
[20:16:55 CET] <sfan5> if you'd like to see what changed, you would need to read the changelog between 5th Sep 2015 and 21th Oct 2017
[20:17:36 CET] <sfan5> you can track changes much better by comparing ffmpeg version numbers though
[20:21:21 CET] <Fenrirthviti> gotcha, looking for major api breakages mostly
[20:21:32 CET] <Fenrirthviti> or if avfilter-7 could be a drop-in replacement for -6
[20:21:49 CET] <Fenrirthviti> but given that it's major version increase, seems unlikely.
[20:26:22 CET] <sfan5> usually it's just some APIs there were deprecated
[23:48:15 CET] <kepstin> Fenrirthviti: the two libraries will not be binary-compatible, but if you can recompile your code against the newer ffmpeg without errors, then you can use the new lib.
[23:48:54 CET] <Fenrirthviti> this context would be the shared link .dll files
[23:50:34 CET] <kepstin> if you compile your code against an ffmpeg that builds avfilter-7, then you link to avfilter-7. if you compile your code against an ffmpeg that builds avfilter-6, then you link to avfilter-6.
[23:53:56 CET] <Fenrirthviti> makes sense
[00:00:00 CET] --- Tue Feb 20 2018
1
0
[01:36:12 CET] <Chloe> tmm1: you said there was something you were paying for? What was it
[03:12:31 CET] <atomnuker> one more reason to abandon ipv6: no isp I've seen filters any ipv6 websites
[03:12:54 CET] <atomnuker> erm abandon ipv4
[03:15:27 CET] <JEEB> interesting, kotlin/native is being marketed with a FFmpeg wrapper
[03:15:40 CET] <JEEB> I guess it's a good way of saying "we have working FFmpeg interop"?
[03:15:49 CET] <JEEB> s/FFmpeg interop/C interop/
[07:49:11 CET] <cousin_luigi> Greetings.
[10:30:02 CET] <Guest2640> What does vf_mix.c do? When I am giving 2 input images I am getting a blurred output image. What's happening at pixel level?
[10:32:53 CET] <nevcairiel> it literally mixes the images, takes the value of both inputs and adds them
[10:35:02 CET] <Guest2640> Is it adding both images pixel wise?
[10:35:42 CET] <nevcairiel> If you're in this channel, you should be able to read the code to find out :)
[10:37:55 CET] <Guest2640> sure :')
[12:30:43 CET] <durandal_1707> omerjerk: so is als encoder finished?
[13:09:33 CET] <fdsf>
[13:11:37 CET] <cone-192> ffmpeg 03Michael Niedermayer 07master:de675648cef7: avcodec/vp8: Check for bitstream end before vp7_fade_frame()
[13:11:37 CET] <cone-192> ffmpeg 03Michael Niedermayer 07master:01370b31aced: avcodec/jpeg2000dec: Use av_image_check_size2()
[13:11:38 CET] <cone-192> ffmpeg 03Michael Niedermayer 07master:1be49cee34eb: avcodec/h264: Increase field_poc to 64bit in ff_h264_init_poc() to detect overflows
[13:11:39 CET] <cone-192> ffmpeg 03Calvin Walton 07master:d2fc244293b5: libavfilter/vf_fps: Add more fate tests
[13:15:37 CET] <cousin_luigi> Is there an ETA for 3.5 ?
[13:19:40 CET] <jkqxz> Never.
[13:21:36 CET] <cousin_luigi> jkqxz: Next stable then?
[13:21:52 CET] <cousin_luigi> As in next major release.
[13:24:58 CET] <jkqxz> 4.0? Dunno. I think people would like the component registration/listing method sorted out before it happens.
[14:02:53 CET] <cousin_luigi> jkqxz: Where can I find a list of the blocking bugs? Can I filter that out on trac?
[14:06:34 CET] <jkqxz> It's not that organised, I'm afraid.
[14:08:10 CET] <JEEB> what was there left with the component registration stuff?
[14:08:24 CET] <JEEB> the thing that ffmpeg.c doesn't utilize the new stuff yet?
[14:13:33 CET] <wm4> most devs don't even use trac
[14:13:39 CET] <JEEB> yea
[14:14:46 CET] <JEEB> we just need to decide what we need to get in if anything out of new stuff, and then we branch out and have a list of crap that has to get fixed before tagging vNEXT
[14:41:00 CET] <cousin_luigi> Then I guess the answer to my question is: "not imminent".
[14:41:33 CET] <JEEB> so far it's just been when someone (f.ex. michael) decides that a release is done
[14:43:11 CET] <cousin_luigi> k, thanks
[17:23:02 CET] <Nakul> Hi,
[17:23:25 CET] <Nakul> Can anyone help me getting started into gsoc
[17:24:05 CET] <JEEB> 1) get the latest master 2) compile it 3) look into what you're interested 4) ??? 5) profit!
[17:34:02 CET] <Nakul> I have visited already this site can you suggest further
[17:34:44 CET] <jkqxz> Nakul: Why do you want to work on ffmpeg? Do you use it yourself? If so, for what?
[17:36:20 CET] <Nakul> I have used just two days before for converting Avi to MP4 videos
[17:36:53 CET] <Nakul> I want bcz I am interested
[17:37:08 CET] <JEEB> well go through the steps I noted first :P
[17:37:19 CET] <JEEB> get the code, compile, start looking into what you want to work on
[17:39:46 CET] <Nakul> I want to work on :MPEG-4 ALS codec improvements
[17:42:07 CET] <durandal_1707> really?
[17:42:47 CET] <Nakul> Yup
[17:47:30 CET] <durandal_1707> Nakul: have you contacted mentors of that project?
[17:47:48 CET] <durandal_1707> nothing is instant here
[17:49:39 CET] <Nakul> I am trying to get reply on mail.but still I have no any conversations with yhem
[17:50:10 CET] <Nakul> *them
[17:51:33 CET] <durandal_1707> Nakul: iirc you had contacted other people too, have you read their mails?
[17:52:17 CET] <durandal_1707> one of als mentors is omerjerk iirc
[17:53:34 CET] <Nakul> I have mailed to @omerjerk . waiting for reply
[17:55:39 CET] <Nakul> No I haven't read anyone mail.
[17:57:38 CET] <durandal_1707> checked spam?
[18:05:39 CET] <philipl> jkqxz: going back to the mjpeg hwaccel stuff: what's the reason for storing and comparing the pix fmts? Is that because the pix fmt could change from frame to frame?
[19:01:09 CET] <Chloe> i hate email
[19:01:16 CET] <Chloe> managed to send the wrong patches again
[19:23:15 CET] <RiCON> you can "git log HEAD~N" to check which patches will get sent
[19:23:56 CET] <Chloe> well it was more that I made a one line change then didnt commit it before I sent
[19:24:30 CET] <RiCON> or "git format-patch" and send the patches as attachments, i think that also works in patchwork?
[19:31:34 CET] <Chloe> jkqxz: 'Video filtering with OpenCL' looks interesting, I've been wanting to learn about GPU programming for a while
[19:32:23 CET] <atomnuker> you don't like vulkan?
[19:32:54 CET] <Chloe> atomnuker: well, I dont know if I'd be able to run vulkan stuff
[19:33:22 CET] <Chloe> atomnuker: I also have no 'godlike familiarity' with it
[19:34:41 CET] <durandal_1707> atomnuker should be gsoc student and mentor at same time
[19:35:55 CET] <atomnuker> can't, graduated 2 years ago now, besides I've got a job
[19:37:25 CET] <jkqxz> Chloe: Are you eligible?
[19:37:35 CET] <Chloe> atomnuker: I mean I guess I'd prefer vulkan over opencl but your prerequisites are rather outside of my current skillset. I could get familiar with vulkan but hardly 'godlike'
[19:37:38 CET] <Chloe> jkqxz: I should be
[19:38:04 CET] <Chloe> I'm 18 and I am in education, and will be in education until after gsoc's application
[19:38:50 CET] <durandal_1707> you should register or something...
[19:39:11 CET] <Chloe> you cant register yet, but I'm considering doing it
[19:39:25 CET] <jkqxz> philipl: I'm not quite sure what you're referring to. Storing and comparing where?
[19:40:28 CET] <nevcairiel> "education" is rather vague, they require an accredited university
[19:40:50 CET] <Chloe> ah, that's a shame then.
[19:41:27 CET] <nevcairiel> for people still in school, there is another one, i forgot its name
[19:42:07 CET] <jkqxz> Are you going to university next year? Being accepted to go to one next year is sufficient.
[19:42:16 CET] <Chloe> nevcairiel: FFmpeg wasn't in that last year
[19:42:28 CET] <Chloe> jkqxz: no
[19:44:23 CET] <durandal_1707> why?
[19:50:55 CET] <jkqxz> It's unclear to me that GSoC is necessarily a good idea when you live in western europe. An in-person internship with a technology company is likely to be more generally useful.
[19:51:09 CET] <jkqxz> I don't know about other places.
[19:54:07 CET] <durandal_1707> and paid?
[19:54:54 CET] <Chloe> durandal_1707: its too expensive and I dont have the entry grades
[19:55:15 CET] <durandal_1707> shame
[19:58:40 CET] <durandal_1707> Compn: see, working on FFmpeg does not give the job
[20:01:20 CET] <Chloe> Compn: what jobs do you get from working on FFmpeg
[20:08:13 CET] <BenLubar> Is there documentation on what I need to do to write a demuxer?
[20:08:25 CET] <Chloe> BenLubar: look at the other demuxers pretty much
[20:08:47 CET] <atomnuker> Chloe: propose what filter you'd like to add and I'll make a project for you
[20:09:00 CET] <Chloe> atomnuker: I'm not eligible it seems
[20:09:28 CET] <atomnuker> jkqxz: yeah, no, good luck getting hired, I went through hell in 2014 trying to do that
[20:10:06 CET] <atomnuker> stuck up companies like arm want you to apply by february
[20:10:08 CET] <nevcairiel> gsoc is definitely more tailored for US culture
[20:10:21 CET] <nevcairiel> EU universities dont have the long summer break its meant to take place in
[20:10:54 CET] <atomnuker> I had from May to September here in the uk, not sure how things are elsewhere
[20:11:22 CET] <BenLubar> Basically I want to make a demuxer for CMV: http://dwarffortresswiki.org/index.php/User:Jifodus/CMV_file_format The video is pretty simple - I already have code written to convert the data to rgb24 - but the audio is weird. The format lets you play 8 different ogg/vorbis files with a maximum of 16 started per frame, so there's not a simple way to convert that to a stream.
[20:11:58 CET] <nevcairiel> there were barely 2 weeks entirely free for me in summers, after classes was exam season in the "break", and then new classes started
[20:12:21 CET] <jkqxz> atomnuker: Uhh, yeah. That's basically how it works, not know that is unfortunate but you should have started earlier.
[20:12:36 CET] <atomnuker> I did
[20:12:40 CET] <atomnuker> in January
[20:12:40 CET] <Chloe> BenLubar: why not just output several different streams
[20:12:46 CET] <atomnuker> I got 0 replies
[20:12:59 CET] <BenLubar> Chloe: wouldn't that end up as multiple tracks in the output?
[20:13:07 CET] <Chloe> yeah what's wrong with that?
[20:13:38 CET] <Chloe> you can the use amerge to merge the streams
[20:13:43 CET] <BenLubar> I have some code here to generate a filter to combine the audio tracks, but I'm pretty sure it can't be done that way from a demuxer: https://github.com/BenLubar/cmv2mp4/blob/741a2c288ca7c2fe5315f70a9b02ec827c…
[20:13:45 CET] <atomnuker> I applied again for arm in may, and after a few days they said to come over for an interview, one day before my math exam, I did, interview went crap, the 2 people there were slacking timewasters
[20:14:44 CET] <BenLubar> if a demuxer can create a filter graph, that would make it easy
[20:15:18 CET] <Chloe> I think some do, though others might know more
[20:20:07 CET] <Chloe> jkqxz: any recommendations for companies to look at?
[20:22:21 CET] <jkqxz> My experience of this from the other side is that lots of people apply in November/December/January time. Some amount of immediate HR-type filtering has to happen because there is high volume and many are just entirely unsuitable, but people who do know what's going on look at it after that and then interviews happen pretty quickly and places are filled by around now.
[20:23:10 CET] <philipl> jkqxz: in your mjpegdec changes, you store the hwaccel_sw_pix_fmt and hwaccel_pix_fmt in the private context and then compare agains the pix_fmt on each decode.
[20:24:06 CET] <jkqxz> Chloe: Where are you and what do you want to do?
[20:25:10 CET] <durandal_1707> BenLubar: demuxer job is not to merge separate streams
[20:25:51 CET] <jkqxz> philipl: You need to avoid calling get_format on every frame.
[20:27:15 CET] <Chloe> also nice i broke threading by const-ifying lavfi
[20:28:01 CET] <durandal_1707> huh
[20:29:00 CET] <Chloe> jkqxz: I'm in the UK at the moment, I'm not entirely sure what I want to do. I like multimedia in the sense that codecs interest me. Something with 'lower-level' programming I guess
[20:29:14 CET] <Chloe> durandal_1707: I'm sure I havent, but that's where the errors are showing up at the moment
[20:29:44 CET] <philipl> jkqxz: right. In a conventional codec, you'd do get_format at init time and not touch it again. But here, you could image doing it on the first frame and then never doing it again. Your logic will run it again if the format changes, which it could, of course. In practice, would a real world mjpeg stream have frames with different formats?
[20:30:04 CET] <philipl> I'm just trying to understand the rationale.
[20:30:20 CET] <jkqxz> philipl: Er, all codecs have that handling?
[20:30:39 CET] <jkqxz> And certainly making an MJPEG by concatenating JPEGs together could give you anything.
[20:30:57 CET] <philipl> jkqxz: vc1dec only calls get_format once at init time.
[20:31:03 CET] <philipl> just as an example
[20:31:10 CET] <philipl> Anyway, not trying to make a big deal out of it.
[20:31:16 CET] <jkqxz> ... which makes me realise it needs to check the dimensions as well.
[20:32:14 CET] <jkqxz> VC-1 requires accurate extradata so it can do that.
[20:32:27 CET] <philipl> jkqxz: and the hack to remaps yuvj to yuv. Not sure what that's needed for as I can't make anything fail if I remove it.
[20:33:08 CET] <jkqxz> Format allocation based on sw_format.
[20:33:18 CET] <jkqxz> *Frame allocation
[20:41:44 CET] <BenLubar> durandal_1707: what would a demuxer for a container format that plays audio files at specific frame numbers output, then?
[20:43:00 CET] <jkqxz> Chloe: I don't really know. Without going to university you are going to have a very hard time with any company which has a formalised recruitment process because you are missing a very big standard tickbox.
[20:44:12 CET] <durandal_1707> BenLubar: demuxers just split packets into sensible frames
[20:44:24 CET] <Chloe> jkqxz: I figured I'd have to just do an apprenticeshit, or find a shit job until I can go to uni as a mature student.
[20:45:26 CET] <durandal_1707> Chloe: ask kierank to recruit you
[20:45:51 CET] <Chloe> didnt kierank go back to uni after being in work for a while just to check the box?
[20:47:47 CET] <BenLubar> durandal_1707: would I write a demuxer and two decoders, then? How would I make the audio decoder?
[20:47:48 CET] <atomnuker> no, he did x264 stuff while in uni afaik
[20:49:17 CET] <durandal_1707> BenLubar: decoders are written only if there are not already available in codebase
[20:50:28 CET] <durandal_1707> BenLubar: do you know specification of audio in files?
[20:51:25 CET] <BenLubar> durandal_1707: in this format, the audio is int32 count, that many strings encoded as null-terminated char[50], and then int32[200][16] where the first index is the frame number and the 16 elements are sound indexes from the names array to start playing on that frame with -1 meaning no sound
[20:51:45 CET] <BenLubar> the audio files are ogg vorbis files
[20:52:15 CET] <BenLubar> but I'm pretty sure ffmpeg doesn't have an API for "play this file" as part of an audio stream because that doesn't really make any sense
[20:52:36 CET] <durandal_1707> huh, is that some kind of sequencer?
[20:53:00 CET] <BenLubar> it's "video" from Dwarf Fortress
[20:53:12 CET] <nevcairiel> its like a playlist, not really a muxed container format
[20:53:22 CET] <durandal_1707> or those are just streams with vorbis data?
[20:53:42 CET] <durandal_1707> the wiki mentions zlib stuff
[20:53:42 CET] <Chloe> you could treat it as a sequencer and just merge all the streams
[20:53:55 CET] <durandal_1707> nooo!
[20:54:44 CET] <BenLubar> the zlib part is for the video data
[20:55:09 CET] <BenLubar> it's basically 15 bit pixels that represent a CP437 character with a foreground and background color
[20:55:32 CET] <BenLubar> I'm confident I can write a demuxer and a video decoder for this
[20:55:40 CET] <durandal_1707> yea
[20:58:15 CET] <durandal_1707> i doubt it stores raw pixels, it stores chars with colors
[20:59:03 CET] <BenLubar> yeah it's not pixels that you'd see on a screen but it's 15 bits per tile
[20:59:33 CET] <durandal_1707> would probably need font to write decoder
[21:00:03 CET] <Chloe> you'd need to take an input tileset
[21:00:07 CET] <BenLubar> yeah, this is the one I've been using: https://benlubar.github.io/cmv2mp4/curses_800x600.png
[21:00:17 CET] <Chloe> cause you can change the DF tileset too
[21:01:33 CET] <BenLubar> how would that work, the video decoder would need an input file separate from the stream from the demuxer
[21:01:46 CET] <BenLubar> would it be a command line argument that the decoder adds?
[21:02:24 CET] <durandal_1707> BenLubar: decoder takes frames given by demuxer
[21:03:00 CET] <durandal_1707> so if they are zlib compressed they are uncompressed by decoder and rendered into frame
[21:03:04 CET] <BenLubar> yeah, the video frames would just be columns+rows+byte[2][colums][rows]
[21:03:36 CET] <BenLubar> or I guess colums+rows+remainder of cmv file after the header
[21:09:06 CET] <philipl> jkqxz: So, if I'm reading this right, the reason why the yuvj remapping isn't an issue for nvdec is that the sw_format selection doesn't look at what the original pix_fmt is. Specifically in this case, the sw format is always NV12 for any 8bit content.
[21:37:45 CET] <durandal_1707> atomnuker: so you will teach students vulkan stuff?
[21:38:02 CET] <atomnuker> yeah
[21:38:16 CET] <atomnuker> though really its mostly just shaders
[21:38:37 CET] <Chloe> atomnuker: if no one takes your project hmu
[21:44:43 CET] <durandal_1707> hmu?
[21:45:10 CET] <RiCON> hit me up
[21:45:47 CET] <Chloe> as in, Id do it outside of gsoc if no one in gsoc wants it
[22:02:57 CET] <jamrial> ubitux: ping
[23:28:23 CET] <cone-784> ffmpeg 03Michael Niedermayer 07master:f82dd4c09b2d: avcodec/hevcdec: Check luma/chroma_log2_weight_denom
[23:28:23 CET] <cone-784> ffmpeg 03Michael Niedermayer 07master:647fa49495c3: avcodec/dirac_dwt_template: Fix Integer overflow in horizontal_compose_dd137i()
[23:54:17 CET] <philipl> BtbN: I think nvenc doesn't handle full colour range correctly. The range is currently being set from the avctx value, but I think this is not initialised meaningfully. Rather, the AVFrame carries the range.
[23:55:24 CET] <nevcairiel> technically for encoder init, the avctx range should be used, you dont have any frames at that time
[23:55:35 CET] <nevcairiel> if it changes mid-stream, only got yourself to blame for doing s uch things
[23:56:09 CET] <philipl> Except the avctx range isn't set.
[23:56:14 CET] <philipl> Who's supposed to set it?
[23:56:41 CET] <nevcairiel> whoever wants to encode things
[23:56:42 CET] <nevcairiel> ie. the user
[23:56:51 CET] <philipl> So if I'm using 'ffmpeg'...
[23:57:02 CET] <philipl> I'm talking transcode here.
[23:57:11 CET] <philipl> The decode side sets the flag on itself correctly
[00:00:00 CET] --- Mon Feb 19 2018
1
0
[00:15:15 CET] <c_14> -v error -stats
[01:04:32 CET] <stelonix> Is ffmpeg capable of capturing animated cursors when taking screenshots?
[01:04:47 CET] <stelonix> I'm trying but the cursor is only visible when it's a static image
[01:05:17 CET] <stelonix> Using this page to test the cursors http://www.echoecho.com/csscursors.htm and the following command:
[01:05:32 CET] <stelonix> ffmpeg -f x11grab -video_size 1920x1080 -i $DISPLAY -vframes 1 screen.png
[01:05:56 CET] <c_14> -grap_mouse 1 ?
[01:05:56 CET] <stelonix> And vanilla-dmz cursors
[01:06:27 CET] <c_14> eeh, -draw_mouse 1
[01:07:23 CET] <stelonix> Still no luck
[01:07:42 CET] <c_14> Then probably no
[02:43:35 CET] <gamlegaz> hey! I'm trying to run the video encoding example over at https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/encode_video.c, but I get the error [libx264 @ 0x...] The encoder timebase is not set. at line 127 (avcodec_open2). However if I try to set the codecs time_base also it says that the codec has no member time_base, does anyone know whats up?
[03:09:29 CET] <dystopia_> thank you very much c_14
[03:11:28 CET] <heicrd> aresample question
[03:12:02 CET] <heicrd> when using ffmpeg to encode 32khz audio to opus, the automatically inserted aresample filter chooses to downsample to 24khz
[03:12:07 CET] <heicrd> instead of upsampling to 48khz
[03:12:18 CET] <heicrd> which comes with a significant loss in quality
[03:12:27 CET] <heicrd> i was wondering if this is intended behavior or considered a bug
[03:12:54 CET] <JEEB> are you using the libopus wrapper or the native opus encoder?
[03:13:02 CET] <heicrd> libopus
[03:13:05 CET] <heicrd> opus just segfaults
[03:13:36 CET] <JEEB> hah :D
[03:13:37 CET] <heicrd> it doesn't however choose 24khz because i don't think 24khz is listed as a supported format in the native opus encoder
[03:13:43 CET] <JEEB> yea
[03:13:52 CET] <JEEB> libopus supports 48000, 24000, 16000, 12000, 8000, 0,
[03:14:03 CET] <JEEB> meanwhile the internal one .supported_samplerates = (const int []){ 48000, 0 },
[03:14:41 CET] <JEEB> not 100% sure but you could look at the output of -v verbose
[03:14:49 CET] <JEEB> which might show you the automated filter chain creation
[03:15:28 CET] <heicrd> [format_out_0_0 @ 0x5641f27f6f20] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_0'
[03:15:32 CET] <heicrd> [auto_resampler_0 @ 0x5641f27f9ae0] ch:1 chl:mono fmt:s16 r:32000Hz -> ch:1 chl:mono fmt:s16 r:24000Hz
[03:16:13 CET] <JEEB> it doesn't show the logic regarding how it got to that decision
[03:16:23 CET] <JEEB> oh well
[03:16:46 CET] <heicrd> for what it's worth using opusenc seems to upsample to 48khz as expected
[03:17:01 CET] <JEEB> -af aresample=48000
[03:17:07 CET] <JEEB> will make it upsample
[03:17:20 CET] <JEEB> I do wonder why it picks the lower one, though
[03:17:31 CET] <heicrd> that's what I was wondering
[03:17:33 CET] <JEEB> make a ticket about that, I guess? also the internal one shouldn't crash either
[03:17:50 CET] <heicrd> i figured out how to make it create a proper file but it took me quite a while before i figured out that there was something wrong
[03:17:56 CET] <JEEB> can you check if that has any autoinserted filters in there?
[03:19:02 CET] <heicrd> manually specifying aresample=48000 removes the auto-inserted filter
[03:19:10 CET] <JEEB> yes
[03:19:21 CET] <JEEB> since it can negotiate the sample rate with the encoder
[03:21:39 CET] <heicrd> so should I just file it as a bug report?
[07:48:57 CET] <cousin_luigi> Greetings.
[08:05:47 CET] <SortaCore> hi
[10:38:00 CET] <darsain> is there a filter variable for input framerate, similar to iw, ih, ...? can't find it in docs
[10:45:54 CET] <durandal_1707> darsain: for which filter?
[10:48:09 CET] <darsain> durandal_1707, I'm trying to set max fps, so I envision something like min(inputrate, 30), not sure what is the filter name for that. atm I'm first trying to find the inputrate variable name :)
[10:51:32 CET] <durandal_1707> darsain: such variables are explained in documentation of each filter, better explain what you need
[10:54:33 CET] <darsain> durandal_1707, I need to set max fps. I'm looking at https://ffmpeg.org/ffmpeg-filters.html#framerate and I don't see any mention of available variables, but I might be at a worng place? really not sure, these docs aren't that newbie friendly
[10:56:32 CET] <durandal_1707> darsain: you cant use expression for that option
[10:57:23 CET] <darsain> durandal_1707, is there a filter to set framerate I can use an expression for?
[10:57:31 CET] <durandal_1707> you would need to write some script or similar
[10:57:51 CET] <durandal_1707> none that i know
[11:53:07 CET] <utack> this might sound idiotic: but is there a way to combine luma from one video stream with chroma from a second video stream, frame by frame?
[11:55:41 CET] <fritsch> same resolution?
[11:56:06 CET] <fritsch> exactly same fps?
[11:57:47 CET] <durandal_1707> utack: see mergeplanes filter
[12:12:14 CET] <utack> fritsch chroma would have t obe upscaled, same fps yes
[12:12:22 CET] <utack> thanks durandal_1707
[12:13:02 CET] <utack> mergeplanes sounds exactly like what i need
[12:13:05 CET] <durandal_1707> utack: depends on pix format you set in options
[12:13:55 CET] <durandal_1707> yuv420p would have half chroma resolution in width/height
[12:14:29 CET] <gamlegaz> Why does avcodec_open2 fail the check for time_base in the videoencoding example? the AVcontext is set to c->time_base = (AVRational){1,25} before calling the open function
[12:48:48 CET] <darsain> I have this crop + scale flter setup: https://kopy.io/7PTPt
[12:49:58 CET] <darsain> the problem is that scale ignores crop, so it adds the bars back in. the best solution would be if there were some iw,ow variable alternatives that take the previous crop into consideration, but I don't see anything in docs
[12:50:06 CET] <darsain> any ideas how to fix this?
[12:51:58 CET] <darsain> the scale filter is just a fancy bulletproof way how to downscale only to a predefined megapixel value specified by 1280*720 number
[13:09:02 CET] <fdsf>
[13:12:31 CET] <darsain> I guess you cant have multiple filters as separate -vf args...
[13:12:41 CET] <darsain> I've tried combining it into one like this:
[13:12:53 CET] <darsain> -vf "!cropfilter!,scale='trunc(min(sqrt(600*400/(iw*ih))*iw\,iw)/ohsub)*ohsub:trunc(ow/a/ovsub)*ovsub'"
[13:13:02 CET] <darsain> and it now does what it's supposed
[13:13:31 CET] <JEEB> yes, multiple vf options probably just have the last override everything :P
[13:13:44 CET] <JEEB> which is why you had the nonsense result of "scale ignoring crop" which cannot happen normally
[13:13:55 CET] <JEEB> because once an AVFrame comes out of crop it is already cropped
[13:14:26 CET] <darsain> yeah I wish I knew this half an hour ago. would save me half an hour of my life :)
[13:18:17 CET] <darsain> yesterday I've spent 4 hours fixing ffmpeg complaining about input pipe from unzip command. I was trying to concatenate images from zip file into a video, which worked 90% of the time, and 10% it failed for no known reason. I had to resort changing a simle oneliner int oa complicated script that extracts the zip into a tmp folder, constructs a concatenation file, feeds it to ffmpeg, and than clear all the tmp stuff
[13:18:23 CET] <darsain> it made me die a little bit inside
[13:24:26 CET] <bat86> Hi there! can I use the parameter -hwaccel to improve x265 encoding with amd hardware (apu a8-7600) and linux system? thank you
[13:24:52 CET] <JEEB> x265 is a software encoder for HEVC
[13:25:04 CET] <JEEB> so no
[13:25:54 CET] <bat86> libx265?
[13:26:28 CET] <JEEB> yes, that is the library of that project that FFmpeg can utilize
[13:27:37 CET] <bat86> so is it possible to use -hwaccel with libx265?
[13:27:58 CET] <JEEB> no, as I said it is a software implementation
[13:29:30 CET] <bat86> so there is no way to use harware acceleration?
[13:31:33 CET] <kerio> bat86: x265 is a software encoder for hevc/h.265
[13:31:34 CET] <jkqxz> Not on that hardware, because it doesn't support H.265 at all.
[13:33:50 CET] <bat86> jkqxz: a quick web search show me it does
[13:34:44 CET] <bat86> kerio: yes, my mistake i mean libx265
[13:35:00 CET] <kerio> no, you mean h265
[13:35:59 CET] <jkqxz> Unless I'm mistaken it's a Kaveri with VCE 2.0, which has H.264 only.
[13:40:20 CET] <bat86> jkqxz: digging deeper i found you are right
[18:10:08 CET] <gzp> Hello, how to specify the VTS when using -i filename.iso as source? I would like to convert only vts1, not the other menus and commercials
[18:12:02 CET] <JEEB> I'm not even sure which input thing gets used with an ISO :P
[18:12:14 CET] <JEEB> see which protocol and demuxer is getting used
[18:13:22 CET] <gzp> Input #0, mpeg
[18:13:33 CET] <gzp> Stream #0:0[0x1bf]: Data: dvd_nav_packet
[18:13:50 CET] <gzp> Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], 8000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
[18:14:21 CET] <gzp> but the results will contain everything, instead of vts1 I would like
[18:18:58 CET] <JEEB> that's just the demuxer, the protocol probably would be more interesting
[18:19:13 CET] <JEEB> post the full command line and terminal output with -v verbose on a pastebin like site of your choice
[18:20:36 CET] <gzp> k
[18:24:28 CET] <gzp> JEEB, https://pastebin.com/7CNYwKih
[18:36:36 CET] <furq> i'm surprised there is even an iso demuxer
[18:36:46 CET] <furq> but there's definitely no titleset handling or anything like that
[18:37:05 CET] <furq> you probably just want to rip an individual title with dvdbackup or tccat or something and then use ffmpeg on that
[18:37:35 CET] <gzp> ok, thanks
[18:38:04 CET] <gzp> thought there is something like that :-)
[18:39:43 CET] <furq> you can usually just pipe tccat into ffmpeg if you want to avoid creating a temporary file
[18:40:02 CET] <furq> although that will sometimes miss subtitle streams depending on the dvd layout
[18:50:25 CET] <gzp> dvdbackup is better from this point of view?
[19:05:15 CET] <aphirst> I have some files which are in 23.97... fps and I want to remux them to be 25
[19:05:40 CET] <aphirst> i've tried a few GUI tools and changing the video is easy
[19:06:06 CET] <aphirst> but none seem to automatically rescale the audio
[19:06:37 CET] <aphirst> i would have thought that would also have been simple
[19:07:56 CET] <aphirst> maybe i should have asked in #matroska instead
[20:07:18 CET] <darsain> I'm using cropdetect to cut off black bars, but I have a video that starts with a few seconds of black screen, so the cropdetect tells the encoder to cut out the whole video. is there a way how to tell cropdetect to look at the middle of the video and not the very beginning?
[20:08:10 CET] <darsain> I'm looking at the docs and there is some potential reset_count option, but it's description is really not helping me understant what it actually does
[20:14:00 CET] <davemacdo> Hello #ffmpeg. I was wondering if anybody here might have the time to help me with a streaming project. I have a rpi 3 running Raspbian, and I would like to use ffmpeg to stream the Raspbian desktop to YouTube with rtmp.
[20:14:40 CET] <furq> darsain: cropdetect supports timeline editing
[20:14:54 CET] <furq> so i guess you can do cropdetect=enable=between(t\,10\,20)
[20:15:56 CET] <davemacdo> I have looked into the suggestion here: https://askubuntu.com/questions/893499/how-to-stream-desktop-and-audio-with…
[20:18:57 CET] <darsain> furq, not that proficient with ffmpeg, so I have no idea how to use your suggestion :) just pasting it into -vf produced errors
[20:19:19 CET] <furq> pastebin your command
[20:19:40 CET] <furq> davemacdo: you won't be able to use libx264 on a pi 3, the cpu isn't good enough
[20:20:05 CET] <furq> if you have a build with --enable-omx then h264_omx is the hardware encoder
[20:20:08 CET] <darsain> furq, with your suggestion its: https://pastebin.com/3pV1CtTT
[20:20:13 CET] <darsain> before it was just cropdetect
[20:20:14 CET] <furq> if you don't then you're probably going to need to build it yourself
[20:20:26 CET] <furq> darsain: quote the entire -vf argument
[20:20:53 CET] <davemacdo> furq, how can I tell?
[20:21:06 CET] <furq> davemacdo: ffmpeg -version | grep omx
[20:21:24 CET] <darsain> furq, No such filter: 'cropdetect=enable=between(t,10,20)'
[20:22:04 CET] <davemacdo> Ok. --enable-omx seems to be there.
[20:22:07 CET] <davemacdo> Thanks.
[20:22:19 CET] <furq> darsain: weird, that works fine here
[20:22:37 CET] <furq> -vf "cropdetect=enable=between(t\,10\,20)"
[20:30:06 CET] <darsain> furq, what is that between(t\\,10\\,20) doing btw?
[20:30:31 CET] <furq> the filter will only run between 10 and 20 seconds
[20:31:34 CET] <darsain> oh I cant use that anyway. what if I feed it an 8 second clip? needs to be relative and select a middle point in the video
[20:32:17 CET] <durandal_1707> learn to code :/
[20:32:56 CET] <darsain> I know how to code, it doesn't help decrypting ffmpeg arguments documentation unforunately :(
[20:34:04 CET] <durandal_1707> expressions as options are not always available
[20:38:14 CET] <darsain> I'd expect to do sonething like cropdetect=t=input_time/2, but how do you do that in ffmpeg? is it even supported? 15 minutes in documentation and googling don't make me any wiser
[20:41:49 CET] <durandal_1707> darsain: because its not possible
[20:42:19 CET] <durandal_1707> learn to write shell scripts
[20:52:59 CET] <darsain> ugh, again, I know how to write shell scripts. I wrote a few hundred lines of those just today working with ffmpeg. how does that help me understand how to tell ffmpeg to cropdetect from the middle of the video?
[20:53:37 CET] <darsain> but I get it. you are telling me to go fuck myself. just be straight next time and don't hinde behind euphemisms like "learn to write shell scripts"
[20:54:47 CET] <durandal_1707> well i said that options you are looking for are not expresssions
[20:55:20 CET] <durandal_1707> so cant use what you want, but they could if you change c code
[21:26:45 CET] <blawiz> hmm im using 'ffmpeg -ss $2 -i $1 -c copy -to $3 cut_${2/:/}_${3/:/}_${1:t}.avi' but it still seems to read it as '-t'
[21:27:38 CET] <blawiz> so when i give timestamps 01:25:32.0 and 01:30:16.0 i get a from 1:25 till end of the movie, instead of just to 1:30
[21:43:55 CET] <furq> blawiz: iirc -to only works if you use -ss as an output option
[21:44:51 CET] <furq> actually nvm i guess you can use -to as an input option
[21:45:03 CET] <furq> either way they both need to be on the same side
[21:46:24 CET] <blawiz> hmm whats the difference?
[21:46:50 CET] <furq> -ss 1 -to 2 -i will seek to 1, read until 2, and then stop
[21:47:05 CET] <furq> -i foo -ss 1 -to 2 will read from 0, discard everything until 1, then stop writing after 2
[21:47:49 CET] <furq> -to as an input option uses the input timestamps, as an output option it uses the output timestamps
[21:47:51 CET] <blawiz> hmm, so the first is more effective?
[21:47:58 CET] <furq> the first is quicker, the second is more accurate
[21:48:12 CET] <furq> -ss as an input option is sometimes less accurate
[21:48:32 CET] <blawiz> hmm i just want to cut a movie from pos to pos
[21:48:35 CET] <davemacdo> Ok. So I'll try to be more specific this time with my ffmpeg on rpi 3 question. I'm trying to stream the Raspbian desktop. When I type the following command in terminal, I get an error "Option sample rate note found" ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f x11grab -framerate 30 -ac 2 -i :0.0 -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/xxxxxxxx
[21:48:58 CET] <davemacdo> Isn't the `-ar 44100` setting the sample rate?
[21:48:58 CET] <furq> blawiz: just try it both ways and see which works best
[21:49:22 CET] <furq> davemacdo: input options need to go before the input they apply to
[21:49:33 CET] <furq> you're trying to apply -ar (-sample_rate) to the x11grab input
[21:49:59 CET] <davemacdo> Isn't it already before? Or do you mean immediately before?
[21:50:13 CET] <furq> [input1 options] -i input1 [input2 options] -i input2
[21:50:19 CET] <furq> it looks like you've got them all the wrong way round
[21:56:36 CET] <davemacdo> Hm. I've copied most of the line from Stack Exchange, and I don't really understand all of it. I've found a few references to doing what I'm trying to do, and they all include `-f x11grab`.
[21:57:30 CET] <furq> yeah on closer inspection that command is just broken
[21:57:50 CET] <furq> do you want to stream audio as well
[21:58:05 CET] <davemacdo> I would eventually like to stream audio, but I'll cross the video bridge first.
[21:58:25 CET] <bindi> what are you trying to accomplish, if i may ask?
[21:58:41 CET] <davemacdo> Standalone art project running on Pi, streaming to YouTube.
[21:58:51 CET] <davemacdo> Pi 3
[21:59:01 CET] <furq> http://vpaste.net/2ArI9
[21:59:05 CET] <furq> something like that
[21:59:44 CET] <davemacdo> Thank you for your help. Can you tell me what -f lavfi is doing?
[21:59:52 CET] <furq> lavfi is libavfilter
[22:00:03 CET] <furq> -f lavfi -i anullsrc is a virtual audio input
[22:00:09 CET] <furq> in this case anullsrc which is just silence
[22:00:31 CET] <furq> youtube doesn't like it if you send it flv with no audio stream
[22:00:38 CET] <davemacdo> Ok. So when I get to the audio later, that's where I would start changing.
[22:00:41 CET] <furq> right
[22:00:50 CET] <furq> you'd probably want to change that to -f pulse -i 1
[22:00:54 CET] <furq> or whatever pulse device you want to use
[22:03:12 CET] <furq> it is worth pointing out that the rpi's hardware h264 encoder is not particularly great
[22:04:07 CET] <davemacdo> I don't think I'll be pushing it very hard.
[22:06:44 CET] <davemacdo> "Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width, or height"
[22:07:17 CET] <furq> pastebin the full output
[22:09:30 CET] <davemacdo> https://pastebin.com/mMV1cfC4
[22:09:43 CET] <furq> [h264_omx @ 0x72f530] libOmxCore.so not found
[22:09:44 CET] <furq> oh fun
[22:10:03 CET] <davemacdo> Sounds like I have some work to do.
[22:11:04 CET] <blawiz> i seem to get the same result wheather its to the left or right of -c
[22:12:02 CET] <davemacdo> Might have to try recompiling ffmpeg. (See you in like a week.)
[22:12:30 CET] <furq> there is an --enable-omx-rpi switch
[22:12:40 CET] <furq> i thought that just changed the search path but apparently not
[22:13:40 CET] <davemacdo> is that just `ffmpeg --enable-omx-rpi`?
[22:13:52 CET] <furq> no that's at compile time
[22:14:07 CET] <blawiz> ah i got it :]
[22:14:09 CET] <furq> according to google, raspbian handles it weird
[22:14:11 CET] <davemacdo> Well crap.
[22:14:17 CET] <furq> try apt-get install libomxil-bellagio-bin
[22:14:23 CET] <furq> and/or -dev
[22:14:59 CET] <furq> if that doesn't work then it's fairly easy to cross-compile if you happen to have a desktop debian box there
[22:15:10 CET] <furq> and it shouldn't be that slow to do it on the box itself if you're not building any dependencies
[22:15:33 CET] <furq> on the rpi itself, i mean
[22:16:11 CET] <davemacdo> I don't have a debian box handy. I'm VNC'ing from my iMac. Hopefully that library works.
[22:19:00 CET] <davemacdo> No love after installing the bellagio library. Do I need to tell ffmpeg to look somewhere else for the encoder?
[22:19:59 CET] <Evermore> I know that lossy video codecs almost never round-trip (decode, re-encode the same data) without generational loss, but is the loss minimized by using the same codec on both sides, or does it not matter?
[22:20:30 CET] <furq> Evermore: makes no difference
[22:20:43 CET] <Evermore> ah ok
[22:21:09 CET] <Evermore> Also can ffmpeg use libx264 internally? I had previously written code that used both of them but they might have integrated by now
[22:21:18 CET] <Evermore> I am thinking of writing a video editor as an exercise
[22:21:32 CET] <JEEB> libavcodec has had a libx264 wrapper for quite a while
[22:21:55 CET] <Evermore> great I'll just use that
[22:22:37 CET] <DHE> yeah just use the normal ffmpeg encoder API. it's how libx264 has worked for a long time
[23:30:53 CET] <Elec_A> Hi, I'm using "ffmpeg -r 60 -pattern_type glob -i '*.JPG' -c:v copy output.avi" to create a timelapse, but change -r argument to 25 30 60 does not effect the length of the movie. What I'm missing ?
[23:43:00 CET] <DHE> first of all there is a -framerate option for the JPEG reader that would be preferable to use. that might help
[00:00:00 CET] --- Mon Feb 19 2018
1
0