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
July 2018
- 1 participants
- 60 discussions
[09:32:00 CEST] <cone-772> ffmpeg 03Marton Balint 07master:a5c17cf43e42: avformat/mxfdec: drop invalid index table segments when sorting them
[12:35:12 CEST] <durandal_1707> JEEB: found anything?
[12:39:27 CEST] <durandal_1707> just any other 'f' variant that's not black at start would be good
[12:40:31 CEST] <JEEB> I started falling asleep at the end
[12:40:57 CEST] <durandal_1707> lol
[12:49:52 CEST] <JEEB> so I decided to not fall asleep in my chair
[12:50:04 CEST] <JEEB> so I just gave up and hit the bed some time past midnight
[17:02:28 CEST] <BBB> what does a deep learning filter from rgb8 to rgb10 actually do?
[17:03:08 CEST] <nevcairiel> any algorithm that needs to invent new data can be trained to do it better
[17:03:11 CEST] <nevcairiel> if its useful...
[17:04:13 CEST] <BBB> can it?
[17:04:15 CEST] <nevcairiel> adding bits properly can help to retain or even refine gradients and things like that, so there is a difference between doing it badly or properly
[17:05:05 CEST] <BBB> fair enough lets see what it ends up with
[17:07:47 CEST] <nevcairiel> apparently its also supposed to do HDR, not just increasing bitdepth
[17:41:08 CEST] <BBB> so, call me stupid and stuff
[17:41:22 CEST] <BBB> but HDR is just different matrix coefficients, whitepoints etc.
[17:41:32 CEST] <BBB> we already have filters that do the correc ttheoretical conversion between them
[17:41:36 CEST] <BBB> not to mention zscale doing that too
[17:41:47 CEST] <BBB> I know machine learnign is all the buzz, but sometimes theory does it just fine, no?
[17:42:50 CEST] <jamrial> i thought the new hot thing was blockchain
[17:49:41 CEST] <BradleyS> nope, still bacon
[17:51:33 CEST] <BBB> isnt livepeer a youtube-blockchain thingy?
[17:58:42 CEST] <atomnuker> I agree, I'd rather take a mathematically sound approach than a neural network that's been trained in some unknown way
[17:59:06 CEST] <atomnuker> it could screw up, but the former approach wouldn't
[17:59:24 CEST] <atomnuker> could we stop adding more neural networks plz?
[17:59:53 CEST] <atomnuker> it makes sense for stuff like noise removal but this is just wankery no one will use
[18:03:26 CEST] <j-b> (and unfree)
[18:03:46 CEST] <nevcairiel> i dont think there is a pure mathematical approach to HDRify an image
[18:04:03 CEST] <nevcairiel> because you are trying to invent contrast that wasnt there before
[18:04:20 CEST] <nevcairiel> so we're again inventing data, and that process can be trained
[18:05:08 CEST] <atomnuker> there isn't, but there's a reasonable approach that yields more or less accurate representation as if shown on non-hdr output
[18:05:41 CEST] <atomnuker> I don't see training helping here other than for hollywood style white clipping on highlights
[18:05:46 CEST] <nevcairiel> whats the point of converting the image in such a way that it keeps looking like SDR? Might as well output it in SDR
[18:05:54 CEST] <nevcairiel> presumably you want it to look like HDR afterwards =p
[18:06:02 CEST] <atomnuker> you'd like it shown on an hdr output
[18:06:12 CEST] <nevcairiel> thats your assumption
[18:06:20 CEST] <nevcairiel> but maybe they also want it to be actual HDR
[18:06:28 CEST] <nevcairiel> some TVs have such features
[18:06:33 CEST] <nevcairiel> they are a bit hit and miss
[18:06:34 CEST] <nevcairiel> but hey
[18:06:35 CEST] <atomnuker> it will be hdr if it has to be shown on an hdr monitor
[18:06:51 CEST] <atomnuker> it would have to be otherwise reproduction would be messed up
[18:07:15 CEST] <nevcairiel> there is a difference between "being SDR in a HDR envelope" and actually "being HDR"
[18:07:33 CEST] <BBB> I look forward to the HDRificiation artifact gallery that will doubtlessly result from this
[18:08:20 CEST] <atomnuker> if you want to have HDR-like clipping results other filters exist to get you that
[18:08:59 CEST] <atomnuker> an sdr->hdr filter should try to get the most accurate and closest to the original rep in the target colorspace
[18:09:13 CEST] <nevcairiel> thats, like, your opinion
[18:09:18 CEST] <atomnuker> no, it isn't
[18:09:35 CEST] <nevcairiel> thats not a HDR filter, thats a conversion to PQ
[18:09:45 CEST] <nevcairiel> the result doesnt have any resemblence of higher dynamic range
[18:09:52 CEST] <durandal_1707> ban neural networks now!
[18:09:59 CEST] <atomnuker> and there's nothing wrong it that
[18:10:09 CEST] <nevcairiel> except that may not be what someone wants?
[18:10:11 CEST] <atomnuker> there is higher dynamic range compared to the original
[18:10:16 CEST] <atomnuker> they can tune it!
[18:10:20 CEST] <nevcairiel> just because you dont want that doesn't mean its not something people like
[18:10:23 CEST] <atomnuker> filters exist to do that
[18:10:46 CEST] <atomnuker> I've been telling you, a neural network filter isn't the correct place to do this
[18:11:16 CEST] <nevcairiel> You've been ranting about how bad that e ntire process is, not telling anything
[18:13:00 CEST] <atomnuker> I have been arguing about whether a more correct approach would be as I've been saying rather than an absolutely unmaintainable neural network filter
[18:24:27 CEST] <BBB> nevcairiel: j-b/atomnuker do have a point about the unmaintainability of the whole nn stack
[18:24:56 CEST] <BBB> if we dont know how they are generated and all the filter says is that it does some A to Z conversion that is hard to objectively check, then how do we know its not just a turdificator?
[18:25:08 CEST] <BBB> I could probably push a turd filter by calling it nice name and saying "nn"
[18:25:18 CEST] <BBB> nn = nice name or neural network
[18:25:26 CEST] <BBB> but that doesnt mean it *actually* does something
[18:25:35 CEST] <BBB> so how do we guarantee that code in ffmpeg does what the docs say it does?
[18:25:55 CEST] <BBB> most code can be objectively checked; I dont know how to check a nn set of coefficients beyond trusting the author
[18:26:14 CEST] <BBB> do we trust intel dudes? googlers? russians? no-name contributors?
[18:26:18 CEST] <BBB> anonymous contributions?
[18:26:21 CEST] <j-b> For the same reason you provide your PSD/XCF/AI files for your png images, because they are the source; you need to provide the source that got you those numbers.
[18:26:35 CEST] <nevcairiel> its empirically obtained data, such data can by its pure nature not be objectively checked
[18:26:53 CEST] <BBB> so on what basis do we accept the patch?
[18:26:59 CEST] <j-b> In the case of NN, you need to document in a executable way, a way to created those data
[18:27:10 CEST] <BBB> if I commit a vp9 decoder whihc converts vp9 bitstreams to nothing, it wouldnt be accepted
[18:27:11 CEST] <j-b> In the case of NN, you need to document in a executable way, a way to recreate those data.
[18:27:25 CEST] <BBB> if I commit a NN filter which convers rgb8 to nothing, how do we know that this is nothing instead of rgb10?
[18:27:28 CEST] <BBB> I say its HDR
[18:27:30 CEST] <BBB> but is it?
[18:27:32 CEST] <BBB> how do we know?
[18:27:39 CEST] <j-b> Re-runing twice will give you different results, sure, but you have the source.
[18:27:39 CEST] <BBB> can we check that the filter does what it says it does?
[18:27:50 CEST] <j-b> Here, you need to trust the author that his set was good.
[18:27:53 CEST] <BBB> right
[18:27:58 CEST] <BBB> I dont want to just trust the author blindly
[18:28:00 CEST] <j-b> and you cannot check that he did select correctly.
[18:28:09 CEST] <j-b> and if the author dies, you cannot maintain the code.
[18:28:15 CEST] <BBB> and just because the dude has an intel email address means nothing
[18:28:23 CEST] <j-b> It might be cool, but this is not "Free Software'
[18:28:37 CEST] <BBB> it sounds cool, we dont know if it is cool
[18:28:41 CEST] <BBB> because we dont know
[18:28:42 CEST] <BBB> :-/
[18:28:48 CEST] <j-b> THis is exactly like that that Intel put some binary blobs for the VP8 decoding in the Linux open source driver
[18:29:10 CEST] <BBB> brb
[19:06:06 CEST] <atomnuker> BBB: if you disagree please put forward a reply in the email thread
[19:06:22 CEST] <atomnuker> but I'm starting to feel like starting a revert war
[19:06:44 CEST] <atomnuker> not being able to reproduce the weights is utterly unscientific and unacceptable
[19:07:48 CEST] <atomnuker> and I'm getting j-b's point that its a bunch of embedded binary junk in an open source project
[19:08:26 CEST] <atomnuker> (I wouldn't mind if he pitched in the ML thread too)
[19:16:29 CEST] <j-b> I already did, on the previous patch
[19:16:44 CEST] <j-b> and paul thought I was against his code (which I'm not, of course)
[19:16:53 CEST] <j-b> I just want more documentation of the process.
[19:17:07 CEST] <j-b> and I also don't want distribution to patch FFmpeg too much.
[19:19:22 CEST] <durandal_1707> JEEB: give moar KB2f, only stuff on internet is >= KB2g
[19:20:44 CEST] <atomnuker> yep, I agree, if there was a reproducable way to get and potentially improve the weights it would work, but they didn't provide such code in our tools dir or anywhere
[19:22:28 CEST] <durandal_1707> so I guess you are against sofalizer filter too? because you can not generate sofa files?
[19:24:16 CEST] <kepstin> I'm not even sure where you'd find training data for that anyways - maybe get the same movies in blu-ray and ultrahd blu-ray and try to get it to reproduce the results of the hdr conversion?
[19:25:42 CEST] <kepstin> i'd suspect that having it compare hdr video and a tone-mapped/downconverted version of the same video would give poor results, it might overfit to just being a reversal of the particular tone mapping method used.
[19:25:59 CEST] <JEEB> yea
[19:26:09 CEST] <JEEB> I don't see why > neural networks
[19:27:08 CEST] <durandal_1707> it's future, computers will think for us
[19:28:23 CEST] <kepstin> that said, ffmpeg *does* already have a neural net based filter, nnedi - but it requires an external blob of training data.
[19:28:59 CEST] <kepstin> I wonder if maybe it would just make sense to have a filter which is a fairly generic way to apply a neural net to the video, not specialized to a particular use.
[19:32:37 CEST] <BBB> that too
[19:32:49 CEST] <BBB> theres a maintenance argument to be made for that
[19:32:55 CEST] <BBB> if youhave 100 10-tap 2d filters
[19:33:00 CEST] <BBB> do we need simd for all of them?
[19:33:03 CEST] <BBB> or can that be shared?
[19:33:11 CEST] <BBB> (the answer should be obvious)
[19:36:45 CEST] <BBB> atomnuker: so & Ive burned myself on a few too many troll^threads in the past, so Im not quite ready to re-engage yet
[19:36:49 CEST] <atomnuker> durandal_1707: no, there's a standard way to generate sofa files
[19:36:58 CEST] <BBB> I think we need an enforceable CoC to get people to behave normally
[19:37:02 CEST] <atomnuker> and we also don't ship any sofa files ourselves
[19:37:04 CEST] <BBB> until then Ill mostly stay away from the ML
[19:37:17 CEST] <BBB> too much crap for my delicate sensitive taste
[19:37:41 CEST] <atomnuker> its not arguing, its posting an opinion
[19:37:46 CEST] <durandal_1707> crap on ml?
[19:37:48 CEST] <atomnuker> you can choose to defend it or not
[19:40:39 CEST] <BBB> if I dont defend it, Ill be called out for FUD that Im unwilling to even stand for
[19:40:43 CEST] <BBB> so itll be pointless
[19:40:49 CEST] <BBB> might just as well shout into space
[19:43:12 CEST] <atomnuker> nothing wrong with that
[19:43:45 CEST] <atomnuker> and no one will call you out for fud, you're just being irrational
[19:52:25 CEST] <BBB> sorry :(
[19:52:43 CEST] <BBB> I highly encourage you guys to all accept an enforceable CoC, I think it would make things a lot better
[19:53:01 CEST] <BBB> I know its unrelated to nn etc., but I do think itll be useful
[19:53:38 CEST] <jamrial> the issue is who/how to enforce it, as i said in a mail some weeks ago
[19:54:29 CEST] <jamrial> the voting committe is inneficient, and by now "outdated". as in, the list of members has names of people that are awol
[19:54:41 CEST] <gnafu> If someone wants to pay me a full-time salary, I'll gladly be a CoC enforcer ;-).
[19:55:13 CEST] <gnafu> Any companies looking to take me on for that?
[19:55:16 CEST] <jamrial> heh
[19:55:28 CEST] <gnafu> I love rules, and being a stickler.
[19:55:47 CEST] <gnafu> Especially if they need to be followed by someone else, and I can just observe and guide.
[19:56:23 CEST] <BBB> I understand the problem, and I think were just kicking the can down the lane in doing nothing
[19:56:25 CEST] <BBB> thats not acceptable
[19:56:42 CEST] <BBB> its like having a crasher in a decoder and not fixing it because we cant agree on how to fix it
[19:56:44 CEST] <BBB> thats not a fix
[19:56:52 CEST] <BBB> its just the same bug without anyone fixing it
[19:57:02 CEST] <BBB> its what the term bitrot comes from
[19:57:07 CEST] <BBB> our community suffers from bitrot
[19:57:14 CEST] <BBB> we need to work that out by shaking it up a little
[20:00:49 CEST] <atomnuker> its fine, you're just having misconceptions about it being broken
[20:01:05 CEST] <atomnuker> that's the main problem imo
[20:01:16 CEST] <BBB> ok
[20:01:22 CEST] <jamrial> i don't agree, atomnuker
[20:02:24 CEST] <jamrial> the project has some considerable issues in behavior and general policy
[20:03:47 CEST] <jamrial> what can/should go in should be able to be discussed without shit flinging
[20:04:01 CEST] <atomnuker> I do think people's misconceptions are the problem, some people were adamant that we never removed anything despite throwing out thousands of lines of code, they were adamant that decisions could never be made despite reaching a solution most people were happy with (the lavc postprocess, the new iterate api and the compile time lists)
[20:06:22 CEST] <atomnuker> the process is bumpy, sure, but it does yield results, if at the cost of having to fiercely defend opinions
[20:08:17 CEST] <BBB> you are allowed to call it bumpy, and continue going down this road
[20:08:19 CEST] <BBB> but Im not going along
[20:08:28 CEST] <BBB> do whatever you think is best
[20:08:36 CEST] <durandal_1707> we should pick our president
[20:08:53 CEST] <BBB> if you think its best to re-engage me into this community, then my best recommendation would be to adopt an enforceable CoC
[20:09:04 CEST] <atomnuker> a conflict free system wouldn't be able to yield optimal results, you'd get something that's a typical designed-by-committee deal where internally no one is unhappy but everyone's unhappy when they actually have to use it
[20:09:15 CEST] <BBB> maybe you dont think its broken, thats great! I think it is
[20:09:37 CEST] <atomnuker> BBB: it is enforcable, its just that no one has asked because we're all too nice!
[20:09:45 CEST] <gnafu> atomnuker: I don't think the problem is conflict itself, but unreasonable levels of disrespectful conflict.
[20:09:46 CEST] <atomnuker> again, misconceptions
[20:09:52 CEST] <BBB> *ahem* derek *ahem*
[20:10:09 CEST] <atomnuker> we didn't have one at the time
[20:10:11 CEST] <gnafu> Conflict is necessary, healthy, and good. But just like anything, there are good and bad kinds.
[20:10:39 CEST] <durandal_1707> why derek always need to be so special?
[20:10:48 CEST] <atomnuker> the coc was enforced too, if you remember, 2 years ago to carl
[20:10:55 CEST] <jamrial> how is it enforceable? we've called for a vote in more than one ocassion and gotten no votes/result
[20:10:56 CEST] <atomnuker> so don't call it unenforcable!
[20:10:59 CEST] <atomnuker> it was enforced
[20:11:06 CEST] <atomnuker> but you still stick to your misconceptions!
[20:12:32 CEST] <jamrial> to carl? nothing came out of that. michael unilaterally decided to ban carl, himself and derek for a day to "solve" the issue and then everyone just said fuck it and stopped caring
[20:12:43 CEST] <atomnuker> yes it did, he was banned for a whole week from the ML
[20:12:46 CEST] <atomnuker> and no one liked it
[20:12:49 CEST] <jamrial> there was a call for a vote to ban carl from the project. nobody voted after the above
[20:12:52 CEST] <atomnuker> even people who voted for it
[20:14:31 CEST] <atomnuker> not to mention the stuff Compn pulled off some time ago, he enforced the coc and no one liked it
[20:14:51 CEST] <TimothyGu> I don't think that's a reason not to enforce the coc
[20:14:56 CEST] <TimothyGu> "no one liked it"
[20:15:09 CEST] <atomnuker> its not that its unenforcable, its just that we're too nice
[20:15:10 CEST] <TimothyGu> it's necessary for the further growth of the project, to encourage *new* people
[20:15:34 CEST] <atomnuker> bugger off, it isn't, no one looks at CoCs until they're after blood
[20:16:05 CEST] <TimothyGu> strong opinion, but misguided
[20:16:52 CEST] <atomnuker> I do think we're actually the most liberal bunch of people working on a large project; we'd accept patches from anyone who's done anything
[20:17:04 CEST] <atomnuker> criminals included
[20:17:17 CEST] <atomnuker> most CoCs don't offer that
[20:18:08 CEST] <TimothyGu> That's not necessarily a good thing
[20:21:27 CEST] <atomnuker> the mailing list is for judging patches, not people
[20:22:05 CEST] <TimothyGu> and making it possible for people to do the former
[20:23:06 CEST] <atomnuker> which it is, unless misconceptions are involved
[20:24:15 CEST] <atomnuker> what I've gotten at is that your original point about newcomers seeking inclusiveness is moot; we include everyone, even dead people
[20:25:13 CEST] <TimothyGu> Yeah, and my point is including toxic people (a single toxic person even) excludes more people than it includes
[20:27:03 CEST] <atomnuker> and yet when we tried to exclude someone you've seen what happens!
[20:27:09 CEST] <gnafu> atomnuker: Like Elvis, yeah? {:-]
[20:28:11 CEST] <atomnuker> now, suppose there was a person calling everyone an asshole who never did patches and just spammed the mailing list, he'd be banned, right?
[20:28:16 CEST] <atomnuker> the system works!
[20:29:41 CEST] <gnafu> As someone who's never submitted patches, I wonder if I should put that theory to the test ;-).
[20:30:20 CEST] <durandal_1707> try it!
[20:31:10 CEST] <gnafu> That's why I feel like I could be a good CoC enforcer. I can be objective, because I only lurk on IRC and use ffmpeg; I've not contributed code or stirred up trouble on the ML.
[20:31:26 CEST] <atomnuker> don't do anything like the "remove eggplant" fiasco from a few years ago and you won't be called an asshole
[20:31:57 CEST] <atomnuker> we've had enforcers before, they don't work
[20:32:03 CEST] <atomnuker> so thanks but no thanks
[20:32:19 CEST] <j-b> no, you never had actual enforcers
[20:32:42 CEST] <atomnuker> we did, Compn, and we judged that free discussion was more important
[20:32:42 CEST] <durandal_1707> let j-b be our president/enforcer!
[20:33:04 CEST] <atomnuker> again, misconceptions
[20:33:05 CEST] <j-b> durandal_1707: I am not sure you want that.
[20:33:23 CEST] <j-b> You want a few people elected that can do that.
[20:33:34 CEST] <j-b> but, I kicked quite a few people from the VLC project for behavior
[20:33:59 CEST] <durandal_1707> really? last time when?
[20:34:12 CEST] <j-b> hmm, one month ago, or two.
[20:34:38 CEST] <j-b> we kick people from forum, remove commit access, ban from mailing lists, etc...
[20:35:17 CEST] <durandal_1707> here you are only auto-banned
[20:35:26 CEST] <j-b> and there is no week where I don't warn someone for behavior
[20:36:03 CEST] <j-b> I did it on Friday, for example.
[21:02:37 CEST] <durandal_1707> i wrote SIMD for overlay filter - you should worship me!
[21:18:43 CEST] <jamrial> BBB: regarding av1 packet/TU splitting, a frame header obu may be follwed by two or more tile group obus, and not strictly just one, right?
[21:18:52 CEST] <BBB> yes
[21:18:58 CEST] <BBB> each tile group has header bits to indicate its range
[21:19:12 CEST] <BBB> and you can parse the bits to see how many/which TGs you need for 1 frame worth of data
[21:19:26 CEST] <BBB> now, its true that it totally SUCKS that you need to parse the whole frame header to parse the tile group header
[21:19:33 CEST] <BBB> since it relies on knowing how many tiles are in a frame
[21:19:41 CEST] <BBB> and the tile bits are at the very end of the frame header
[21:19:45 CEST] <BBB> but ohwell
[21:19:56 CEST] <BBB> ¯\_(Ä)_/¯
[21:20:36 CEST] <jamrial> but you only need to parse the whole frame header to get to the tile group header if they are both contained in a single frame obu
[21:21:30 CEST] <jamrial> if they are frame header obu + one or more tile group OBUs, you can skip to the tile group obus by just looking at the obu sizes in question
[21:22:01 CEST] <BBB> no
[21:22:22 CEST] <BBB> lets say the first tile group covers tile 1-2 and the second tile group covers tile 3-4
[21:22:26 CEST] <BBB> how would you know there are 4 tiles?
[21:22:40 CEST] <BBB> you need to parse the frame header :-/
[21:23:48 CEST] <jamrial> so i can't just say "i found a frame header, lets include it and every tile group that follows it into a packet and split as soon as i find some other obu"?
[21:24:12 CEST] <BBB> in TCP, sure
[21:24:18 CEST] <BBB> I mean, it just happens to work
[21:24:23 CEST] <BBB> but in general, no
[21:26:19 CEST] <jamrial> a bsf only works with complete packets. isn't the parser's job to decide what is and then build a complete packet if needed?
[21:26:52 CEST] <BBB> ¯\_(Ä)_/¯
[21:27:03 CEST] <BBB> whether its a parser or a bsf or a unicorn, something has to assemble packets
[21:27:14 CEST] <BBB> and for that, you need to know which tile groups together make one frame worth of input data
[21:27:24 CEST] Action: gnafu votes for a unicorn, every time.
[21:37:36 CEST] <durandal_1707> this Carl guy, watches unicorns every day I believe
[21:44:38 CEST] <jamrial> BBB: well, a split bsf injected by the decoder will not be able to wait for data and combine it. that's what parsers are meant to do from within libavformat generic code
[21:45:28 CEST] <BBB> so what is the distinct job assignment of a parser vs. a splitter then?
[21:45:36 CEST] <BBB> I understand parser = create one obu unit
[21:46:00 CEST] <BBB> but how does the parser vs. splitter know which obus make one frame worth of input data?
[21:46:12 CEST] <BBB> someone needs to parse the headers
[21:49:03 CEST] <nevcairiel> historically the parser would do that
[21:49:52 CEST] <jamrial> i can write the splitter bsf, which will take whatever is sent to avcodec_decode_video2 or avcodec_send_packet (normally a full temporal unit) and split it internally to be consumed by the decoder
[21:50:20 CEST] <jamrial> as nevcairiel, the parser would have to actually make sure you get complete data from the demuxer
[21:51:22 CEST] <jamrial> i guess a bsf could just request more data and actually combine stuff, but no codec currently does that as that's the job of parsers
[21:51:43 CEST] <jamrial> i don't even know if the generic code autoinserting bsfs would like that
[21:52:24 CEST] <jamrial> currently, for vp9, the parser does nothing with data (just marks keyframes), and the split bsf splits what's expected to be a full superframe
[22:02:44 CEST] <durandal_1707> JEEB: i desperately need sample
[22:07:49 CEST] <JEEB> durandal_1707: finished my food now so what you want is !black stuff in first frame?
[22:08:01 CEST] <durandal_1707> yes
[22:08:16 CEST] <JEEB> that one thing I linked with stuff in middle wasn't good enough I guess?
[22:08:34 CEST] <durandal_1707> its is good, but i need something more complicated shape
[22:08:38 CEST] <JEEB> ok
[22:08:55 CEST] <durandal_1707> just to confirm if bitstream parsing is fully ok
[22:08:56 CEST] <JEEB> time to iterate over files
[22:09:50 CEST] <JEEB> uhh, this first one I found is kind of dim in the beginning but it mostly seems to use the full thing
[22:09:55 CEST] <JEEB> or you want something bright?
[22:10:44 CEST] <JEEB> oh hey
[22:10:46 CEST] <JEEB> bright stuff
[22:10:49 CEST] <durandal_1707> yes
[22:12:00 CEST] <JEEB> ok, found something with brightness at start
[22:12:16 CEST] <durandal_1707> is it KB2f?
[22:12:30 CEST] <JEEB> yes
[22:12:38 CEST] <JEEB> I mean I'm still going through xcom videos
[22:12:39 CEST] <JEEB> lol
[22:12:42 CEST] <durandal_1707> great
[22:13:26 CEST] <JEEB> also why the fuck does this sample have like 9 audio tracks
[22:13:36 CEST] Action: JEEB shrugs
[22:15:02 CEST] <JEEB> durandal_1707: hopefully this is gut enough https://0x0.st/sVLw.bk2
[22:25:47 CEST] <JEEB> durandal_1707: was that good enough?
[22:29:49 CEST] <durandal_1707> JEEB: perfect!
[22:29:58 CEST] <JEEB> najs
[22:56:49 CEST] <jdarnley> Gah! Do I need to explictly include some header to have START/STOP_TIMER work with --enable-linux-perf?
[22:57:27 CEST] <jdarnley> I ask because I get this all-to-common error "error: implicit declaration of function syscall"
[23:01:32 CEST] <atomnuker> no, you shouldn't, its only needed on arm
[23:04:57 CEST] <atomnuker> works fine without it here
[23:44:13 CEST] <cone-772> ffmpeg 03Lou Logan 07master:0e554bf4b9de: doc/mailing-list-faq: user lists are subscribe only
[23:44:22 CEST] <jdarnley> Ah, I missed that I must include it first so that it can get the _GNU_SOURCE define right.
[23:45:04 CEST] <jdarnley> it being timer.h
[00:00:00 CEST] --- Wed Jul 25 2018
1
0
[00:00:19 CEST] <Cracki> just benchmarking a 1-thread encode and nothing else on the cpu isn't representative. cpus have caches.
[00:00:35 CEST] <Cracki> people who use "virtualization" tend to forget that
[00:00:54 CEST] <Cracki> don't partition into smaller than full sockets. it's pointless.
[00:02:04 CEST] <furq> fwiw x264 definitely gets diminishing returns with more threads
[00:02:24 CEST] <poutine> What do you mean by that? I planned on using ECS VCPUs and calculating my threads count based on that. I'm not fully understanding the 32 concurrent single thread test, or how you could simply transcode a mp4 to h264/aac mp4 w/ scaling or something using 32 concurrent encodes
[00:02:25 CEST] <furq> if you're processing a lot of videos then running as many as you can concurrently with one thread each is theoretically fastest
[00:02:54 CEST] <furq> plus obviously any aac encoder you'd use would be singlethreaded anyway
[00:05:24 CEST] <poutine> I did not even consider that furq, and you guys are quickly showing I did not prepare well for this conversation. Could you just tip me off what I'm missing about this 32 concurrent 1 threaded encodes? How would I pull that off for a standard operation like a single input to a single output
[00:06:27 CEST] <poutine> I had planned that each individual container was launched in AWS Fargate for a single job (1 input -> 1 output), and I was going to tweak the VCPUs/memory to adjust between cost efficiency and speed
[00:06:44 CEST] <poutine> but just planned on using -threads to attempt to utilize those VCPUs
[00:08:30 CEST] <Cracki> 32 was an arbitrary number
[00:08:36 CEST] <Cracki> use 1234 if you feel like it
[00:08:40 CEST] <poutine> sure, understood
[00:08:44 CEST] <furq> like he said, it's something you need to benchmark
[00:08:51 CEST] <Cracki> there's definitely not a processor around with that many cores
[00:09:04 CEST] <Cracki> you want to make money, you have to know these things
[00:09:04 CEST] <poutine> I have 16 cores in my desktop, I think there are, aren't there?
[00:09:41 CEST] <Cracki> theoretically, running a different transcode on each core might be slower than running a single transcode across all cores
[00:09:46 CEST] <Cracki> cpu caches, remember?
[00:10:08 CEST] <furq> i wouldn't say that's theoretically
[00:10:34 CEST] <Cracki> it will definitely decrease the usefulness of across-core caches
[00:10:44 CEST] <furq> if you only consider x264 itself then one encode per thread is fastest (if you have enough videos to process concurrently)
[00:10:45 CEST] <Cracki> it's something one must benchmark
[00:10:48 CEST] <furq> but obviously in real life it's not that simple
[00:11:07 CEST] <furq> not only do you have hardware details but you also have the decode thread and the aac encoding thread running at the same time
[00:11:16 CEST] <Cracki> ah right, that too :>
[00:11:23 CEST] <furq> and any filtering you might want to do
[00:11:39 CEST] <Cracki> srsly considering audio transcoding is small fish
[00:11:40 CEST] <furq> and io
[00:11:56 CEST] <furq> and yeah audio transcoding is going to take a tiny fraction of that
[00:12:07 CEST] <Cracki> depending on use case, consider hw encoders
[00:12:14 CEST] <furq> but i assume it's still going to cause unpredictable behaviour with cpu caches
[00:12:19 CEST] <Cracki> indeed
[00:12:43 CEST] <furq> so yeah in summary you just need to test various setups
[00:13:42 CEST] <furq> that was a pretty longwinded way of saying that
[00:14:36 CEST] <Cracki> well... you have to be aware of some laws of nature before you can even imagine them not moving in circles around earth
[00:15:06 CEST] <Cracki> or you gotta be good at observing and writing down numbers
[00:21:53 CEST] <Mavrik> Are there any HW encoders out there that aren't arse quality-wise?
[00:22:11 CEST] <Cracki> heh
[00:22:24 CEST] <Cracki> depends on your taste of arse
[00:22:45 CEST] <Cracki> throw some more bits at them, they might give you good quality
[00:22:53 CEST] <Cracki> they also improve by generation
[00:23:36 CEST] <Cracki> you can guess why broadcast encoders work with 5-10 times the bit rate you'd use for a lovingly cpu-encoded video
[00:23:37 CEST] <Mavrik> Well usually you transcode to save those bits :P
[00:24:25 CEST] <Cracki> hw can help you with the motion estimation
[00:24:35 CEST] <Cracki> that's dumb work fit for a gpu
[00:25:41 CEST] <DHE> yes, but most hardware transcoders are all-in-one... and x264's lookahead offloading has been less than stellar
[00:25:56 CEST] <Cracki> aye
[01:58:46 CEST] <TekuConcept> I just realized, correct me if I'm wrong, but I don't even need an AVFrame to write raw data to a stream. I just need to set the data manually in an AVPacket.
[02:05:38 CEST] <DHE> sure
[02:05:51 CEST] <DHE> if the format is something you can write like that
[02:28:13 CEST] <TekuConcept> DHE, out of curiosity, when you say farmat, are you referring the data format or an av format? I need to create an RTSP carrier with an H264 stream, and audio stream, and a json stream.
[02:31:19 CEST] <Cracki> ooh what are you using that for?
[02:31:44 CEST] <Cracki> text streams must have been done before. teletext, subtitles, ...
[02:34:09 CEST] <TekuConcept> I have a signal processor on a small ARM computer. This device uses OpenCV to connect to an RTSP stream from an IP camera. I also have a mobile device which connects to the same RTSP stream and also has a streaming websocket connection to the ARM device.
[02:34:10 CEST] <DHE> or raw streams like rgb or yuv...
[02:34:30 CEST] <DHE> that's the obvious, easy solution to building an AVPacket by hand
[02:35:04 CEST] <TekuConcept> rgb? would you mind enlightening me?
[02:35:11 CEST] <DHE> red, green, blue
[02:35:16 CEST] <DHE> raw frame pixels
[02:35:18 CEST] <TekuConcept> yes I know that
[02:36:18 CEST] <TekuConcept> I guess what I'm getting at is, what do you mean rgb with respect to json/text data? (I'm using H264 for all video data)
[02:37:11 CEST] <DHE> just that building an AVPacket yourself is usually a rare thing, usually only when the format is something really simple
[02:38:21 CEST] <TekuConcept> You are suggesting I create a raw rgb packet and put my json data in the allocated buffers, yes?
[02:39:02 CEST] <DHE> well, no...
[02:39:16 CEST] <DHE> never heard of a json stream before, but whatever works for you I guess...
[02:40:25 CEST] <Cracki> you seem to want to make your own 'bitstream'
[02:40:35 CEST] <Cracki> the encoding just happens to be json
[02:40:46 CEST] <Cracki> and the container/packetizing doesn't need to know that
[02:41:01 CEST] <TekuConcept> Yes, precisely
[02:41:34 CEST] <DHE> well it usually needs some kind of header information to know how to mark the stream... fourcc, tag, id, or whatever it uses...
[02:41:52 CEST] <Cracki> that of course
[02:41:55 CEST] <TekuConcept> Oh I didn't know that, but that makes sense.
[02:42:02 CEST] <Cracki> JSON could be a fourcc
[02:42:30 CEST] <Cracki> then the basic unit is a json document (object)?
[02:42:49 CEST] <TekuConcept> Yes; Overall, my goal is to combine my currently stream json websocket into my streaming rtsp carrier.
[02:43:31 CEST] <TekuConcept> JSON objects are sent over websocket at a rate of about 15 fps. (as fast as the device can decode and process the H264 video)
[02:43:50 CEST] <Cracki> ffmpeg isn't supposed to try to decode (or encode) this data, just mux/demux it, eh?
[02:43:58 CEST] <TekuConcept> yes
[02:44:33 CEST] <Cracki> I have no clue what an AVPacket would contain... but it sounds to me like you want to fill one with opaque data and mux it
[02:44:43 CEST] <TekuConcept> data and size :)
[02:44:53 CEST] <Cracki> and a stream tag or something ;)
[02:44:56 CEST] <Cracki> I hope
[02:45:02 CEST] <Cracki> tag/id
[02:45:12 CEST] <TekuConcept> ah, let me see
[02:45:24 CEST] <Cracki> not sure how ffmpeg does the association of packets
[02:45:49 CEST] <Cracki> I'd also wonder when pts/dts come into play
[02:46:36 CEST] <Cracki> ah! https://www.ffmpeg.org/doxygen/3.2/structAVPacket.html
[02:46:38 CEST] <Cracki> all there
[02:46:59 CEST] <Cracki> there's buf and data... wonder why both
[02:47:54 CEST] <atomnuker> buf's for avbuffer refcounting
[02:48:13 CEST] <Cracki> ah so buf points to the buf structure and data _into_ it?
[02:48:27 CEST] <Cracki> or however that's organized
[02:48:42 CEST] <Cracki> nvm, i can click everything :P
[02:48:55 CEST] <Cracki> .buf->data == .data?
[02:49:05 CEST] <TekuConcept> data is a buffer
[02:49:13 CEST] <Cracki> heck that's a lot of boxes to unpack
[02:49:14 CEST] <TekuConcept> https://pastebin.com/Ja5Y2R9h
[02:49:33 CEST] <Cracki> avpacket -> avbufferref -> avbuffer -> finally an uint8*
[02:50:11 CEST] <Cracki> bufferref has an AVBuffer *buffer AND an u8* data
[02:50:27 CEST] <TekuConcept> I'm curious if the presentation time stamp would be necessary for a live stream. I figure it would if recorded to a file.
[02:50:32 CEST] <Cracki> sounds like data pointers keep pointing forward while the boxes are for housekeeping
[02:51:18 CEST] <Cracki> the only thing I can imagine looking at DTS (or pts) would be the de/muxer
[02:51:23 CEST] <Cracki> for packet ordering
[02:51:41 CEST] <Cracki> so better set sensible values
[02:52:10 CEST] <TekuConcept> Maybe then I would just increment the value every time I av::interleaved_write_frame()
[02:52:28 CEST] <Cracki> or copy it from the corresponding video packet?
[02:52:49 CEST] <TekuConcept> Ah, that didn't even cross my mind!
[02:52:51 CEST] <Cracki> dts/pts are not per-stream but per-program
[02:53:05 CEST] <Cracki> used for syncing streams
[02:53:20 CEST] <Cracki> (I might be mistaken...)
[02:53:48 CEST] <TekuConcept> per-program - you mean AVFormatContext?
[02:53:52 CEST] <Cracki> not sure
[02:53:59 CEST] <Cracki> I know there are tons of timebases everywhere
[02:54:31 CEST] <Cracki> the most contact i've had with ffmpeg libs is through PyAV and its documentation is very sparse
[02:54:38 CEST] <Cracki> not suited to learning about ffmpeg libs
[02:55:33 CEST] <TekuConcept> (I have a git-clone of the C source code)
[02:57:12 CEST] <TekuConcept> I think pts/dts is reserved for demuxing.
[02:57:48 CEST] <Cracki> the muxer uses something to decide muxing order
[02:58:03 CEST] <Cracki> for files at least that's the case
[04:06:59 CEST] <IsSnooAnAnimal> Hey, I'm having some issues with pixelated motion when encoding with h264_nvenc. Example: https://i.imgur.com/97tS3Jh.png . The command I am using is here: https://pastebin.com/10TjgJnD
[04:11:15 CEST] <IsSnooAnAnimal> Would this be CRF value, preset, or other?
[04:14:37 CEST] <kepstin> IsSnooAnAnimal: nvenc doesn't use the same options as x264. In particular, it doesn't use the "-crf" option.
[04:14:39 CEST] <pzich> that's called interlacing, you might want to try deinterlacing
[04:15:02 CEST] <kepstin> oh, yeah, i should have looked at the image too
[04:15:04 CEST] <kepstin> :)
[04:15:07 CEST] <pzich> ;)
[04:15:19 CEST] <pzich> I did the same thing before I realized what he meant my "pixelated motion"
[04:19:47 CEST] <IsSnooAnAnimal> kepstin: wow, thanks!! what should I use instead of CRF? I'm encoding for a 1080p Vimeo upload, and the source is lossless 40Mbits/s. I have as much time as I need to encode
[04:21:21 CEST] <furq> -cq is the closest equivalent
[04:21:34 CEST] <furq> although obviously the values don't map to x264's crf values
[04:21:40 CEST] <furq> so you'll need to trial and error that
[04:22:07 CEST] <furq> -preset slow also doesn't work with nvenc, you probably want -preset hq
[04:22:29 CEST] <furq> oh wait nvm slow is 2pass isn't it
[04:22:35 CEST] <IsSnooAnAnimal> I believe it is
[04:23:17 CEST] <IsSnooAnAnimal> Speaking of which, I've seen sources say that it's better for quality, and others say it's not. Would you mind clarifying?
[04:23:30 CEST] <furq> but yeah to fix the actual problem you want -c:v h264_cuvid -deint bob -i foo -c:v h264_nvenc ...
[04:23:41 CEST] <furq> or -deint adaptive, idk which is better
[04:24:15 CEST] <IsSnooAnAnimal> h264_cuvid vs h264_nvenc?
[04:24:21 CEST] <IsSnooAnAnimal> or are they the same thing
[04:24:49 CEST] <furq> cuvid is the decoder
[04:25:06 CEST] <IsSnooAnAnimal> ahhh, thanks
[04:25:19 CEST] <furq> and -deint is specific to that decoder, it does the deinterlacing on the gpu
[04:25:27 CEST] <furq> apparently it gives good results and it saves a bunch of memory copying
[04:25:28 CEST] <IsSnooAnAnimal> also, if this makes a difference, the deinterlacing is not apparent in the source file
[04:25:40 CEST] <furq> is your player automatically deinterlacing it
[04:25:49 CEST] <furq> a lot of players will do that if the source is flagged as tff
[04:26:19 CEST] <furq> which it should be if you have a 1080i bluray
[04:26:27 CEST] <kepstin> IsSnooAnAnimal: if you have as much time as needed to encode, use x264 instead of nvenc
[04:26:50 CEST] <furq> if it's going to vimeo anyway and you have plenty of bandwidth then it doesn't matter too much
[04:26:53 CEST] <furq> just throw more rate at it
[04:28:42 CEST] <IsSnooAnAnimal> Ok, that was a bit of an overstatement, I'm encoding 1-2h interviews
[04:30:46 CEST] <IsSnooAnAnimal> It would be nice for around 15 of them to be done in 10 hours
[05:14:52 CEST] <codebam> how can I stream to a file?
[05:15:27 CEST] <codebam> like to create a video stream, but put it in a folder instead and host it with nginx
[05:15:38 CEST] <codebam> can I do that?
[05:17:32 CEST] <pzich> you'll have to be more specific. is the video stream you're talking about something you want to be able to access live, recorded from an earlier stream, or it's just file to file?
[05:18:48 CEST] <codebam> I want to take a pre-recorded mkv h264 file and make it stream so that it's synced to the right time for people streaming
[05:19:23 CEST] <codebam> like I'm pretty sure I can do that with http streaming, but I'd rather mount it so I don't have to turn off my webserver
[05:19:39 CEST] <codebam> or I guess I could proxy pass
[05:21:08 CEST] <pzich> proxy pass is probably your best bet, and it's pretty powerful
[05:21:24 CEST] <codebam> okay, I'll try that. thanks!
[12:51:50 CEST] <jonmall> I've found the stream with the issue and generated a debug log. Error can be seen in lines 179-182. https://pastebin.com/xBGWgCLc . Any ideas on how I ignore or fix the issue? TIA!
[14:21:41 CEST] <Hello71> seems more like you are exceeding the local file size limit
[14:21:50 CEST] <Hello71> oh, decoding
[14:21:52 CEST] <Hello71> never mind
[14:25:41 CEST] <flydev> Using tutorial from https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu and can't get rid of ERROR: x265 not found using pkg-config
[14:25:59 CEST] <flydev> Can't compile ffmpeg, Ubuntu 18 LTS
[14:32:22 CEST] <flydev> Anyone? Something is really broken in Ubuntu 18, it compiles fine on 16 using same tutorial
[14:33:20 CEST] <friendofafriend> flydev: You installed libx265-dev?
[14:33:56 CEST] <flydev> Yes, both via apt-get and compiled
[14:40:22 CEST] <friendofafriend> It would probably be best to remove the package if you've compiled from source.
[14:42:00 CEST] <flydev> apt-get remove --purge libx265-dev -y ? and compile again?
[14:43:01 CEST] <friendofafriend> Just remove, but this time compile with PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
[14:43:09 CEST] <friendofafriend> And then make && make install
[14:45:19 CEST] <flydev> like so: https://pastebin.com/wM8EJReb
[14:47:07 CEST] <friendofafriend> Sure, and then find the location of your x265.pc file.
[14:47:13 CEST] <flydev> Still not finding x265, shall I get ffbuild/config.log ?
[14:48:00 CEST] <friendofafriend> You'll want to copy the x265.pc file to your PKG_CONFIG_PATH.
[14:48:56 CEST] <friendofafriend> Or export PKG_CONFIG_PATH=/<path_to_x265>/x265.pc:$PKG_CONFIG_PATH
[14:50:16 CEST] <flydev> https://pastebin.com/7j7aq82j it's in the path but still not finding it
[14:53:35 CEST] <friendofafriend> You want it to find the copy of x265.pc from your ./ffmpeg_sources/x265/build/linux/ directory.
[14:54:21 CEST] <friendofafriend> So you can add that directory before everything else in PKG_CONFIG_PATH
[14:54:50 CEST] <barhom> How do I use "nvreszie" to scale using the GPU instead of CPU?
[14:55:03 CEST] <barhom> Do I really save that much CPU on the scaling?
[14:57:29 CEST] <friendofafriend> Like with a "export PKG_CONFIG_PATH=/<whateveryourabsolutepathis>/ffmpeg_sources/x265/build/linux/:$PKG_CONFIG_PATH"
[14:57:54 CEST] <flydev> friendofafriend so can you give me example how can I do that, here is the ffmpeg compile lines: https://pastebin.com/SyU4ERv3
[15:00:03 CEST] <friendofafriend> Sure, I'd "mv $HOME/ffmpeg_build/lib/pkgconfig/x265.pc $HOME/ffmpeg_build/lib/pkgconfig/x265.pc.backup ; cp $HOME/ffmpeg_sources/x265/build/linux/x265.pc $HOME/ffmpeg_build/lib/pkgconfig/"
[15:03:23 CEST] <flydev> Did not help, same thing
[15:04:41 CEST] <flydev> file seem to be copied and backup file made, i'm really confused now
[15:08:59 CEST] <flydev> Shall I get the ffbuild/config.log log ?
[15:10:25 CEST] <friendofafriend> Yes, please.
[15:11:34 CEST] <flydev> https://pastebin.com/cQSNMi5J
[15:17:31 CEST] <friendofafriend> flydev: When you cat x265.pc, do you find the proper location for the library?
[15:19:42 CEST] <flydev> https://pastebin.com/y2a44cTz
[15:20:50 CEST] <friendofafriend> Did you do a make install after you compiled x265 from source?
[15:21:21 CEST] <flydev> Yes, also here is ls of paths in file:
[15:21:22 CEST] <flydev> https://pastebin.com/ZFfANb0s
[15:22:20 CEST] <flydev> Here is x265 install: https://pastebin.com/Bu1Mr0cg
[15:22:38 CEST] <friendofafriend> Your x265.pc is in /root/ffmpeg_build/lib/ and not /root/ffmpeg_build/lib/pkgconfig/ ?
[15:25:03 CEST] <flydev> Yes, have a look: https://pastebin.com/frBPdP5V
[15:26:16 CEST] <friendofafriend> My x265.pc looks like this. https://pastebin.com/Va78n7Vj
[15:29:04 CEST] <flydev> So yours is not static build but directly compiled instead?
[15:31:22 CEST] <friendofafriend> I think it was compiled out-of-tree and installed.
[15:32:13 CEST] <flydev> OK, what do you suggest for my case?
[15:33:19 CEST] <friendofafriend> I'd remove the package, build x265, and install it.
[15:44:10 CEST] <flydev> the package is removed, x265 rebuild, still no luck
[15:49:01 CEST] <friendofafriend> Does /usr/local/lib/pkgconfig/x265.pc exist?
[15:54:22 CEST] <flydev> No, it doesn't
[15:55:38 CEST] <friendofafriend> Making what could be a rash assumption about your arch, does /usr/lib/x86_64-linux-gnu/pkgconfig/x265.pc exist?
[16:04:52 CEST] <flydev> No, this one doesn't as well
[16:06:10 CEST] <friendofafriend> x265.pc should exist someplace after install, so maybe a sudo find / | grep -i x265.pc
[16:11:51 CEST] <DHE> /usr/local/lib/pkg-config ?
[16:13:49 CEST] <flydev> cp /root/ffmpeg_sources/x265/build/linux/x265.pc /usr/lib/x86_64-linux-gnu/pkgconfig/x265.pc , trying to compile ffmpeg again...
[16:15:55 CEST] <flydev> nope, still complaining...
[16:23:50 CEST] <friendofafriend> x265 is installed now, is there no x265.pc in /usr/ someplace?
[17:09:37 CEST] <th3_v0ice> When I open the encoder context, should the extradata be initialized to something?
[17:12:54 CEST] <flydev> friendofafriend i put one in /usr/lib etc, but to no avail....
[17:13:24 CEST] <flydev> the whole ubuntu 18 is a bloody mess, beyond imagination, all old/legacy stuff are broken, _all_ of them!
[17:17:01 CEST] <friendofafriend> When you did a find on the filesystem, the only x265.pc file you found was in your home directory, nothing in /usr/ someplace?
[17:17:24 CEST] <friendofafriend> If it installed, flydev, it should have thrown that .pc file in /usr/ someplace.
[17:18:45 CEST] <flydev> it threw it in /usr/lib on clean install, still the same, the whole script in the tutorial must be modified to accomudate this, otherwise _no one_ will be able to install it via this script
[17:34:57 CEST] <podman> I've got an mp3 with cover art that's showing up as a mjpeg stream. when i try to convert it to an mp4, i get `Could not find tag for codec h264 in stream #0, codec not currently supported in container`. Any idea how to get this to work?
[17:36:17 CEST] <th3_v0ice> flydev: Try to export the path to the x265.pc file, something like this "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig"
[17:40:05 CEST] <flydev> Tried, this breaks everything telling me aom is missing, etc.
[18:48:02 CEST] <kubast2> what's the best lossless video format? I tried out h264 ,ffv1 ,vp9 ,hevc(3 different profiles) with some time consuming options enabled(outside of ffv1 when I let the defaults go)
[18:49:09 CEST] <kubast2> 1.FFV1 was the fastest one on pair with hevc. 2.H264 was the most space efficient one and right behind it was vp9. 3.HEVC on 2 different profiles ,one produced a fairlly defective video that was 2MB smaller than h264 one and the other that was a size of FFV1.
[18:49:23 CEST] <kubast2> that was on small resolution though
[18:50:33 CEST] <john3voltas[m]> Hey there. Wonder if someone could give me a hand with a problem. I have a couple of audio files supposedly g729a (mediainfo) that I can't play/convert with ffmpeg.
[18:52:50 CEST] <john3voltas[m]> this is what I get.
[18:52:52 CEST] <john3voltas[m]> https://pastebin.com/Vmbw3nTb
[18:52:58 CEST] <DHE> kubast2: there's also a ffvyuv, a variant of huffyuv
[18:53:15 CEST] <john3voltas[m]> My PC is running windows 7
[18:53:43 CEST] <durandal_1707> john3voltas[m]: that is prahistoric ffmpeg
[18:54:45 CEST] <john3voltas[m]> well...I guess I can download one of the latest builds and try. Give me a couple of minutes. brb
[18:55:13 CEST] <durandal_1707> anyway, if that is g729a its not supported
[18:56:02 CEST] <john3voltas[m]> durandal_1707: the way I understand it, ffmpeg supports reading of g729
[18:56:17 CEST] <john3voltas[m]> it doesn't support encoding to g729
[18:57:43 CEST] <durandal_1707> g729a != g729
[18:59:16 CEST] <john3voltas[m]> hmmm, I see....
[18:59:34 CEST] <john3voltas[m]> durandal_1707: this is what I get from MediaInfo: https://pastebin.com/05durJde
[18:59:49 CEST] <john3voltas[m]> apparently it is g729a
[19:00:30 CEST] <john3voltas[m]> I would assume g729a even because this comes from an Avaya product and Avaya doesn't work with g729, only g729a
[19:01:28 CEST] <john3voltas[m]> if ffmpeg, the swiss army knife of the converters doesn't support g729a, what could i use instead...?
[19:04:12 CEST] <durandal_1707> perhaps this http://www.linphone.org/technical-corner/bcg729/overview
[19:08:39 CEST] <john3voltas[m]> durandal_1707: cool. Is it me or there is no binary for that? only source code?
[19:10:41 CEST] <durandal_1707> only source
[19:11:11 CEST] <john3voltas[m]> argh 😞
[19:12:59 CEST] <durandal_1707> or this http://asterisk.hosting.lv/#bin ?
[19:14:05 CEST] <durandal_1707> could you report this on trac and upload sample somewhere?
[19:14:38 CEST] <john3voltas[m]> sure. will do
[19:15:56 CEST] <john3voltas[m]> i mean, not right away because these tracks are propriety of my customers. will have to encode a couple using their pbx system and post them on trac in a couple of days time.
[19:16:05 CEST] <john3voltas[m]> thanks for the headsup
[19:16:13 CEST] <Hello71> DHE: isn't it called ffvbuff
[19:16:16 CEST] <Hello71> huff
[19:16:18 CEST] <Hello71> fuck
[19:16:30 CEST] <DHE> yes, you're right...
[19:47:24 CEST] <servolk> hi, I'm trying to build ffmpeg on Linux using the instructions at https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu and ran into two small issues
[19:48:01 CEST] <servolk> 1. there is a small mistake in libx265 build steps:
[19:48:11 CEST] <servolk> ... if cd x265 2> /dev/null; then hg pull && hg update; else hg clone https://bitbucket.org/multicoreware/x265; fi && \
[19:48:11 CEST] <servolk> cd x265/build/linux
[19:49:20 CEST] <servolk> I believe we need to add "&& cd .." after "hg pull && hg update". Otherwise, if x265 dir already exists, the script will and up with current dir x265 after hg update, and then the subsequent "cd x265/build/linux" fails
[19:49:29 CEST] <servolk> can somebody here edit the wiki?
[20:37:33 CEST] <NovemberGreeting> Hello people... Fresh member here
[20:39:17 CEST] <NovemberGreeting> Is there anyway to use ffmpeg to take input from webcam and encoding the stream with x265 then stream it over http to client use uses an hevc supported player?
[20:40:04 CEST] <NovemberGreeting> ***client who uses....
[20:47:12 CEST] <poldon> Hi. I have fixed some issues with the doc/examples/transcoding.c example. Should I send a patch somewhere?
[20:50:59 CEST] <durandal_1707> poldon: yes to ffmpeg-devel mailing list
[20:57:15 CEST] <th3_v0ice> Is there a way to specify the bistream to be annexb and not avcc. The problem is that extradata is not populated and stream cannot be decoded. Using the API.
[21:01:18 CEST] <poldon> Yeah, I just read that also.
[21:03:14 CEST] <poldon> Another question... I've tried using that example to use the movie and overlay filters. If I use ffmpeg from the command line, it works, but if I add it to transcoding.c, the overlay'ed video displays at the wrong frame rate (about 1/2 speed).
[21:06:06 CEST] <durandal_1707> poldon: needs more info to help you, transcoding.c is very basic demo
[21:14:31 CEST] <Yukkuri> hi, is there any solutions to stream rtmp continiously and re-stream some video data only when received?
[21:14:43 CEST] <Yukkuri> i recon there was ffserver, but it is gone
[21:15:28 CEST] <Yukkuri> i'd like something similiar, indefinently streaming empty black screen and also capable of receiving some video/audio data and then re-streaming it
[21:15:36 CEST] <Yukkuri> but when input is gone -- back to black screen again
[21:15:49 CEST] <Yukkuri> without terminating rtmp connection
[21:16:15 CEST] <Mavrik> That's done by a streaming server
[21:16:34 CEST] <Mavrik> The pro ones like Wowza can do that easily, no idea if there's any free that can do what you want
[21:18:19 CEST] <Yukkuri> okay, maybe some localhost solutions? something like OBS capable of pausing and changing the playback or GUI VLC with RTMP support would also do
[21:22:47 CEST] <poldon> OK, I'll put some code together so you can see my issue.
[21:30:58 CEST] <john3voltas[m]> durandal_1707: interesting. regarding the g729a issue, i was able to successfully convert using this "C:\ffmpeg>ffmpeg.exe -acodec g729 -i C:\ffmpeg\test1.wav -acodec pcm_s16le -f wav C:\ffmpeg\converted-test1.wav"
[21:31:19 CEST] <john3voltas[m]> no errors and it did reencode the track
[21:32:33 CEST] <john3voltas[m]> so, either g729 is very very similar to g729a and in some cases it works, or there's something that i am not following properly on the command line.
[21:35:16 CEST] <durandal_1707> john3voltas[m]: same file? with latest ffmpeg?
[21:48:11 CEST] <john3voltas[m]> durandal_1707: yep, same 4 files
[21:48:12 CEST] <john3voltas[m]> same ffmpeg
[22:06:12 CEST] <sangy> Hi, I'm trying to make a a video in which a series of images start stacking on top of each other (like a photograph stack effect) using ffmpeg and the fade-in effect. I''m using this script (https://ptpb.pw/hcQr/bash) but once an image is faded in the previous one disappears...
[22:08:03 CEST] <pzich> you need every previous image stacked up at the end?
[22:10:31 CEST] <tdr> looks like your using crossfade, thats what crossfade does: fade the next image in
[22:13:46 CEST] <sangy> pzich: yeah I want it to be at the "bottom" of the new one that's faded in
[22:13:53 CEST] <sangy> bottom as in "behind"
[22:14:16 CEST] <sangy> tdr: I was, although I don't think I'm using crossfade anymore https://ptpb.pw/hcQr/bash#L-52
[22:23:48 CEST] <pzich> sangy: I think your best bet is going to use something like imagemagick to create the stacked versions for you, then crossfade between those.
[22:28:28 CEST] <sangy> pzich: yeah, that's what I was afraid of. Thanks!
[00:00:00 CEST] --- Wed Jul 25 2018
1
0
[02:59:31 CEST] <cone-001> ffmpeg 03Michael Niedermayer 07master:679bfa453f60: avcodec/tscc: Move reading the side data palette before other checks
[02:59:31 CEST] <cone-001> ffmpeg 03Michael Niedermayer 07master:d2015e6b86d7: avcodec/tscc: Do not duplicate images
[02:59:31 CEST] <cone-001> ffmpeg 03Michael Niedermayer 07master:d134b8d85f5e: avcodec/cdgraphics: Clear first frame only once
[20:25:12 CEST] <durandal_1707> JEEB: sorry to bother you again, could you upload one more 'f' variant, but this time when first top left pixels are not black? (for 'g' variant I already have such sample)
[20:26:04 CEST] <JEEB> I'll check if I have any
[22:35:19 CEST] <cone-164> ffmpeg 03Mina 07master:0bb5cd8c4d56: avfilter: Add colorconstancy filter
[22:40:00 CEST] <nicolas17> what's that message from cone?
[22:40:13 CEST] <JEEB> git commit
[22:40:53 CEST] <nicolas17> why do I not see it in the repo? is the public repo synced periodically and it didn't yet?
[22:41:43 CEST] <nicolas17> *now* it's there
[22:50:26 CEST] <JEEB> nicolas17: git.videolan.org?
[22:50:31 CEST] <JEEB> that's the primary repo
[22:50:36 CEST] <JEEB> github is a mirror
[22:50:43 CEST] <nicolas17> http://ffmpeg.org/download.html#get-sources points at git.ffmpeg
[22:51:04 CEST] <JEEB> that is probably a redirect to videolan or something
[22:51:12 CEST] <JEEB> because I sure as hell am not pushing to ffmpeg.org 8)
[00:00:00 CEST] --- Tue Jul 24 2018
1
0
[00:16:24 CEST] <TekuConcept> Would I even need a codec for a raw binary stream (not video or audio)?
[00:27:45 CEST] <DHE> if it's not decodable, then no. but how you handle it is up to you
[00:30:25 CEST] <TekuConcept> Background: I want to de/mux an additional raw stream with my video and audio streams.
[04:07:35 CEST] <Phr33d0m> hello everyone, I'm trying to cut a part from a flac audio like this: `ffmpeg -y -i "$episode-source-audio.flac" -ss $EDSTART -c copy "$episode-source-audio-ED.flac"` and it works, but the -ED.flac file carries the duration of the original file - any ideas?
[15:02:25 CEST] <jonmall> Hi everyone, I am encoding a number of progressive WMVs into an MP4s. There is a small number of files where conversion is failing and I was wondering if anyone can help with pinpointing what is causing the failure. The command used is as follows: `ffmpeg -i input.wmv -c:v libx264 -c:a aac -strict -2 -b:a 32000 -map 0 -preset veryfast output.mp4`. I am using ffmepg version 3.4.2. I have tried using a simple command like `ffmpeg -i inp
[15:02:59 CEST] <jonmall> get the same result, so I don't think it's related to the options being added but maybe I'm missing some options to help with the conversion
[15:04:04 CEST] <jonmall> I have a log of a conversion attempt in a txt file if required. I have also attempted the conversion using -ignore_unkown and -err_detect ignore_err but still the same result
[15:08:40 CEST] <DHE> yes, please pastebin one such example including full commandline for invocation and full output including errors.
[15:08:53 CEST] <DHE> if there's any private information you can 'XXXX' over it, but don't remove anything
[15:12:28 CEST] <jonmall> Ok I've created a pastebin entry with the log: https://pastebin.com/F5zKVbmE
[15:14:06 CEST] <jonmall> This is the command `ffmpeg -y -i XXX.wmv -err_detect ignore_err -c:v libx264 -c:a aac -strict -2 -b:a 32000 -map 0 -preset veryfast test.mp4 2> log1.txt `
[15:22:08 CEST] <anill> Hi ffmpeg developers, i need a small help , this post https://pastebin.com/04nqwLMZ contain the ffmpeg that i run to stitch 2 mp4 files into single a single mp4 file and also the output that i get on command prompt.
[15:22:45 CEST] <anill> What i need is i should only get the output on command prompt if its error, i mean if ffmpeg is not able to stitch videos.
[15:25:03 CEST] <jonmall> Updated the pastebin content to include the command https://pastebin.com/qe33mQvw
[15:31:27 CEST] <Blacker47> jonmall, your input has 3 video streams and if i see it right ffmpeg is complaining about the last two (0:6 and 0:9). not sure if it is because the format of the streams or because it wan't create output with multiple video streams. you maybe need anyway only one?
[15:34:07 CEST] <Blacker47> jonmall, if you need multiple videostreams you maybe need another container or the map command must look different. also "Error while decoding stream #0:9: Operation not permitted" could mean, there is DRM in that stream.
[15:38:36 CEST] <Blacker47> also i see a few errors more in the output. sounds like the file is partially damaged.
[15:39:06 CEST] <Blacker47> but don't relly on my answers, i'm relatively new to ffmpeg.
[15:39:07 CEST] <jonmall> so we use -map 0 so it maps all of them into the progressive MP4, we then convert it to a fragmented MP4 for streaming. It's worked fine for other WMVs with multiple video streams. I think the issue is probably related to one of the audio streams.
[15:39:28 CEST] <jonmall> check line 165 in the second link
[15:39:39 CEST] <jonmall> 695*
[15:39:57 CEST] <jonmall> [aac @ 0x7fa65102f400] Input contains (near) NaN/+-Inf Audio encoding failed
[15:40:32 CEST] <jonmall> Yes we believe the file might be partially damaged, I was trying to find a way if the damaged parts can be skipped.
[15:40:49 CEST] <Blacker47> yes it the last error and i thing it leading to encoding stop..
[15:41:18 CEST] <Blacker47> but i don't see that audio-stream is affected.
[15:42:40 CEST] <jonmall> let me attempt on a file that I know is working and check whether I see any operation not permitted on the video streams.
[15:43:37 CEST] <Blacker47> maybe you could try extract audio-streams one by one to let say waves and see if it works and if not if you can force the extract or repair with other tools (e.g. after raw-extract).
[15:46:58 CEST] <jonmall> ok so still seeing the operation not permitted message for working content. So that doesn't seem top stop the encoding process
[15:47:41 CEST] <jonmall> I'll try and extract each stream separately and see which one fails.
[16:00:30 CEST] <th3_v0ice> Why am I getting this message while generating the rtmp stream: "Could not find codec parameters for stream 1 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
[16:00:30 CEST] <th3_v0ice> Consider increasing the value for the 'analyzeduration' and 'probesize' options". What options should i change for this to work. I am using the API.
[16:01:00 CEST] Last message repeated 1 time(s).
[16:01:22 CEST] <th3_v0ice> Sorry for double posting.
[16:12:49 CEST] <DHE> probing works by actually decoding a few frames of the stream with some limitations. like it said, it doesn't know what the parameters for the stream are because it didn't get the necessary data within the limits
[16:14:53 CEST] <th3_v0ice> DHE: Ok, thanks, but where can i set the analyzeduration and probesize?
[16:15:15 CEST] <th3_v0ice> Are they located in the AVCodecContext or AVStream?
[16:16:00 CEST] <DHE> this is you calling avformat_find_stream_info()
[16:16:08 CEST] <DHE> they're options for this function
[16:17:38 CEST] <DHE> so... I guess AVFormatContext fields...
[16:19:25 CEST] <th3_v0ice> DHE: I am streaming to twitch and twitch is not showing any picture so I am capturing the stream with streamlink and piping the output to ffmpeg, which is showing the error message. So I am not setting something correctly in AVFormatContext or AVStream or AVCodecParameters because I am not using AVCodecContext. The question is what?
[16:34:55 CEST] <th3_v0ice> And for some reason AVStream->AVCodecContext is never initialized but AVCodecParametes is. Is this expected behaviour?
[16:39:01 CEST] <DHE> the newest version of ffmpeg doesn't use AVCodecContext anymore. the container only requires data from AVCodecParameters. you should not use the AVCodecContext inside any AVStreams anymore
[16:40:34 CEST] <th3_v0ice> Ok, I am using FFmpeg 4.0.
[16:58:50 CEST] <thinkpad2000> Hi, I have an opencv webcam capture and want to stream it over http. how to approach this?
[17:03:51 CEST] <Cracki> everyone: ignore the opencv part until it actually involves opencv
[17:07:46 CEST] <Cracki> what are your requirements to quality and quantity?
[17:07:58 CEST] <Cracki> resolution, frame rate, data rate, latency,
[17:08:06 CEST] <Cracki> how many receivers
[17:08:11 CEST] <Cracki> how many video sources (one?)
[17:08:47 CEST] <Cracki> what video streaming servers have you found on the internet already?
[17:11:16 CEST] <bencoh> .41
[17:11:27 CEST] <Cracki> you don't say
[17:11:39 CEST] <bencoh> woops, nevermind :)
[17:13:27 CEST] <thinkpad2000> Cracki, can i use something like https://github.com/yhirose/cpp-httplib
[17:27:54 CEST] <Cracki> I don't know, can you?
[17:28:07 CEST] <Cracki> use ready-made software, don't reinvent
[17:28:19 CEST] <Cracki> starting from HTTP is still a lot of pointless work
[17:30:31 CEST] <Hello71> just use machine learning to do the streaming
[17:30:32 CEST] <Hello71> lol
[17:32:56 CEST] <bruce-> +1 helpful
[17:33:04 CEST] <Mavrik> O.o
[17:33:35 CEST] <Cracki> tldr: use nginx with some HLS module
[17:33:42 CEST] <Cracki> latency <5 sec possible
[17:34:24 CEST] <Cracki> looks like the rtmp module does hls
[17:35:14 CEST] <Cracki> also this http://nginx.org/en/docs/http/ngx_http_hls_module.html
[17:36:24 CEST] <Mavrik> Yeah, nginx-rtmp-module is rather nice for simple streaming
[17:37:14 CEST] <Cracki> it ingests data from ffmpeg. I think the "commerical subscription" nginx-hls module might not.
[17:37:31 CEST] <Cracki> cba to look it up
[17:39:07 CEST] <Cracki> nvm, the rtmp module opens a listening port where you can stream your video to (ffmpeg can do it, vlc prolly too)
[17:39:49 CEST] <Cracki> https://docs.peer5.com/guides/setting-up-hls-live-streaming-server-using-ng…
[18:02:09 CEST] <monty_> ffmpeg -i elks1807.m3u8 hey.mp3
[18:02:22 CEST] <monty_> ffmpeg version N-91492-g9cb3d8fcb7-tessus Copyright (c) 2000-2018 the FFmpeg developers built with Apple LLVM version 9.1.0 (clang-902.0.39.2) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopen
[18:03:11 CEST] <monty_> oh sorry I see I should paste it https://pastebin.com/9Z3Sn7Rw
[18:03:37 CEST] <monty_> I'm trying to take my .m3u8 playlist and convert all the pieces into one mp3 file
[18:05:21 CEST] <monty_> will I really need to follow https://trac.ffmpeg.org/wiki/Concatenate#differentcodec and create a huge command line representing all the files in my playlist?
[18:07:00 CEST] <Cracki> did you try this? $ ffmpeg -i foo.m3u8 -c copy foo.mp3
[18:07:14 CEST] <Cracki> maybe ffmpeg knows what to do with playlists
[18:07:31 CEST] <Cracki> this indicates that it does https://gist.github.com/tzmartin/fb1f4a8e95ef5fb79596bd4719671b5d
[18:10:10 CEST] <ariyasu> monty_ could you paste your m3u8 to paste bin
[18:10:32 CEST] <ariyasu> it's possible you need to edit it, so the .ts segments point to the remote.ts segments
[18:11:29 CEST] <Cracki> monty_, look at youtube-dl, might solve your problem as-is
[18:14:20 CEST] <monty_> heres the playlist https://pastebin.com/jP1e3zZd
[18:15:02 CEST] <ariyasu> ok so yeah thats not gonna work
[18:15:33 CEST] <ariyasu> there are multiple mp3 files in the m3u8, and there is no path/url to them
[18:16:11 CEST] <monty_> well, the path is in the filename like Kyle/Traditional/Orquestra Tipica Victor OTV/OTV_Ventarron.mp3
[18:16:30 CEST] <ariyasu> if you downloaded your m3u8 from http://example.com/playlist.m3u8 you would need to edit the url infront of every item in the m3u8
[18:16:34 CEST] <monty_> the m3u8 playlist plays with players like VLC or foobar2000
[18:16:57 CEST] <ariyasu> do you have the files locally in a folder along with the m3u8?
[18:17:07 CEST] <monty_> ah yes the files are all local
[18:17:17 CEST] <monty_> and subfolders of the folder the playlist is in
[18:17:21 CEST] <ariyasu> ok
[18:17:40 CEST] <ariyasu> then you want to merge them all into one big mp3?
[18:18:01 CEST] <ariyasu> your better doing concat with ffmpeg
[18:18:07 CEST] <ariyasu> copy /b will probably work also
[18:18:27 CEST] <monty_> yes, I would like one big mp3
[18:18:42 CEST] <ariyasu> https://trac.ffmpeg.org/wiki/Concatenate
[18:19:11 CEST] <monty_> ok, so basically write a little script to turn the playlist into a long list of arguments to ffmpeg
[18:19:15 CEST] <ariyasu> https://en.wikipedia.org/wiki/Copy_(command)
[18:19:22 CEST] <ariyasu> yes
[18:19:57 CEST] <ariyasu> you can do it with "dir /b" command to get a list of items
[18:20:04 CEST] <ariyasu> then give that list to ffmpeg to concat
[18:20:54 CEST] <monty_> ffmpeg -i tandas.m3u8 -c copy hey.mp3 gave the same error "tandas.m3u8: Invalid data found when processing input"
[18:22:50 CEST] <monty_> copy /b probably won't work since some files are m4a not mp3
[18:23:30 CEST] <monty_> thanks, I'll write a little script to construct the concat commands I need
[18:23:59 CEST] <Hello71> ffmpeg doesn't support playlists
[18:24:01 CEST] <Hello71> *shrug*
[18:26:10 CEST] <BtbN> Well, it kind of does for HLS
[18:26:33 CEST] <Cracki> monty's gone :/
[18:26:51 CEST] <Cracki> well, perl/awk parsing a m3u8 and generating a file list isn't much trouble
[18:27:12 CEST] <Cracki> and with <(...), doesn't leave tempfiles either
[18:28:03 CEST] <Cracki> C:\> copy /B
[18:28:15 CEST] <Cracki> I wish I hadn't seen that
[18:32:02 CEST] <Hello71> I guess
[19:06:30 CEST] <mont3z> I was able to make the RTP/HEVC demuxer using custom IO work but I had to comment out a call to ff_rtp_check_and_send_back_rr. I don't want to send back any RR because I'm just using a custom IO. Is there a way to disable RR?
[21:13:39 CEST] <TekuConcept> AVStream is freed when freeing AVFormatContext correct? I don't call 'av_free' directly on an AVStream
[21:14:26 CEST] <JEEB> I'd think so yes
[21:14:44 CEST] <DHE> normally you don't av_malloc an AVStream in the first place anyway
[21:15:07 CEST] <TekuConcept> no no no, avformat_new_stream
[21:15:32 CEST] <TekuConcept> (sorry for the confusion)
[22:19:02 CEST] <benergy> Hey guys, I have no idea whether this is the right place to ask, but hopefully it is. I use Natron and I encounter lags/stutter/artefacts on rendering. I was wondering whether this may be related to the ffmpeg library and I could get some help here?
[22:22:03 CEST] <Cracki> wat is natron
[22:22:07 CEST] <Cracki> is that a chemical?
[22:22:30 CEST] <benergy> Cracki: That as well, but in my case, it's a node based compositing software.
[22:23:03 CEST] <Cracki> node as in nodejs, or node as in tree/graph?
[22:23:15 CEST] <benergy> Tree/Graph-
[22:23:36 CEST] <Cracki> and how could that be ffmpeg's fault?
[22:26:50 CEST] <benergy> I've been trying to wrap my head around that. Ffmpeg is working in the background to decode the source files. It seems as though the reading process is flawed, because when I render out a project, the result contains lags and sometimes artefacts.
[22:26:53 CEST] <Hello71> obviously ffmpeg = rendering
[22:28:29 CEST] <benergy> Hello71: Natron displays differend ffmpeg libraries in the reader node (libavformat, libavcodec, libavtil, libswscale), so I thought that maybe I could follow that clue...
[22:28:37 CEST] <benergy> *different
[22:32:00 CEST] <Cracki> show a screenshot or soemthing
[22:32:05 CEST] <Cracki> don't explain, show
[22:32:23 CEST] <Cracki> and figure out how to submit a bug report to whoever made this "natron"
[22:34:17 CEST] <Cracki> >Natron is named after Lake Natron in Tanzania which, according to Natron lead programmer Alexandre Gauthier provides "natural visual effects" by preserving its dead animals.
[22:35:13 CEST] <benergy> Cracki: That I didn't know
[22:35:30 CEST] <Cracki> they have a web forum, but no irc channel? heresy!
[22:36:11 CEST] <benergy> Cracki: They do, but it's a very poorly maintained piece of software, they seemingly only have one dev right now
[22:36:49 CEST] <Cracki> i see no reason to believe there ever was anyone other than the initial developer
[22:37:13 CEST] <benergy> https://natron.fr/team/
[22:37:25 CEST] <Cracki> very likely the thing messes up some synchronization of buffers
[22:37:35 CEST] <Cracki> you still haven't shown us what the bug looks like
[22:38:17 CEST] <benergy> Well, it's hard to show in a screenshot. The playback just stutters, meaning it freezes for a split second and then skips a few frames.
[22:38:34 CEST] <Cracki> is that all?
[22:38:49 CEST] <Cracki> what about the artefacts you mentioned?
[22:39:36 CEST] <benergy> Under some circumstances it was accompanied by blocky artefacts, yes. I'll try to reproduce and post the image shortly.
[22:39:39 CEST] <benergy> But I already suspected it's not in the library, but how Natron handles it.
[22:40:01 CEST] <Cracki> source footage resolution, frame rate, bit rate?
[22:40:12 CEST] <Cracki> how many cpu cores are used?
[22:42:55 CEST] <benergy> The source file is a 25fps 3840x2160 mp4 file, 73018 kb/s. I have an i7-7700 CPU, and I believe all four cores were used.
[22:43:25 CEST] <Cracki> then there was no hardware decoding used
[22:43:34 CEST] <Cracki> and your cpu seems overwhelmed
[22:44:19 CEST] <Cracki> 4 cores? does that thing not have hyperthreading?
[22:44:28 CEST] <Cracki> did you disable that?
[22:44:35 CEST] <Cracki> if so, why?
[22:44:48 CEST] <Cracki> what codec?
[22:44:51 CEST] <Cracki> mp4 is just a container
[22:45:08 CEST] <benergy> Yes, it does, and no, it was on. I meant to say that all 8 virtual cores were working.
[22:45:52 CEST] <benergy> The codec was h264.
[22:46:02 CEST] <Cracki> figure out how to use hw for decoding
[22:46:14 CEST] <Cracki> likely intel's qsv is possible
[22:46:36 CEST] <benergy> I also have two graphics cards available.
[22:47:39 CEST] <Cracki> what you saw is the decoding going too slow, so it drops frames, or skips some postprocessing steps
[22:47:53 CEST] <benergy> The whole issue got a little better when I set "render in a separate process", yet I'm still looking for an option to tell the software that it can take however much time it needs with each frame, so the the end result is not affected.
[22:48:06 CEST] <Cracki> consider this a bug of "natron". they should have figured out how to hw-decode h.264
[22:48:06 CEST] <benergy> Cracki: That seems exactly right.
[22:48:24 CEST] <Cracki> is that program for real time only?
[22:48:27 CEST] <Cracki> what does it even do?
[22:50:27 CEST] <benergy> It's for visual effects and compositing, somewhat like After Effects. It allows a decent realtime preview, but I had hoped it wouldn't render every little frame drop into the end result.
[22:50:57 CEST] <Cracki> >end result
[22:51:18 CEST] <Cracki> does this software not distinguish between realtime playback and "rendering"?
[22:53:11 CEST] <benergy> Yes, it does. You set up your node tree and when you're done, you can forward the output to a "write node", thus writing it to the hard drive. Using my SSD instead of HDD also improved the performance, but it seems the program doesn't handle the render process right.
[22:53:58 CEST] <benergy> Do graphics cards also do hardware-decoding? Maybe I can get them to do the work
[22:54:39 CEST] <Cracki> of course they do
[22:54:44 CEST] <Cracki> that's why I recommended it
[22:55:12 CEST] <Cracki> intel processors even include hardware decoders
[22:55:32 CEST] <Cracki> (the xeons maybe not, they don't have intel graphics, but the desktop ones)
[22:57:47 CEST] <benergy> Cracki: Thanks a lot. I guess I'll need to contact the dev on this one, maybe there's a way to reconfigure the program in order to speed up the pipeline
[22:58:11 CEST] <Cracki> there is. they just need to choose the right decoder
[22:58:33 CEST] <Cracki> automatic choice is unlikely to pick a hardware decoder
[22:59:09 CEST] <Cracki> and they must fix the decoding complexity reduction
[22:59:19 CEST] <Cracki> for live preview, that's ok, but not for rendering to file
[23:11:39 CEST] <benergy> Cracki: Thanks again! That was really helpful!
[23:16:55 CEST] <TekuConcept> Trying to create a raw (non-video/audio) AVFrame. May I share a pastebin link here and see if I'm on the right track?
[23:26:49 CEST] <TekuConcept> https://pastebin.com/Ja5Y2R9h - Based on code in libavutil/frame.c; I'm just not sure which variables are pertinent to my needs.
[23:30:48 CEST] <Mavrik> TekuConcept, you should really use av_frame_get_buffer()
[23:32:39 CEST] <Mavrik> Tachyon, basically set format, width and height and then call av_frame_get_buffer to get all other structures properly initialized
[23:33:09 CEST] <TekuConcept> Mavrik
[23:33:09 CEST] Last message repeated 1 time(s).
[23:33:09 CEST] <TekuConcept> Mavrik, av_frame_get_buffer() is for audio and video frames. I need a frame for raw non-audio non video data
[23:33:29 CEST] <TekuConcept> (sorry about that - kiwiirc)
[23:34:05 CEST] <Mavrik> ah.
[23:34:16 CEST] <Mavrik> TekuConcept, look at what the get_buffer things do for video/audio and follow it: https://www.ffmpeg.org/doxygen/3.4/frame_8c_source.html#l00172
[23:34:28 CEST] <Mavrik> (with modifications you need of course)
[23:35:51 CEST] <TekuConcept> right, I followed get_audio_buffer() since it was the closest thing to what I needed. The pastebin I shared is the result. Just want to double check.
[23:38:30 CEST] <Mavrik> I'd say extended_data should probably be NULL
[23:38:53 CEST] <Mavrik> No idea why get_audio_buffer sets it to the data pointer O.o
[23:39:11 CEST] <Mavrik> ohh
[23:39:14 CEST] <Mavrik> Ok.
[23:39:18 CEST] <Mavrik> TekuConcept, looks fine yeah :)
[23:40:08 CEST] <TekuConcept> Awesome; Guess the next step is to actually see if my data de/muxes between devices.
[23:40:14 CEST] <TekuConcept> Thank you!
[23:47:26 CEST] <poutine> Hello I work at a company that uses ffmpeg for transcoding. I am launching virtual containers to do transcoding, and wondered if there is a point where scaling up virtual resources stop mattering as much for h264/aac transcoding
[23:53:05 CEST] <Cracki> what specifically are you asking
[23:53:26 CEST] <Cracki> have you done any measurements?
[23:55:12 CEST] <poutine> Cracki, I have not done any benchmarking or anything, was hoping for just anecdotal advice
[23:56:39 CEST] <Cracki> there's amdahl's law, which you need to be aware of if you deal with parallel computing at all
[23:57:38 CEST] <Cracki> there's the tradeoff between batch processing (throughput over latency) vs "realtime" (latency over throughput)
[23:57:45 CEST] <poutine> Ah nice, I was not aware of that Cracki
[23:57:49 CEST] <Cracki> just basics
[23:57:57 CEST] <Cracki> you're asking too generally
[23:58:04 CEST] <Cracki> get some numbers.
[23:58:33 CEST] <poutine> I think you're right, I think I need to do some testing of my own, and figure out that slider for cost <-> quickness and any other bottlenecks I might run into
[23:58:45 CEST] <Cracki> if you make money with transcoding video, you should
[23:59:41 CEST] <Cracki> the extremes would be:
[23:59:53 CEST] <Cracki> 32 concurrent 1-thread encodes
[23:59:58 CEST] <Cracki> 1 encode using 32 threads
[00:00:00 CEST] --- Tue Jul 24 2018
1
0
[10:34:03 CEST] <cone-625> ffmpeg 03Paul B Mahol 07master:251329fa76c0: avformat/bink: move code for skipping unknown fields to correct place
[10:34:03 CEST] <cone-625> ffmpeg 03Paul B Mahol 07master:1b0922584e46: avcodec/bink: add 'k' version support
[10:34:03 CEST] <cone-625> ffmpeg 03Paul B Mahol 07master:3237f018fd0e: avcodec/bink: set color range
[19:12:53 CEST] <BtbN> There definitely is something wrong with rtmp -> rtmp restreaming in 4.0 and master. 3.4 is happily running for 20 hours now. While the longest I managed with 4.0 was 3h until it just froze with 100% load on one CPU.
[19:13:24 CEST] <BtbN> It happens with both enable/disable librtmp in the same way
[19:13:49 CEST] <JEEB> 1) check if it's the zero != eof stuff 2) start checking with strace or something
[20:22:42 CEST] <durandal_1707> why nobody wants to pay me to work on FFmpeg?
[20:27:39 CEST] <JEEB> durandal_1707: I think you already got offers
[20:27:50 CEST] <JEEB> so you might want to reword that "something you want to work on"
[20:54:20 CEST] <durandal_1707> JEEB: i want to do codecs, but nobody cares!
[20:54:39 CEST] <JEEB> I want to do fun stuff too! but time/motivation/etc
[20:54:42 CEST] <JEEB> :/
[20:56:37 CEST] <durandal_1707> JEEB: why you have so many Bink2 games? Do you manage to play each of them to the end?
[20:56:50 CEST] <JEEB> of course not
[20:56:53 CEST] <JEEB> same thing with playing games
[20:57:15 CEST] <JEEB> the thing I most recently got the furthest is Nier: Automata I think
[20:57:18 CEST] <JEEB> which is..
[20:57:31 CEST] <JEEB> 31 hours
[20:57:36 CEST] <JEEB> and that was just the first story
[20:57:44 CEST] <JEEB> I need to still go through at least two
[20:57:54 CEST] <JEEB> then I have MGS V still waiting for me to finish it
[20:58:07 CEST] <JEEB> 40 hours put into that and I think I just got to the African missions
[20:59:20 CEST] <nicolas17> how do you go about reversing a codec?
[20:59:25 CEST] <nicolas17> disassembling the decoder?
[20:59:29 CEST] <JEEB> basically yea
[20:59:50 CEST] <JEEB> if it has a library you look at the exported symbols
[21:00:02 CEST] <JEEB> see where the decoding-like things seem to be
[21:00:03 CEST] <JEEB> etc
[21:00:32 CEST] <durandal_1707> nicolas17: you basically steal their codebase
[21:00:42 CEST] <nicolas17> there's one I'd like to reverse^W trick someone into reversing for me
[21:01:15 CEST] <durandal_1707> name?
[21:01:30 CEST] <nicolas17> but it's for MS-DOS ("lol what's a library") and I think compressed with an executable packer
[21:02:53 CEST] <JEEB> game stuff?
[21:03:53 CEST] <nicolas17> I don't know what the codec is called, it's used by several Knowledge Adventure MS-DOS games/edutainment like 3D Dinosaur Adventure
[21:05:27 CEST] <atomnuker> wasn't the main issue with bink2 that it had a million variants?
[21:07:31 CEST] <JEEB> yea it has a-k I think?
[21:07:53 CEST] <JEEB> oh wow
[21:08:08 CEST] <JEEB> I forgot completely that I at some point had opened this url https://github.com/drdaxxy/bink2-libass
[21:08:29 CEST] <nicolas17> wow
[21:08:43 CEST] Action: nicolas17 downloads a KA game from archive.org
[21:08:56 CEST] <JEEB> atomnuker: it seems like the newest variant I've seen is J
[21:08:58 CEST] <JEEB> for bink2
[21:11:00 CEST] <durandal_1707> there is bink2 hdr
[21:11:17 CEST] <nicolas17> oh KADEMO is on archive.org too
[21:14:46 CEST] <nicolas17> hmm this isn't the demo I knew of... one of the CDs came with a non-playable demo of several other games, and it was a .bat file running a standalone video player
[21:16:32 CEST] <nicolas17> https://archive.org/details/KADEMO while this one is a demo.exe
[22:01:35 CEST] <klaxa> after much too long, first successful tests with libmicrohttpd replacing the lavformat http server \o/
[22:09:36 CEST] <atomnuker> nice
[00:00:00 CEST] --- Mon Jul 23 2018
1
0
[00:39:11 CEST] <cc0> hello, i'm trying to trim a video clip to only get the first half of it. so i want to do a trim filter but the trim duration must be stream_length/2. is there a variable for the length of the stream or do i need to precompute it and insert it into an ffmpeg command with a shell script
[00:49:42 CEST] <BtbN> There is no reliable way to get the duration other than going over the whole thing. So some pre-computation is required
[00:54:57 CEST] <furq> you can pull it from the container's duration field with ffprobe
[00:55:13 CEST] <furq> but the actual stream generally has no business knowing that
[00:55:39 CEST] <furq> also obviously this is assuming you trust that the stream is close enough to being the longest one in the container
[00:55:50 CEST] <furq> but it normally is
[02:36:04 CEST] <Shibe> what might EAGAIN mean for avcodec_receive_packet?
[02:36:11 CEST] <Shibe> could it possibly mean that the encoder isnt intialized properly?
[02:36:58 CEST] <cc0> thanks
[03:17:15 CEST] <DHE> Shibe: it means the encoder wants more input first
[03:17:26 CEST] <DHE> encoders don't necessarily guarantee a one in, one out pattern
[03:23:55 CEST] <SpeakerToMeat> If I have 2 streams with mono audio channels and I want a single stream out with a stereo channel, is there no way to do this without reencoding? other than outputing the two channels via stream copy to separate files, merging them with sox and using that as an input?
[03:26:30 CEST] <furq> uh
[03:26:36 CEST] <furq> that would still involve reencoding
[03:29:57 CEST] <SpeakerToMeat> hm
[03:31:21 CEST] <DHE> unless there's some codec-specific app that supports it, but no ffmpeg can't do that
[03:31:29 CEST] <SpeakerToMeat> nod
[03:31:46 CEST] <SpeakerToMeat> Is there any shortcut to tell ffmpeg "use the same audio codec as the source while doing this"?
[03:31:52 CEST] <furq> i don't know of any lossy codec that'll let you do that
[03:31:56 CEST] <furq> and no there isn't
[03:32:12 CEST] <SpeakerToMeat> Btw the source codec is lossless.
[03:32:14 CEST] <SpeakerToMeat> pcm
[03:32:33 CEST] <furq> oh
[03:32:43 CEST] <furq> well it's not really reencoding then
[03:32:58 CEST] <furq> there probably is a way to do that with pcm but who cares
[03:33:00 CEST] <furq> it'll come out the same either way
[03:33:38 CEST] <SpeakerToMeat> Yeah
[04:17:20 CEST] <SpeakerToMeat> I wonder where... Jean-Baptiste found the fourcc xd5b for XDCAM HD422 1080i60 50Mb/s
[04:17:27 CEST] <SpeakerToMeat> I can't find it in any basy online :/
[04:17:35 CEST] <SpeakerToMeat> Yet, mediainfo seems to concur
[04:32:12 CEST] <SpeakerToMeat> I also wonder how whoever implemented mxf support on ff didn't go insane.
[04:32:27 CEST] <SpeakerToMeat> The only thing that'd scare me to implement as much as mxf is probably dicom
[07:52:43 CEST] <boblamont> what's "unsafe" about '/home/path/to/files/01_0_song-stereo.mp3'?
[09:22:19 CEST] <TekuConcept> ffmpeg 4.0: What is the replacement for AVCodecContext::gop_size? AVCodecParameters does not seem to hold something similar.
[10:27:15 CEST] <th3_v0ice> There is still a field gop_size in AVCodecContext.
[10:34:28 CEST] <Wuzzy> hey. i've seen AVCodec->codec is deprecated and must be replaced by AVCodec->codecpar
[10:34:59 CEST] <Wuzzy> but i see that codecpar is a different type (AVCodecParameters instead of AVCodecContext)
[10:35:44 CEST] <Wuzzy> so by simply replacing all ->codec with ->codecpar i have not fixed the problem. a ton of code breaks :(
[10:35:58 CEST] <Wuzzy> so .. any instructions on how to move from ->codec to ->codecpar?
[10:36:15 CEST] <Wuzzy> i have looked around but found nothing
[10:37:08 CEST] <Wuzzy> what makes matters difficult is that AVCocecContext and AVCodecParameters have very different structure with different names. and its not obvious to find the "equivalent" fields (if they even exist) :(
[10:37:29 CEST] <Wuzzy> looks like I'm stuck with deprecated code then :(
[10:38:11 CEST] <Wuzzy> oh i am talking of libavcodec, of course.
[10:49:08 CEST] <JEEB> Wuzzy: you can take a look at the transcoding example from doc/examples
[10:50:53 CEST] <JEEB> codecpar is what you use to transfer values from/to libavformat as far as I can see.
[10:51:39 CEST] <JEEB> you still need an avcodeccontext for decoding and encoding, but basically re-use of the stuff you get from libavformat was stopped by that
[10:52:59 CEST] <Wuzzy> yeah. still not sure how to replace that ->codec. documentation says "use ->codecpar" instead but i know its not that simple
[10:53:08 CEST] <Wuzzy> i look at the example now. not sure if it helps...
[10:53:21 CEST] <Wuzzy> thanks anyway
[10:53:44 CEST] <JEEB> avcodec_parameters_to_context and avcodec_parameters_from_context come to mind :P
[10:54:21 CEST] <JEEB> which I could notice from the example without further context
[10:55:12 CEST] <Wuzzy> oh so context and parameters are interchangable? nice
[10:55:35 CEST] <JEEB> not really, it's the view you get into the codec parameters from lavf
[10:56:50 CEST] <JEEB> so when you initialize your decoder based on the video/audio/subtitle format you can then copy various values from the lavf codecpar with the _to_context() thing
[10:57:27 CEST] <JEEB> and when initializing an output stream you can initialize the stream's values with from_context from your encoder context
[10:58:31 CEST] <Wuzzy> mhm
[11:00:55 CEST] <Wuzzy> ah
[11:01:10 CEST] <Wuzzy> from the example it looks like now i am supposed to get the context with avcodec_alloc_context3?
[11:01:38 CEST] <Wuzzy> but this would mean the deprecation comment is wrong... weird
[11:01:41 CEST] <JEEB> yes, the API user is not supposed to be taking an avcodeccontext from the libavformat
[11:01:55 CEST] <JEEB> Wuzzy: I think what got deprecated was the AVCodecContext in libavformat
[11:02:00 CEST] <JEEB> from the external view
[11:02:04 CEST] <JEEB> because people would reuse it
[11:02:24 CEST] <JEEB> while it's not the user's thing, it's a thing that belongs to libavformat
[11:04:00 CEST] <Wuzzy> ??? AVCocecContext is oocumented as a normal struct
[11:04:12 CEST] <Wuzzy> "main external API structure." ???!?!?!!
[11:04:18 CEST] <Wuzzy> https://ffmpeg.org/doxygen/trunk/structAVCodecContext.html
[11:04:26 CEST] <JEEB> that's for AVCodec
[11:04:38 CEST] <JEEB> and of course you need an AVCodecContext for decoding or encoding
[11:05:31 CEST] <JEEB> now the issue that AVCodecParameters fixes is that the internal usage of libavcodec within libavformat was leaking to the API user :P
[11:05:35 CEST] <Wuzzy> i see
[11:05:51 CEST] <JEEB> and people indeed were re-using AVCodecContexts from libavformat streams
[11:06:33 CEST] <JEEB> even though those were owned by libavformat and the API user really didn't have any control on their life time
[11:06:42 CEST] <JEEB> or state
[11:09:12 CEST] <Wuzzy> btw why is there a "3" in "avcodec_alloc_context3"? :D
[11:09:28 CEST] <JEEB> because it's the third version of the function
[11:09:41 CEST] <JEEB> and while things could be renamed back, generally that isn't done
[11:10:08 CEST] <Wuzzy> interesting strategy to deprecate things
[11:10:21 CEST] <JEEB> yes, when your thing gets removed it is just removed
[11:11:07 CEST] <JEEB> but yea, the thing you noticed being deprecated is http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/avformat.h;h=fda…
[11:11:12 CEST] <JEEB> which is specifically the one in AVStream .)
[11:11:35 CEST] <JEEB> AVCodecContext itself, which is part of the API (in avcodec)
[11:11:44 CEST] <JEEB> is not deprecated
[11:12:09 CEST] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=doc/APIchanges;h=efe15ba4e00…
[11:12:28 CEST] <Wuzzy> good to know
[11:12:32 CEST] <JEEB> also this is the document that is supposed to document the API changes
[11:12:55 CEST] <Wuzzy> ha. so replacing the ->codec with avcodec_allow_context3 seemed to work.
[11:13:05 CEST] <Wuzzy> but then i'd say the documentation is clearly wrong
[11:13:33 CEST] <Wuzzy> you cannot just replace all calls of (some AVCodec)->codec with (some AVCodec)->codecpar
[11:14:21 CEST] <JEEB> uhh no, that was specifically for the AVStream AVCodecContext and the comment is in libavformat/avformat.h
[11:15:01 CEST] <Wuzzy> um... oops?
[11:15:24 CEST] <JEEB> basically what it means that for whatever you're trying to use in this AVStream's AVCodecContext, you should be looking at the AVCodecParameters
[11:16:34 CEST] <Wuzzy> :'(
[11:16:45 CEST] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=doc/APIchanges;h=efe15ba4e00…
[11:17:11 CEST] <JEEB> also man
[11:17:19 CEST] <JEEB> the "new" decoding API is now two years old
[11:17:22 CEST] <JEEB> time sure flies :V
[11:17:35 CEST] <Wuzzy> :D
[11:18:00 CEST] <Wuzzy> yeah i am looking at code that is very old indeed
[11:18:21 CEST] <Wuzzy> thats why i decided to dust it off a little ;)
[11:18:40 CEST] <JEEB> but yes, the basic idea is that after you open your lavf context you have yer streams, and you can create your own little AVCodecContexts based on the codec id in codecpar
[11:19:00 CEST] <JEEB> and then feed it any of the data that libavformat had in the codecpar
[11:19:45 CEST] <JEEB> and then the "new" decoding API is documented in https://www.ffmpeg.org/doxygen/trunk/group__lavc__encdec.html
[11:19:57 CEST] <JEEB> I like the concept of separating feeding and receival
[11:20:19 CEST] <Wuzzy> huh? so if i just use the alloc3 function, it's not correct?
[11:22:44 CEST] <JEEB> it is correct, a new initialized avcodeccontext
[11:23:11 CEST] <Wuzzy> hmmm
[11:23:22 CEST] <JEEB> generally people do copy the properties from the avstream's codecpar, though. because some decoders require stuff to be set before they can decode properly
[11:23:24 CEST] <Wuzzy> first allow_context3, then avcodec_parameters_to_context ?
[11:23:29 CEST] <JEEB> which is why all of the examples do that
[11:23:35 CEST] <JEEB> yes
[11:23:41 CEST] <JEEB> that's the general idea
[11:23:47 CEST] <Wuzzy> ah. now everything makes sense
[11:24:23 CEST] <JEEB> although with things where the decoder 100% initializes itself by itself like H.264 in MPEG-TS or AAC/AC-3/MPEG-1 Layer 2 audio
[11:24:28 CEST] <JEEB> that's not really needed
[11:25:00 CEST] <JEEB> but I guess it's good practice because then the decoder's parameters match what the lavf context figured out, if anything
[11:29:00 CEST] <Wuzzy> thanks for the help, i think i now know how to proceed
[11:35:17 CEST] <JEEB> np
[13:17:50 CEST] <squirrel> i want to convert all audio tracks in an mkv to mp3; i do ffmpeg -i file.mkv -acodec mp3 -vcodec copy out.mkv, this works but somehow the first audio track is gone
[13:18:37 CEST] <squirrel> why does this happen?
[15:31:53 CEST] <DHE> squirrel: you'll have to do some minimal scripting to identify files with multiple audio tracks and output to multiple .mp3 files. ffmpeg by itself without further information can only process 1 audio track to MP3
[15:33:14 CEST] <DHE> though it mainly just comes down to counting them and substituting a number into the commandline
[15:35:43 CEST] <squirrel> well i did (by memory) -map 0:a -map 0:v -map 0:s
[15:36:11 CEST] <squirrel> that seems to have added all tracks, including subtitles, to the output file
[15:36:37 CEST] <DHE> oh wow I misunderstood that. you just wanted an mp3 codec but still inside an mkv
[15:36:47 CEST] <DHE> I believe you can summarize as just -map 0
[15:40:07 CEST] <squirrel> oh
[15:40:11 CEST] <squirrel> nice thanks
[18:48:40 CEST] <^Neo> Good afternoon, if I have an AVPacket with data, but want to run it through another demuxer how would I go about doing that? Would I need to modify the avformatcontext's aviocontext?
[18:51:02 CEST] <DHE> ^Neo: like, recycle an existing AVPacket?
[18:52:17 CEST] <JEEB> ^Neo: you'd have to feed it to a custom avio thing
[18:52:54 CEST] <^Neo> I'm trying to figure out my ALSA IEC61937 stuff...
[18:53:22 CEST] <^Neo> so I want to take my AVPacket and instead of extracting it, feed it back through to the wavdemuxer
[18:54:13 CEST] <^Neo> so like ALSA AVFormatContext -> WAV AVFormatContext -> AC3/EAC3
[18:54:25 CEST] <JEEB> uhh
[18:54:38 CEST] <JEEB> can't you just use the spdif check function in the device thing?
[18:54:51 CEST] <JEEB> and do the same thing as what the wav demuxer is
[18:56:33 CEST] <^Neo> It's a static ff_* function I thought
[18:57:16 CEST] <JEEB> it wasn't static since another libavformat thing used it
[18:57:22 CEST] <JEEB> but I'd say it's a FFmpeg internal thing
[18:57:42 CEST] <JEEB> ff_* means it's internal to FFmpeg
[18:57:48 CEST] <JEEB> so you would have to improve the input thing you're using
[18:57:52 CEST] <JEEB> not use it in your API client
[18:58:23 CEST] <^Neo> right
[19:01:56 CEST] <^Neo> Right, so I thought taking the packet from the ALSA format and passing it into the WAV format would get me what I wanted
[19:03:02 CEST] <^Neo> Otherwise I'm just dumping the AVPacket data and parsing it myself
[19:03:36 CEST] <JEEB> well sure you can do it in a really awkward way with the wav thing
[19:03:49 CEST] <JEEB> I just thought it'd be more productive to fixup the audio input module
[19:04:12 CEST] <^Neo> Oh, like add it diretly into alsa?
[19:05:31 CEST] <^Neo> hmm
[19:05:33 CEST] <^Neo> I see
[19:51:45 CEST] <ntd> why was ffserver deprecated? is there some decent alternative except vlc*?
[19:54:19 CEST] <DHE> nginx-rtmp gets a lot of popular use
[19:54:45 CEST] <DHE> I'm also a fan of using HLS or DASH, plus the static HTTP server of your choice (apache is fine)
[19:59:20 CEST] <ntd> ok, all i'm trying to do is have a local server pull *one* stream from each remote/wan source, then make it available locally to N clients
[19:59:43 CEST] <ntd> preferably with as little latency as possible and using -vcodec copy to reduce overhead
[20:00:33 CEST] <ntd> right now the N clients are pulling their own sep, streams of the same video, wasting bw
[20:11:25 CEST] <ntd> i'm using apache and sev clients won't do r*t*mp
[20:11:53 CEST] <ntd> https://serverfault.com/questions/844603/stream-rtsp-from-ipcam-without-re-…
[20:12:26 CEST] <ntd> looks like this guy had the same idea/problem, no answers. -fflags +gentps perhaps?
[20:14:26 CEST] <ntd> but i don't really wanna do HLS at all. rtsp over tcp554 in, rtsp over tcp554 out
[20:18:59 CEST] <ntd> DHE, any examples re the hls/dash stuff you mentioned?
[20:33:48 CEST] <killown> what does that mean Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 360x638, 306 kb/s): unspecified pixel format
[20:34:20 CEST] <killown> Consider increasing the value for the 'analyzeduration' and 'probesize' options
[20:34:32 CEST] <killown> Too many packets buffered for output stream 0:1.
[20:34:34 CEST] <killown> [aac @ 0x55a09d33fc20] Qavg: 2637.849
[20:34:36 CEST] <killown> [aac @ 0x55a09d33fc20] 2 frames left in the queue on closing
[20:34:40 CEST] <killown> Conversion failed!
[20:36:31 CEST] <JEEB> killown: it couldn't initialize the decoder
[20:36:42 CEST] <JEEB> as in, the initialization data was not found
[20:39:57 CEST] <killown> JEEB, that's what I am doing http://wpbin.io/3p6vvz
[20:40:01 CEST] <killown> the video is playable
[21:02:28 CEST] <ntd> ok, i've got it working with ffmpeg -> ffserver http
[21:03:40 CEST] <ntd> but this can't possibly be a unique case, is there really nothing that'll do h264 over rtsp in -> passthrough h264 over rtsp out?
[22:01:50 CEST] <ntd> could this be done with netfilter/iptables? if local recorder A is pulling an rtsp stream from remote source B,C,D, can iptables be used to "mirror" the rx data at a local port, making the video stream available to local recorder E and F without having to pull sep streams?
[23:11:15 CEST] <killown> can anyone help me?
[23:11:16 CEST] <killown> JEEB, ?
[23:11:38 CEST] <JEEB> it's past midnight and I'm having my beer
[23:11:58 CEST] <JEEB> I'm only going to continue helping people on channels that I've already started and show middle finger to everything else. sorry.
[00:00:00 CEST] --- Mon Jul 23 2018
1
0
[00:15:57 CEST] <jamrial> tbh, google could define a new ivf version and add a flags field or something
[00:16:22 CEST] <jamrial> On2 had the foresight to add a version field in the header
[00:20:22 CEST] <nicolas17> what's ivf?
[00:22:04 CEST] <jamrial> a barebones container defined to store vp8 streams back in the day, extended afterwards to store vp9 and now av1
[00:22:07 CEST] <nevcairiel> a minimal container format used as "raw" streams for vp8/9
[00:22:51 CEST] <TD-Linux> vp9/vp9 have no "raw bitstream", they are impossible to play without a container, they need timing and packet size information.
[00:24:54 CEST] <TD-Linux> av1 packets include length so you can sort of have a "raw bitstream"
[01:47:50 CEST] <cone-438> ffmpeg 03James Almer 07master:3870ed7ab3e6: avcodec/extract_extradata_bsf: make sure a Sequence Header was found for av1
[04:30:49 CEST] <jamrial> michaelni: some of you freebsd fate clients added "--x86asmexe=yasm" to the comment section instead of the configuration params
[11:01:27 CEST] <BtbN> Is there any known bug in ffmpeg 4.0/master that makes it hang when streaming to an rtmp server? It just completely stops giving output/progress after random intervals.
[11:03:18 CEST] <JEEB> is this with the API or ffmpeg.c?
[11:05:47 CEST] <BtbN> This is normal ffmpeg.c cli
[11:07:11 CEST] <BtbN> I have reverted back to 3.4 for now, hopefully it works there. If not, it's probably our internet
[11:07:14 CEST] <JEEB> I know there's some issues in the filter chain stuff/sub2video there but I've not had the time to look into it
[11:07:33 CEST] <BtbN> No filtering happening. Just rtmp in, transcode with x264/fdk, rtmp out to Twitch
[11:07:39 CEST] <JEEB> ok
[11:07:43 CEST] <JEEB> then it's something different
[11:07:49 CEST] <BtbN> If it was an internet issue, I'd expect some kind of reaction, not just a plain freeze
[11:08:16 CEST] <JEEB> you would probably want to check timeout-related parameters for input/output, or just do an strace
[11:08:37 CEST] <BtbN> It's not easily reproducible. Most streams run fine for hours
[11:37:07 CEST] <durandal_1707> JEEB: found something for me?
[11:37:22 CEST] <JEEB> right, you wanted F?
[11:37:34 CEST] <JEEB> now I need to remember which game(s) on my disk had F
[11:38:20 CEST] <JEEB> ok, x-com enemy unknown seems to have f
[11:41:02 CEST] <JEEB> durandal_1707: I think I randomly noticed one that has an orange thing on a black background what I think is the first frame
[11:41:06 CEST] <JEEB> is that good enough?
[11:42:53 CEST] <durandal_1707> JEEB: yes, anything with first/keyframe that is not completely black, because i already have such file
[11:43:04 CEST] <JEEB> ok
[11:43:12 CEST] <JEEB> at least looking at the bink player the first frame is not all black
[11:44:30 CEST] <durandal_1707> this codec does not like keyframes very much, so only keyframe you usually encounter is first and only one
[11:44:39 CEST] <JEEB> yea it makes sense
[11:44:48 CEST] <JEEB> I mean the game videos are going to be played A->B
[11:48:27 CEST] <JEEB> durandal_1707: https://0x0.st/sVHM.bk2
[11:55:29 CEST] <durandal_1707> JEEB: thanks, now i know that keyframe decoding is incomplete
[11:55:42 CEST] <JEEB> np
[13:37:12 CEST] <cone-723> ffmpeg 03A. Wilcox 07master:153fcd6de6ba: libavcodec/ppc: Fix HEVC AltiVec routines with --enable-small
[14:07:49 CEST] <cone-723> ffmpeg 03Carl Eugen Hoyos 07master:961717880056: lavc/fft_template: Do not define unneded functions with --enable-small.
[18:01:00 CEST] <cone-124> ffmpeg 03Danil Iashchenko 07master:9d6efefaf41a: doc/filters: use radius instead of kernel in avgblur
[21:22:41 CEST] <cone-317> ffmpeg 03James Almer 07master:3735d55af32e: avcodec/parser: move parsers list and related API to its own file
[00:00:00 CEST] --- Sun Jul 22 2018
1
0
[12:56:11 CEST] <Raaja> Hello
[12:56:54 CEST] <Raaja> I am new to FFMPEG and I amtrying to get a shared library for FFMPEG and x264 to be used for Android App development.
[12:58:02 CEST] <Raaja> I experience failure when compiling bash script for different architecture to be used under FFMPEG folder.
[12:58:15 CEST] <Raaja> link to the log below.
[12:58:17 CEST] <Raaja> https://pastebin.com/QuUrfdrP
[12:59:21 CEST] <Raaja> i receive "C compiler test failed." everytime i run the bash script.
[12:59:34 CEST] <Raaja> I am working on Ubuntu latest version
[12:59:57 CEST] <JEEB> I find it much simpler to use the standalone toolchain script in NDK
[13:00:13 CEST] <JEEB> also there's --cross-prefix= for the prefix of the tools
[13:00:38 CEST] <Raaja> yes i tried them. I created my own toolchain using the NDK documentation
[13:00:38 CEST] <JEEB> also at this point I would be using clang
[13:00:57 CEST] <Raaja> Iss it possible to guide me through this?
[13:02:06 CEST] <Raaja> link to my sample script here. https://pastebin.com/36sh1C0g
[13:02:25 CEST] <JEEB> in the dir of the NDK there's ./build/tools/make_standalone_toolchain.py . you just give it --arch arm64 --api 21 --install-dir /path/to/toolchain
[13:02:37 CEST] <JEEB> and it gives you aarch64 API 21 thing :P
[13:03:30 CEST] <Raaja> yes i have created a toolchain using the ndk tools
[13:03:41 CEST] <JEEB> also I don't get those extra ldflags, you could just use pkg-config for that
[13:03:46 CEST] <Raaja> i generated it for different architectures
[13:04:15 CEST] <Raaja> Actually I am new to this stuff. I am folllowing a guide and i got the busid scripts from them
[13:04:22 CEST] <Raaja> *build
[13:04:40 CEST] <Raaja> All i wanted is shared .so files generated
[13:04:42 CEST] <Raaja> :)
[13:05:27 CEST] <JEEB> also I hope you understand that using x264 and putting enable-gpl there means you have to put the whole thing under GPL when distributing, right?
[13:05:55 CEST] <Raaja> Whole thing under GPL?
[13:06:02 CEST] <JEEB> yes
[13:06:35 CEST] <JEEB> GPL means that if you use a library that is under GPL the whole thing ends up as GPL
[13:06:47 CEST] <Raaja> i should post licensing info when using it for commercial apps?
[13:07:05 CEST] <JEEB> it means that the whole commercial app's code has to be available as GPL
[13:07:32 CEST] <JEEB> so unless you for some reason need x264, or any other GPL component, don't enable it
[13:07:35 CEST] <JEEB> x264 is the encoder anyways
[13:08:01 CEST] <Raaja> oh so tis not going to be propiertary code. I think this will affect my client bad.
[13:08:19 CEST] <Raaja> i thought only the library comes under GPL
[13:08:25 CEST] <JEEB> no
[13:08:47 CEST] <JEEB> LGPL is "you have to give the code of the LGPL libraries(s) and give the user the capability to switch the library)
[13:09:02 CEST] <JEEB> GPL is "if you use GPL, then you also have to make the thing available under GPL altogether"
[13:10:00 CEST] <Raaja> including the code i right from Android side?
[13:10:16 CEST] <JEEB> your whole app, if you use GPL software
[13:10:22 CEST] <Raaja> which ever the oce consuming GPL licenced code?
[13:10:28 CEST] <JEEB> yes
[13:10:35 CEST] <Raaja> ohh...
[13:11:03 CEST] <JEEB> x264 is specifically GPL because there's also corporate licensing for it.
[13:11:11 CEST] <JEEB> so you can buy a license that is not GPL for x264
[13:11:47 CEST] <JEEB> now if you don't need x264
[13:11:50 CEST] <Raaja> Actually My only concern is that I am looking for a library which can make me stitch 2 videos side by side. i mean 2 input files of the same resolutions.
[13:11:53 CEST] <JEEB> then you go down to LGPL
[13:12:02 CEST] <Raaja> it is going to be a Video file.
[13:12:35 CEST] <Raaja> is there any framework other than FFMPEG? even if i need yo buy a liscence?
[13:13:00 CEST] <JEEB> well FFmpeg is not the thing that's GPL by default :P
[13:13:10 CEST] <durandal_1707> Raaja: gstreamer
[13:13:20 CEST] <JEEB> but sure, there are other media frameworks
[13:13:26 CEST] <JEEB> most of them are LGPL or GPL
[13:13:43 CEST] <JEEB> and even with LGPL you need to give the user the capability to switch the library
[13:13:50 CEST] <JEEB> which can be a problem with android apps
[13:14:02 CEST] <JEEB> what I've seen some android apps is that they separate the part that uses LGPL
[13:14:08 CEST] <JEEB> and make that open source
[13:14:33 CEST] <JEEB> and then call it with the android API things or whatever from their activity that is in the proprietary part
[13:14:50 CEST] <JEEB> but as I noted, this doesn't help with GPL, since that makes the whole thing GPL
[13:15:33 CEST] <Raaja> I hope that helps, I can make the whole function an open source library and and utilize it from app side. I need FFMPEG and x264 only for stitching video to be uploaded to server.
[13:15:53 CEST] <JEEB> as soon as you use a GPL component or license FFmpeg as GPL, that doesn't work
[13:15:55 CEST] <JEEB> that was for *LGPL*
[13:15:58 CEST] <Raaja> oh bad. So Apps which use x264 are all open source?
[13:16:08 CEST] <JEEB> or license x264
[13:16:26 CEST] <JEEB> but have you thought if you actually need x264?
[13:16:42 CEST] <JEEB> like, what role does x264 play in this setup?
[13:17:14 CEST] <Raaja> for mp4 support i mean H.264
[13:17:31 CEST] <JEEB> ok, you do understand that x264 is just the encoder?
[13:17:35 CEST] <Foaly> you can also buy a x264 license
[13:17:45 CEST] <JEEB> Foaly: yea I've mentioned that like two times already
[13:17:50 CEST] <Raaja> I have read in many places that is encodes videos to smaller size?
[13:17:57 CEST] <JEEB> yes, it's a great encoder
[13:18:02 CEST] <Raaja> Sorry if i am wrong I am new to video and Audio
[13:18:07 CEST] <JEEB> I'm just not sure you want it on mobile devices
[13:18:42 CEST] <Raaja> JEEB if i can buy x264 liscence it would be helpful ...
[13:19:26 CEST] <Raaja> JEEB also i have been adviced that x264 is the best encoder for mobile devices as it encodes videos to a much smaller size.
[13:19:42 CEST] <JEEB> ok, so FFmpeg doesn't have a mediacodec encoder
[13:19:59 CEST] <JEEB> so your alternatives are openh264 or x264
[13:20:18 CEST] <JEEB> Raaja: yes if you're basically running it on a PC to encode for the mobile device, sure
[13:20:29 CEST] <JEEB> it's stupidly fast and good with modern PCs
[13:20:40 CEST] <JEEB> but your use case is ARM
[13:20:51 CEST] <JEEB> android devices with possibly limited batterias?
[13:21:13 CEST] <Raaja> yes, so x264 takes much CPU power.
[13:21:18 CEST] <Raaja> understood.
[13:21:28 CEST] <JEEB> but yea, if you need a H.264 encoder doing it in software on android
[13:21:30 CEST] <JEEB> there's openh264
[13:21:32 CEST] <JEEB> and x264
[13:21:47 CEST] <JEEB> openh264 is worse of course, but I have heard its ARM optimizations are pretty good
[13:21:58 CEST] <JEEB> also it has a more liberal license
[13:22:15 CEST] <JEEB> then there's x264 which is of course also optimized but it's GPL/commercial licensed
[13:22:18 CEST] <Raaja> I will checak and know more about it.. Thank you for the information JEEB
[13:22:26 CEST] <JEEB> yes, please do
[13:22:33 CEST] <Raaja> IS there any other way i Can try to acheive my function?
[13:22:49 CEST] <Raaja> I would like to stitch 2 videos files of same ressolution side by side
[13:22:53 CEST] <JEEB> using the android media framework to decode/filter
[13:22:58 CEST] <JEEB> and then push it to the hw encoder
[13:23:32 CEST] <JEEB> most likely if those 2 files were written by the same device the hw decoders should be able to decode it
[13:23:57 CEST] <JEEB> if you plan on needing wider support then you'd possibly want LGPL FFmpeg for the reading of the files and having fall-back software decoding
[13:24:27 CEST] <JEEB> and since LGPL needs you to give the possibility for the user to replace the LGPL component if he/she wants
[13:24:36 CEST] <JEEB> that is probably where you'd have the FFmpeg-using part as a separate app
[13:24:45 CEST] <JEEB> (and open source)
[13:25:03 CEST] <JEEB> but yes, I am pretty sure you should be able to do this with just the Android media frameworks
[13:25:05 CEST] <Raaja> any Libarary as powerful but also has a standalone liscence?
[13:25:26 CEST] <JEEB> not really
[13:26:28 CEST] <Raaja> so apps like MXPlayer, VPLayer and others use FFMPEG. So how does it affect them?
[13:30:36 CEST] <JEEB> ah, the "replace the binary" part seems to be more towards LGPLv3
[13:30:38 CEST] <JEEB> but IANAL
[13:30:43 CEST] <JEEB> (I Am Not A Lawyer)
[13:31:31 CEST] <JEEB> so LGPLv2.1 (which is the default license of FFmpeg), just requires you to publish the full sources of the LGPL software
[13:31:46 CEST] <Raaja> Yes I am confused more about the liscening. I will check them.
[13:31:50 CEST] <Raaja> Ahh that is bad.
[13:32:27 CEST] <JEEB> not really, since it limits itself to the LGPL stuff
[13:32:27 CEST] <Raaja> My client needs a proprietary app
[13:33:18 CEST] <JEEB> LGPL doesn't stop you from making a proprietary app, GPL does :P
[13:34:13 CEST] <Raaja> thats x264, And you have mentioned that i can buy a license.
[13:34:31 CEST] <JEEB> yes
[13:34:35 CEST] <JEEB> but do you really need x264?
[13:34:51 CEST] <JEEB> anyways, since you're limited to Android
[13:34:59 CEST] <JEEB> I recommend you attempt to do this with the media framework first
[13:35:05 CEST] <JEEB> without FFmpeg
[13:35:28 CEST] <Raaja> Yes I have too. If not I will come again here.
[13:35:34 CEST] <JEEB> you do hw decoding, filter with whatever android might have, and then encode with the hw encoder
[13:35:54 CEST] <JEEB> then if you start hitting crappy components/devices you will start needing fall-backs
[13:36:00 CEST] <JEEB> (software ones)
[13:36:13 CEST] <Raaja> yes Understood.
[13:36:23 CEST] <Raaja> I will first check the documentations for it.
[13:37:58 CEST] <Raaja> You people are really very helpy full. I have been struggling for 2 days to compile .so files for FFMPEG. you have provided lots of informations. Thank you JEEB
[13:38:10 CEST] <Raaja> *helpful
[13:39:06 CEST] <JEEB> getting the .so files for Android at the end of the day is not hard, in a way I just want to make sure you're using x264/FFmpeg understanding the license
[13:39:14 CEST] <JEEB> before helping you
[13:39:36 CEST] <JEEB> and if you really don't need FFmpeg or x264, that's a good alternative as well (esp. since FFmpeg doesn't seem to have hw encoding)
[13:40:54 CEST] <JEEB> and if you don't need especially x264, there's openh264 as a more liberally licensed AVC encoder
[13:41:03 CEST] <JEEB> in case you do need that software fall-back
[13:41:08 CEST] <JEEB> because some devices are indeed shit
[13:47:00 CEST] <Raaja> Yess I understood that. I first make sure that the technique is acheivable from Android side. I will also discuss the licensing issues with my client.
[13:47:12 CEST] <Raaja> I hope you might help some other time, when I am back.
[13:47:17 CEST] <Raaja> Thanks for your help
[14:59:07 CEST] <Raaja> Hello
[14:59:15 CEST] <JEEB> uh-huh
[15:00:37 CEST] <Raaja> JEEB I am not sure it is possible to merge videos side by side in Android.
[15:00:54 CEST] <JEEB> I have no idea how much filtering capabilities Android has
[15:01:07 CEST] <JEEB> like, you open one thing and another thing and start getting decoded frames
[15:01:15 CEST] <JEEB> then you do stuff with textures
[15:01:24 CEST] <JEEB> and you feed the resulting thing into mediacodec again
[15:01:37 CEST] <Raaja> Unfortunately Android's MediaCodec can Decode and Encode Videos, but not as flexible as FFMPEG where i Can place the video side by side and merge it into a single video
[15:03:29 CEST] <JEEB> well, you get a surface (remembered the word for textures in android world) per decoded video
[15:03:41 CEST] <JEEB> then you do filtering on those
[15:03:49 CEST] <JEEB> and you feed a surface with both of them into the encoder
[15:03:57 CEST] <JEEB> like I wouldn't be expecting to find this out of the box
[15:04:07 CEST] <JEEB> you have to do it yerself, the putting them next to each other
[15:16:26 CEST] <Raaja> Yes I understood. But I think it is not much memory effecient. I need to have 3 Surfaces and need to decode frames from 2 videos and them encode them on the third surface.
[15:17:05 CEST] <JEEB> well that's effectively what you'd be doing in FFmpeg as well
[15:17:25 CEST] <JEEB> you open a decoder for one thing, you open another one for another thing
[15:18:23 CEST] <Raaja> I need more insight on this one. I will check again and will let you know,
[15:18:31 CEST] <Raaja> Thanks for the info.
[15:18:42 CEST] <JEEB> in theory you could use the API to render into a single set of buffers but you'd have to take care of making sure all planes get correctly utilized
[15:21:17 CEST] <Raaja> Actually I am really new encoding and decoding. I have done image compression, video playback and stuffs like that. But I haven't worked with encoding or decoding it. So its is difficult for me to understand all of these
[15:21:41 CEST] <Raaja> Thanks for your quick reply though. I will find if there is some more inifo i can get from Documentations.
[15:44:49 CEST] <Raaja> Hello JEEP actually the Surfaces are just for drawing frames onto the screen. But What I am actually looking is I need to stick to Videos which has same size and length , side by side
[15:45:01 CEST] <Raaja> and save them in MP4 format.
[15:45:09 CEST] <Raaja> I hope I am not clear before.
[15:45:48 CEST] <JEEB> I'm pretty sure you can get the stuff from mediacodec in a way to then re-utilize it
[15:45:59 CEST] <JEEB> otherwise people wouldn't be discussing about it on the internet
[15:46:27 CEST] <Raaja> Fortunately i get InputBuffers and OutputBuffers, to work with but, I am not sure how I manipulate them and save them in MP4 format
[15:47:06 CEST] <JEEB> I think it's time for you to find some android developers to talk with
[15:47:31 CEST] <Raaja> I am checking all over the internet, The Decode and Encode is possible but, I am unsure how it works
[15:47:33 CEST] <Raaja> Yes.
[15:47:38 CEST] <Raaja> I think so.
[15:48:25 CEST] <Raaja> But stackoverflow has very low support for MediaCodec rather than FFMPEG for Android
[16:06:29 CEST] <friendofafriend> Hello. My input is an audio file, and I'm outputting to an icecast server. ffmpeg is connecting to the icecast server and creating a stream, but instead of outputting at 1x speed, ffmpeg sends data as quick as possible and ends. How can I output at 1x speed?
[16:07:09 CEST] <JEEB> either feed it something that's going 1x (through UDP or otherwise), or use the -re hack
[16:07:21 CEST] <JEEB> (latter being before the -i option, so it gets applied to the inputs)
[16:10:24 CEST] <friendofafriend> The -re flag is doing exactly what I need. Thank you so much, JEEB!
[17:17:43 CEST] <CoreX> I need to keep a video within the 1280x720 ratio i know 1280:-2 can do it but it keeps going over 720p to 722> and so on
[17:17:51 CEST] <CoreX> anyway to keep this from happening?
[17:18:54 CEST] <JEEB> sounds like your aspect ratio is either not exact 16:9, or there's a boog somewhere
[17:29:40 CEST] <furq> CoreX: scale=if(gt(a\,16/9)\,1280\,-2):if(gt(a\,16/9)\,-2\,720)
[17:41:48 CEST] <krg_> Hello, I have one query. I have a vob file, but then the audio (multi lingual) starts, ac3 complains and the video has repetitions. Anyone else experine this? I think is the third time.
[17:42:16 CEST] <krg_> I tried -an (no audio) and again the video has repetitions.
[17:42:57 CEST] <furq> krg_: sounds like multiangle
[17:43:28 CEST] <krg_> A ha..., so I need to re-copy the create new vob?
[17:43:33 CEST] <furq> you generally want to preprocess dvds with something that can actually read ifos
[17:43:42 CEST] <furq> so dvdbackup, tccat/tcdemux, etc
[17:43:57 CEST] <furq> pgcdemux if you're on windows
[17:44:13 CEST] <krg_> (linux here) I tried vobcopy, occasionally I have this problem.
[17:44:52 CEST] <furq> if you already have the disc ripped then tccat will let you pick title/chapter/angle and then output on stdout
[17:44:55 CEST] <furq> so you can pipe it into ffmpeg
[17:45:12 CEST] <krg_> a ha!
[17:45:19 CEST] <furq> annoyingly a lot of repos stopped packaging transcode
[17:45:37 CEST] <krg_> I just checked, is very old! 2011!
[17:45:46 CEST] <furq> yeah
[17:45:56 CEST] <furq> it's mostly useless now but tccat and tcdemux are still good
[17:46:06 CEST] <furq> someone ought to package those up separately
[17:46:23 CEST] <krg_> I have it, but it is too much cryptic to me. 10 years ago (I think) it was my fav, but now I prefer ffmpeg and vobcopy.
[17:46:32 CEST] <krg_> I will try now.
[17:47:22 CEST] <krg_> tcscan for a start?
[17:50:46 CEST] <furq> i normally used lsdvd for that
[17:51:20 CEST] <krg_> same result with tccat -i file.vob -t vob -t 1,1,1 | mplayer -
[17:51:23 CEST] <krg_> any help?
[17:54:47 CEST] <krg_> Oops, wrong arg -t vs -T, retry
[18:04:05 CEST] <krg_> furq: thank you for the idea, no solution yet, I think I have to re-rip the dvd. Thank you!
[18:04:41 CEST] <furq> does lsdvd -n say that title has multiple angles
[18:19:42 CEST] <BobCat> Does anyone have a recipe to use a WinXP compatible version of ffmpeg to connect a USB webcam to YouTube Live?
[18:19:59 CEST] <BobCat> And yes, I know I should not be using an ancient OS
[18:20:39 CEST] <BobCat> webcam or manycam, doesn't matter
[18:21:26 CEST] <furq> BobCat: https://trac.ffmpeg.org/wiki/Capture/Webcam#Windows
[18:25:18 CEST] <BobCat> Hopefully that will work with an antique rev of ffmpeg thanks
[18:26:32 CEST] <JEEB> BobCat: anything older than http://git.videolan.org/?p=ffmpeg.git;a=commit;h=c7ab6aff66cba2f265f656ce8d… probably would work on XP?
[18:26:44 CEST] <JEEB> although the reason why that happened I would guess is pretty understandable :P
[18:27:14 CEST] <JEEB> at the point of 2018, april
[18:27:24 CEST] <JEEB> winxp had been out of support for what, four years?
[18:27:25 CEST] <JEEB> :)
[18:27:44 CEST] <JEEB> but yes, technically we kept winxp support for a surprising amount of time :P
[18:28:17 CEST] <furq> well you'll need to build it yourself because zeranoe dropped support much longer ago
[18:28:22 CEST] <furq> on account of libmfx
[18:28:53 CEST] <JEEB> not surprising, dependencies or applications using FFmpeg probably dropped support much earlier :P
[18:30:53 CEST] <BobCat> If I can't find an old built version I'll toss the XP box out a window and use Win7 :)
[19:07:39 CEST] <locsmif> Hi. Yesterday I was explained how to move the index from the tail end of an .mp4 to the front, to optimise for streaming. However, is there also a command I can use to detect this? I'd rather find out on the command line than from trying, waiting 30 seconds to a minuted and then having the stream fail..
[19:08:11 CEST] <locsmif> Even some command returning a byte offset would be grand.
[19:08:47 CEST] <JEEB> you could check with l-smash's boxdumper, I guess?
[19:08:53 CEST] <furq> boxdumper "$1" | awk '/moov:/ { exit 0 } /mdat:/ { exit 1 }'
[19:09:00 CEST] <furq> is what i have in my snippets file
[19:09:03 CEST] <JEEB> :D
[19:09:05 CEST] <JEEB> lol
[19:09:35 CEST] <atomnuker> locsmif: -movflags +faststart
[19:09:44 CEST] <kepstin> there's always the good old `cat file.mpv | mpv -` test :)
[19:09:49 CEST] <kepstin> if it plays, it's got the moov at the start
[19:09:54 CEST] <furq> atomnuker: he's asking how to detect if it's already faststart
[19:10:30 CEST] <furq> although it's better to use a proper mp4 muxer for remuxing anyway because it does it in one pass
[19:11:25 CEST] <locsmif> So I pull boxdumper from git, and compile, then run. I'm good with that. It's well worth it and little effort
[19:13:00 CEST] <furq> l-smash is worth having installed anyway
[19:17:13 CEST] <locsmif> Oh I see, the whole toolkit, thanks, will do
[19:17:22 CEST] <locsmif> I'd never heard of it before
[19:20:41 CEST] <locsmif> Hmmm, I just found out about this is as well. Since I'm using Serviio, and Serviio uses ffmpeg, I wonder why it's not using this as well, since it's apparently descended from the same tool inside the ffmpeg suite?
[19:20:46 CEST] <locsmif> https://github.com/danielgtaylor/qtfaststart
[19:41:34 CEST] <causasui> kepstin: useless use of cat. do `mpv - < file.mpv`
[20:38:09 CEST] <scientes> is there a command line that will convert DTS to mp3 or aac?
[20:38:36 CEST] <scientes> i've done it before but it wasn't good at keeping the other tracks
[20:38:58 CEST] <scientes> like subtitles
[20:39:12 CEST] <JEEB> you can -c copy (this is all tracks) and then -c:a:X aac the audio track that you want to convert
[20:39:25 CEST] <JEEB> where X is the Nth audio trakc you have selected
[20:39:29 CEST] <kepstin> if you have multiple tracks and you only want to convert one, you need to find out the track ids (ffmpeg -i filename) will print them out, then build a command line that converts only the one you want
[20:41:40 CEST] <scientes> can you give me a complete command line (except for the track number)
[20:41:52 CEST] <scientes> (and the file names)
[20:52:33 CEST] <scientes> I can't get it to keep stream 3 (subtitles)
[20:53:12 CEST] <kepstin> you'll often have to add a "-map 0" to tell ffmpeg that you want to copy all tracks from the first input file (#0)
[20:56:51 CEST] <scientes> http://paste.debian.net/1034674/
[20:57:01 CEST] <scientes> [mp4 @ 0x555854dc9400] Could not find tag for codec subrip in stream #3, codec not currently supported in container
[20:57:42 CEST] <scientes> ohh i need .mkv
[20:58:00 CEST] <scientes> bingo thanks
[21:22:25 CEST] <kerio> you can convert them to mov subtitles
[21:25:11 CEST] <ntd> i have a few sec cameras which provide h264 over rtsp. instead of having multiple apps pull their own stream i'd prefer to just have ffmpeg pull and make them available at localhost with -vcodec copy
[21:25:13 CEST] <ntd> possible?
[21:27:59 CEST] <kerio> i'd set up nginx-rtmp
[21:28:07 CEST] <kerio> in pull configuration
[21:28:28 CEST] <kerio> as a bonus, you also get free-ish HLS serving
[21:29:20 CEST] <ntd> i may look into that, but i'm assuming that what i asked is indeed possible?
[21:46:37 CEST] <kerio> define "make available"
[21:47:02 CEST] <kerio> if you want multiple clients to be able to access the stream via rtmp, then you need a rtmp server
[21:47:13 CEST] <kerio> and ffserver is discontinued
[21:47:15 CEST] <kerio> and also shit
[21:47:37 CEST] <DHE> ffmpeg is not a server, but it can be used to feed one
[21:52:38 CEST] <furq> you could make them available locally with ffmpeg if you use hls
[21:52:55 CEST] <furq> if you don't mind not knowing you're being burgled until 30 seconds after it happens
[21:54:40 CEST] <locsmif> scientes: don't you mean something like: ffmpeg -i input.mp4 -c:v copy -ac 2 -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" output.mp4
[21:55:17 CEST] <furq> you don't need pan with -ac 2
[21:55:21 CEST] <furq> unless you want some fancy custom mixdown
[21:55:30 CEST] <ntd> i just wanna pull one stream from each cam, make it available locally instead of having four apps pull sep streams from the cam
[21:55:37 CEST] <locsmif> Yeah, that's to pull up the sound a bit
[21:55:39 CEST] <ntd> ofc, avoiding a 30 sec delay would be appreciated
[21:56:01 CEST] <furq> ntd: if you want to make it available on your local network then you need a streaming server
[21:56:06 CEST] <furq> or hls but that has unavoidable latency
[22:07:25 CEST] <ntd> ok, any recommendations as to a "re-streaming" server? pulls rtsp from remote source A, makes it avail locally as rtsp to client B,C,D using h264 passthrough/-vcodec copy, thusly with minimal overhead?
[22:19:20 CEST] <faLUCE> hello. how can I concat file1.m4a and file2.m4a ? They are aac encoded
[22:19:43 CEST] <faLUCE> I tried ffmpeg -i "concat:audio1.aac|audio2.aac" -c copy result.aac with no luck
[23:07:23 CEST] <SpeakerToMeat> Hello all.
[23:07:52 CEST] <SpeakerToMeat> Is it possible to rewrap xdcam from mxf to mov with -c:v copy even if ffmpeg doesn't support this particular xdcam codec?
[23:08:24 CEST] <JEEB> only if it knows the identifiers and knows how to handle the packets that get demuxed (plus possibly parsed)
[23:09:47 CEST] <SpeakerToMeat> Nod
[23:09:49 CEST] <SpeakerToMeat> I'll try, thanks
[23:10:01 CEST] <SpeakerToMeat> otherwise I'll have to determine which ffmbc is the "current" one :/
[23:10:24 CEST] <JEEB> the ffmbc guy seems to be contributing to FFmpeg again, which is I guess positive
[23:11:07 CEST] <JEEB> because ffmbc was basically doing something that was 100% OK according to the license, but kind of meh. as in, all that work that the guy did was under GPL, and thus nothing could be picked back to FFmpeg as-i
[23:11:11 CEST] <JEEB> *as-is
[23:11:21 CEST] <JEEB> since FFmpeg is generally speaking an LGPL project
[23:11:29 CEST] <SpeakerToMeat> Hmmm ok
[23:11:31 CEST] <JEEB> so you can't even look at the ffmbc code
[23:11:44 CEST] <JEEB> because then you could just be told that you're just copying GPL stuff
[23:11:57 CEST] <JEEB> so you have to have someone else explain how something's done
[23:12:14 CEST] <SpeakerToMeat> Is this the official one? https://github.com/FFmpeg/FFmpeg
[23:12:16 CEST] <JEEB> (or more likely, read the specs and what is actually used in the field)
[23:12:20 CEST] <JEEB> that's a mirror
[23:12:28 CEST] <JEEB> git.videolan.org has the official FFmpeg repo
[23:12:38 CEST] <SpeakerToMeat> ok, thanks
[23:13:02 CEST] <JEEB> and if it isn't supported feel free to make a trac issue if there's none yet
[23:13:07 CEST] <JEEB> and if you can generate a sample, even better
[23:13:25 CEST] <JEEB> of course some "pro" things basically are things where some people don't want to do free work
[23:13:36 CEST] <SpeakerToMeat> Yeah
[23:13:51 CEST] <SpeakerToMeat> I wonder if in this case it'd be only a case of adding a fourcc, to be able to copy directly
[23:13:53 CEST] <JEEB> but depending on how simple it is, it might be doable quickly
[23:14:02 CEST] <JEEB> in the simplest case it's an identifier, yea
[23:14:12 CEST] <JEEB> XDCAM was either MPEG-2 video or AVC/H.264 right?
[23:15:36 CEST] <SpeakerToMeat> Or DV too if I'm not wrong
[23:18:13 CEST] <JEEB> AVC Intra was the biggest scam though in a while
[23:18:23 CEST] <JEEB> there was a public spec, and then oen behind a non-disclosure agreement
[23:18:37 CEST] <JEEB> you can guess which was actually used by implementations
[23:18:56 CEST] <JEEB> and of course since just AVC proper wasn't good enough, it basically broke the stream by just leaving things out
[23:19:03 CEST] <JEEB> like initialization data
[23:19:21 CEST] <JEEB> instead the initialization data was basically hard-coded for each resolution etc
[23:20:14 CEST] <SpeakerToMeat> What about Av1, will it deliver?
[23:20:35 CEST] <JEEB> it seems positive so far, and it finally got finished up in MP4
[23:20:46 CEST] <JEEB> so you not only can encode it, but you can actually put it into MP4
[23:20:56 CEST] <SpeakerToMeat> MP4 official?
[23:21:07 CEST] <JEEB> yes, that's why the MP4 patches got merged just a while ago
[23:21:19 CEST] <JEEB> for both reading and writing
[23:21:30 CEST] <JEEB> matroska should be coming soon and hopefully being similar
[23:21:58 CEST] <SpeakerToMeat> Interesting, I'd expect the company/foundation to fight it, I thought they'd be interested on favoring HEVC over av1
[23:22:19 CEST] <SpeakerToMeat> Or, I'm wrong and the group managing the mp4 spec is not the AVC/HEVC group
[23:22:27 CEST] <JEEB> it's not
[23:22:30 CEST] <SpeakerToMeat> ok
[23:22:32 CEST] <JEEB> there's Mr Singer from Apple etc
[23:22:44 CEST] <JEEB> plus they don't really manage the mappings
[23:23:08 CEST] <JEEB> you can just register your identifier at the mpeg-4 ra
[23:23:17 CEST] <SpeakerToMeat> Btw are the fourcc specs for mp4 paywalled? all I've found are lists compiled by hand by third parties
[23:23:40 CEST] <JEEB> I think MPEG-4 RA is even on github now
[23:23:49 CEST] <JEEB> https://mp4ra.org
[23:23:59 CEST] <JEEB> https://mp4ra.org/#/codecs
[23:24:42 CEST] <SpeakerToMeat> Sweet, thank you very much. I wonder why google searches of old didn't provide this.....
[23:25:02 CEST] <JEEB> yea this site is actually pretty old by now
[23:25:05 CEST] <SpeakerToMeat> Oh, of course, last time I searched I was searching for .mov fourccs not mp4....
[23:25:09 CEST] <JEEB> :)
[23:25:19 CEST] <SpeakerToMeat> *cough*same thing*cough*
[23:25:23 CEST] <SpeakerToMeat> ;)
[23:25:37 CEST] <JEEB> almost
[23:25:47 CEST] <JEEB> there's some funky differences between ISO BMFF and QTff
[23:26:04 CEST] <SpeakerToMeat> Thanks for the link though
[23:26:11 CEST] <JEEB> and yea, they seem to hold the QTff registered codec IDs there as well https://mp4ra.org/#/qtcodecs
[23:26:37 CEST] <JEEB> (also it's funny how the newest version of the qtff PDF is from the sony wikileaks dump)
[23:26:46 CEST] <JEEB> (that's publicly available)
[23:27:04 CEST] <JEEB> I think if you search through apple's docs you will find a lot of the stuff, though
[23:29:16 CEST] <SpeakerToMeat> Damn
[23:29:33 CEST] <SpeakerToMeat> if I read fourcc.c correctly, there's no code for the xdcam I need to wrap
[23:29:50 CEST] <SpeakerToMeat> I'll need to find one of these sketchy quicktime lists (this will go to a .mov) and see if it's listed
[23:30:15 CEST] <TD-Linux> yeah you can see we also registered opus which "competes" with aac
[23:30:23 CEST] <TD-Linux> and there's lots of other codecs that no one cares about there
[23:30:59 CEST] <JEEB> yea
[23:31:06 CEST] <JEEB> it's basically first-come first-serve kind of thing
[23:32:13 CEST] <SpeakerToMeat> Sigh I think I'll have to find the right fourcc and either add it to fourcc.c and recompile, or specify it by hand iif at all possible
[23:32:34 CEST] <JEEB> just make it match the actual video format used if possible
[23:32:48 CEST] <JEEB> AVC/MPEG-2/whatever
[23:32:57 CEST] <SpeakerToMeat> I need XDCAM HD422 1920x1080i30 CBR 50Mb/s all I see listed for that cbr in interlaced are i50 and i60
[23:33:19 CEST] <JEEB> I think i30 means 60 fields per sec?
[23:33:31 CEST] <JEEB> and i50/60 are in fields per sec
[23:33:44 CEST] <SpeakerToMeat> ....
[23:33:46 CEST] <SpeakerToMeat> duh
[23:33:48 CEST] <SpeakerToMeat> sorry
[23:33:50 CEST] <SpeakerToMeat> I'm kinda sick
[23:33:52 CEST] <SpeakerToMeat> and thinking slow
[23:34:46 CEST] <SpeakerToMeat> Ok another stupid question then, how does ff detect the right fourcc? I mean, the source is mxf which afaik doesn't use fourcc but guuid descriptors
[23:35:27 CEST] <JEEB> GUID maps to an avcodec id
[23:35:34 CEST] <JEEB> then muxer looks up the avcodec id
[23:35:41 CEST] <SpeakerToMeat> Which is then mapped to the id
[23:35:45 CEST] <SpeakerToMeat> err
[23:35:50 CEST] <SpeakerToMeat> if I say odd stuff please forgive me.
[23:35:56 CEST] <SpeakerToMeat> I should go take a tylenol and brb
[23:36:01 CEST] <SpeakerToMeat> thanks for the guidance
[00:00:00 CEST] --- Sun Jul 22 2018
1
0
[09:40:59 CEST] <durandal_1707> JEEB: do you have bk2 files where first frame is not completely black?
[09:47:45 CEST] <JEEB> so all of those samples I posted were black at first frame? darn it
[09:48:28 CEST] <JEEB> I can check home, I just randomly picked stuff from the games I had on disks
[09:52:11 CEST] <durandal_1707> JEEB: well i only checked KB2f variant first
[09:53:52 CEST] <durandal_1707> so try to get KB2f one where first frame is not just black
[13:11:57 CEST] <gagandeep> kierank: i am able to use frame threads now and it works for 20 frames before crashing
[13:14:34 CEST] <cone-116> ffmpeg 03Michael Niedermayer 07master:be0b77e6e83b: avutil/pixfmt: Document chroma plane size for odd resolutions
[13:19:44 CEST] <kierank> gagandeep: cool
[13:21:17 CEST] <gagandeep> kierank: not cool, i mean i think i dont have some control and that is crashing
[13:22:48 CEST] <gagandeep> again will be going through frame_thread file looking for this
[13:24:55 CEST] <gagandeep> [rawvideo @ 0x7f776c071980] Invalid buffer size, packet size 2856336 < expected frame_size 3110400
[13:25:01 CEST] <gagandeep> error
[17:09:09 CEST] <BBB> kierank: what do you mean with make avfilter usable outside ffmpeg.c?
[17:09:23 CEST] <BBB> kierank: I mean, I agree its not super-mega-easy, but I use it outside ffmpeg.c and its not that bad
[17:09:34 CEST] <JEEB> the framesync stuff can cause variable amounts of delay and other fun stuff
[17:09:36 CEST] <kierank> BBB: have the ability to use filters indepdendently without having to build compelx pipelines
[17:09:45 CEST] <kierank> yeah the framesync stuff is the big problem to be honest
[17:10:10 CEST] <BBB> so you want pushable filters that can be used only by themselves?
[17:10:17 CEST] <BBB> like push in a buffer, get a buffer back, done"?
[17:10:21 CEST] <JEEB> yup
[17:10:32 CEST] <JEEB> f.ex. if you don't push a secondary buffer into overlay
[17:10:36 CEST] <DHE> like if all I'm going to do is run one filter, can't I just push to it directly?
[17:10:39 CEST] <JEEB> then you just don't overlay anything
[17:10:42 CEST] <BBB> its a problem witht the solve everything design, it solves it but becomes hard to use
[17:10:58 CEST] <BBB> fair 'nuf
[17:11:10 CEST] <BBB> I have some wrapper code that basically does that
[17:11:19 CEST] <BBB> but I agree its dumb that I need wrapper code for the simplest use case
[17:11:28 CEST] <kierank> yeah I mean we could write a wrapper but then it becomes inception
[17:11:35 CEST] <kierank> wrapper to wrap a wrapped filter pipeline
[17:11:41 CEST] <DHE> I'm interested in giving filters some multi-CPU capabilities by having each filter as its own thread rather than running one filter at a time on the main thread and just doing slice threading
[17:11:48 CEST] <kierank> durandal_1707: you should come to vdd we discuss avfilter there
[17:15:58 CEST] <durandal_1707> i'm not going to vdd, its too far away
[17:19:08 CEST] <atomnuker> come on, it'll be fun, its less than 2 hours by plane
[17:20:04 CEST] <atomnuker> btw you can construct pipelines manually by inserting filters at links
[17:58:25 CEST] <cone-116> ffmpeg 03James Almer 07master:45f52d19b98f: avcodec: add AV1 packet split API
[17:58:26 CEST] <cone-116> ffmpeg 03James Almer 07master:f9af3929c0df: avcodec/extract_extradata: add support for AV1
[17:58:27 CEST] <cone-116> ffmpeg 03James Almer 07master:a754af942a6a: avcodec/libaomenc: export Sequence Header and Metadata OBUs as extradata
[17:58:28 CEST] <cone-116> ffmpeg 03James Almer 07master:9ca7ad246d53: avformat/mov: add support for AV1 streams
[17:58:29 CEST] <cone-116> ffmpeg 03James Almer 07master:9888a19db477: avformat/movenc: add support for AV1 streams
[18:09:34 CEST] <atomnuker> nice
[18:10:26 CEST] <j-b> Glorious
[18:14:41 CEST] <jamrial> now to hope libaom implements aom_codec_get_global_headers() for av1 in a timely manner :p
[18:21:15 CEST] <atomnuker> did they merge it? I'm seeing that function in various places on the net
[18:23:40 CEST] <jamrial> atomnuker: the function exists, but it has no av1 implementation. it just returns an error
[18:37:58 CEST] <TD-Linux> wow it werks
[19:07:36 CEST] <durandal_1707> JEEB: still at work?
[19:08:05 CEST] <JEEB> just got home, eating
[19:20:51 CEST] <c3r1c3-Win> Man, that's some dedication right there.
[19:22:03 CEST] <durandal_1707> c3r1c3-Win: what you are talking about?
[19:22:23 CEST] <c3r1c3-Win> JEEB being at home, eating and yet still in IRC.
[20:40:04 CEST] <kiloreux> I want to get involved in ffmpeg development and looking for any possible mentorship? Something like GSoC mentorship (but without the money :P)
[20:40:32 CEST] <JEEB> hanging around here is generally a good idea
[20:40:40 CEST] <JEEB> anyways, depends on what you want to do
[20:41:52 CEST] <kiloreux> I'm just fascinated by the whole project and want to learn more about its inner workings, while contributing something back. Also to advance my career (obviously).
[20:42:40 CEST] <JEEB> lavf handles protocols and containers, lavc handles decoding and encoding, libavfilter handles filtering of AVFrames received from decoders
[20:48:15 CEST] <kiloreux> Is the knowledge about this internals kept somewhere ?
[20:48:25 CEST] <kiloreux> Or distributed ?
[20:49:37 CEST] <durandal_1707> everything is in source code
[20:49:48 CEST] <JEEB> https://ffmpeg.org/doxygen/trunk/index.html
[20:49:53 CEST] <DHE> have you looked at the doxygen docs? they're intended for API users but should help you get going
[20:49:53 CEST] <JEEB> and yes, it's all in the code repo
[20:50:12 CEST] <JEEB> then depending on what exactly you need there's specific how-to-starts
[20:50:33 CEST] <JEEB> basically, you need to be able to a) build FFmpeg and b) have some sort of goal
[20:50:33 CEST] <tmm1> see also https://github.com/leandromoreira/ffmpeg-libav-tutorial/blob/master/README.… and http://dranger.com/ffmpeg/
[20:51:07 CEST] <cone-116> ffmpeg 03James Almer 07master:5abbb1430d3e: avcodec: bump micro version after previous changes
[20:56:08 CEST] <kiloreux> Thank you. That was helpful as a start, will hit up the channel with questions as I get more inside it.
[21:01:29 CEST] <BBB> src/libavcodec/cbs_vp9_syntax_template.c:191:17: warning: implicit conversion from 'int' to 'int8_t' (aka 'signed char') changes value from 255 to -1 [-Wconstant-conversion]
[21:01:38 CEST] <BBB> is that bad?
[21:02:01 CEST] <BBB> or is that just syntactical and its re-unsigned later on when writing and never used as a literal/integer value?
[21:03:06 CEST] <jamrial> what compiler? gcc 7 doesn't emit that warning
[21:27:24 CEST] <BBB> jamrial: clang
[21:27:33 CEST] <BBB> also why does require in configure no longer add libs to EXTRALIBS?
[21:27:43 CEST] <BBB> all this breakage :( :/ :|
[21:28:49 CEST] <jamrial> EXTRALIBS is per library now
[21:28:57 CEST] <jamrial> so EXTRALIBS-avcodec, EXTRALIBS-avformat, etc
[21:29:13 CEST] <BBB> I dont know what that means
[21:29:24 CEST] <BBB> how do I add stuff to configure?
[21:30:02 CEST] <jamrial> as usual? adding new standard modules didn't change
[21:30:35 CEST] <jamrial> for a decoder with no dependencies, you don't even need to add anything to configure. allcodecs.c and Makefile should be enough
[21:31:31 CEST] <BBB> I think the assistance from configure could be better
[21:31:35 CEST] <jamrial> if it depends on something, then it would be foo_decoder_{dep,select}="bar" in the "code dependency declarations" from configure
[21:31:38 CEST] <BBB> I think I had an underscore in one place and not in another
[21:31:41 CEST] <BBB> and it just doesnt care
[21:31:47 CEST] <BBB> a compiler would give a syntax error
[21:32:04 CEST] <jamrial> bash sometimes gives errors in those cases
[21:32:05 CEST] <nevcairiel> everyone knows that configure is bad
[21:32:27 CEST] <BBB> I didnt say it was bad, it was merely implied
[21:33:06 CEST] <nevcairiel> its slow and hard to maintain, but apparently easier then learning something new
[21:33:16 CEST] <nevcairiel> or so some people b elieve anyway
[21:34:10 CEST] <jamrial> i'm all for a replacement, but i don't want to lose the current versatility if we migrate to meson, python or whatever
[21:36:53 CEST] <__tim> ooc, what do you mean exactly by 'current versatility'? The options to disable/enable components on a fine-grained basis? Or something else?
[21:39:09 CEST] <jamrial> yes, that
[21:39:32 CEST] <nevcairiel> i think th at was always planned to be possible, just not done at first
[21:39:40 CEST] <jamrial> the per library ldflags/EXTRALIBS as well
[21:40:58 CEST] <__tim> that's not a problem afaik
[21:41:34 CEST] <jamrial> that's cool then
[22:38:56 CEST] <azaki> has anyone tried to mux an av1 that is in .ivf container (--ivf in aomenc) into anything else, like mkv or mp4 ? i'm trying in ffmpeg-git and it doesn't seem to work. (i've got the mp4 av1 mapping patches that landed in master recently)
[22:39:14 CEST] <azaki> keep getting empty files. ffplay can play the file fine though, which is odd.
[22:40:02 CEST] <atomnuker> the ivf demuxer needs to be adjusted, I'll try to dig up my patch which did that
[22:43:16 CEST] <atomnuker> nope, can't find it, TD-Linux has it though
[22:45:26 CEST] <jamrial> azaki: ivf files have no way to store or set key frames, so remuxing files with streams that have no parser (as is the case with av1) will not work
[22:46:46 CEST] <atomnuker> yeah, it had to do with the lack of keyframes, I think we just changed it to always mark frames as such (because that's what the encoder supported)
[22:47:16 CEST] <jamrial> once an av1 parser that sets keyframes is committed, remuxing from ivf will be possible
[22:48:01 CEST] <azaki> ah, ok. thanks.
[22:48:23 CEST] <azaki> atomnuker: should i ask for the patch, or is it not ready yet or something?
[22:49:02 CEST] <rcombs> "mark everything as a keyframe" sounds like a great way to create some Regrets later on
[22:49:47 CEST] <JEEB> åUEnNa
[22:51:08 CEST] <atomnuker> azaki: no, you need to wait
[22:51:21 CEST] <BBB> jamrial has a patch to add a av1 parser
[22:51:28 CEST] <BBB> which will detect keyframe flags
[22:51:40 CEST] <BBB> so you need to make sure thats activated also in some way
[22:51:47 CEST] <azaki> atomnuker: okie dokie. thank you.
[22:51:55 CEST] <jamrial> it uses jkqxz's cbs_av1 implementation, though, so that needs to be finished and committed first
[22:56:29 CEST] <atomnuker> isn't cbs av1 done?
[22:59:24 CEST] <jamrial> it's almost done for reading purposes, i think
[00:00:00 CEST] --- Sat Jul 21 2018
1
0
[00:10:15 CEST] <mont3z> I'm using custom avio to parse a HEVC RTP stream. It seems that for very big frames av_read_frame hangs forever.
[00:11:47 CEST] <JEEB> have you tried raising the log level to something really high? although I thought RTP was some funky thing where you have to parse the actual NAL packets from the RTP "container"
[00:13:31 CEST] <mont3z> I get lots of: (ffmpeg) [sdp @ 0000015A87F757C0] FU type 19 with 1385 bytes. But then it just hangs.
[00:14:19 CEST] <JEEB> umm
[00:14:20 CEST] <JEEB> sdp?
[00:14:21 CEST] <JEEB> :D
[00:14:39 CEST] <JEEB> I hope you're not just feeding RTP data with all hte RTP headers etc into some lavf context?
[00:14:50 CEST] <JEEB> and then hoping it will just parse yer AVC/HEVC NALs from it
[00:16:12 CEST] <mont3z> this is exactly what I'm doing. And sometimes I get a: (ffmpeg) [NULL @ 0000015A87D390C0] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[00:17:32 CEST] <JEEB> yea, depacketize RTP first and at the very effing least force the correct format or otherwise you will have no idea what lavf will probe your input to be
[00:17:39 CEST] <JEEB> but preferably, just depacketize the RTP :P
[00:18:53 CEST] <mont3z> ok, thx a lot :)
[00:22:40 CEST] <Mavrik> hm, just opening an SDP should work with ffmpeg (at lesat it did for me last time I had to support that :) )
[00:22:44 CEST] <Mavrik> very brittle tho
[00:24:58 CEST] <Glyph_> Hello, I was hoping to get another pair of eyes on this ffplay error I'm having.
[00:25:03 CEST] <Glyph_> I'm trying to compare results of a script with and without using the midequalizer filter. The filtergraph goes through totally fine when midequalizer is excluded, but given an 'Open inputs in the filtergraph are unacceptable' error otherwise.
[00:25:17 CEST] <Glyph_> The midequalizer instance works fine with the same inputs as long as it is the end of the filtergraph. Here is the full command and log: https://pastebin.com/1k3txmcd
[00:25:35 CEST] <mont3z> rtpdec_hevc.c seemed to be doing the right thing but then it just hanged. I'll try to see if I can find something else I might be missing.
[00:26:18 CEST] <Glyph_> Sorry, wrong paste. Here is the correct one: https://pastebin.com/v5wjBb4Z
[00:29:44 CEST] <causasui> can I downscale the resolution of an input video and preserve aspect ratio, without knowing the incoming resolution?
[00:31:33 CEST] <Glyph_> If you set one of the dimensions with the "scale" filter to be -1 it preserves the aspect ratio. So if you wanted to force scaling to 1080 width it would be "scale=1080:-1"
[00:32:08 CEST] <causasui> Glyph_: I don't know the aspect ratio because I don't know either dimension
[00:32:19 CEST] <causasui> Glyph_: I'm hoping for something like "-2:-2" being possible or such
[00:32:41 CEST] <Glyph_> So just downscaling by a certain percentage?
[00:33:38 CEST] <causasui> Glyph_: yeah basically. I have a target range in mind but I feel like I can't just say "make this 480p" because I can't guarantee the aspect ratio of the video I might have to work with
[00:34:43 CEST] <Glyph_> Oh yeah, thats no problem. You can do "scale=iw*.5:ih*.5" to scale by half, or any other amount. 'iw' and 'ih' just reference the input width and height so you can operate them as you see fit.l
[00:39:32 CEST] <causasui> Glyph_: nice great. can I enforce a floor or a ceiling? i.e. "cut this in half, unless that makes it smaller than X, in which case X. or if it's bigger than Y, then Y."
[00:40:22 CEST] <Glyph_> Yeah, take a look at ffmpeg expression's (https://ffmpeg.org/ffmpeg-utils.html#Expression-Evaluation) There are min/max functions that will let you bound the scaling, or do whatever math you want really.
[00:41:28 CEST] <causasui> Glyph_: nice thanks, I'll read over this
[00:41:41 CEST] <Glyph_> No problem, good luck. \
[00:41:50 CEST] <furq> causasui: i guess you want something like if(gt(a,16/9),854,-2):if(gt(a,16/9),-2,480)
[00:42:23 CEST] <furq> which is basically 854:-2 if the video is 16:9 or wider and -2:480 if it's narrower
[00:50:05 CEST] <causasui> nice, thank you!
[01:01:08 CEST] <causasui> furq: wait, does that guarantee that the aspect ratio is preserved? just want to make sure
[01:01:58 CEST] <furq> yes
[01:02:45 CEST] <causasui> cool
[01:03:30 CEST] <alec500oo> Hello, I am making a simple video player. At the moment I am stuck on displaying the video frames at the right time. Are there any good explanations of PTS out there on the internet that I could follow. I have already tried the dranger tutorial and it doesn't make too much sense to me.
[01:04:17 CEST] <Mavrik> alec500oo, what is unclear about PTS to you?
[01:04:31 CEST] <Mavrik> It's tells you time at which you should display a frame on screen when playing.
[01:05:07 CEST] <DHE> pts is in units of the time_base. if time_base is 1 / 30, and pts goes 1, 2, 3, 4, then it's basically a frame counter for a 30fps video
[01:05:15 CEST] <alec500oo> It seems like there is more than one place to get the pts for each frame. There is a pts in the AVStream and another one in the AVFrame.
[01:05:30 CEST] <DHE> the stream doesn't have a pts, but it has the time_base
[01:05:35 CEST] <Mavrik> The one on decoded AVFrame is what you listen to.
[01:06:02 CEST] <DHE> different containers have different time bases, may be fixed or flexible, etc.
[01:06:29 CEST] <alec500oo> Ok, so when I am displaying a frame I need to get the pts from the frame and the timebase from the stream and not the AVCodecContext?
[01:06:55 CEST] <causasui> I'm trying to find documentation on the -crf switch. is that deprecated?
[01:07:08 CEST] <causasui> nevermind, it's in ffmpeg-all
[01:07:36 CEST] <Mavrik> alec500oo, indeed
[01:07:46 CEST] <Mavrik> you can have several streams with different timebases inside a container
[01:08:01 CEST] <DHE> causasui: the exact effects vary a bit by codec. not all codecs support it and how much a numerical change affects it varies by codec as well
[01:09:14 CEST] <DHE> alec500oo: the time_base is mainly for encoding because the encoder needs to know the timeframe for bitrate estimation (where applicable). the AVStream is the true authority when decoding
[01:10:42 CEST] <DHE> *the time_base in an AVCodecContext
[01:10:51 CEST] <DHE> the decoder doesn't care
[01:11:20 CEST] <alec500oo> Right now I have this piece of code doing my timing https://pastebin.com/bLvtTykR
[01:12:03 CEST] <alec500oo> I see now that the timebase is wrong however I am still confused about how to get the correct delay time between each frame when displaying.
[01:12:37 CEST] <Mavrik> it's the difference of PTS translated to milliseconds :)
[01:12:44 CEST] <Mavrik> or microseconds or what your timer works in
[01:12:58 CEST] <causasui> furq: sorry, I'm realizing I don't know where to pack in that string you gave me to try out, on the command line. that's an argument to what exactly? '-scale=...' isnt a think apparently
[01:12:59 CEST] <alec500oo> In windows the timer works in milliseconds
[01:13:05 CEST] <Mavrik> PTS / time_base = time in seconds
[01:13:15 CEST] <Mavrik> er
[01:13:24 CEST] <Mavrik> pts * timebase
[01:13:29 CEST] <Mavrik> since it's 1/something :)
[01:14:58 CEST] Action: DHE just updated firefox and Oh god who did this to you? I can't even open a pastebin
[01:15:09 CEST] <causasui> furq: nevermind I am reading the page on scaling
[01:18:35 CEST] <causasui> furq: Error initializing filter 'scale' with args 'if(gt(a:flags=bicubic'
[01:18:42 CEST] <furq> you need to escape the ,s
[01:18:54 CEST] <furq> or singlequote the expressions individually
[01:20:11 CEST] <causasui> furq: ok I just did this: `scale="if(gt(a,16/9),854,-2):if(gt(a,16/9),-2,480)" ; ffmpeg -i "$file" -vcodec libx264 -vf scale="$scale" -crf "$crf" "${file}.mkv"` so I guess I have to add escape characters for the commas in scale
[01:21:25 CEST] <furq> right
[01:26:08 CEST] <alec500oo> I think I've got it figured out. Thank you for the help!
[04:14:01 CEST] <greencalx> How can the frame type (Idr,I,P,B) be determined for a Fragmentation Unit?
[04:14:18 CEST] <greencalx> ..in H.265
[05:39:39 CEST] <alec500oo> I am writing a small video player and right now I am struggling with getting the video to play at the right frame rate. Does anyone have a good stratagy for playing getting frames to draw at the right time?
[10:47:18 CEST] <Bombtrack> Hey guys, probably a very silly question:
[10:47:44 CEST] <Bombtrack> what does the flag -f by itself do? I see it quite often, and even use it because it is in examples, but i cant seem to figure out what -f by itself does
[10:49:03 CEST] <Mavrik> Bombtrack: it sets the format (container) of input or output
[10:49:06 CEST] <Mavrik> and overrides autodetection
[10:49:53 CEST] <Mavrik> By default ffmpeg will figure out format out of file extension (e.g. mp4 when file ends with .mp4), but sometimes that's incorrect or not possible.
[10:50:03 CEST] <Mavrik> So you use -f to set it manually
[10:52:00 CEST] <Bombtrack> Thanks for the answer. Thats what I thought, but i see it used a lot without specifying WHICH format is used afterwards...or is that then picked from the ouput extension you specify?
[10:52:16 CEST] <Mavrik> um
[10:52:20 CEST] <Mavrik> No, that's just invalid.
[10:52:26 CEST] <Mavrik> -f needs a parameter.
[10:52:41 CEST] <Bombtrack> that makes me feel less silly :P
[10:52:55 CEST] <Bombtrack> let me give you a working example, but a confusing one (for me):
[10:53:00 CEST] <Bombtrack> ffmpeg -y -f concat -safe 0 -i video_concat_file.txt -vn -c copy temp1.aiff
[10:53:17 CEST] <Mavrik> yeah, "concat" is the parameter
[10:53:23 CEST] <Bombtrack> the -f in the beginning doesnt have a parameter, right? So its useless there?
[10:53:30 CEST] <Bombtrack> ooooh
[10:53:35 CEST] <Bombtrack> that makes sense
[10:53:44 CEST] <Mavrik> it chooses (forces) the input to be demuxed with "concat" demuxer
[10:54:01 CEST] <Mavrik> because ffmpeg won't know what to do with .txt otherwise :)
[10:54:19 CEST] <Bombtrack> that actually makes a lot of sense :P
[10:54:37 CEST] <Bombtrack> Thanks so much for the explenation
[16:25:28 CEST] <locsmif> Hi. Any tips for .mp4 stream optimisation according to: https://nadavrub.wordpress.com/2013/10/18/patching-mp4-files-to-be-compatib… ?
[16:25:39 CEST] <locsmif> How do I move the index to the front, etc?
[16:31:02 CEST] <Mavrik> locsmif: -movflags +faststart
[16:31:15 CEST] <Mavrik> this should move the index to the front after muxing / encoding for MP4
[16:31:23 CEST] <locsmif> Great, thanks
[19:49:43 CEST] <mickkie> Hi All, I downloaded a webm file containing opus. How is it recommended to conver it to another container format which my media player can play? I tried .ogg, but the opus audio is converted with Liborvis and I lose bitrate.
[19:50:32 CEST] <mickkie> Can ogg be used as a container only, while retaining the opus audio?
[19:51:59 CEST] <mickkie> Ahh! '-codec:a copy' done it. :-)
[19:52:04 CEST] <mickkie> Bye now
[21:51:39 CEST] <^Neo> hello friends, I'm trying to see how many junk frames are at the beginning of a stream... when I ffprobe it though, it will always start on a key frame, is there a way to tell ffprobe to tell the junk frames it's parsed?
[21:53:00 CEST] <durandal_1707> what?
[21:53:59 CEST] <^Neo> like if I do ffprobe -show_entries packet=flags <input> the first frame will always have flags=K_ it looks like
[21:54:20 CEST] <^Neo> but a TS file may have non-keyframes at the beginning of the stream based on where its cut
[21:54:27 CEST] <^Neo> s/its/it's/
[21:55:34 CEST] <^Neo> or is it just that the streams I'm looking at are always cut on a keyframe?
[21:55:45 CEST] <durandal_1707> you could use -c:v copy and hope that it will mark packets properly as keyframes
[21:56:29 CEST] <durandal_1707> if you cut with ffmpeg, it will always cut at keyframe iirc
[21:57:25 CEST] <^Neo> i'm just trying to automate comparison between two videos and it looks like on some sequences there's repeated frames at the beginning (I'm presuming because they were cut on an open GOP)
[21:57:48 CEST] <^Neo> so I was using ffprobe to try to tell me when I reach an I frame
[22:00:43 CEST] <durandal_1707> use ffmpeg instead
[22:05:16 CEST] <^Neo> solid
[00:00:00 CEST] --- Sat Jul 21 2018
1
0