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
September 2019
- 2 participants
- 80 discussions
[12:15:27 CEST] <cone-968> ffmpeg 03Gyan Doshi 07master:c104701b6c5d: avformat/mux: correct error msg for when BSF filtering fails
[14:04:56 CEST] <mkver> Is something wrong with the IRC log again? Yesterday's log isn't up yet.
[14:43:27 CEST] <jamrial> ePirat: ping
[15:27:40 CEST] <ePirat> jamrial, pong
[15:27:52 CEST] <jamrial> ePirat: sent a patch to the ml to fix the aac demuxing issue
[15:28:00 CEST] <jamrial> in case you wanted to test it
[15:28:46 CEST] <ePirat> thanks!
[15:29:01 CEST] <ePirat> Will test in the evening
[15:39:03 CEST] <cone-097> ffmpeg 03Andreas Rheinhardt 07master:d4035ca849bd: cbs_h2645: Fix infinite loop in more_rbsp_data
[16:35:19 CEST] <cone-097> ffmpeg 03James Almer 07master:e460dcc832e9: avcodec/cbs_h265: add support for Alpha Channel Info SEI messages
[18:45:29 CEST] <cone-097> ffmpeg 03James Almer 07master:23599834bd6f: avcodec/tak_parser: don't return error values
[19:05:56 CEST] <cone-097> ffmpeg 03Michael Niedermayer 07master:c95857a4237d: avcodec/ffwavesynth: Check sample rate before use
[19:05:57 CEST] <cone-097> ffmpeg 03Michael Niedermayer 07master:f4605770af71: avcodec/ffwavesynth: More correct cast in wavesynth_seek()
[19:05:58 CEST] <cone-097> ffmpeg 03Michael Niedermayer 07master:65bac4a7825e: avcodec/ffwavesynth: Check if there is enough extradata before allocation
[19:05:59 CEST] <cone-097> ffmpeg 03Michael Niedermayer 07master:5941b7f615b0: avcodec/dvbsubdec: Use ff_set_dimensions()
[00:00:00 CEST] --- Sun Jul 21 2019
1
0
[00:23:17 CEST] <tjones> A new question - for X11 screen recording, I've been instructed to --enable-x11grab, but when I do that configure errors in 4.2. Was this removed/changed?
[00:44:22 CEST] <cehoyos> tjones: Please read the channel description
[00:46:26 CEST] <tjones> I'm pretty sure that what I am asking about is related specifically to developing and building ffmpeg.
[00:48:21 CEST] <jamrial> no, questions about how to compile ffmpeg don't belong here
[00:51:02 CEST] <nicolas17> are you developing ffmpeg?
[00:51:15 CEST] <tjones> I'll go there, but you need to state that in the description. The current description does not say that questions about building ffmpeg do not belong here..
[00:51:31 CEST] <tjones> @nicolas17 - yes, that's what I'm trying to do here.
[00:52:52 CEST] <tjones> I have found few issues with timing in the X11 screen recording, but I guess I can take them elsewhere.
[01:14:47 CEST] <thardin> michaelni: the instructions for setting up libfuzzer are wrong
[01:14:54 CEST] <thardin> the project has moved elsewhere in llvm
[02:18:40 CEST] <cone-142> ffmpeg 03Limin Wang 07master:df6e341b0418: lavf/dump: use error log level for invalid size
[02:23:44 CEST] <cone-142> ffmpeg 03Steven Liu 07master:cff309097a3a: avformat/hlsenc: merge mpegts and fmp4 workflow to one workflow
[02:36:54 CEST] <thardin> cinepakdec mystery solved. turns out lavc can only allocate huge frames so fast
[02:37:35 CEST] <thardin> I can literally just comment out all the decoding and it still "only" runs at 200 fps
[02:37:53 CEST] <thardin> for a 65535x200 or so file
[02:38:37 CEST] <thardin> is there a "null" or black decoder? how fast can lavc shuffle frames around when you really get down to it?
[02:40:09 CEST] <thardin> ff_reget_buffer() calls frame_copy_video(), go figure
[03:01:07 CEST] <Compn> thardin, that bug sounds like very important one to fix :)
[03:01:13 CEST] <Compn> a hard limit somewhere in lavc ;)
[03:01:56 CEST] <Compn> fixing it may end up making ffmpeg faster all around :)
[03:02:08 CEST] <Compn> thardin, make sample file ?
[03:15:23 CEST] <kierank> thardin: should be able to use memory pools
[03:15:49 CEST] <kierank> frame_copy_video is just copying struct elements
[08:01:45 CEST] <durandal_1707> Compnn: you still awake?
[08:02:16 CEST] <Compnn> yes
[08:02:17 CEST] <Compnn> wat
[08:02:20 CEST] <Compnn> durandal_1707,
[08:20:48 CEST] <durandal_1707> i will recert scpr patch by michaelni that makes decoder returns no frames
[08:20:59 CEST] <durandal_1707> *revert
[09:52:58 CEST] <thardin> kierank: are you sure you don't mean av_frame_copy_props() ?
[09:53:44 CEST] <thardin> av_frame_copy() documentation: "Copy the frame data from src to dst."
[10:11:09 CEST] <thardin> ah I think I see. this decoder does the opposite of the win3.1 one. instead of copying selectively from the last frame it just copies everything and overwrites wherever there aren't ENC_SKIP MBs
[10:14:59 CEST] <thardin> question then is why can't the decoder just get the last frame to write over?
[10:22:44 CEST] <thardin> mkay, just using ff_get_buffer() once works just as well
[10:47:29 CEST] <nevcairiel> if the frame is being held by the user, then you cant write over it, and you need to make a copy
[10:47:43 CEST] <thardin> how do I know that?
[10:48:56 CEST] <thardin> why don't avcodec_decode_video*() use const AVFrame* ?
[10:49:24 CEST] <thardin> this feels like a big oof moment
[10:49:58 CEST] <nevcairiel> why would it be const, it obviously writes into the frame
[10:50:24 CEST] <thardin> hum. right, the user supplies the AVFrame
[10:50:50 CEST] <thardin> that would make this a fundamental architecture problem in lavc
[10:51:15 CEST] <nevcairiel> anyway ff_reget_buffer does just that, it'll check if the frame is valid and writable and then just reuse it, and if its not it'll make a copy
[10:51:32 CEST] <thardin> no, it always makes a copy
[10:51:40 CEST] <nevcairiel> no it doesnt
[10:51:48 CEST] <nevcairiel> i have the code in front of me right now
[10:51:54 CEST] <thardin> hmm
[10:52:03 CEST] <thardin> maybe av_frame_is_writable() returns false here?
[10:52:41 CEST] <nevcairiel> quite likely, possibly because the frame is still in filtering or who knows where its being held
[10:53:40 CEST] <nevcairiel> but if you have inter-coding and you can't modify the original frame to apply the differences since its being used by something else, then you have to make a copy, thats the price you pay for inter-coding
[10:55:35 CEST] <thardin> again, architecture problems
[10:55:44 CEST] <nevcairiel> no, fundamental concept of inter-coding
[10:55:53 CEST] <thardin> no
[10:56:07 CEST] <nevcairiel> unless you dont want the user to be able to hold onto the frame, in which case he has to make a copy, but you always end up w ith a copy
[10:56:16 CEST] <thardin> if lavc were to give the user frames instead of the ass-backward way it is now, this problem would not exist
[10:56:26 CEST] <nevcairiel> sure it would
[10:57:07 CEST] <nevcairiel> and we actually have a new decode api that does just that, but it cannot solve this problem, its fundamentally incompatible
[10:58:00 CEST] <durandal_1707> they cant agree with basic things
[10:58:37 CEST] <thardin> hum. but if the user doesn't want modify the frame then the decoders shouldn't have to copy it around if they don't need to
[10:59:18 CEST] <nevcairiel> As soon as you have a frame with a lifetime that exceeds the time between calls to the decode function, then you can't just modify the existing one anymore, since you would modify the previously returned frame
[10:59:33 CEST] <thardin> right
[11:00:16 CEST] <nevcairiel> the old-old decode API basically was like that, and all it did was move the frame copy from lavc to the user, since players or processing tools generally require more frame lifetime
[11:01:00 CEST] <nevcairiel> (and even worse, it made the copy mandatory for all cases, instead of just cases like this)
[11:01:23 CEST] <thardin> is it possible that it's just the fuzzing tool no relinquishing ownership of frames?
[11:01:43 CEST] <thardin> tools/target_dec_fuzzer.c
[11:01:56 CEST] <nevcairiel> if its just fuzzing the decoder and nothing else, I would expect it should release the frame right after its returned to it
[11:02:38 CEST] <thardin> there's a av_frame_unref() call just before decoding
[11:02:57 CEST] <nevcairiel> yeah thats definitely there
[11:03:20 CEST] <nevcairiel> did you benchmark with the tool?
[11:03:30 CEST] <thardin> target_dec_fuzzer? yes
[11:03:55 CEST] <nevcairiel> i wonder what else would possibly hold a reference to the data then
[11:04:39 CEST] <thardin> maybe it's passing two/three frames around and nothing else?
[11:05:00 CEST] <thardin> like it's got one allocated frame lined up that of course needs a copy of the old frame
[11:05:19 CEST] <thardin> can a decoder hold onto the last frame? that might be one solution
[11:06:29 CEST] <thardin> then I can just make it behave like the win3.1 decoder, making it similarly not-lenient. any area not covered by a strip gets old garbage
[11:07:45 CEST] <nevcairiel> Oh, the fuzzer is not using reference counted frames
[11:07:49 CEST] <nevcairiel> that explains the extra copy
[11:08:29 CEST] <durandal_1707> why is fuzzing that stupid?
[11:09:01 CEST] <nevcairiel> if you add ctx->refcounted_frames = 1 somewhere in the init of that fuzzing tool, the speed penality might go away
[11:09:07 CEST] <thardin> I wonder how many "speedup" patches are due to that
[11:09:22 CEST] <thardin> I'll give it a shot
[11:09:43 CEST] <durandal_1707> all michael patches
[11:10:51 CEST] <thardin> zoooooom
[11:10:53 CEST] <thardin> yeah that fixed it
[11:11:18 CEST] <thardin> so a "crap behind the controls" situation
[11:12:50 CEST] <nevcairiel> we could possibly even fix that in avcodec in the refcounted = 0 mode, but its probably not really tested much by anyone anymore, since refcounting is generally just superior
[11:16:01 CEST] <durandal_1707> michael does not like that flag though iirc
[11:16:25 CEST] <thardin> shouldn't it be default if it's a good thing?
[11:17:33 CEST] <nevcairiel> it should be, but it requires users to properly free frames or it leaks, hence its an incompatible change
[11:19:13 CEST] <nevcairiel> maybe we can do it on next major bump
[11:26:07 CEST] <thardin> makes sense
[11:51:42 CEST] <durandal_1707> so whats next step? continue to apply patches of dubious quality?
[11:53:09 CEST] <thardin> I'd be in favor of the timeout fuzz reports being more available at least
[12:26:44 CEST] <durandal_1707> nothing of that will happen as Lynne correctly explained
[12:29:04 CEST] <durandal_1707> kierank: can you apply 3 v360 patches?
[12:32:17 CEST] <thardin> I'll start my own fuzzing cluster, with blackjack and so on
[12:34:27 CEST] <durandal_1707> kierank: lets fork FFmpeg
[12:37:39 CEST] <thardin> RWmpeg
[12:39:14 CEST] <thardin> how is libav doing these days?
[12:39:52 CEST] <thardin> no releases in 1œ year
[12:40:36 CEST] <durandal_1707> or commits
[15:08:25 CEST] <durandal_1707> i lost all my motivation to continue working on FFmpeg
[16:37:58 CEST] <kierank> durandal_1707: hi
[16:42:22 CEST] <durandal_1707> i wonder if community really need gsoc patches from two my projects
[16:43:52 CEST] <vel0city> people may just be busy with vacation and such, it _is_ August
[16:44:07 CEST] <vel0city> that's the case for other projects at least
[17:40:11 CEST] <durandal_1707> michaelni: you still ignore my requests! and your patches are becoming worse and worse
[17:41:55 CEST] <cehoyos> I have just added a patch to ticket 8081 that changes the parser so that it does not only output frames with size 10*channels but also 11*channels (depending on codec). The decoder now alternately gets frames of size 22 and 2 (for stereo input), the two bytes are repeated (and ignored by the decoder, but an error is printed). Is there a bug in the parser?
[17:45:02 CEST] <durandal_1707> you skip stuff in decoder?
[17:45:20 CEST] <cehoyos> The leading byte with unknown content
[17:46:11 CEST] <cehoyos> Do you know why the parser does not constantly output block_size bytes?
[17:46:12 CEST] <bencoh> I guess that's the kind of things you'd be supposed to do in parser (or maybe a bsf), but not in decoder
[17:46:26 CEST] <cehoyos> The parser is not allowed to drop bytes, so no
[17:47:00 CEST] <cehoyos> (Basically every decoder drops some bytes, even the modern video codecs can have stuffing elements)
[17:48:57 CEST] <durandal_1707> cehoyos: your patch is wrong
[17:49:09 CEST] <cehoyos> Would you like to elaborate?
[17:49:18 CEST] <durandal_1707> pay me first
[17:49:30 CEST] <cehoyos> I don't pay for reviews, sorry
[17:50:19 CEST] <durandal_1707> than no working patch for you
[17:51:29 CEST] <durandal_1707> you even do not know how to check that parser is working correctly
[17:52:50 CEST] <cehoyos> That's why I am asking here
[17:55:41 CEST] <durandal_1707> you even touched that line when adding stereo support
[17:56:36 CEST] <durandal_1707> decoder will need to consume all bytes
[17:56:50 CEST] <durandal_1707> in your cases it does not
[17:57:21 CEST] <durandal_1707> you forgot to update one line
[17:57:33 CEST] <cehoyos> The decoder does consume 11*channels, no?
[17:57:38 CEST] <cehoyos> The decoder does consume 11*channels bytes, no?
[17:57:38 CEST] <durandal_1707> now pay me your day salary
[17:57:48 CEST] <cehoyos> You wouldn't be happy;-=
[17:57:52 CEST] <cehoyos> You wouldn't be happy;-)
[17:58:11 CEST] <cehoyos> So why does the parser output frames of two bytes?
[17:58:34 CEST] <durandal_1707> parser is outputting what you codded up
[17:59:20 CEST] <durandal_1707> decoder is not consuming all bytes causing 2 extra bytes to be left in limbo
[17:59:56 CEST] <cehoyos> Ahh
[18:00:09 CEST] <durandal_1707> the same two bytes you skip in decoder but your decoder still returns old size
[18:00:19 CEST] <thardin> is michael the only one using/caring about discard_damaged_percentage ?
[18:00:49 CEST] <durandal_1707> yes also making cfr content vfr
[18:01:23 CEST] <thardin> yeah that I noticed
[18:01:23 CEST] <michaelni> thardin, discard_damaged_percentage was added after people asked me to add such a field IIRC
[18:02:15 CEST] <michaelni> i think the field makes sense but it wasnt my idea
[18:02:36 CEST] <thardin> hum hum
[18:04:04 CEST] <thardin> is this perhaps intended for satellite streams?
[18:04:43 CEST] <durandal_1707> lol
[18:05:40 CEST] <durandal_1707> its sole purpose is to buffer more such devastating patches to the project
[18:06:14 CEST] <michaelni> thardin, damaged streams or streams with missing packets occur in more cases than satelite
[18:06:39 CEST] <thardin> that's true
[18:08:18 CEST] <durandal_1707> this is only to keep fuzz timeout patches going on
[18:09:59 CEST] <durandal_1707> new invention is returning invalid return code for overflows in sar calculations
[18:10:07 CEST] <durandal_1707> for vc1
[18:11:16 CEST] <durandal_1707> i imagine ffmpeg will in next few years accept only qcif resolutions as others allow dos attacks and overflows
[18:13:32 CEST] <thardin> well, I've made my feelings on that quite well-known by now: use a proper job queue system if accepting random crap from the internets
[18:14:56 CEST] <durandal_1707> but if you do not fix DOS issues people will use alternative solutions
[18:15:15 CEST] <thardin> the horror
[18:15:47 CEST] <thardin> it's just make-work imo, and makes the decoders needlessly ugly
[18:15:58 CEST] <kierank> Yes it is "busywork"
[18:16:24 CEST] <kierank> I should delete features based on "security"
[18:16:40 CEST] <kierank> All nonfree should be deleted, we don't know what blob is doing
[18:16:50 CEST] <kierank> All hwdec as well
[18:17:03 CEST] <kierank> Should all be deleted, we don't know what hw is doing
[18:17:06 CEST] <thardin> no support for any cpus except risc-v
[18:17:09 CEST] <kierank> Could be integer overflow
[18:17:30 CEST] <thardin> refuse to run on machines with samsung RAM
[18:17:43 CEST] <kierank> michaelni: do you have even any thought that your aggressive behaviour is causing people to leave the project
[18:18:00 CEST] <kierank> And that your hardlineness has been the cause of issues in the past
[18:18:05 CEST] <kierank> Or will you continue like this forever?
[18:18:19 CEST] <durandal_1707> next step is adding ECC ram checks in software
[18:18:37 CEST] <kierank> durandal_1707: should I write patch to delete all nonfree? And all hwdec?
[18:18:42 CEST] <kierank> On security groundd
[18:19:19 CEST] <durandal_1707> dunno, that stuff is not enabled by default
[18:19:56 CEST] <durandal_1707> write patch to kill useless sonic codec
[18:36:59 CEST] <thardin> one month until IBC
[18:39:01 CEST] <kierank> Yes
[18:39:06 CEST] <kierank> Need to book flight and hotel
[18:41:03 CEST] <kierank> Ibc is not a good place to have a meeting
[18:41:46 CEST] <thardin> there's always after
[18:42:42 CEST] <durandal_1707> will there be vdd and when and where?
[19:00:28 CEST] <j-b> yes
[19:00:33 CEST] <j-b> tokyo
[19:01:50 CEST] <durandal_1707> very expensive
[19:08:40 CEST] <thardin> yes
[19:10:02 CEST] <j-b> durandal_1707: so? why do you care?
[19:13:30 CEST] <durandal_1707> i care for developers
[19:15:00 CEST] <j-b> we pay for developers travels.
[19:17:23 CEST] <thardin> o rly?
[19:19:54 CEST] <j-b> as every year.
[19:39:47 CEST] <durandal_1707> which zork pcm decoder we have, from which game?
[19:42:51 CEST] <kurosu> Will JAL and/or Air France sponsor the flights because of their infotainment ? :o
[20:21:58 CEST] <kierank> durandal_1707: Michaelni won't come
[20:22:03 CEST] <kierank> So it's pointless
[20:23:16 CEST] <durandal_1707> kierank: could you apply 3 v360 patches?
[20:33:23 CEST] <kierank> Yes but building Lego Saturn v now
[20:58:44 CEST] <durandal_1707> so whats reasons that fuzzer does not use refcounted frames?
[21:05:16 CEST] <durandal_1707> im wasting my time with FFmpeg, i hate every moment i spent with it and expecially with fellow leader you know who you are.
[21:38:15 CEST] <durandal_1707> cehoyos: will you be next leader? everything is better than current one.
[21:41:38 CEST] <cehoyos> As said before: I believe the project leader needs a better technical understanding of FFmpeg than I have
[22:08:34 CEST] <durandal_1707> cehoyos: what unused byte looks like with values?
[22:09:15 CEST] <cehoyos> One bit shows "left"/"right", another one is always set: alternating 0x82 and 0x02
[22:09:36 CEST] <cehoyos> It is possible that the byte is used to signal silence but not in the only sample we currently have
[22:12:05 CEST] <durandal_1707> cehoyos: look at #4799 bug
[22:12:42 CEST] <cehoyos> ;-)
[22:18:02 CEST] <durandal_1707> does that files work too?
[22:22:46 CEST] <cehoyos> They work (the old one sounds funny), they do not contain other leading bytes (for mono, 0x80 is never set)
[22:23:15 CEST] <durandal_1707> funny in what sense?
[22:24:01 CEST] <cehoyos> A foreign (not English, French, German, Russian, likely Northern not Eastern European) language call center call with a calm man and a shouting woman
[22:24:47 CEST] <durandal_1707> lol
[22:42:33 CEST] <Compnn> cehoyos, ddi you double check lynne copyrights ?
[22:42:55 CEST] <cehoyos> Sorry, I don't understand the question
[22:42:57 CEST] <Compnn> btw lynne seems anonymous . anon email, anon domain. wont be able to contact him in future if we want to relicense
[22:43:09 CEST] <Compnn> cehoyos, copyright on new files that lynne sent patch for
[22:43:16 CEST] <cehoyos> That is true for a large number of contributors
[22:43:30 CEST] <Compnn> one file was missing anyone copyright. not sure if the file was just a header/ not copyrightabkle
[22:43:44 CEST] <cehoyos> Which mail are you talking about
[22:44:11 CEST] <nevcairiel> the copyright line in the header is pretty meaningless, many people send patches for new files without them
[22:44:58 CEST] <nevcairiel> and people that change a file dont usually add themselves to it either
[22:45:04 CEST] <cone-966> ffmpeg 03Michael Niedermayer 07master:1965161ef6d2: avcodec/anm: Check input size for a frame with just a stop code
[22:47:40 CEST] <Compnn> cehoyos, http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavcodec/aarch64/opusdsp_n…
[22:48:11 CEST] <cehoyos> What is the issue? Do you suspect a copyright infringement?
[22:48:29 CEST] <Compnn> no
[22:48:36 CEST] <durandal_1707> Compnn: why you attack lynne?
[22:48:48 CEST] <Compnn> but i remember people complaining in past about files without copyright header
[22:49:03 CEST] <cehoyos> It's not the only such file
[22:50:07 CEST] <durandal_1707> Compnn: do you want to relicense to AGPL? I do.
[22:52:20 CEST] <thardin> could always go the x264 route, except agpl taking the place of gpl for license trolling purposes
[22:53:11 CEST] <thardin> since a lot of ffmpeg forks end up hidden behind clouds
[23:00:12 CEST] <kierank> So what if Lynne is anonymous
[23:00:18 CEST] <kierank> Nothing wrong with anonymous contributors
[23:00:52 CEST] <thardin> or contributors who have been dead for 40 years
[23:01:08 CEST] <durandal_1707> Who is Compnn? Also anonymous.
[23:01:24 CEST] <Compnn> im in maintainers file same as you durandal_1707
[23:02:05 CEST] <durandal_1707> thardin: why 40 years?
[23:02:15 CEST] <thardin> the famed elvis presley
[23:03:04 CEST] <durandal_1707> that contibution is invalid anf should be removed from history
[23:04:36 CEST] <durandal_1707> Compnn: is your real name listed in that file?
[23:17:38 CEST] <thardin> hah, my strip height optimizer in cinepakenc works. 10% smaller output for a given lambda
[23:22:27 CEST] <durandal_1707> what i missed?
[23:35:32 CEST] <Compnn> thardin, did you find the bottleneck ?
[23:38:05 CEST] <durandal_1707> yes, but michaelni does not approve it
[23:38:56 CEST] <michaelni> durandal_1707, please stop
[23:39:56 CEST] <thardin> Compnn: it just has to do with how things work when refcounting is off vs on
[23:40:44 CEST] <thardin> it's possible to optimize the case where a frame has no changes at all, but if a frame has only a few changes then a full copy is performed (if refcounting is disabled)
[23:41:26 CEST] <thardin> this applies to whole heap of decoders. more relevant for our current times would be gifdec
[23:41:38 CEST] <durandal_1707> what? leader is more preffered? ok. noted.
[23:42:12 CEST] <thardin> and the (a)png decoder
[23:42:32 CEST] <durandal_1707> and qtrle
[23:42:41 CEST] <durandal_1707> and msrle
[23:42:47 CEST] <durandal_1707> and scpr
[23:42:52 CEST] <thardin> those are hardly used tho, just like cinepak
[23:43:06 CEST] <thardin> whereas gif and png are very much in daily use
[23:43:53 CEST] <durandal_1707> how do you know? maybe its other way around
[23:44:08 CEST] <thardin> I am omniscient
[23:44:30 CEST] <michaelni> durandal_1707, you know what i meant, please stop, randomly pointing at me
[23:44:43 CEST] <michaelni> especially if its untrue
[23:45:49 CEST] <durandal_1707> aha, now i need to ask someone first whats true and false
[23:46:08 CEST] <thardin> I'm a bit rusty on LZW, but it compress large runs to O(sqrt(N)), right?
[23:46:49 CEST] <michaelni> durandal_1707, pointing at me like this is already quite rude even if its true
[23:48:10 CEST] <michaelni> but its not even true, iam not against changing the ref counting rather i think letting the fuzzer choose the ref counting would make sense or more completely simulating a decoder
[23:48:54 CEST] <michaelni> but only changing the ref counting can be done too if people prefer that
[23:52:07 CEST] <kierank> michaelni: do you not think it is rude the way you acted towards durandal_1707
[23:52:15 CEST] <kierank> When he asked for security access
[23:52:44 CEST] <kierank> Or the way you shout "DOS IS IMPORTANT" when he reports a problem with a patch
[23:53:15 CEST] <kierank> And you can't just act like these timeouts are the be all and end all
[23:53:32 CEST] <durandal_1707> i do not care anymore, let him do whatever he please
[23:59:13 CEST] <durandal_1707> just apply v360 patches and move on with other things
[00:00:00 CEST] --- Mon Aug 19 2019
1
0
[10:13:26 CEST] <JEEB> 33
[10:21:16 CEST] <kierank> durandal_1707: I don't understand what that telecine guy trying to do
[10:21:40 CEST] <durandal_1707> me too
[10:22:03 CEST] <kierank> he is trying to do some spatial telecine
[10:22:09 CEST] <kierank> I don't see how that can ever look good
[10:23:12 CEST] <JEEB> he has been going around the mpv channel and the ffmpeg users' channel
[10:23:24 CEST] <kierank> he was angry nobody responded
[10:23:30 CEST] <JEEB> apparently some sort of hardware person who might have misconceptions about things
[10:23:30 CEST] <kierank> and then was using some custom notation
[10:23:31 CEST] <kierank> (wtf)
[10:23:57 CEST] <JEEB> he first came asking if players did telecine when they were showing 24p on a 60Hz screen
[10:24:03 CEST] <JEEB> then he asked how to do telecine
[10:24:04 CEST] <JEEB> etc
[10:24:10 CEST] <JEEB> rather confuzzled he seemed
[10:25:12 CEST] <JEEB> (although I'm exactly as confuzzled regarding what he actually wants to achieve)
[10:52:09 CEST] <nevcairiel> mc
[10:52:13 CEST] <nevcairiel> woops
[11:43:22 CEST] <cone-795> ffmpeg 03Paul B Mahol 07master:a2dbd857333b: doc/filters: fix alphabetic order of some video filters
[12:57:28 CEST] <cone-795> ffmpeg 03Jun Zhao 07master:da6e56991662: configure: fix --disable-alsa can't work
[12:57:29 CEST] <cone-795> ffmpeg 03Jun Zhao 07master:43b341263189: configure: fix --disable-v4l2-m2m can't work
[15:39:54 CEST] <soub> Hi, I solved one minor bug #8111. I run a command git commit then git format-patch what I do next to send it to mailing list. Pls help I am doing first time.
[15:40:05 CEST] <BtbN> send-email
[15:41:13 CEST] <soub> BtbN: where I can find content to send, git format-patch nothing gives me output
[15:41:28 CEST] <BtbN> format-patch outputs a patch
[15:41:34 CEST] <BtbN> send-email takes that file
[15:41:43 CEST] <BtbN> well, it outputs one patch per commit
[15:42:57 CEST] <soub> Okay thank you BtbN
[15:59:19 CEST] <jamrial> durandal_1707: do you have a sample to test the 360 stuff?
[15:59:24 CEST] <jamrial> also, example command lines
[16:12:00 CEST] <durandal_1707> jamrial: fetch vimeo or facebook or youtube 360 video
[16:12:16 CEST] <BtbN> "People are ignoring my ticket, better set it to Important!"
[16:12:24 CEST] <durandal_1707> what you trying to do?
[16:13:35 CEST] <jamrial> test the asm you wrote
[16:17:59 CEST] <durandal_1707> jamrial: do you know how to fetch video?
[16:19:07 CEST] <jamrial> found a cube 3x2 one and an equirect one i had around
[16:19:35 CEST] <jamrial> no idea what to pass to in_forder or out_forder, though
[16:20:05 CEST] <durandal_1707> youtube 3x2 is eac
[16:20:41 CEST] <durandal_1707> facebook 3x2 cube is v360 simple c3x2
[16:21:11 CEST] <durandal_1707> vimeo is always equirectangular
[16:21:18 CEST] <JEEB> I was kind of saddnened that vimeo's 360 video has no metadata :P
[16:21:29 CEST] <JEEB> so when I was looking into handling it, noope
[16:21:43 CEST] <JEEB> yea, it generally seems to be equirectangular
[16:37:43 CEST] <durandal_1707> jamrial: you use only first three options, others are for more advanced stuff
[16:37:54 CEST] <jamrial> alright
[18:30:53 CEST] <durandal_1707> jamrial: second pmulld is needed
[18:49:18 CEST] <durandal_1707> also i cant get pmaddwd to work
[18:55:34 CEST] <durandal_1707> because linesize is int
[19:12:55 CEST] <dloman91> hello, I am trying to encode unregistered SEI data on every frame and it appears that in h264_metadata_bsf.c the bsf is checking for sps and only adding the data to I frames. I am wrong in thinking that the standard says I can write SEI data to any frame instead of just to the GOP? Is there a specific reason SPS is checked or is this a bug?
[19:15:06 CEST] <jamrial> durandal_1707: i got it working. i just replaced pmulld with pmaddwd. no need to remove the pmovsxwd lines, or change how to broadcast it in m0
[19:15:18 CEST] <jamrial> as long as linesize values fit in a signed word, it works
[19:17:35 CEST] <jkqxz> dloman: You can put SEI NAL units in any access unit you like. The functionality in h264_metadata is intended for adding a single stream-level tag, so it deliberately only adds it to frames which already contain an SPS.
[19:18:49 CEST] <durandal_1707> jameial: i get with that invalid output
[19:20:42 CEST] <dloman91> i see @jkqxz is there a specific way one is supposed to add SEI to access units such as the h264_metadata_bsf? or should i just write my own with code similar to what is done in the h264_metadata_bsf
[19:21:11 CEST] <jamrial> i get the same checksums
[19:22:03 CEST] <jkqxz> dloman91: Your own code like it.
[19:24:03 CEST] <durandal_1707> jamrial: any speedup noticeable from it?
[19:24:10 CEST] <durandal_1707> snd show it
[19:24:38 CEST] <jamrial> i don't even notice a speedup with the function compared to c. the filter is pretty slow
[19:24:51 CEST] <dloman91> sounds good. If i made a merge request which added a field to the h264_metadata_bsf to toggle between every frame and sps would that be acceptable or should something like that be in its own seperate bsf?
[19:25:20 CEST] <jkqxz> What would be the use-case be for adding the same thing to every access unit?
[19:25:33 CEST] <dloman91> MISB 604.6
[19:25:53 CEST] <dloman91> it adds precision timestamps to every AU
[19:26:37 CEST] <dloman91> frame i am not 100% certain on the difference between frame and AU (i am very new to this)
[19:27:22 CEST] <jkqxz> That doesn't sound like you want the same data in every access unit.
[19:27:30 CEST] <dloman91> correct
[19:27:40 CEST] <dloman91> i am modifiying the filter every frame
[19:28:37 CEST] <jkqxz> So the sei_user_data option isn't what you want at all.
[19:28:57 CEST] <dloman91> why do you say that?
[19:29:28 CEST] <jkqxz> Because it's a single string provided as an option.
[19:30:13 CEST] <dloman91> A Precision Time Stamp Identifier, equal to the ASCII string MISPmicrosectime,shall be inserted into the H.264/AVC compressed user_data_unregistered SEImessage field uuid_iso_iec_11578, so that it relates to a specific Motion Imageryframe.
[19:30:25 CEST] <dloman91> thats from MISB604.6 spec
[19:30:45 CEST] <dloman91> A one-byte Time Status followed by an 11-byte Modified Precision Time Stamp shallbe inserted into the H.264/AVC compressed user_data_unregistered SEI messagefield user_data_payload_byte, so that it relates to a specific Motion Imagery frame.
[19:31:16 CEST] <dloman91> its a magic string then a status then a uint64_t with some 0xff every 3 bytes
[19:32:31 CEST] <jkqxz> Where are you going to get the timestamp from? If it's present in side-data then adding a new pass/insert/remove/extract-type option to H.264 metadata sounds plausible.
[19:32:48 CEST] <dloman91> in my case hardware
[19:35:15 CEST] <dloman91> every frame before i av_bsf_send_packet i set the sei_user_data opt on the bitstreamFilterContext to the updated value
[19:37:44 CEST] <jkqxz> While that probably works, it's definitely doing naughty things with the API.
[19:40:47 CEST] <jkqxz> I'm not familiar with this standard or who uses it, but it does look vaguely sensible. A new option to use it seems fair.
[19:40:57 CEST] <dloman91> haha. yes i figured. but you only yolo once also i had not clue how to do it correctly
[19:41:03 CEST] <dloman91> its very common in drones
[19:41:46 CEST] <jkqxz> (Including start code emulation bytes in H.264 is a bit of a joke, though I guess it's inherited from the MPEG-2 code.)
[19:42:13 CEST] <dloman91> start code emulation?
[19:42:46 CEST] <dloman91> is that the 0xffs inside of the time data?
[19:43:15 CEST] <jkqxz> Yeah. H.264 already deals with that, so adding them in the data is redundant.
[19:43:24 CEST] <dloman91> ahh
[19:44:45 CEST] <dloman91> would love to learn the correct way to do this. How would you implement this without abusing the API?
[19:47:21 CEST] <jkqxz> Make a new side-data type containing your special timestamps, and attach them to each frame before you send it to the BSF. Add an option to h264_metadata to indicate that it should make the SEI out of your timestamps (like the display orientation stuff).
[19:47:39 CEST] <cone-327> ffmpeg 03Michael Niedermayer 07master:9d3ddef519e8: avcodec/apedec: Fix 32bit int overflow in do_apply_filter()
[19:47:39 CEST] <cone-327> ffmpeg 03Michael Niedermayer 07master:8a1a9588fb44: avcodec/vqavideo: Limit resolution
[19:47:39 CEST] <cone-327> ffmpeg 03Michael Niedermayer 07master:dfa5d1a3667f: avcodec/iff: Check for overlap in cmap_read_palette()
[19:47:41 CEST] <jkqxz> Or maybe existing frame metadata is good enough without adding a new side-data type? Not sure on that one.
[19:48:15 CEST] <jkqxz> PTS is a timestamp value. If your timebase is microseconds then you've already got the right thing there.
[19:48:37 CEST] <dloman91> but the PTS is relative to start of the video no?
[19:48:51 CEST] <dloman91> this is supposed to be since unix epoch
[19:49:18 CEST] <jkqxz> There is no requirement that PTS starts at any particular value.
[19:50:02 CEST] <dloman91> interesting. I didnt know that
[19:51:55 CEST] <Lynne> there isn't, but don't expect containers to handle non-zero start PTS properly
[19:52:09 CEST] <dloman91> the frame metadata stuff. is that in the h264_metadata bsf or is that somewhere else?
[19:53:16 CEST] <JEEB> Lynne: movenc f.ex. does just fine :) its default mode is to shift stuff to start from zero, though. but if stop that it should take it just fine. (you can test this with -itsoffset XXXX -copyts in ffmpeg.c)
[19:53:39 CEST] <jkqxz> See libavutil/frame.h.
[19:54:20 CEST] <Lynne> IIRC matroska really didn't like it (or maybe mpv didn't like it on playback)
[19:54:25 CEST] <JEEB> (you might or might not need to add the flag for discontinuities for fragmented mp4 though)
[19:54:42 CEST] <JEEB> (otherwise it will attempt to make the thing continuous and start the fragments at 0)
[19:54:46 CEST] <cone-327> ffmpeg 03Gyan Doshi 07master:fa697aa92f5d: ffmpeg: switch to avformat_seek_file for stream_loop
[19:54:47 CEST] <cone-327> ffmpeg 03Gyan Doshi 07master:2b66c757d6aa: fate: add test for stream_loop
[19:57:19 CEST] <dloman91> ahh so AVFrameSideData? I was looking at this last week :) ... I couldn't figure out how to use this and also if this data was encoded or if it was additional to the encoded stream
[20:02:10 CEST] <durandal_1707> jamrial: what cpu do you have? and what resolution you test?
[20:03:20 CEST] <jamrial> durandal_1707: haswell, and tried a 3072x2048 cubemap video
[20:05:16 CEST] <durandal_1707> isnt haswell old cpu with worse performance then broadwell?
[20:05:49 CEST] <JEEB> it has AVX2
[20:05:52 CEST] <durandal_1707> i get nice speed boost here
[20:05:59 CEST] Action: JEEB still has 4790K
[20:06:03 CEST] <JEEB> which is a haswell refresh
[20:06:48 CEST] <jamrial> durandal_1707: gather is slow on haswell, so maybe that's why
[20:07:42 CEST] <durandal_1707> buy tiger lake
[20:11:11 CEST] <dloman91> trying to understand the flow here #1 add new AVFrameSideDataType #2 attached side data to frame w/ av_frame_new_side_data #3 somewhere inside of avcodec_send_frame & avcodec_receive_packet take AVFrameSideData turn it into a AVPacketSideData (but only 1 per Frame) #4 inside of h264_metadata bsf check if there is this special Side data and if so wr
[20:11:11 CEST] <dloman91> ite it to SEI unregistered data for that packet
[20:11:44 CEST] <tmm1> dloman91: there's a patchset on the list for h264 cbs which does similar logic for a53 side data
[20:11:49 CEST] <tmm1> you will probably find that useful
[20:12:35 CEST] <tmm1> jkqxz: whenever you get a chance, would appreciate a review of the v4l2 drm patchset on the list
[20:12:47 CEST] <dloman91> total n00b here, my apologies. where can i find said patchset?
[20:13:53 CEST] <dloman91> this https://patchwork.ffmpeg.org/patch/9076/ ?
[20:13:57 CEST] <Lynne> tmm1: lgtm for the --disable-v4l2-m2m configure patch, push it now, and push it to old releases where it applies cleanly
[20:15:35 CEST] <Lynne> does it also fix --disable-hwaccels?
[20:16:21 CEST] <tmm1> dloman91: https://patchwork.ffmpeg.org/patch/8161/
[20:16:29 CEST] <tmm1> that might not be the latest but it should give you an idea
[20:16:34 CEST] <tmm1> i need to revive that patchset
[20:16:52 CEST] <dloman91> awesome thanks
[21:08:20 CEST] <kierank> Is that really worth a CVE
[21:08:52 CEST] <jamrial> who knows
[21:19:46 CEST] <jamrial> it made it to a release, and it uses uninitialized memory. guess that's enough for a cve
[21:27:22 CEST] <BtbN> I guess some people get paid per CVE. So... everything is a CVE
[23:36:34 CEST] <rcombs> mmmmmm, looks like libcuda has some logs gated behind __RM_ENABLE_VERBOSE_OUTPUT=1
[23:38:40 CEST] <BtbN> Where did you find that? oO
[23:44:35 CEST] <rcombs> oh my, what might CUDA_MEMCHECK do
[23:45:18 CEST] <rcombs> BtbN: disassembly
[23:45:29 CEST] <rcombs> see also CUDA_MEMCHECK_RECORD_FORMAT_VERSION, CUDA_MEMCHECK_FLAG
[23:45:37 CEST] <rcombs> and CUDA_MEMCHECK_OUTPUT
[23:46:29 CEST] <rcombs> guess there's a "cuda-memcheck" tool available and these env vars are undocumented implementation details
[23:46:37 CEST] <nevcairiel> those things are possibly used by the cuda-memcheck tool, which is basically valgrind for cuda
[23:46:42 CEST] <nevcairiel> ^
[23:47:26 CEST] <rcombs> those ones are all read as strings; contrast with some other stuff in here that's either read as an unsigned int, or immediately checked only for null, and then first-byte-equals-'1'
[23:49:13 CEST] <rcombs> it's funny, they've got a whole routine for reading an env var and copying its value to a provided buf+length
[23:49:59 CEST] <rcombs> maybe they think that'll make it okay when they CALL SETENV FROM LIBRARY CODE HOLY FUCK
[23:50:23 CEST] <rcombs> ahahahaha they pthread_mutex_lock() around setenv()
[23:50:28 CEST] <rcombs> sure that'll make it all fine
[23:51:51 CEST] <rcombs> I'm gonna see what that logging var does later
[23:52:34 CEST] <rcombs> currently I'm trying to track down an issue where a GPU remains in the P0 power state (instead of dropping to P5 or P8) after I avcodec_open2() and then avcodec_close() an nvenc
[23:52:44 CEST] <rcombs> seems to be somewhat inconsistent
[23:53:33 CEST] <rcombs> nvidia-smi doesn't report the process as still using the GPU after the avcodec_close(), so I'd bet this is a driver bug, but if I can work around it that'll probably be quicker than getting them to fix it
[23:54:12 CEST] <BtbN> If you report that to the nvidia ffmpeg conacts via E-Mail they'll definitely be interested.
[23:57:46 CEST] <rcombs> which contacts?
[23:58:28 CEST] <rcombs> also amusingly the P-state seems to drop back to normal if I close() some leaked file descriptors& that are opened in cuInit(), which has no corresponding deinit function
[23:58:56 CEST] <rcombs> so for a while I just thought this was an unsolvable design flaw, but it turns out that it does _sometimes_ drop even with those fds still open
[23:59:15 CEST] <rcombs> and also the P-state doesn't go to P0 when they're first opened; only when the actual session is started later
[23:59:18 CEST] <BtbN> One would expect any such FDs to auto close on app exit
[00:00:00 CEST] --- Fri Sep 6 2019
1
0
[01:15:45 CEST] <a90c> is there any GUI tool that uses ffmpeg?
[01:16:12 CEST] <pink_mist> "GUI tool"? you mean like handbrake?
[01:16:15 CEST] <pink_mist> cause handbrake does
[01:16:34 CEST] <a90c> Yeah like handbrake
[01:16:50 CEST] <pink_mist> there you go then
[01:17:37 CEST] <a90c> Can it add subtitle?
[01:17:46 CEST] <FooNess> Yes; if you have say an SRT file, you can put it in.
[01:17:53 CEST] <FooNess> Either as default, burned in, etc.
[01:18:03 CEST] <a90c> Ok good thanks
[01:18:05 CEST] <FooNess> (With Handbrake, I mean, since you asked.)
[01:18:26 CEST] <pink_mist> I'm nearly certain handbrake has its own channel too
[01:18:31 CEST] <pink_mist> which would be a better place to discuss it
[01:18:38 CEST] <a90c> Right
[01:28:44 CEST] <bray90820> How would I update FFMPG on MacOS
[01:31:08 CEST] <FooNess> bray90820, https://trac.ffmpeg.org/wiki/CompilationGuide/macOS#Updatingffmpeg
[01:32:21 CEST] <bray90820> Thanks
[01:47:46 CEST] <markfilipak> I have the output of 'ffprobe -show_streams' & 'ffprobe -show_frames' for a DVD that both HandBrake & MPV believe is soft telecined. JEEB@#mpv told me that 'ffprobe' would be definitive but I don't see anything soft-telecine-ish. What should I look for?
[03:04:26 CEST] <kepstin> markfilipak: if in the video frames in the -show_frames output, all frames have `interlaced_frame=0` and some frames have `repeat_pict=1` then it's soft telecine.
[03:05:25 CEST] <kepstin> for a 2:3 pulldown, every second video frame will have repeat_pict=1
[03:06:25 CEST] <kepstin> (you'll also see the top_field_first= alternating between 0 and 1)
[03:07:34 CEST] <kepstin> note that it's possible for a dvd video to have mixed interlaced (or hard telecine) content and soft telecine content.
[03:08:33 CEST] <kepstin> if you have that, I normally recommend processing it using ffmpeg by using the "repeatfields" filter to turn it into cfr hard telecine, then redoing the detelecine.
[03:24:44 CEST] <markfilipak> kepstin, may doG bless you!
[03:54:00 CEST] <FishPencil> This probably gets asked a lot, but is there a way to capture from a desktop and retain the correct colors? The output colors look "washed out"
[03:54:13 CEST] <FishPencil> My guess it's something with the RGB->YUV conversion
[03:54:48 CEST] <another> it's probably due to chroma subsampling
[03:59:49 CEST] <FishPencil> Hm, is there a way to force/test gdigrab to use 4:4:4?
[04:01:50 CEST] <Henry151> hi
[04:02:54 CEST] <Henry151> i had a movie, in .mkv format; I wanted it to be able to stream easily, so i converted it to mp4 with this command: https://termbin.com/m4rt which was supposed to also burn in the subtitles to the outputted mp4... this was because i was trying to use nextcloud to play my movies so i could stream them from wherever
[04:03:00 CEST] <Henry151> then, i discovered other better apps
[04:03:32 CEST] <Henry151> and so now, I was trying to stream it from plex or from jellyfin (both of which are working really well for this in general; i can watch any of my movies or tv shows from anywhere)
[04:04:10 CEST] <Henry151> however, both plex and jellyfin seem to be trying to re-transcode it when they try to serve it, and so it's winding up being all choppy and screwy...they're each able to serve regular mkv videos just fine, transcoding on the fly
[04:04:22 CEST] <Henry151> i'm here just to get some insight about this
[04:04:52 CEST] <Henry151> i had figured that if it was in mp4, there would be no need for the player to transcode it for live streaming
[04:05:14 CEST] <Henry151> so i'm #1 confused about why plex and jellyfin both try to transcode the mp4 instead of just streaming it in current format
[04:05:29 CEST] <Henry151> and #2 confused about why this results in choppy/interrupted video
[04:06:08 CEST] <Henry151> meanwhile i'm re-downloading it in mkv and will just put it in place in original format and let the built-in transcoding plex and jellyfin do handle it themselves..
[04:07:08 CEST] <Henry151> jellyfin appears to use ffmpeg to transcode, though plex seems to have its own transcoder or be using some modified version of ffmpeg
[04:12:36 CEST] <Ultima> Plex also uses Ffmpeg unless they recently changed this.
[04:14:32 CEST] <Ultima> there are a lot of variables at play that have not been explained that can cause the issues that you are seeing, though I also am not sure what your definition of choppy/interrupted video is. My guess is waiting for the content to be downloaded from the server.
[04:16:11 CEST] <Ultima> how powerful is the system that is hosting the content?
[04:32:47 CEST] <kepstin> FishPencil: gdigrab does do non-subsampled rgb by default. you can save to an rgb codec like libx264rgb to save the colors as-is
[04:33:02 CEST] <kepstin> (although player compatibility is lower)
[04:55:21 CEST] <Henry151> hi Ultima ! thanks for the response.. the server is not super powerful, it's a dell poweredge 2900, but it is able to smoothly serve every other video i've tried so far, so i think the strength is not the issue..
[04:57:45 CEST] <Henry151> yes, by "choppy/interrupted video" i meant that it was "waiting for the content to be downloaded from the server"
[04:58:45 CEST] <Henry151> but, I think we were really waiting for the server to transcode it, not waiting for the network transfer or similar.. because, as part of the attempts to get it working, i tried streaming other things that were of equivalent "movie-quality" and they were all able to stream smoothly
[04:59:38 CEST] <Henry151> i'm thinking that perhaps my manual transcoding into mp4 was done in such a way as to create a problematic file, or, that it's something like with audio, how if you transcode from lossless to lossy, and then to lossy again, you lose quality? except for video
[05:01:13 CEST] <Ultima> Check the load on the server while you are playing the video, also verify the quality that it is set to. Also, is the content on local storage? What kind of physical media is being used to store it? an ssd or hdd? What is the load of the disks while the media is transcoding? How large is the file that is to be transcoded? Have you tried turning on debug logging and seeing the command being used to transcode the video? Try doing this manually with a
[05:01:13 CEST] <Ultima> different output and see how fast it is able to transcode.
[05:01:52 CEST] <TheRock> any1 has sony a7s cam
[05:03:11 CEST] <Henry151> without really knowing, a glance at htop while it is trying to transcode, it looks like it's really using max cpu.. file is about 4.8G... stored on spinning disks, but it's the main raid array of hot-plug drives that is hosting the rest of the videos on the server
[05:07:58 CEST] <Ultima> if the cpu is maxed, the last bit I mentioned would be the most helpful, do the transcode manually and see how fast the server is able to transcode it. It is likely not powerful enough to support it by the sound of it though.
[05:09:10 CEST] <Ultima> If some other media seems to be fine, check the encoding for each file and compare the differences. I'm not a media expert but someone here would probably know which encoding require more cpu cycles.
[05:23:59 CEST] <Henry151> https://imgur.com/vQt4WKk I'm about to upload the mkv version to the server, since all the other media that was playing fine is in .mkv format and this was the only one that I had converted to mp4 and it's the only one giving me trouble. That's what made me think maybe i screwed up my initial conversion command somehow.
[05:48:10 CEST] <TheRock> ffmpeg -i input.mp4 -vcodec libx264 -crf 24 -preset slow -filter:v hqdn3d=4.0:3.0:6.0:4.5 -acodec aac -strict experimental -ab 192k output.mp4
[05:48:18 CEST] <TheRock> i found this command online to reduce wind noise from a video
[05:48:25 CEST] <TheRock> can anyone confirm this ?
[06:07:51 CEST] <pk08> can any one help me to find solution of my problem?
[06:07:52 CEST] <pk08> i want to add a global variable which can access in libavformat/mpegts.c and libavfilter/vf_drawtext.c
[06:07:52 CEST] <pk08> so for that, i created a header file called "test.h" and defined a variable with extern int anyError; and then included test.h file in both above .c files
[06:07:52 CEST] <pk08> and i redefined that variable in mpegts.c like int anyError = 0;
[06:07:52 CEST] <pk08> now when i try to compile ffmpeg i am getting libavfilter/libavfilter.so: undefined reference to `anyError'
[06:09:48 CEST] <pk08> i tried to build static build but getting same error there too!
[07:36:42 CEST] <lain98> is it assured that every packet from av_read_frame corresponds to a single frame in the stream ? i know that this is not true for atleast one case, packed b frames for divx but theres a filter for that.
[08:01:52 CEST] <Taniey> anybody used amix filter?, I have a question, when the amix mix the audios, how it deal the discontinuous audio frame?
[08:05:53 CEST] <Taniey> for instance, A audio whith: FFFFF-----FFFFF, B audio: FFFFFFFFFFFFFFF, A have two segment audio frames, and B have continuous audio frames. how it mix use amix filter?
[10:11:58 CEST] <norbert> hi folks; I'm trying to transcode WMV3 (Microsoft ASF) to MP4, and the dimensions are off; it appears the input is actually 1440x1080 (instead of 1920x) which mplayer and vlc prescale during playback
[10:12:34 CEST] <norbert> mplayer says "VO: [vdpau] 1440x1080 => 1920x1080 Planar YV12" and that the "Movie-Aspect is 1.78:1 - prescaling to correct movie aspect."
[10:13:23 CEST] <furq> so what's the issue
[10:14:15 CEST] <JEEB> that's your standard anamorphic content (aspect ratio for pixels is not 1:1)
[10:14:27 CEST] <JEEB> FFmpeg will keep it as such unless you specify that you want to scale
[10:14:45 CEST] <JEEB> but I'm not fully sure *why* you would do that
[10:14:54 CEST] <norbert> ok; is there any way I can tell ffmpeg to scale it as vlc and mplayer do?
[10:15:04 CEST] <furq> it will do that automatically unless you're resizing it
[10:15:13 CEST] <norbert> I am resizing it :)
[10:15:13 CEST] <furq> in which case just resize it to -2:720 or whatever and it'll do the right thing
[10:15:43 CEST] <norbert> hm, but the resizing is automatic, so I check the input x/y sizes and then pick half
[10:16:05 CEST] <JEEB> furq: I'm not sure if -2 etc will keep the PAR...
[10:16:08 CEST] <JEEB> *SAR
[10:16:09 CEST] <norbert> I'd like it to go to half of 1920x1080 (960x540)
[10:16:20 CEST] <JEEB> norbert: then you have to calculate based on applying the SAR :P
[10:16:25 CEST] <JEEB> and not only resolution
[10:16:25 CEST] <norbert> instead of half of what it detects (1440x...)
[10:16:40 CEST] <norbert> SAR, ok
[10:16:48 CEST] <JEEB> SAR = sample aspect ratio, because samples are a more generic term
[10:16:58 CEST] <JEEB> (than pixels)
[10:17:15 CEST] <norbert> and ffprobe can detect the SAR for setsar?
[10:17:43 CEST] <JEEB> decode a single frame and -show_frames
[10:17:59 CEST] <JEEB> it has all the data on the decoded picture
[10:19:15 CEST] <JEEB> -select_streams v:0 -show_frames -read_intervals "%+#1"
[10:19:28 CEST] <JEEB> that should decode one frmae for you from the 1st (0th) video track
[10:19:47 CEST] <norbert> thx
[10:20:13 CEST] <JEEB> and you have sample_aspect_ratio=1:1 or something like that in there :P
[10:20:14 CEST] <JEEB> for the frame
[10:20:52 CEST] <furq> scale=-2:ih/2 should work if you don't mind keeping it anamorphic
[10:21:19 CEST] <furq> i just doublechecked and it works with non-square pixels
[10:21:54 CEST] <JEEB> yes. I think he specifically wants to not keep it anamorphic?
[10:22:01 CEST] <JEEB> norbert: or do you?
[10:22:17 CEST] <JEEB> (I think if you go under the resolution you originally had, you might as well do it 1:1 SAR)
[10:22:25 CEST] <furq> yeah
[10:22:36 CEST] <furq> you can probably do all that within the scale filter and not have to ffprobe
[10:22:42 CEST] <JEEB> yes
[10:23:53 CEST] <norbert> I'll just be honest, I don't know what anamorphic is
[10:23:57 CEST] <norbert> I'll Google it
[10:24:12 CEST] <furq> https://en.wikipedia.org/wiki/Pixel_aspect_ratio
[10:24:25 CEST] <JEEB> norbert: content where SAR/PAR (whichever wording you like) is not 1:1
[10:24:43 CEST] <JEEB> like 1440x1080 with a SAR of 4:3 is 1920x1080
[10:24:44 CEST] <JEEB> :P
[10:25:07 CEST] <norbert> ah
[10:25:16 CEST] <furq> and 4/3 * 4/3 = 16/9
[10:26:44 CEST] <norbert> furq: I cannot use -2:etc because the input may actually be 4:3 or any random thing
[10:26:53 CEST] <norbert> I'm extracting thumbnails from random videos
[10:27:06 CEST] <norbert> with scale=1280:720:flags=lanczos:force_original_aspect_ratio=decrease
[10:27:13 CEST] <norbert> to get to '720p'
[10:27:51 CEST] <norbert> and these 1440x videos have height 720 but the width is off because of the PAR
[10:28:49 CEST] <norbert> ffprobe stream=width also fails because of the PAR
[10:29:20 CEST] <furq> scale=w=if(gt(dar\,16/9)\,1280\,-2):h=if(gt(dar\,16/9)\,-2\,720)
[10:29:22 CEST] <furq> something like that
[10:29:54 CEST] <furq> that'll get you an output with either 1280 width and <=720 height or <=1280 width and 720 height
[10:30:03 CEST] <furq> which i guess is what you mean by '720p'
[10:30:19 CEST] <norbert> okay, when I see "scale=w=if(gt(dar\,16/9)\,1280\,-2):h=if(gt(dar\,16/9)\,-2\,720)" I think "The simplest solution is most likely the right one" https://en.wikipedia.org/wiki/Occam%27s_razor ;)
[10:30:33 CEST] <norbert> furq: it is what I mean, yes
[10:30:47 CEST] <furq> it might be even more complicated than that, i just pulled that out of my logs from a conversation where i wasn't thinking about anamorphic
[10:31:04 CEST] <furq> it is less complicated than it looks though
[10:31:17 CEST] <lain98> does anyone know why i might get "Operation not permitted". I'm calling avformat_seek_file with AVSEEK_FLAG_BYTE and pos that i know exists in the stream
[10:31:39 CEST] <furq> it's just if aspect ratio > 16/9 then 1280:-2 else -2:720
[10:31:41 CEST] <lain98> i also get the same with av_seek_frame
[10:40:04 CEST] <furq> norbert: -vf "scale=w=if(gt(dar\,16/9)\,1280\,trunc(720*dar)):h=if(gt(dar\,16/9)\,trunc(1280*dar)\,720),setsar=1"
[10:40:10 CEST] <furq> somewhat tested
[10:40:37 CEST] <norbert> damn, that's complicated
[10:43:03 CEST] <furq> whoops
[10:43:07 CEST] <furq> norbert: -vf "scale=w=if(gt(dar\,16/9)\,1280\,trunc(720*dar)):h=if(gt(dar\,16/9)\,trunc(1280/dar)\,720),setsar=1"
[11:09:06 CEST] <norbert> furq: thx; how likely is that to work with a barrage of random videos? :P
[11:09:37 CEST] <norbert> oh, actually, it still won't fix my ffprobe problem
[11:10:32 CEST] <norbert> ffprobe -v error -show_entries stream=width -of default=noprint_wrappers=1:nokey=1 test.wmv
[11:10:35 CEST] <norbert> still says 1440
[11:11:20 CEST] <norbert> perhaps width should be an alias of non-par-corrected-width (or something, you get what I mean)
[11:12:08 CEST] <norbert> other video platforms that use ffmpeg must also run into this, but perhaps they don't have an eye for details
[11:20:14 CEST] <furq> you shouldn't need to use ffprobe with that
[11:21:58 CEST] <furq> if the thumbnails are jpeg then you might want to use trunc(360*dar)*2 and trunc(640/dar)*2 to make sure the output is mod2
[11:22:02 CEST] <furq> if it's png then it doesn't matter
[11:39:12 CEST] <lain98> uhh i indexed all keyframes in a video and saved AVPacket.pos for keyframes, however when i call av_seek_frame/avformat_seek_file with the indexed pos i get EPERM or operation not permitted. any hints or how can i build ffmpeg with debug symbols ?
[12:17:06 CEST] <DHE> ffmpeg already has debug symbols in the build directory in the form of the ffmpeg_g binary
[12:19:36 CEST] <lain98> DHE: cant find anything named *ffmpeg_g*
[12:30:25 CEST] <DHE> this is linux?
[12:30:29 CEST] <lain98> yeah
[12:30:44 CEST] <lain98> i built ffmpeg from source
[12:30:53 CEST] <lain98> and only use libav*.so not ffmpeg
[12:31:13 CEST] <lain98> ffmpeg- the command line utility
[12:31:22 CEST] <DHE> oh..
[12:31:42 CEST] <lain98> i only build the libraries
[12:50:04 CEST] <lain98> still ffprobe -show_frames shows that the first frame has pos=48. when i call avformat_seek_file(ctx, video_index, INT64_MIN, 48, INT64_MAX, AVSEEK_FLAG_BYTE). i cannot seek
[13:01:13 CEST] <lain98> okay i guess AVSEEK_FLAG_BYTE might not be universally supported however i'm demuxing mp4 and i imagined it would be supported
[13:39:44 CEST] <norbert> furq, JEEB; thanks again for the feedback
[14:19:26 CEST] <kepstin> lain98: for most formats you want to seek by timestamp, not byte index.
[14:20:11 CEST] <kepstin> lain98: why are you making an index? is this so you can seek by frame number?
[14:20:31 CEST] <kepstin> lain98: if so, you should store (frame number, pts) in your index.
[15:36:08 CEST] <kepstin> a byte index would only be useful for formats where seeking to a timestamp is unreliable and the format can resync at arbitrary points, like mpegts
[17:39:54 CEST] <saml> sample_aspect_ratio=1:1 is this bad?
[17:41:42 CEST] <durandal_1707> no
[19:01:47 CEST] <DHE> saml: means the video ratio/resolution and the screen ratio match exactly
[19:04:57 CEST] <saml> DHE, ah thanks
[19:05:45 CEST] <DHE> or alternatively, what it's really meant to convey, the pixels in the image are perfectly square
[00:00:00 CEST] --- Fri Sep 6 2019
1
0
[06:15:53 CEST] <cone-753> ffmpeg 03James Almer 07release/3.4:a9282fc9642b: avformat/aacdec: factorize the adts frame resync code
[06:15:54 CEST] <cone-753> ffmpeg 03James Almer 07release/3.4:bb22b9ce211c: avformat/aacdec: resync to the next adts frame on invalid data instead of aborting
[06:15:54 CEST] <cone-753> ffmpeg 03James Almer 07release/4.0:47bb804f7813: avformat/aacdec: factorize the adts frame resync code
[06:15:54 CEST] <cone-753> ffmpeg 03James Almer 07release/4.0:1def4baa5984: avformat/aacdec: resync to the next adts frame on invalid data instead of aborting
[06:24:39 CEST] <cone-753> ffmpeg 03Mark Harris 07release/2.8:266b784bb369: avutil/mem: Fix invalid use of av_alloc_size
[06:24:42 CEST] <cone-753> ffmpeg 03Mark Harris 07release/3.0:b858bcbbf6c1: avutil/mem: Fix invalid use of av_alloc_size
[06:24:44 CEST] <cone-753> ffmpeg 03Mark Harris 07release/3.1:6f6cd2e29df5: avutil/mem: Fix invalid use of av_alloc_size
[06:24:47 CEST] <cone-753> ffmpeg 03Mark Harris 07release/3.2:5fd65ebf28d9: avutil/mem: Fix invalid use of av_alloc_size
[06:24:49 CEST] <cone-753> ffmpeg 03Mark Harris 07release/3.3:9d3509f4015f: avutil/mem: Fix invalid use of av_alloc_size
[06:24:51 CEST] <cone-753> ffmpeg 03Mark Harris 07release/3.4:29362d5f9a4c: avutil/mem: Fix invalid use of av_alloc_size
[06:24:54 CEST] <cone-753> ffmpeg 03Mark Harris 07release/4.0:dbca455d7e36: avutil/mem: Fix invalid use of av_alloc_size
[06:24:56 CEST] <cone-753> ffmpeg 03Mark Harris 07release/4.1:0c904c0d3ff8: avutil/mem: Fix invalid use of av_alloc_size
[08:56:56 CEST] <Compnn> michaelni, is photosensitive filter OK ?
[08:56:59 CEST] <Compnn> anyone else review it ?
[09:22:56 CEST] <kierank> Lynne: sorry for the harassment you get from cehoyos
[09:28:26 CEST] <michaelni> Compnn, i dont think theres anything blocking it, at least nothing i found. There are some areas which can be improved as i mentioned on the ML
[10:29:46 CEST] Action: JEEB screams at jenkins/32
[15:41:53 CEST] <Lynne> while fflogger is dead: FUCK OFF CARL
[15:55:19 CEST] <jamrial> quit it
[19:27:46 CEST] <durandal_1707> michaelni, why fflogger is not sharing irc logs
[00:00:00 CEST] --- Wed Jul 24 2019
1
0
[01:40:19 CEST] <goel> Hi I am not sure if this is possible or not but I am currently fiddling around with AVPackets in libavcodec. Is it possible to re-order or insert AVPackets from a video file?
[01:41:04 CEST] <goel> Say I wanted to insert an AVPacket into the middle of a video file, is this actually possible or would I have to expose some internal function?
[01:42:13 CEST] <goel> Maybe I am asking in the wrong way, I am guessing I need to decode the frames and then re-order? Is that possible?
[05:05:07 CEST] <Henry151> https://termbin.com/bzjb
[05:12:14 CEST] <relaxed> Henry151: what's the problem?
[05:23:11 CEST] <Henry151> hi relaxed , no problems :) just wanted to run it by you first, mostly to see if i put the -c:a copy -movflags +faststart in the right place
[05:23:46 CEST] <Henry151> https://termbin.com/y68b
[05:23:54 CEST] <Henry151> this is where i imagine they go
[05:24:06 CEST] <another> nope
[05:24:32 CEST] <another> those are supposed to be output options
[05:24:48 CEST] <another> the need to go after the input and before the output
[05:25:58 CEST] <Henry151> https://termbin.com/6ujm how's this look?
[05:27:32 CEST] <another> better
[05:29:15 CEST] <Henry151> anything else i should change on this for turning a bunch of .mkv of varying sizes into mp4 with the subtitles burnt in? I want to get this right because i'm going unleash it on a fairly large selection of videos
[05:36:18 CEST] <another> i see nothing wrong there
[05:37:12 CEST] <another> altough if your audio is dts or ac3 it might get problematic to play those files in the browser
[05:37:49 CEST] <Henry151> i see... so perhaps i could leave out the -c:a and let it re-encode the audio for each of them
[05:40:13 CEST] <another> e.g.
[05:40:32 CEST] <another> also, you should probably take a look at this https://trac.ffmpeg.org/wiki/Encode/H.264
[05:46:55 CEST] <Henry151> another: so, if I want to set something like, say, set the preset to "slower", where do i put that option? between input and output again?
[05:50:15 CEST] <Henry151> ah i'm reading more now sorry for dumb question.
[12:21:47 CEST] <DHE> Henry151: yeah, ffmpeg syntax is: ffmpeg [input1 options] -i input1 [[input2 options] -i input2]... [output1 options] output1 [[output2 options] output2]...
[12:22:23 CEST] <DHE> and some global options like -filter_complex can go anywhere, but usually put between the last input and first output for style reasons
[16:56:35 CEST] <goel> Hello, does 1 AVPacket from av_read_frame() only contain 1 AVFrame?
[16:56:55 CEST] <JEEB> not necessarily
[16:57:12 CEST] <JEEB> https://www.ffmpeg.org/doxygen/trunk/group__lavc__encdec.html
[16:57:17 CEST] <JEEB> recommended reading from the docs
[16:58:24 CEST] <goel> Ok thank you
[16:59:33 CEST] <goel> I am trying to read packets from an mp4 file and write them into another mp4 file. I do not want to call avcodec_decode_video2() and decode each frame. I just want to write the packet.
[16:59:56 CEST] <goel> I tried calling avio_write with the packet data but it is incorrect? I have called av_write_header and av_write_trailer afterwards.
[17:07:53 CEST] <DHE> goel: you want the badly named av_write_frame (or the interlaced version if you have multiple streams that aren't synced properly)
[17:08:42 CEST] <DHE> avio_write is a raw file IO function, allowing you to do things like treat an HTTP URL or a local file name identically for IO purposes for example
[17:30:59 CEST] <goel> DHE I have av_write_frame within a loop which reads the frames from the format context: e.g.
[17:31:23 CEST] <goel> while (av_read_frame(fileFormatContext, &packet) >= 0)
[17:31:43 CEST] <goel> av_write_frame(outputFileContext, &packet);
[17:32:06 CEST] <goel> It ends up only writing the header/trailer of the file.
[17:32:16 CEST] <goel> The content of the packet does not seem to be written.
[17:33:05 CEST] <DHE> might want to check the return code of av_write_frame then. lacking details I'd guess that you didn't set up the streams in the output file properly before writing the header?
[17:35:20 CEST] <zerodefect> I have an MXF file where MediaInfo reports a timecode (the same timcode) for both the source and material packages of the file. Now when I do "ffprobe -i TTY9001051.mxf -print_format json -show_streams -show_format" and examine the json output, I can see the same timecode as a tag in the 'format' section. Using the C-API, is it possible to get to the Tc while demuxing MXF? Presumably,
[17:35:20 CEST] <zerodefect> 'AV_FRAME_DATA_GOP_TIMECODE' would give me the Tc from the video essence?
[17:38:15 CEST] <goel> DHE I just tried it and the return code was 0 indicating it was a success but the output file does not open.
[17:40:35 CEST] <goel> I have created a new video stream by using avformat_new_stream
[17:44:03 CEST] <goel> I am wondering why the video does not play. I have only 1 packet inside that video and it is a single frame.
[17:44:14 CEST] <goel> The file size seems correct but it does not want to play.
[22:37:49 CEST] <ChrisJW> Does anyone understand the licensing for H265/HEVC?
[22:38:04 CEST] <ChrisJW> My best understanding is that it is free to decode up to 100k devices
[22:38:21 CEST] <ChrisJW> Any idea on how wrong I am?
[22:46:53 CEST] <jkqxz> In answer to your first question, no. There are multiple different patent groups, and you may need separate licences from each one.
[23:08:01 CEST] <pzy> technical answer: lol licensing
[23:08:51 CEST] <vejetaryenvampir> What's the quivalent of `-f pulse -ac 2 -i "$(pactl list sinks | awk '/Monitor Source:/{print $3}')"` in alsa?
[23:09:03 CEST] <vejetaryenvampir> equivalent*
[23:09:16 CEST] <vejetaryenvampir> I can't find it.
[23:09:30 CEST] <vejetaryenvampir> -f alsa -i hw:0 doesn't work.
[00:00:00 CEST] --- Fri Aug 9 2019
1
0
[00:02:04 CEST] <nevcairiel> why is it that av_fast_realloc uses size_t for the min_size but unsigned int for the pointer, thats just like inconsistent
[00:09:33 CEST] <nevcairiel> historical nonsense i guess
[00:23:39 CEST] <Lynne> philipl: I did notice that usage flags affect performance a lot for some reason, like 50 fps
[00:25:13 CEST] <BtbN> The Interop might not be well too well tested and optimized on their end yet
[00:25:20 CEST] <BtbN> and internally doing copies or something
[00:25:30 CEST] <Lynne> https://0x0.st/zJi7.patch https://0x0.st/zJih.patch are the new patches if you want to test it again
[00:25:54 CEST] <BtbN> I'd need to get a working Vulkan build env going first
[00:53:07 CEST] <philipl> Lynne: looking at your changes, you're still re-importing on every transfer. You need to import and retain the array for the lifetime of the frame in the pool to overcome the performance issues.
[00:53:27 CEST] <philipl> The import operations are expensive and not designed to work this way (I asked)
[00:54:20 CEST] <philipl> and then very quickly you'll need to implement the semaphores to sync the writes and reads on re-used frames.
[00:54:33 CEST] <Lynne> oic
[00:55:02 CEST] <philipl> (actually semaphores can probably wait a bit. With a 4 frame pool, you'll probably not see any issues under normal conditions)
[01:18:14 CEST] <Lynne> philipl: okay, its faster now, but still 50fps slower than a software decoding + hwupload
[03:46:13 CEST] <philipl> Lynne: well, that's unfortunate.
[04:54:29 CEST] <philipl> Lynne: although not a rigourous comparison, the mpv interop is not a clear fps win with 1080p content, but it is for 4k. ~660fps vs ~400fps
[04:54:56 CEST] <philipl> It is a distinct cpu saving even at 1080p though.
[04:56:09 CEST] <philipl> so I think you may not have any low hanging fruit left to speed it up
[08:15:44 CEST] <soub> Hi
[08:17:47 CEST] <soub> I want to start contribution to ffmpeg org any Junior level bug
[08:18:40 CEST] <soub> I build ffmpeg from source in my ubuntu
[08:26:44 CEST] <JEEB> not sure if we have any lists of such bugs; people usually fix what is broken for themselves
[08:28:37 CEST] <BradleyS> soub: you might be able to find something interesting to you on https://trac.ffmpeg.org/
[08:34:01 CEST] <Compn> soub, what experience in C do you have ?
[08:39:55 CEST] <soub> I don't know how much deep is C. Currently I know Basics of C, Pointers, Stuctures, Memory Management, Strings, File input output, functions, All flow controls, Bit Operations, and I can also write data structure in c.
[15:27:25 CEST] <cone-242> ffmpeg 03James Almer 07master:9ea6d2149e25: avcodec/decode: add a flags parameter to ff_reget_buffer()
[15:27:26 CEST] <cone-242> ffmpeg 03James Almer 07master:c14a12ac84a8: avcodec/wcmv: use ff_reget_buffer()
[15:27:27 CEST] <cone-242> ffmpeg 03James Almer 07master:5102999223f2: Revert "avcodec/wcmv: Avoid copying frames if they are unchanged"
[15:27:27 CEST] <cone-242> ffmpeg 03James Almer 07master:343f8d514e52: avcodec/wcmv: prevent frame copying when outputting duplicate frames
[15:27:29 CEST] <cone-242> ffmpeg 03James Almer 07master:a0739e8a16ac: avcodec/nuv: prevent frame copying when outputting duplicate frames
[15:27:30 CEST] <cone-242> ffmpeg 03James Almer 07master:f34aabfbaeae: avformat/matroskadec: use proper types for some EbmlSyntax fields
[15:27:31 CEST] <cone-242> ffmpeg 03James Almer 07master:3b3150c45f1e: avformat/matroskadec: use av_fast_realloc to reallocate ebml list arrays
[16:28:22 CEST] <cone-242> ffmpeg 03Guo, Yejun 07master:022f50d3febe: libavfilter/dnn: add header into native model file
[16:47:56 CEST] <durandal_1707> anybody can please look at my github branch: github.com/richardpl/FFmpeg/tree/360 ?
[16:49:00 CEST] <durandal_1707> am lost why i do not get interpolated pixels instead i get 4x1 blocks of same pixels
[16:50:19 CEST] <kierank> durandal_1707: can you link me to the c
[16:50:23 CEST] <kierank> your code is weird
[16:50:31 CEST] <kierank> loading the strides into simd registers
[16:50:47 CEST] <durandal_1707> that works
[16:51:13 CEST] <kierank> ah you're using vgather
[16:51:15 CEST] <kierank> that might be why
[16:51:26 CEST] <durandal_1707> vgather works fine
[16:56:14 CEST] <Lynne> durandal_1707: vgather is usually slower than individual loads, but very rarely if caching works out its faster
[16:56:37 CEST] <Lynne> here's a macro to benchmark either vgather or N loads -> https://paste.debian.net/1098773/
[16:58:42 CEST] <Lynne> wait, you're doing 8 uncorrelated lookups, nevermind, vgather is usually faster than 8 loads
[17:00:54 CEST] <Lynne> you can remove all adds at the end except for add xq, 4
[17:01:57 CEST] <Lynne> then you get vpmovsxwd m1, [kerq + xq*32], movd [dstq + xq*4], xm5, etc
[17:05:16 CEST] <Lynne> you already load pb_255 in m6, so instead of loading it again in m3 for the vgather just use m6 again
[17:06:49 CEST] <BBB> pb_255 is just pcmpeqw, no need for a constant there
[17:07:35 CEST] <Lynne> cglobal remap2_8bit_line, 9, 9, 9, isn't correct since you use 7 arguments and 2 extra gprs, so it should be cglobal remap2_8bit_line, 7, 9, 9, ...
[18:32:14 CEST] <durandal_1707> how to effectively extract every 4th byte from 256bit register?
[18:33:08 CEST] <kierank> pshufb
[18:35:49 CEST] <durandal_1707> doesnt work
[18:36:21 CEST] <durandal_1707> it only extract first 128bits
[18:36:56 CEST] <jamrial> it's not crosslane, no
[18:37:29 CEST] <jamrial> use it, then vextracti128
[18:37:46 CEST] <jamrial> or vpermq
[19:13:23 CEST] <cone-242> ffmpeg 03Limin Wang 07master:787c56b9e9e5: avformat/mxfenc: fix warning: unused function 'klv_ber_length' [-Wunused-function]
[19:18:49 CEST] <durandal_1707> jamrial: see new code, force refresh, i cant get second 128 bits for nearest interpolation
[19:19:04 CEST] <durandal_1707> remap1 function
[19:24:32 CEST] <jamrial> durandal_1707: unrelated, but the constants are not aligned
[19:24:56 CEST] <durandal_1707> yes i know
[19:25:05 CEST] <jamrial> and you should make pb_mask 16 bytes long
[19:28:26 CEST] <durandal_1707> but thats all unrelated
[19:28:59 CEST] <durandal_1707> i get no updates from pixels for some reason
[19:29:40 CEST] <durandal_1707> every 4th to 7th are solid color
[19:34:49 CEST] <jamrial> durandal_1707: the pshufd, the higher bits are zero
[19:35:28 CEST] <durandal_1707> look at read1 not read2
[19:35:48 CEST] <jamrial> i am
[19:35:52 CEST] <durandal_1707> ah got it
[19:35:54 CEST] <jamrial> use vpbroadcastd
[19:36:03 CEST] <jamrial> pshufd isn't crosslane
[19:39:01 CEST] <durandal_1707> but its avx512
[19:40:36 CEST] <jamrial> no, vpbroadcastd m0, xm0 is avx2
[19:41:59 CEST] <jamrial> https://www.felixcloutier.com/x86/vpbroadcast
[19:46:13 CEST] <durandal_1707> get invalid code if i use it with linesizem
[19:49:26 CEST] <durandal_1707> got it working
[19:51:53 CEST] <jamrial> that's because in_linesizem is in_linesized in x86_64, and gpr version of vpbroadcastd is avx512
[19:51:59 CEST] <cone-242> ffmpeg 03Akemi 07master:2a9d461abcc8: avcodec/videotoolbox: add support for full range pixel formats
[19:56:35 CEST] <kierank> durandal_1707: make twit
[19:57:27 CEST] <durandal_1707> why
[20:03:32 CEST] <kierank> durandal_1707: ffmpeg work
[20:03:34 CEST] <kierank> users like it
[20:17:47 CEST] <durandal_1707> i still not finished
[20:18:30 CEST] <durandal_1707> neet to get bilinear working
[20:18:45 CEST] <kierank> ok
[20:22:02 CEST] <durandal_1707> jamrial: bilinear, remap2 looks blocky, i forced pushed so take a look if you can
[20:27:49 CEST] <Lynne> make pd_255 times 8 dd 255? saves you an instruction by just having a mova m6, [pd_255]
[20:29:59 CEST] <Lynne> also like I said you can remove all but 1 of the adds at the end, multiplies and offsets in addressing are free
[20:30:18 CEST] <jamrial> or vbroadcasti128 instead of mova
[20:31:08 CEST] <jamrial> BBB also mentioned pcmpeqw instead of loading pb_255
[20:52:34 CEST] <durandal_1707> is there nice way to write word/byte to output ptr?
[20:54:51 CEST] <Lynne> I think cmov can write a single byte
[20:55:00 CEST] <Lynne> *a word, not a byte
[20:56:11 CEST] <jamrial> pextrw, pextrb, or just mov from a gpr
[21:19:34 CEST] <durandal_1707> yay, got it bitexact and faster than C
[21:25:12 CEST] <JEEB> 'grats
[21:26:27 CEST] <Lynne> if you want all that enjoyment removed just do an aarch64 version
[21:27:22 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:c99cb72d279c: avcodec/aacdec_template: fix integer overflow in imdct_and_windowing()
[21:27:23 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:6449c086f155: avcodec/vc1_block: fix invalid shift in vc1_decode_p_mb()
[21:27:24 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:b205d5a6d283: avcodec/vc1_block: Fix invalid shifts in vc1_decode_i_blocks()
[21:27:25 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:ee20e3ff2d1b: avcodec/pngdec: consider chunk size in minimal size check
[21:27:26 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:eda64cda63a6: avcodec/alsdec: fix mantisse shift
[21:27:27 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:7e9bb72dd6ee: avcodec/alsdec: Fix integer overflow of raw_samples in decode_blocks()
[21:27:28 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:ebc43bef1fc6: avcodec/alsdec: Fix integer overflows of raw_samples in decode_var_block_data()
[21:27:29 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:4eef201e151b: avcodec/mpc8: Fix 32bit mask/enum
[21:27:30 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:f5c6f8157692: avformat/vividas: Fix infinite loop in header parser
[21:27:31 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:4d7bbeb16405: avformat/vividas: Fix another infinite loop
[21:27:32 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:3520590810f7: avcodec/dds: Use ff_set_dimensions()
[21:27:33 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:3223f4229a2b: avcodec/tiff: Enforce increasing offsets
[21:27:34 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:3bff0de66b4b: avcodec/scpr: Use av_memcpy_backptr() in type 17 and 33
[21:27:35 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:be36e13e66ab: avcodec/hevc_refs: Optimize 16bit generate_missing_ref()
[21:27:36 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:2a59101eb193: avcodec/hnm4video: Optimize postprocess_current_frame()
[21:27:37 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:2547f9241025: avcodec/hevcdec: Check delta_luma_weight_l0/1
[21:27:38 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:6d5377c622e0: avcodec/4xm: Check for end of input in decode_p_block()
[21:27:39 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:fc902dd37475: avcodec/vp56: Consider the alpha start as end of the prior header
[21:27:40 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:eba31bf9442e: avcodec/diracdec: Check that slices are fewer than pixels
[21:27:41 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:634f590061b5: avcodec/indeo2: Check remaining input more often
[21:27:42 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:bcc1fe5165b2: avcodec/ffwavesynth: Fix integer overflow for some corner case values
[21:27:43 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:80ecb421febe: avcodec/ffwavesynth: Fixes invalid shift with pink noise seeking
[21:27:44 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:3349be5745c3: avcodec/loco: Check left column value
[21:27:45 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:36019fc088cc: avcodec/flicvideo: Optimize and Simplify FLI_COPY in flic_decode_frame_24BPP() by using bytestream2_get_buffer()
[21:27:46 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:9f61f2f1ea6d: avcodec/anm: Check input size for a frame with just a stop code
[21:27:47 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:d34b5c938bbb: avcodec/alsdec: Limit maximum channels to 512
[21:27:48 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:61268f24540a: avcodec/alsdec: Fix integer overflow in decode_var_block_data()
[21:27:49 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:da3e2efad6dc: avformat/vividas: Check av_xiphlacing() return value before use
[21:27:50 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:b881ea0f9e24: avcodec/vp5/6/8: use vpX_rac_is_end()
[21:27:51 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:818a3fd27c62: avformat/realtextdec: free queue on error
[21:27:52 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:53ed19f3746f: avcodec/idcinvideo: Add 320x240 default maximum resolution
[21:27:53 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:209a28bb74b0: avcodec/aacdec: Add FF_CODEC_CAP_INIT_CLEANUP
[21:27:54 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:cf65da16f895: avcodec/rl2: set dimensions
[21:27:55 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:fc2bb55605e3: avcodec/alac: Fix multiple integer overflows in lpc_prediction()
[21:27:56 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:7823b70004de: avcodec/alac: Check for bps of 0
[21:27:57 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:ada9293402ea: avcodec/atrac9dec: Check block_align
[21:27:58 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:7a9b43671a3c: avcodec/cavsdec: Limit the number of access units per packet to 2
[21:27:59 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:b34033dec24a: avcodec/vb: Check input packet size to be large enough to contain flags
[21:28:00 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:92e021ff951f: avcodec/tta: Fix integer overflow in prediction
[21:28:01 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:948e655d133a: avcodec/vorbisdec: Check get_vlc2() failure
[21:28:02 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:7edcd88a3f74: avcodec/vc1_block: Check for double escapes
[21:28:03 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:fd235d74282e: avcodec/vc1dec: Require res_sprite for wmv3images
[21:28:04 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:ba7ba6db7461: avcodec/vc1_block: Check the return code from vc1_decode_p_block()
[21:28:05 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:372c91b199ce: avcodec/truemotion2: Fix multiple integer overflows in tm2_null_res_block()
[21:28:06 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:69db79074fef: avcodec/vp3: Check for end of input in 2 places of vp4_unpack_macroblocks()
[21:28:07 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:517fd68acd7e: avcodec/bgmc: Check input space in ff_bgmc_decode_init()
[21:28:08 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:a7f6b27e3c3a: avcodec/ralf: fix undefined shift
[21:28:09 CEST] <cone-242> ffmpeg 03Michael Niedermayer 07release/4.2:457ed86478e9: avcodec/ralf: fix undefined shift in extend_code()
[21:28:13 CEST] <BradleyS> it's like christmas
[21:31:50 CEST] <cone-242> ffmpeg 03James Almer 07release/4.2:6a19167a6f03: avformat/matroskadec: use proper types for some EbmlSyntax fields
[21:31:51 CEST] <cone-242> ffmpeg 03James Almer 07release/4.2:3de33c6e76d5: avformat/matroskadec: use av_fast_realloc to reallocate ebml list arrays
[21:35:46 CEST] <jamrial> tmm1: that videotoolbox api addition needs a version bump and APIChanges entry
[21:36:15 CEST] <jamrial> also, is bool portable?
[21:36:49 CEST] <jamrial> although this is mac only, so guess it doesn't matter
[21:41:06 CEST] <thardin> that's a lot of commits
[21:51:07 CEST] <tmm1> jamrial: thanks will fix
[21:58:23 CEST] <cone-242> ffmpeg 03Aman Gupta 07master:f30fb5ef6261: avutil/version: bump for hwcontext_videotoolbox api change
[22:10:53 CEST] <durandal_1707> why people use minterpolate filter?
[00:00:00 CEST] --- Thu Sep 5 2019
1
0
[00:29:20 CEST] <classsic48> hi, how can discard N seconds on live input stream? I try with ffmpeg -ss 5 -i ....
[00:29:30 CEST] <classsic48> but doesnŽt work
[00:30:00 CEST] <another> seek after -i ?
[00:30:57 CEST] <classsic48> I will try
[00:42:06 CEST] <classsic48> don`t work
[00:42:18 CEST] <classsic48> *doesn`t work
[10:11:54 CEST] <oid> I am using ffmpeg to give a text file of the silences in some audio files using this command;
[10:11:59 CEST] <oid> ffmpeg -i audio.mp3 -af silencedetect=n=-50dB:d=1,ametadata=print:file=log.txt -f null
[10:13:19 CEST] <oid> which gives me the info needed but these are large files with many silence, so it is slow I get huge amount of data, I know the general time of the silences that interest me, is there a way to specify that start and duration of this filter?
[10:56:32 CEST] <gamelaster> Hi, does anyone know about any libav up-to-date example application, except ffplay.c a ffmpeg.c ?
[10:57:27 CEST] <durandal_1707> mpv
[11:00:52 CEST] <gamelaster> durandal_1707 nice, thanks, I will take a look. I'm implementing libav into my project, and I have problems with syncing read and decoding thread without getting deadlocked or having huge latencies
[11:34:19 CEST] <thnee1> Trying to transcode an h265 file to either h264, or h265. Why does h265 take 5x longer time? https://dpaste.de/yr88
[11:35:17 CEST] <thnee> I have been trying to follow this article https://slhck.info/video/2017/03/01/rate-control.html
[11:37:23 CEST] <Mavrik> thnee: because h265 encoder is newer and slower.
[11:37:26 CEST] <Mavrik> It's expected.
[11:40:29 CEST] <BtbN> Why even transcode HEVC to HEVC?
[11:41:58 CEST] <bencoh> downscale maybe? or bitrate reduction
[11:45:06 CEST] <thnee> Yeah it's actually going to be an HLS with multiple renditions, but this was just an example
[11:45:41 CEST] <thnee> Mavrik: Ok thanks a lot, I thought I was maybe doing something wrong, but this kind of difference is actually expected, thats interesting!
[11:47:25 CEST] <bencoh> I personally wouldn't bother much with h265 for hls, but ... :)
[11:48:02 CEST] <thnee> Okay
[11:48:56 CEST] <thnee> Yeah looks like I should be encoding my HLS streams using h264 regardless of if the uploaded video from the smart phone is h264 or h265
[11:49:59 CEST] <BtbN> What phone even outputs HEVC? That seems quite wasteful to encode on a mobile device, even with a hwenc.
[11:50:22 CEST] <Mavrik> Most new ones
[11:50:35 CEST] <JEEB> iOS at least seems to have started moving towards HEVC
[11:50:36 CEST] <Mavrik> iPhones, Galxy S series, Galaxy Note series, new Pixels, etc.
[11:50:43 CEST] <Mavrik> On a lot of them it's optional
[11:50:54 CEST] <Mavrik> But people turn it on so those 4K videos don't munch through the storage
[11:50:54 CEST] <JEEB> my oneplus 6T it doesn't even offer the option
[11:51:05 CEST] <JEEB> 2160p60 is just 120mbps H.264
[11:51:12 CEST] <JEEB> which is OK for me
[11:51:15 CEST] <Mavrik> Yeah, my S9 and pixel have the option
[11:51:23 CEST] <thnee> All iphones from 7 and up with iOS 11 produces hevc
[11:51:29 CEST] <BtbN> Seems also a bit troublesome regarding licensing
[11:51:50 CEST] <JEEB> yea most likely everyone has the stuff on the SoC but whether or not they expose/use it is different
[11:51:59 CEST] <BtbN> But I guess it's exactly those Phone-Manufacturers using it that are in one of the stupid HEVC patent pools
[11:52:07 CEST] <Mavrik> If the device has the HEVC encoder, they expose it
[11:52:20 CEST] <Mavrik> And most of the new ones do (depending on SoC)
[11:52:29 CEST] <BtbN> I wouldn't bet on that. Plenty of them won't want to deal with the license mess that HEVC is.
[11:52:42 CEST] <JEEB> I'd be pretty sure my phone has one (aforementioned 6T), but it isn't exposed
[11:53:56 CEST] <Mavrik> Also Android 10 now has official support
[11:54:26 CEST] <Mavrik> Although, decoder only it seems :'
[11:54:46 CEST] <JEEB> HEVC decoder has been part of AOSP or so for pretty long time.
[11:55:02 CEST] <JEEB> they've required a decoder for new devices since 5 or so
[11:55:05 CEST] <Mavrik> Yeah, looking at history now, it was mandated in API 21 / 5.0
[11:55:17 CEST] <JEEB> and there was a swdec available
[11:55:28 CEST] <JEEB> my oneplus one deffo has no hwdec in the SoC but it started using that one ARM library
[11:55:34 CEST] <JEEB> which was exposed through mediacodec
[11:55:39 CEST] <Mavrik> I misremembered, Android 10 added HEIC support
[11:55:58 CEST] <JEEB> I wish HEIC was without all the mp4-forking shenanigans
[11:56:10 CEST] <Mavrik> Which is optional IIRC
[14:09:56 CEST] <gamelaster> again here (connection drop), mpv is too complex, I'm just looking for some app which have simple video playback with correct made reading and decoding threads + sync by external timer
[14:12:30 CEST] <BtbN> "sync by external timer" sound like something you'll have to build yourself
[14:14:17 CEST] <gamelaster> BtbN I meant classical "-sync ext" by system time
[14:14:39 CEST] <gamelaster> but generally, any examples or apps will be highly appreciated, since I have really hard times to get all of this working correctly
[14:15:21 CEST] <pink_mist> why not just use mpv or link to libmpv?
[14:24:14 CEST] <gamelaster> pink_mist well, I double checked the libmpv, it looks like it supports what I want, but I will need to rework some things. Thanks for the tip
[14:39:54 CEST] <pk08> hi, i want to add a global variable which can access in libavformat/mpegts.c and libavfilter/vf_drawtext.c
[14:39:55 CEST] <pk08> so for that, i created a header file called "test.h" and defined a variable with extern int anyError and then included test.h file in both above .c files
[14:39:55 CEST] <pk08> (and redifined in mpegts.c)
[14:39:55 CEST] <pk08> now when i try to compile ffmpeg i am getting libavfilter/libavfilter.so: undefined reference to `anyError'
[14:40:10 CEST] <pk08> can any one help me to solve this error?
[14:41:56 CEST] <DHE> declaring it extern means that it exists somewhere, but it still has to be actually declared somewhere
[14:42:07 CEST] <DHE> in some file you have to put "int anyError;" or whatever
[14:42:35 CEST] <DHE> also do note that this is a race condition waiting to happen because it's completely legitimate to have several mpegts decoders running at once
[14:42:56 CEST] <pk08> i have declared in mpegts.c
[14:43:37 CEST] <pk08> and thats why i am getting error in libavfilter
[14:44:14 CEST] <pk08> and if i redefine in vf_drawtext.c then i get error in libavformat
[14:44:33 CEST] <pk08> so i am not sure, where i can redefine that variable
[15:04:29 CEST] <pk08> hello! anyone please?
[15:06:34 CEST] <DHE> not having the time to look at this in more detail, have you considered a static build rather than shared build?
[15:16:02 CEST] <pk08> DHE: just tried to compile static build but getting same error
[15:50:01 CEST] <Freneticks> Any idea why some player for a m3u8 playlist cannot seek backward or forward but only seek full ts segment ? Is my playlist is not good ?
[15:54:08 CEST] <Xogium> JEEB, durandal_1707: hah looks like someone went way faster than me to report https://trac.ffmpeg.org/ticket/7011
[15:55:37 CEST] <Xogium> and yep chained opus really exists :p especially for webradio
[16:51:19 CEST] <pk08> did any one gave any replay for my issue?
[16:51:34 CEST] <pk08> i was offline for last hour
[17:26:07 CEST] <b0bby|> hello
[17:26:45 CEST] <b0bby|> This is going to sound weird, but I would like to remote decode a video file for playback on a lan computer
[17:27:36 CEST] <BtbN> so you want to decode on one PC, and play on the other?
[17:27:48 CEST] <b0bby|> Im trying "ffmpeg -i file.mkv -vcodec rawvideo -f mpegts udp://127.0.0.1:1234" but mpv wont play the stream
[17:28:14 CEST] <BtbN> Keep in mind that you need at least a 10G Network for that to be even remotely realistic
[17:29:11 CEST] <pink_mist> eh, not if it's tiny resolution :P
[17:30:06 CEST] <b0bby|> fair point, my main problem is I have something that can decode the video fast enough, but not encode it fast enough
[17:30:07 CEST] <kepstin> hey, you should be able to do 24fps 1080p yuv420p on 1gbit
[17:31:20 CEST] <BtbN> Isn't 720p60 raw video yuv420p already 200MB/s?
[17:31:30 CEST] <BtbN> so, 1.5GBit/s
[17:31:47 CEST] <b0bby|> ok, so then raw is probably out of the question, is there any form of quick compression that can encode fast with the sacrifice of file size
[17:31:58 CEST] <BtbN> ah, no. It's 6 byte per 4 pixel, nvm, math is wrong
[17:32:22 CEST] <kepstin> 1080p24 4:2:0 is about 600mbit/s
[17:32:24 CEST] <BtbN> b0bby|, nothing will be as efficient as just not transcoding at all and letting the playing side do it.
[17:33:11 CEST] <BtbN> 720p60 is ~80MB/s
[17:33:11 CEST] <kepstin> b0bby|: it's pretty rare to find a system that can't do realtime decoding of typical video formats nowadays, even on cpu only :/
[17:33:15 CEST] <BtbN> yuv420p
[17:35:24 CEST] <b0bby|> so what is the fastest method of encoding, with a possible to stream file size?
[17:35:44 CEST] <kepstin> b0bby|: fastest method is to use -c copy, and then your file is probably already small enough to stream
[17:36:08 CEST] <kepstin> or just play it off an nfs or samba server if this is a lan setting, tbh.
[17:37:20 CEST] <kepstin> or buy a long hdmi cable (or one of those hdmi extensions over cat6 things) and just play the video on the remote box with a long cable
[17:37:44 CEST] <b0bby|> kepstin: that might be good enough
[17:37:57 CEST] <b0bby|> thank you guys for all the help
[19:27:42 CEST] <TheRock> before trying around ... do you guys have any favorite settings for dark videos to brighten them up?
[19:27:55 CEST] <TheRock> shot in low light surrounding
[19:29:36 CEST] <HumanSheeple> Hi I'm on a dedicated linux server remotely via SSH, the computer has no on board sound, it's running ubuntu, can you tell me how I set up a dummy audio output that is ffmpeg-able ?
[19:29:45 CEST] <HumanSheeple> pulseaudio won't book
[19:29:47 CEST] <HumanSheeple> boot
[19:29:56 CEST] <HumanSheeple> daemon refuses to start
[19:30:45 CEST] <kepstin> why do you need an audio output at all? ffmpeg can discard stuff or send it to a null output.
[19:43:37 CEST] <HumanSheeple> OK I'm trying to set up gstreamer on my dedicated linux machine so it can get audio from discord and mix it with the video of one of us playing minecraft then upload it to ty, twitch, bitchute etc
[19:47:04 CEST] <DHE> that still shouldn't require pulseaudio on the host
[19:47:13 CEST] <kepstin> oh, so it's not that you need the audio output for ffmpeg, it's that you want to capture the audio from some other application and record it with ffmpeg
[19:47:51 CEST] <DHE> I guess there's no direct way to capture audio from discord...
[19:48:01 CEST] <kepstin> your options are to use pulseaudio (which can be configured with a virtual soundcard, newer versions do this automatically if no hardware is detected), or to use the 'aloop' alsa driver to make a virtual soundcard in the kernel.
[19:50:30 CEST] <HumanSheeple> I think there's a way with the bot
[19:51:07 CEST] <HumanSheeple> So if I can get the bot to produce a stream can I get gstreamer to capture the video and mix the two together and output to yt, twitch, bitchute
[00:00:00 CEST] --- Thu Sep 5 2019
1
0
[00:08:46 CEST] <xmichael> https://developer.apple.com/videos/play/wwdc2019/502/
[00:26:57 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:3a5bcb1d1374: avcodec/v4l2_m2m: log requested pixel formats
[00:26:59 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:7b092a074be8: avcodec/v4l2_m2m: remove trailing whitespace in output identifier
[00:27:00 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:87daee944b11: avcodec/v4l2_context: log VIDIOC_REQBUFS failures
[00:27:00 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:5e2436c6def5: avcodec/v4l2_buffers: fix minor typos and whitespace
[00:27:01 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:dc180cd81577: avcodec/v4l2_m2m_enc: log errno on v4l2_set_ext_ctrl failures
[00:27:03 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:6852b85020cf: avcodec/v4l2_m2m_enc: fix typo in log message
[00:27:03 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:bad8365b2bc6: avcodec/v4l2_context: return {decoder,encoder}_cmd errors
[00:27:04 CEST] <cone-083> ffmpeg 03Lukas Rusak 07master:1d36b7b47ad4: avcodec/v4l2_buffers: return int64_t in v4l2_get_pts
[00:27:05 CEST] <cone-083> ffmpeg 03Jorge Ramirez-Ortiz 07master:da45ad48f993: avcodec/v4l2m2m: fix error handling during buffer init
[00:27:06 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:c95b1277332a: avcodec/v4l2_context: use EAGAIN to signal when input buffers are unavailable
[00:27:08 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:e8c5ce1acb8b: avcodec/v4l2_m2m: log planar mode used by driver
[00:27:08 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:b6c6f56e385c: avcodec/v4l2_m2m: use log_ctx variable consistently
[00:27:09 CEST] <cone-083> ffmpeg 03Aman Gupta 07master:e9cc873636ab: avcodec/v4l2_m2m: fix minor indentation issue
[00:40:43 CEST] <philipl> Lynne: Hmm. if you're using a VkImage on the vulkan side, why not use cuExternalMemoryGetMappedMipmappedArray? That's what it's for.
[00:40:52 CEST] <philipl> It's the only way to interact with image memory.
[00:41:15 CEST] <philipl> I did do a buffer based prototype of that code path (as the initial driver release had buggy image interop) but I had to use an intermediate buffer for this reason.
[00:41:32 CEST] <philipl> (So cuda -> buffer -> image)
[00:42:56 CEST] <Lynne> I don't get what the code does with cuExternalMemoryGetMappedMipmappedArray
[00:43:57 CEST] <Lynne> it generates a 4 element array from a single memory?
[00:44:18 CEST] <philipl> So, you start by exporting the memory that's backing the VkImage on the vulkan side using the external_memory_fd mechanism.
[00:44:32 CEST] <philipl> Then you do cuImportExternalMemory specifying the same opaque_fd.
[00:44:47 CEST] <Lynne> I got that code done
[00:44:59 CEST] <philipl> Then you do cuExternalMemoryGetMappedMipmappedArray on the imported memory, giving you a multi-layered array
[00:45:04 CEST] <philipl> Then you extract layer 0 as a regular CUarray
[00:45:08 CEST] <philipl> Then you memcpy to that
[00:46:23 CEST] <philipl> (Get the regular array with cuMipmappedArrayGetLevel)
[00:47:27 CEST] <philipl> And if you actually imported a mip-mapped VkImage, the other levels would be meaningful.
[00:51:36 CEST] <Lynne> so I have a separate memory per plane, what is CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC.cufmt and .NumChannels meant to be
[00:51:43 CEST] <Lynne> .NumChannels = nv12 ? 2 : 1?
[00:51:56 CEST] <Lynne> cufmt = depth > 8 ? int8 : int16?
[00:58:12 CEST] <philipl> So, you're trying to map a multi-plane image? I have not tried that (mpv doesn't support it) but as I understand multi-plane images, each plane has a formal vulkan format which you need to reflect accurately
[00:58:34 CEST] <philipl> so the luma plane is an R8 equivalent and is 1 channel 8 bits, while the chroma plane is R8G8 and 2 channels of 8 bits
[00:58:53 CEST] <philipl> (for nv12)
[00:59:40 CEST] <Lynne> no, its a single plane
[00:59:40 CEST] <philipl> You'd hopefully want to write generic code based on the pix_fmt, in terms of how many channels and their widths.
[00:59:58 CEST] <philipl> You're doing one image per plane?
[01:00:05 CEST] <philipl> Then it's just whatever the image format is
[01:01:09 CEST] <Lynne> so .NumChannels = nv12 ? 2 : 1? and cufmt = r8g8 for nv12's second plane?
[01:01:36 CEST] <BtbN> So it's impossible to get a proper CUdevptr from a Vulkan image? Just an array?
[01:01:52 CEST] <philipl> Right. If you try and do getMappedBuffer, it will fail at runtime.
[01:02:13 CEST] <BtbN> Meh, so you are still forced to copy and can't map.
[01:02:13 CEST] <philipl> The image is treated as opaque and there's no way to get to the buffer.
[01:02:25 CEST] <philipl> You can map for output.
[01:02:29 CEST] <philipl> nvenc can take a CUarray now
[01:02:34 CEST] <BtbN> But ffmpeg can't.
[01:02:34 CEST] <philipl> and we could write filters to work with CUarrays.
[01:02:40 CEST] <philipl> You'd have to do that work.
[01:02:57 CEST] <BtbN> Getting in a second CUDA pix_fmt would cause quite an argument.
[01:02:58 CEST] <philipl> Remember how I occasionally point out we should have used CUarrays as our cuda format?
[01:03:17 CEST] <philipl> of course, nvdec not supporting it is garbage.
[01:03:17 CEST] <BtbN> Using CUdevptr has some significant advantages, which is the reason it was picked.
[01:03:46 CEST] <philipl> The only advantage I'm aware of is it avoids issues with nvdec. Everywhere else it would be a net benefit.
[01:04:19 CEST] <BtbN> You can do pointer arith on CUdevptr, you can just change the pix_fmt to a software pix_fmt and due to how the CUDA format works, it will just magically work.
[01:04:22 CEST] <philipl> Lynne: cufmt is CU_AD_FORMAT_UNSIGNED_INT8 with2 channels for the chroma plane. The format value is for each channel
[01:04:23 CEST] <BtbN> Making hwdownload trivial.
[01:04:43 CEST] <philipl> BtbN: hwdownload is a memcpy2D. That's equally easy on an array
[01:05:02 CEST] <BtbN> No, a CUdevptr can ba cast to a void*/char* and it will just work. It's unified memory.
[01:05:17 CEST] <philipl> When have we ever benfited from that?
[01:05:23 CEST] <BtbN> So with the current CUDA format, just set pix_fmt = sw_pix_fmt, and you get a valid frame.
[01:06:01 CEST] <philipl> That's not how we do hwdownload. If there's any code in ffmpeg that takes advantage of that, I've missed it.
[01:06:32 CEST] <BtbN> It's a very useful thing that was never put to use. But the original intent was to basically "map" CUDA frames to software frames like that, to apply non-cuda-filters without down and reupload.
[01:08:02 CEST] <philipl> I'm not terribly convinced it would work as transparently as that. You've got to allocate the original memory with the right flags or I think it still fails.
[01:08:02 CEST] <BtbN> Also, it's CUdevptr now, and changing it is impossible. Adding another CUDA pix_fmt is most likely gonna get blocked, and I'm also not a fan of it due to the confusion it would cause when building filter chains.
[01:08:29 CEST] <BtbN> Nah, on modern drivers all memory is unified.
[01:08:40 CEST] <philipl> BtbN: so, without an array format on our sides, it will force a gpu memcpy on 'hwdownload' as well to get a 'compatible' format.
[01:09:48 CEST] <philipl> but honestly, that's a good problem to have - it would mean we'd be making progress :-)
[01:11:37 CEST] <BtbN> It's an annoying inconsistency in CUDAs API
[01:11:55 CEST] <BtbN> some stuff forcing Arrays, some stuff raw pointers, and no proper way to treat one as the other
[01:13:25 CEST] <philipl> You can create an array over linear memory but no way to go back.
[01:17:35 CEST] <xmichael> Apple Low Latency HLS https://www.youtube.com/watch?v=3yrA2IOdqvw
[01:18:55 CEST] <Lynne> do I need to enable nvcc to compile the hwcontext?
[01:19:21 CEST] <Lynne> I'm getting fatal error: cuda.h: No such file or directory in hwcontext_vulkan.h if I include hwcontext_cuda.h
[01:22:43 CEST] <xmichael> Good Evening Nicolas17, from my million questions last night. It seems apple announced a low latency hls solution https://www.youtube.com/watch?v=3yrA2IOdqvw
[01:28:00 CEST] <philipl> Lynne: you don't include cuda.h. We use https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git (BtbN's hard work) which is clean-room headers and a dynamic loader to avoid the cuda sdk
[01:28:41 CEST] <philipl> You need to include the loader header, although probably hwcontext_cuda_internal.h is what you want so you can get the function struct from the cuda context
[01:29:04 CEST] <philipl> And if you need cuda functions we haven't used before they have to be added to the loader.
[01:49:47 CEST] <Lynne> yeah, I figured as much
[01:50:03 CEST] <Lynne> if I include cuda_check.h I get many redefinitions
[01:50:08 CEST] <Lynne> if I don't, I get error: implicit declaration of function FF_CUDA_CHECK_DL
[01:50:30 CEST] <Lynne> if I do, it compiles and does 1 frame without errors and then stops, without any errors for some reason
[01:52:52 CEST] <philipl> is it blocking on the semaphore?
[01:55:24 CEST] <Lynne> not sure, it exits in CHECK_CU(cu->cuCtxPopCurrent(&dummy));
[01:57:57 CEST] <philipl> so yoi have some pipleine starting from an nvdec decode? Is it not decoding the nezt frame? when you say stopped, is it blocking somewhere? exiting?
[02:04:13 CEST] <Lynne> exiting
[02:04:27 CEST] <Lynne> just decoding from -hwaccel nvdec -hwaccel_output_format cuda
[02:06:15 CEST] <Lynne> wait, my fail, ff_hwframe_map_create is hard
[02:06:27 CEST] <philipl> heh.
[02:10:22 CEST] <Lynne> seems to be doing something, I can even download the vulkan frames, but if I dump to a file I get instaquit again
[02:12:07 CEST] <philipl> odd.
[02:12:28 CEST] <philipl> in terms of headers, look at nvdec.c for the sequence.
[02:12:43 CEST] <Lynne> it crashes on gpu listing for vulkan if I specify an encoder
[02:12:51 CEST] <Lynne> really odd
[02:17:03 CEST] <Lynne> its getting late, https://0x0.st/z4RY.patch https://0x0.st/z4Rg.patch are the new patches if anyone wants to test
[02:17:56 CEST] <Lynne> derive_device is broken, so "./ffmpeg_g -init_hw_device "vulkan=vk:1,debug=0" -hwaccel nvdec -hwaccel_output_format cuda -i sample.mkv -filter_hw_device vk -vf hwmap,format=vulkan -f null -" or similar would work
[02:20:31 CEST] <philipl> neat. Will try and look. Hppefully BtbN too
[03:28:47 CEST] <Lynne> new versions: https://0x0.st/z47b.patch https://0x0.st/z47c.patch
[03:29:08 CEST] <Lynne> fixed derive device, and some filter optimizations
[03:30:14 CEST] <Lynne> mapped cuda image looks wrong though, no luma, chroma stride looks correct but the entire image is offset
[03:30:38 CEST] <Lynne> er, no chroma, luma stride etc etc.
[03:49:30 CEST] <philipl> Lynne: different problem. I see luma looks correct with zero (green) chroma
[03:55:00 CEST] <Lynne> weird, I see https://0x0.st/z47j.jpg
[03:56:12 CEST] <philipl> I'm doing hwmap,format=vulkan,hwdownload,format=nv12 -c:v libx264
[04:01:56 CEST] <Lynne> same
[04:03:59 CEST] <taliho> does nicolas george use irc?
[04:07:47 CEST] <taliho> i wanted to ask him a question about the blocking vs non-blocking email
[04:09:08 CEST] <BradleyS> if memory serves correctly, he does not
[04:10:27 CEST] <taliho> BradleyS: thanks
[04:13:41 CEST] <philipl> Lynne: So, I see you are getting the same fd back every time you export memory, and as you are never closing the fds (obviously have to handle cleanup in due course), that means the memory you are exporting is actually the same memory each time.
[04:14:15 CEST] <philipl> That also means the allocations must be offset within the memory, and you are always setting your offset to 0 when importing.
[04:14:26 CEST] <philipl> So I think each plane is being read from the same memory.
[04:34:06 CEST] <philipl> Lynne: OK, so if I'm reading your code properly, you are doing a separate allocation for each plane, which seems like it should not lead to each export being of the same memory.
[04:34:18 CEST] <philipl> yet that is what we se.
[04:35:15 CEST] <philipl> You are not passing an VkExportMemoryAllocateInfo when allocating the memory, which is conceptually an error, although the last time I ran without it, it worked with the nvidia driver.
[04:35:21 CEST] <philipl> Still, it might be part of the issue.
[04:38:04 CEST] <philipl> VkImage is also being created without VkExternalMemoryImageCreateInfoKHR
[05:03:58 CEST] <philipl> Lynne: ok. I think the cuImportExternalMemory immediately frees the fd in practice so it is available for reuse. That explains that.
[05:04:47 CEST] <philipl> Your use of lseek isn't valid - you can't lseek a non-dma-buf fd for size. You must keep track of the size in the AVVkFrame when allocating the memory. I added this logic but it doesn't change the visual results.
[12:53:15 CEST] <JEEB> y/33
[14:34:08 CEST] <Lynne> philipl, BtbN: fixed that, now works fine except its leaking device memory
[14:44:51 CEST] <Lynne> seems like I just needed to call cuMipmappedArrayDestroy and cuDestroyExternalMemory
[14:47:03 CEST] <Lynne> unfortunately its slower than hwupload for now
[14:48:50 CEST] <BtbN> Nvidias software path is pretty damn efficient, and there is hardly ever much of a performance diff between zero-copy and round-trip
[15:11:19 CEST] <Lynne> yeah, I'm still allocating a new non-pool image on every import
[15:11:42 CEST] <Lynne> this doesn't sound efficient at all, so I'm trying to use av_hwframe_get_buffer to get images from the pool
[15:26:41 CEST] <Lynne> why is dst_hwfc->pool NULL when the mapping function gets called?
[16:10:39 CEST] <philipl> Lynne: you definitely need to use pool images and you need to keep them imported for re-use, and only clean up when the image is freed.
[16:11:28 CEST] <philipl> not sure why pool is empty. should be allocated when context is created right?
[20:00:47 CEST] <cone-523> ffmpeg 03Aman Gupta 07master:7eb465e185a7: configure: ensure --enable-omx-rpi uses rpi-specific IL headers
[20:48:18 CEST] <Lynne> philipl: it seems derived contexts aren't really meant to have pools as such
[20:48:36 CEST] <Lynne> /* A derived frame context is already initialised. */ in av_hwframe_ctx_init()
[20:49:16 CEST] <Lynne> not sure how to solve it, apart from adding a secondary internal pool to the hwcontext
[20:54:40 CEST] <jkqxz> Allocating in a derived frame context allocates in the source and then maps immediately. See av_hwframe_get_buffer().
[20:58:05 CEST] <Lynne> so I'd need a cuda->vulkan mapping in hwcontext_cuda to implement mapping from cuda->vulkan in hwcontext_vulkan?
[21:00:03 CEST] <jkqxz> You can implement it in either end. There is both map_to and map_from.
[21:01:38 CEST] <Lynne> the issue is there's no way to map cuda->vulkan without copying, and we need a valid vulkan frame to copy to, and doing it without pool is slow
[21:02:08 CEST] <jkqxz> Don't you want to use transfer rather than mapping, then?
[21:03:25 CEST] <jkqxz> Or maybe you could store a cache somehow in the private context information (AVHWFramesInternal.priv).
[21:10:18 CEST] <Lynne> can transfer do hw->hw?
[21:18:40 CEST] <jkqxz> Sure. It was always vaguely intended, but I don't think it's used implemented anywhere at the moment.
[21:54:52 CEST] <cone-523> ffmpeg 03Anthony Delannoy 07master:39f129593756: avformat/mpegts: Check if ready on SCTE reception
[22:05:52 CEST] <cone-523> ffmpeg 03Anthony Delannoy 07release/4.2:611eb9594376: avformat/mpegts: Check if ready on SCTE reception
[22:47:53 CEST] <nevcairiel> maybe matroska ebml list parsing should use fast malloc, might use a tad bit more memory, but avoid a billion reallocs
[22:49:23 CEST] <nevcairiel> or some sort of custom growing so its not one by one
[23:13:18 CEST] <jamrial> nevcairiel: i think the issue is in av_add_index_entry(), which uses av_fast_realloc
[23:13:44 CEST] <jamrial> and since it's 90k seek points...
[23:15:44 CEST] <JEEB> not... a small amount
[23:16:50 CEST] <nevcairiel> On a quick read i thought it might be this one http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/matroskadec.c;h=…
[23:18:11 CEST] <Lynne> philipl: using a pool now, its still as slow, 200fps vs 500fps for hwupload+filtering
[23:18:28 CEST] <Lynne> seems like the driver does its own pooling as well
[23:18:55 CEST] <cehoyos> nevcairiel: maybe...
[23:19:43 CEST] <nevcairiel> 90k seek points isnt that special for av_add_index tbh
[23:19:55 CEST] <nevcairiel> mov uses the stream index structures for all its indexing
[23:20:00 CEST] <nevcairiel> it would easily reach such amounts
[23:20:07 CEST] <cehoyos> jamrial: Yes, it is "void *newelem = av_realloc_array" and has to be replaced with fast_realloc (if it is considered a bug)
[23:34:05 CEST] <philipl> Lynne: uh. Sad panda. What frame size?
[23:36:48 CEST] <jamrial> nevcairiel, cehoyos: you're right, changing that to av_fast_realloc solved it
[23:36:54 CEST] <jamrial> there's no delay at all now
[23:37:00 CEST] <jamrial> will send a patch in a moment
[23:37:18 CEST] <nevcairiel> need to add a new variable somewhere to track the allocated size, i thought that might be slightly messy, but i suppose its ok
[23:37:32 CEST] <cehoyos> in the context, no?
[23:37:50 CEST] <nevcairiel> well in the list struct
[23:38:05 CEST] <nevcairiel> which lives somewhere in the context
[23:39:37 CEST] <philipl> Lynne: and I assume the pool is actually re-using mapped frames and not creating new ones all the time
[23:51:28 CEST] <Lynne> philipl: 720p
[23:53:00 CEST] <Lynne> yes, checked, only 4 frames in total get allocated in the pool
[00:00:00 CEST] --- Wed Sep 4 2019
1
0
[02:45:41 CEST] <fleabeard> hello friend's, I'm trying to take a 3 hour video I snagged from youtube and break it down into 5 minute video segments with ffmpeg CLI. I'd like to be able to do this without having to re-encode the video/audio and hope there is just a 'fast copy' option to make this quick. Would anyone have any experience doing this?
[02:46:58 CEST] <fleabeard> I would like to be able to split the video based on time segments, so minutes 00:00:00 to 00:05:00 then the next video starts @ 00:05:00 to 00:10:00 etc etc
[03:07:27 CEST] <another> https://ffmpeg.org/ffmpeg-all.html#segment_002c-stream_005fsegment_002c-sse…
[03:07:29 CEST] <furq> fleabeard: -i foo.mp4 -c copy -f segment out%02d.mp4
[03:07:40 CEST] <furq> -segment_time 5:00
[03:07:55 CEST] <furq> it won't be exactly 5:00 if you're copying but youtube uses short gops so it won't be too far off
[03:35:03 CEST] <mozzarella> how do i sppeed up a video?
[03:37:19 CEST] <nicolas17> https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20…
[03:51:39 CEST] <mozzarella> nicolas17: it's not working
[03:51:56 CEST] <mozzarella> [Parsed_setpts_0 @ 0x56105f2abd80] [Eval @ 0x7fffd18970f0] Invalid chars 'TS' at the end of expression '60.0PTS'
[03:52:17 CEST] <nicolas17> you missed the asterisk to multiply
[03:52:37 CEST] <mozzarella> shit
[03:53:23 CEST] <nicolas17> but that will slow down the video, to speed it up 60x you want PTS/60 (or PTS*0.016666 :P)
[03:55:06 CEST] <mozzarella> shiiiiiittttttttt
[03:55:57 CEST] <mozzarella> how long is it going to take?
[03:57:15 CEST] <furq> you can do it without reencoding the video
[03:57:23 CEST] <mozzarella> how
[03:57:31 CEST] <furq> certainly for h264, maybe for other formats
[03:57:34 CEST] <furq> or codecs rather
[03:58:58 CEST] <furq> mkvmerge -o out.mkv --default-duration 0:1234fps --fix-bitstream-timing-information 0:1 in.mkv
[03:59:09 CEST] <furq> where 0 is the video track and 1234fps is the target framerate
[03:59:50 CEST] <furq> with that said if you want to speed it up 60x then you probably also want to drop 59/60 frames in which case reencoding won't take long
[04:00:11 CEST] <furq> a 5000fps video probably isn't going to work great
[04:01:10 CEST] <nicolas17> in my experience when you try to speedup by as much as 60x and reencode, decoding the input takes longer :P
[04:01:27 CEST] <nicolas17> but I don't remember what encoding -preset that was
[04:02:00 CEST] <furq> anyway you'll want -vf setpts=PTS/60,fps=60
[04:02:05 CEST] <furq> otherwise you'll end up with a 5000fps video again
[04:02:20 CEST] <furq> and if you have audio then -af atempo=60
[04:02:37 CEST] <furq> or just -an because it'll sound terrible
[04:09:12 CEST] <Cypriot> hi alll
[04:45:36 CEST] <mozzarella> why is it taking forever?
[12:30:34 CEST] <lain98> Strange issue. I'm compiling ffmpeg from source but the shlib is missing a symbol which is there in the source code. av_bsf_flush
[12:32:42 CEST] <lain98> ok it is there
[13:50:40 CEST] <markfilipak> Does ffmpeg do real 2-3 pull-down?
[13:57:50 CEST] <BtbN> If you tell it to
[13:58:35 CEST] <markfilipak> can you describe 2-3 pull-down (link to, is fine).
[14:02:18 CEST] <markfilipak> This is 2-3 pull-down: [A/a][B/b][B/c][C/d][D/d]
[14:02:44 CEST] <markfilipak> Right? Field based? Right?
[14:26:47 CEST] <Cypriot> anyone?
[14:27:17 CEST] <pink_mist> anyone what?
[14:27:53 CEST] <Cypriot> hi just curius using linux and using this command >>> ffmpeg -i input.mkv -c copy -c:a aac -movflags +faststart file-1.mp4
[14:28:16 CEST] <Cypriot> its already working but i would like to know how can i use this command for whole all directory
[14:28:49 CEST] <BtbN> you run it for every file in it, pretty much
[14:28:51 CEST] <Cypriot> i have 22 mkv files but want to change them mp4 is it possible to make its easy
[14:28:58 CEST] <BtbN> use shell scripting if you don't want to do it manually
[14:29:19 CEST] <Cypriot> any examples?
[14:29:20 CEST] <BtbN> Also, you will either want to not transcode the audio, or specify at least some quality for the audio encode
[14:30:12 CEST] <Cypriot> thx
[16:18:00 CEST] <lain98> how can i turn off everything related to tls when building from source code. i did do --enable-protocol=file and hoped that it would turn off tls stuff but i get linking error when link my application with libav*
[16:18:32 CEST] <lain98> undefined reference to gnutls.....
[16:20:49 CEST] <JEEB> if you want to control dependencies better use --disable-autodwtect
[16:21:21 CEST] <JEEB> thatbway gnutls or so will not get autodetected and enabled, among other things :p
[16:22:01 CEST] <DHE> I'm seeing all the SSL libraries are default [no] anyway...
[16:22:33 CEST] <DHE> unless you're on OSX
[16:23:06 CEST] <DHE> or windows..
[16:23:15 CEST] <lain98> im on linux
[16:38:00 CEST] <lain98> disable-autodetect might have fixed it
[16:41:02 CEST] <JEEB> DHE: gnutls can be autodetected if the license otherwise is matching, I think?
[16:41:07 CEST] <lain98> still building
[16:41:19 CEST] <JEEB> but yes, disable-autodetect disables everything but what are considered "system" dependencies
[16:41:33 CEST] <JEEB> which can be an "interesting" distinction since I think zlib/iconv/etc are considered such
[16:41:43 CEST] <JEEB> (By the configure script at the moment)
[16:42:00 CEST] <JEEB> but still, while imperfect disable-autodetect *does* help
[16:43:35 CEST] <lain98> ah, it didnt fix it
[16:44:57 CEST] <JEEB> then either you have not cleared/hit make install to update your sysroot
[16:45:03 CEST] <lain98> if my application isnt using any symbol that might need tls stuff, idk why the linker is trying to look fir those symbols too
[16:45:04 CEST] <JEEB> or some other dependency you do have enabled brings it in
[16:45:16 CEST] <lain98> i built in a fresh root
[16:45:40 CEST] <JEEB> does gnutls become enabled in configure's log?
[16:47:16 CEST] <JEEB> if you really want to be sure you can build with make V=1 but at this point I'm starting to have doubts about it being FFmpeg itself that's bringing gnutls in
[16:47:34 CEST] <JEEB> or if it is, it's an old build that you're attempting to link against or so
[16:47:43 CEST] <lain98> i'm using these options --prefix=/usr/local --disable-static --disable-all --disable-autodetect --disable-iconv --enable-shared --enable-avformat --enable-avcodec --enable-avfilter --enable-protocol=file --enable-demuxer=mov,matroska,avi --enable-bsf=h264_mp4toannexb,hevc_mp4toannexb,mpeg4_unpack_bframes
[16:47:45 CEST] <JEEB> also I hope you're not trying to utilize the build root as your sysroot :P
[16:47:53 CEST] <lain98> its 4.2
[16:49:39 CEST] <lain98> earlier i was linking with 3.4.2 and that works
[16:49:52 CEST] <lain98> but then i tried to upgrade to 4.2
[16:50:38 CEST] <lain98> my application doesnt have anything related to tls
[16:51:11 CEST] <JEEB> I can build here a normal build with --disable-autodetect and nothing else, and I bet I won't have gnutls there even if available
[16:52:06 CEST] <JEEB> I will actually now do that on this darn laptop :P
[16:52:48 CEST] <JEEB> will add --enable-shared --disable-static to mimic your setup a bit more
[16:52:51 CEST] <JEEB> but it shouldn't matter
[16:54:57 CEST] <lain98> thanks JEEB
[16:55:16 CEST] <JEEB> ok, configure output at least looks as expected
[16:55:17 CEST] <JEEB> http://up-cat.net/p/1b74a07b
[16:55:21 CEST] <JEEB> waiting for teh compile to finish
[17:02:14 CEST] <JEEB> lain98: http://up-cat.net/p/5dcc6d5a
[17:02:50 CEST] <JEEB> did same for just tls too
[17:03:31 CEST] <JEEB> if I check with asound that gets in because that's linked to one of the libs because "system library and thus why would one want to disalbe it?"
[17:04:57 CEST] <JEEB> if it had gnutls linked there somewhere it'd have "libgnutls.so.30" there somewhere
[17:05:50 CEST] <lain98> hmm really strange
[17:06:23 CEST] <lain98> ill dig more and let you guys know if its something in ffmpeg
[17:06:24 CEST] <JEEB> that's why I said that you most likely have something in your sysroot, aka the place your application's build system is looking at :P
[17:06:35 CEST] <lain98> yeah could be
[17:08:02 CEST] <JEEB> I recommend using something in your $HOME as the --prefix and using a symlink system to have a set of sysroots; every time you start anew you make a directory with the date and symlink that to ~/ownapps/application_sysroot or whatever it is you're going to use :)
[17:08:17 CEST] <JEEB> the only negative part is that with shared libs you have to use LD_LIBRARY_PATH during runtime
[17:08:23 CEST] <JEEB> but I think that's rather minor
[17:08:31 CEST] <JEEB> for linking PKG_CONFIG_PATH should have you covered
[17:08:42 CEST] <JEEB> (or PKG_CONFIG_LIBDIR for cross-compilation)
[17:08:52 CEST] <JEEB> PATH appends and LIBDIR overrides
[17:09:11 CEST] <JEEB> wihch is different from how PATH works, thus why I mention it :P
[17:21:41 CEST] <classsic> hi, is there a protocol to send multiple input to one output? like ffmpeg -i rtmp....-i rtmp....-vcodec .....rtmp.../output, and then -map 0:v -map 1:v...etc
[17:25:05 CEST] <another> you can mux multiple streams in certain containers
[17:26:39 CEST] <classsic> yes, like mkv, there is a network protocol?
[17:26:45 CEST] <classsic> mpegts?
[17:27:46 CEST] <another> mpegts is a container. not sure if it supports multiple video streams
[17:28:14 CEST] <JEEB> it does
[17:28:19 CEST] <JEEB> it even has the concept of programs
[17:28:31 CEST] <JEEB> so you have a separate program for the separate set of streams
[17:29:00 CEST] <another> is a program a set of streams?
[17:29:05 CEST] <JEEB> yes
[17:29:09 CEST] <another> ay
[17:29:24 CEST] <JEEB> you give the muxer an option which contains the definitions of which streams go to which program
[17:30:02 CEST] <saml> how can I tell if yadif filter will produce a frame or not?
[17:30:16 CEST] <saml> or, check if video has at least one interlaced frame or not
[17:31:35 CEST] <saml> ffmpeg -i input.mp4 -filter_complex yadif -frames:v 1 -c:v png -an a.png outputs no file.
[17:31:51 CEST] <saml> so, I only want to deinterlace if input file is interlaced
[17:32:18 CEST] <JEEB> you can see if a frame is coded interlaced or not, you will not be able to figure if the frame contains interlaced content or not
[17:32:44 CEST] <JEEB> see the deint option in https://www.ffmpeg.org/ffmpeg-all.html#yadif-1
[17:47:25 CEST] <lain98> ok so i made it work
[17:47:59 CEST] <lain98> i had to purge every every libav*dev library installed by the package manager
[17:48:17 CEST] <JEEB> sounds like pkg-config picked the system one
[17:48:49 CEST] <lain98> i did manually check pkg-config and it was picking from my build
[17:48:52 CEST] <JEEB> or just linker if you don't like pkg-config to figure out link flags :P
[17:48:53 CEST] <lain98> i used prefix
[17:49:16 CEST] <lain98> i do use prefix-path
[17:49:38 CEST] <lain98> well now i just have to live with the fact that i cant install mpv or vlc from the package manager :)
[17:50:22 CEST] <JEEB> why not? the pc files and non-SONAME solibs should only be in the dev packages :)
[17:50:35 CEST] <JEEB> but aanyways, glad you've got it handled
[17:51:03 CEST] <saml> Why would ffmpeg -i input.mp4 -filter_complex yadif -frames:v 1 -c:v png -an a.png not generate output file for some input.mp4?
[17:51:15 CEST] <lain98> package manager will pull the libraries packaged by ubuntu
[17:51:18 CEST] <lain98> ?
[17:51:31 CEST] <JEEB> a normal non-dev package should not pull in the -dev packages at least
[17:51:41 CEST] <JEEB> but yea, I use a distro without FFmpeg, vlc or mpv packaged :)
[17:52:15 CEST] <lain98> and the dev library is a dependency i think because when i removed the dev libraries they also removed mpv and vlc
[17:52:21 CEST] <lain98> wihch is strange
[17:52:32 CEST] <JEEB> it definitely shouldn't
[17:54:05 CEST] <lain98> its okay i can live without vlc/mpv thanks JEEB
[18:08:10 CEST] <DHE> <JEEB> DHE: gnutls can be autodetected if the license otherwise is matching, I think? # --enable-gnutls enable gnutls, needed for https support if openssl, libtls or mbedtls is not used [no]
[18:08:48 CEST] <DHE> which I assume means that if --enable-gnutls is not specified then it defaults to disabled. it's the same for the other 3rd party SSL libs, only schannel (windows) and securetransport (osx) are autodetected
[18:37:38 CEST] <^Neo> can anyone recommend a strategy for probing multicast streams to get consistent behaviour from the results other than arbitrarily increasing fps_probe_size, max_analyze_duration or probesize?
[18:37:52 CEST] <^Neo> are we able to probe the score that probing returns?
[18:46:31 CEST] <DHE> what's wrong with it? I've always found that any errors from ffprobe have been accurate (ie. the stream is actually busted)
[18:49:00 CEST] <^Neo> oh, looking at FPS
[18:49:09 CEST] <^Neo> sometimes a stream comes back at 29.97 sometimes as 59.94
[18:49:21 CEST] <^Neo> if I increase the probe size then it's mostly consistent
[20:27:58 CEST] <JEEB> was there a way in ffprobe to limit the probe to a single frame?
[20:30:35 CEST] <ChocolateArmpits> read_intervals?
[20:32:52 CEST] <JEEB> so something like +#1
[00:00:00 CEST] --- Wed Sep 4 2019
1
0