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
December 2019
- 1 participants
- 62 discussions
[08:51:47 CET] <cone-914> ffmpeg 03Gyan Doshi 07master:e73688eff437: avfilter: rename scale.c,h to scale_eval
[10:05:34 CET] <cpplearner> Hmm, guys. I got some invalid dts (=negative) when av_read_frame() on some files. Hmm, with ffprobe -show_frames -of xml, it shows right timestamps... What should I do?
[10:22:08 CET] <JEEB> cpplearner: they're not necessarily invalid
[10:22:34 CET] <JEEB> for example audio encoder delay etc is sometimes shown as negative start time
[10:37:05 CET] <thardin> negative pts is also not unheard of
[10:38:17 CET] <JEEB> yea
[10:38:33 CET] <cpplearner> Hmm...
[10:39:35 CET] <cpplearner> For those files, I got this error when encoding...
[10:39:37 CET] <cpplearner> Timestamps are unset in a packet for stream 1. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
[10:39:50 CET] <cpplearner> and this... Packet with invalid duration -9223372036854775808 in stream 1
[10:39:53 CET] <mkver> Then the dts will be AV_NOPTS_VALUE.
[10:40:09 CET] <mkver> What container is it? Matroska?
[10:40:13 CET] <cpplearner> Yes.
[10:40:16 CET] <cpplearner> How did you know?
[10:40:17 CET] <cpplearner> =O
[10:40:34 CET] <JEEB> yes, NOPTS_VALUE is special
[10:41:05 CET] <mkver> Matroska does not store the dts, but only the pts. Hence the demuxer doesn't set the dts and it relies on other code to guess the dts.
[10:41:39 CET] <JEEB> yea, although in theory we could be calculating it since we know the order of packets (although I guess b-frame delay etc make this icky)
[10:41:59 CET] <cpplearner> Oh, okay... So, it's normal to have these errors on mkv encoding?
[10:42:06 CET] <cpplearner> mkv -> others
[10:43:07 CET] <JEEB> no, it's not normal in the sense that I would say the (API) user shouldn't have to care. currently though, yes. only PTS gets set.
[10:43:45 CET] <mkver> If I am not mistaken, then only a few packets at the beginning don't have proper dts; the rest are fine.
[10:44:11 CET] <JEEB> could be
[10:45:05 CET] <JEEB> cpplearner: also fyi av_read_frame() returns AVPackets, not AVFrames. -show_frames shows AVFrames. that naming is confusing, yes. I apologize for it.
[10:45:28 CET] <JEEB> so essentially your "DTS/PTS" got fixed by running a decoder on the stream
[10:45:55 CET] <cpplearner> Oh, I see. =O
[10:46:57 CET] <JEEB> (in the ffprobe that is)
[10:47:12 CET] <JEEB> what you get from lavf is visible with -show_packets
[10:47:29 CET] <cpplearner> Oh, thanks! I'll try it now! =)
[10:47:41 CET] <JEEB> so that should pretty much match what you get from the API, too
[12:09:12 CET] <cpplearner> Hmm, guys. I gdb-ed on files producing "Timestamps are unset in a packet for stream 1. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly" messages, and found out that, once I got the encoded packet from encoder, I got this packet.
[12:09:25 CET] <cpplearner> $37 = {buf = 0x0, pts = -9223372036854775808, dts = -9223372036854775808, data = 0x0, size = 0, stream_index = 0, flags = 0, side_data = 0x0, side_data_elems = 0, duration = 0, pos = -1, convergence_duration = 0}
[12:10:17 CET] <cpplearner> Any thoughts?
[12:20:37 CET] <mkver> What encoder?
[12:34:02 CET] <mkver> Wait, this packet is actually an empty packet: It has neither data nor side-data. How did you check that you really got an encoded packet from the encoder? Maybe the encoder needs more input before returning any output.
[12:39:58 CET] <cpplearner> mkver: I really appreciate your help! =)
[12:40:10 CET] <cpplearner> I use h264_vaapi, and I checked like this:
[12:40:23 CET] <cpplearner> ret = avcodec_receive_packet(encoder_context, packet);
[12:40:29 CET] <cpplearner> if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
[12:40:35 CET] <cpplearner> break;
[12:40:39 CET] <cpplearner> else if (ret < 0)
[12:40:43 CET] <cpplearner> throw media_error("Failed to encode.");
[12:42:33 CET] <cpplearner> Hmm, I'm not sure what I did wrong... =/
[12:43:48 CET] <mkver> So ret was 0 when you looked at the packet with gdb?
[12:47:10 CET] <cpplearner> Hmm, I actually didn't check ret when gdb-ing. I'll try it now.
[12:57:04 CET] <cpplearner> I'll dig further. Thanks for your help.
[14:55:32 CET] <durandal_1707> BBB: have good news for me?
[14:56:04 CET] <BBB> I have 20 things on my todo list before I can look at the disassembly, sorry
[14:56:21 CET] <durandal_1707> o_O
[14:57:35 CET] <cpplearner> Guys, what's the relationship between encoder_context->time_base & output_stream->time_base?
[14:58:14 CET] <JEEB> you just need to adjust pts/dts/duration accordingly so that the time keeps the same
[14:58:21 CET] <JEEB> otherwise there is no relationship unless you want to make one
[14:58:36 CET] <JEEB> note that some containers force a time base
[14:58:38 CET] <JEEB> like MPEG-TS
[14:58:48 CET] <JEEB> so you will always have a stream time base of 1:90000
[14:58:53 CET] <JEEB> and for FLV it's 1:1000
[14:59:40 CET] <JEEB> av_packet_rescale_ts etc probably will become useful
[15:00:59 CET] <cpplearner> I'm encoding MKV, but its time_base 1, 1000. Is it normal?
[15:01:29 CET] <cpplearner> The thing is, when I ffprobe the encoded output, I got invalid pts/dts/duration.
[15:02:17 CET] <cpplearner> BUt, when I print them just before interleaved_write, by `packet->pts * av_q2d(target_time_base)`, it looks okay.
[15:02:56 CET] <cpplearner> target_time_base = output_context->streams[index]->time_base
[15:04:02 CET] <cpplearner> And, when I print time_bases:
[15:04:04 CET] <cpplearner> stream: 1, 1000
[15:04:04 CET] <cpplearner> output_stream: 1001, 30000
[15:04:04 CET] <cpplearner> encoder_context: 1001, 30000
[15:05:07 CET] <cpplearner> I got lost. ='(
[15:07:34 CET] <cpplearner> This is what I get from ffprobe:
[15:07:35 CET] <cpplearner> <packet codec_type="video" ... pts="118" pts_time="0.001311" dts="118" dts_time="0.001311" ...
[15:28:10 CET] <Lynne> durandal_1707: that disasm isn't nice to look at
[15:31:28 CET] <durandal_1707> Lynne: do you need asm?
[15:31:53 CET] <durandal_1707> i mean that what i posted is decompiled code
[16:14:01 CET] <cone-914> ffmpeg 03Andreas Rheinhardt 07master:67d4940a7795: avformat/id3v2: Fix double-free on error
[16:14:02 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:a0ae4b7df915: Remove redundant ;
[16:14:03 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:8bcb5fbab5e3: avcodec/truespeech: Fix an integer overflow in truespeech_synth()
[16:14:04 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:090ac5799751: avcodec/wmaprodec: Check if the channel sum of all internal contexts match the external
[16:14:05 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:93d52a181ec0: avcodec/truemotion2: Fix 2 integer overflows in tm2_low_res_block()
[16:14:06 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:5473c7825ea6: avcodec/wmaprodec: Check offset
[16:14:07 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:a9cbd25d89db: avcodec/wmaprodec: Set packet_loss when we error out on a sanity check
[16:14:08 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:6e15ba2d1f68: avcodec/apedec: Fix 2 integer overflows
[16:14:09 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:a2d6b2042ee3: avcodec/wmalosslessdec: Set FF_CODEC_CAP_INIT_CLEANUP
[16:14:10 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:7a1b30c871c8: avcodec/agm: Do not allow MVs out of the picture area as no edge is allocated
[16:14:11 CET] <cone-914> ffmpeg 03Limin Wang 07master:8558c231fb8d: swscale/swscale_unscaled: add AV_PIX_FMT_GBRAP10 for LE and BE conversion wrapper
[16:14:12 CET] <cone-914> ffmpeg 03Michael Niedermayer 07master:7e665e4a81e2: avformat/rmdec: Initialize and sanity check offset in ivr_read_header()
[20:14:46 CET] <BBB> kierank: I'll try to make them for the next meetings also...
[20:17:00 CET] <jamrial> BBB: i don't think the email was by him
[20:17:05 CET] <durandal_1707> ffeetings
[20:17:09 CET] <BBB> huh?
[20:17:10 CET] <durandal_1707> another kierank
[20:17:23 CET] <BBB> oh oops
[20:17:24 CET] <BBB> sorry
[20:17:29 CET] <BBB> you are right
[20:17:43 CET] <BBB> is kieran also on IRC then?
[20:17:55 CET] <durandal_1707> probably not
[20:29:58 CET] <cehoyos> Kieran O Leary is an Irish archivist.
[20:31:28 CET] <cehoyos> https://twitter.com/cally__ho/status/1202515293156913152
[20:36:32 CET] <durandal_1707> cehoyos: get twitter!
[20:36:39 CET] <JEEB> ah, mov cropping
[20:36:45 CET] <JEEB> I think I used to have a sample of that
[20:37:06 CET] <JEEB> http://www.cccp-project.net/beta/test_files/h263_adpcm_lolborders.mov
[20:37:08 CET] <JEEB> yup
[20:41:27 CET] <cehoyos> https://trac.ffmpeg.org/query?status=!closed&keywords=~crop
[20:45:10 CET] <JEEB> :)
[21:15:48 CET] <cpplearner> Hmm, I just noticed that encoder_context.time_base changes after the first receive_packet... Is it normal...?
[22:19:02 CET] <durandal_1707> how rl codes works?
[22:41:22 CET] <durandal_1707> it looks i have 194 values for skips
[22:45:57 CET] <Illya> durandal_1707: explain how it is not an LGPL violation, please
[22:49:42 CET] <durandal_1707> ask cehoyos, he is master of such stuff
[22:56:05 CET] <Illya> FFmpeg's check list makes it clear they are in violation https://www.ffmpeg.org/legal.html
[22:56:10 CET] <Illya> 3. Distribute the source code of FFmpeg, no matter if you modified it or not.
[23:00:25 CET] <Illya> They also do not include any the ffmpeg LGPL license in their third-party licenses section
[23:00:52 CET] <durandal_1707> nobody acts, so its waste of my and yours times
[23:03:13 CET] <Illya> Maybe one day we will get a kind lawyer willing to contribute to the project :^)
[23:06:55 CET] <durandal_1707> and money? very unlikely
[23:11:46 CET] <nevcairiel> the ffmpeg checklist is not exhaustive, its just the easiest method to comply
[23:12:59 CET] <nevcairiel> also, LGPL violations are boring, all they need to do is email you the sources, thats perfectly acceptable under the license, a public download is not required, and it doesnt even specify a reaction time either
[23:26:34 CET] <Illya> nevcairiel: I was just using the checklist as an example, I also read the license of course. And yeah, I guess there are complications with it--still it shouldn't be months with zero response. (And I'm pretty sure even if they don't supply the source quickly, they DO need to include the license)
[00:00:00 CET] --- Wed Dec 11 2019
1
0
[02:15:53 CET] <Alexa> Hi! On Linux, How do I get single line output video processing instead of getting new line for every single frame that is encoded?
[02:25:18 CET] <kepstin> Alexa: make your terminal window wider, if the stats line wraps it doesn't update in-place in many (most? all?) terminals
[02:30:14 CET] <Alexa> kepstin, it does in every terminal emulator I've used on Linux.
[03:26:49 CET] <illuminated> what would you convert aac 5.1 audio to that would be compatible with roku/kodi
[04:08:51 CET] <Z2ATG> does anyone know what the strict_gop option does and what needs to be compiled into ffmpeg for it to be available as an option?
[04:25:37 CET] <kepstin> Z2ATG: that's an option to the libx264 encoder, you need to use -x264opts to set it
[04:26:04 CET] <kepstin> i think
[04:26:20 CET] <kepstin> hmm, there might be an option mapping with a different name
[04:26:53 CET] <kepstin> oh, wait nvm, i'm confused
[04:27:09 CET] <kepstin> that's a value that the -mpv_flags option takes apparently
[04:27:17 CET] <kepstin> which affects the *builtin* mpegish encoders
[04:27:24 CET] <kepstin> (no special compile options needed)
[04:27:32 CET] <kepstin> probably mostly useful with mpeg2video
[04:27:54 CET] <Z2ATG> hmm
[04:28:20 CET] <Z2ATG> so I'm getting "[NULL @ 0x4064f80] Unable to find a suitable output format for 'strict_gop'" and then "strict_gop: Invalid argument"
[04:28:46 CET] <kepstin> that means you have "strict_gop" somewhere in an invalid place in your command line
[04:28:53 CET] <kepstin> please share your entire command line
[04:29:32 CET] <Z2ATG> alright, don't slap me I'm new to this
[04:29:35 CET] <Z2ATG> ./ffmpeg -y -i z1_pkg.mp4 -c:v h264 -profile:v high -level:v 3.1 -bf 0 -b:v 4000 -maxrate 4000 -muxrate 4000K -preset veryslow strict_gop 1 -vsync 0 -look_ahead 0 -video_track_timescale 10 -crf 1 -movflags empty_moov+frag_keyframe+omit_tfhd_offset+default_base_moof -f mp4 test.mp4
[04:29:43 CET] <Z2ATG> do you want me to put full output in pastebin?
[04:29:50 CET] <kepstin> no, that's fine
[04:30:23 CET] <kepstin> so you have "strict_gop" just sitting on its own, not as a value to any other option, and without starting with a - so ffmpeg assumes its an output filename
[04:30:49 CET] <kepstin> just remove it (and the following '1')
[04:31:43 CET] <Z2ATG> ah, missed the -, foolishness
[04:31:56 CET] <kepstin> there's no option named "strict_gop", so adding a - won't help
[04:32:21 CET] <Z2ATG> that's strange
[04:33:12 CET] <kepstin> strict_gop is a *value* that the -mpv_flags option takes, not an option on its own.
[04:33:37 CET] <kepstin> Note that ffmpeg doesn't have a builtin h264 encoder, so with -c:v h264 it's probably actually selecting -c:v lib264 for you
[04:33:59 CET] <kepstin> as far as i can tell, libx264 does not use the -mpv_flags option, or at least not the strict_gop flag
[04:34:10 CET] <kepstin> it's selecting -c:v libx264 sorry
[04:34:47 CET] <Z2ATG> so what I'm trying to do, is I have a video which has been encoded with some options, and then it is being reencoded, and I'm trying to encode it back. The original encoding has -strict_gop 1 in the command and uses h264_qsv as the encoder.
[04:35:17 CET] <kepstin> oh, huh, i guess that must be an encoder-specific option to the h264_qsv encoder
[04:35:20 CET] <kepstin> i've never used that
[04:35:30 CET] <Z2ATG> it is obscure O_o
[04:35:51 CET] <kepstin> nah, it's just that for most use cases I do, i don't have a reason to use hardware encoders
[04:36:13 CET] <kepstin> what do you mean "encode it back"?
[04:36:37 CET] <kepstin> h264 encoding is lossy, every time it gets re-encoded it gets worse quality
[04:37:22 CET] <Z2ATG> So I have one system encoding the video to (from what I can gather) a fragmented form, which is being played in a javascript video player
[04:38:08 CET] <kepstin> that doesn't necessarily require re-encoding, if the video happened to already be the right codec it's possible to copy it instead.
[04:38:23 CET] <Z2ATG> so that part is working ok
[04:38:25 CET] <kepstin> but go on...
[04:38:34 CET] <Z2ATG> but if that same video is played in like vlc, there is no tracking data
[04:38:44 CET] <kepstin> you mean, you can't seek in it?
[04:38:50 CET] <Z2ATG> yeah
[04:39:09 CET] <kepstin> easy enough to fix, use "ffmpeg -i whatever.mp4 -c copy newfile.mp4" to remux it without re-encoding
[04:39:15 CET] <kepstin> that'll turn it into a non-fragmented file
[04:39:17 CET] <kepstin> without re-encoding
[04:39:17 CET] <Z2ATG> yeah
[04:39:38 CET] <Z2ATG> so that has been done, and now we have like a free atom and and mdat atom at the front of the file, then moov
[04:39:58 CET] <Z2ATG> now, I want to make the remuxed file, and make it the original fragmented form
[04:40:09 CET] <Z2ATG> ideally with minimal lossiness
[04:40:32 CET] <Z2ATG> erm, first make meant to be take*
[04:40:49 CET] <kepstin> you probably won't be able to exactly recreate it, but you'd want to use -c copy and then appropriate fragmentation-related options to the mov/mp4 muxer
[04:40:55 CET] <kepstin> again, this don't require re-encoding
[04:41:05 CET] <Z2ATG> oh, that's good to know
[04:41:24 CET] <Z2ATG> I've been trying to copy the original encoding options
[04:43:22 CET] <Z2ATG> so are the fragmentation related options just the movflags?
[04:43:27 CET] <kepstin> yeah
[04:43:42 CET] <Z2ATG> ahhh
[04:43:47 CET] <Z2ATG> I knew I was overcomplicating this
[04:43:51 CET] <Z2ATG> thanks
[05:04:05 CET] <cpplearner> Guys, I tried encoding to AAC with -b:a 128k, but the bitrate is not changing. What should I do?
[05:04:50 CET] <cpplearner> ffmpeg -i input.mkv -c:v copy -c:a libfdk_aac -b:a 128k -ac 2 output.mkv
[05:05:13 CET] <cpplearner> The bitrate is still 384 kb/s
[08:18:04 CET] <familiyaF> Hi, I am trying to transcode a video using hwaccel on AMD R5 230 GPU. I am able to decode, however while encoding I am getting the following error
[08:18:04 CET] <familiyaF> Encoding entrypoint not found (7 / 6).(Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height( (My cmd line
[08:18:04 CET] <familiyaF> ffmpeg -y -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i input.mp4 -c:v h264_vaapi -b:v 2M -maxrate 2M output.mp4
[16:31:21 CET] <zerodefect> When uploading a file to the FFmpeg FTP server as part of a bug, who has access to those files? I want to send a file, but I could land in hot water if it is widely shared. :(
[16:33:18 CET] <JEEB> not sure we still have a public upload ftp
[16:34:29 CET] <zerodefect> Oh ok, I was reading instructions here: https://ffmpeg.org/bugreports.html . It looks like public only has write access, but I was more interested who has access to those files once uploaded?
[16:35:14 CET] <JEEB> zerodefect: if it's abig file you could see if dd'ing thefirst xyz megabytesstill leads to the samwresult. also if the contentis problematic but you know how it was created you could recreate thw same issue with aless problematic source?
[16:36:16 CET] <JEEB> zerodefect: i know there is a samples site which is public. the one in that document I'm not sure if I tested and found it to be not accessible? if it is now, then that has definitely changed
[16:36:39 CET] <JEEB> but i do not know if that points to the samples server or not
[16:37:39 CET] <JEEB> thus i think it'dbe simpler in.theshort run if a cut with dd or so part of thesample is enough, or if a similar sample can be recreayed with less problematic content
[16:38:03 CET] <zerodefect> Yes, good points regarding reproducable testcase. I have a whopping 63GiB file in S3. I'm having issues previewing it off AWS S3 via https with ffplay. It takes an age to start playing but GStreamer has no issues. So my issue is not a traditional use case (yay cloud!)
[16:38:57 CET] <JEEB> sorry for tve typos btw, touchscreen keyboard on a train
[16:39:09 CET] <zerodefect> No problem at all
[16:39:52 CET] <JEEB> anyways does the same exact thing have issues locally or when piped?
[16:40:08 CET] <JEEB> or only via https?
[16:40:31 CET] <JEEB> locally you have fast read and seek etc, while piping means thereis no seek
[16:40:48 CET] <zerodefect> No issues when playing off filesystem. Not tried piped. I'm beginning to wonder if it is an https issue.
[16:41:33 CET] <JEEB> i know thereis one fix i pulled into master that fixed some gnutls stuff
[16:41:40 CET] <zerodefect> :O
[16:41:44 CET] <JEEB> are you how far from master?
[16:41:52 CET] <JEEB> this was earlier this year
[16:42:13 CET] <zerodefect> Oh ok. I pulled a nightly build a few days ago but no difference.
[16:42:34 CET] <JEEB> https://git.videolan.org/gitweb.cgi/ffmpeg.git/?p=ffmpeg.git;a=commit;h=bc1…
[16:42:40 CET] <JEEB> ok so newer than this
[16:43:01 CET] <JEEB> what does ffprobe -v verbose -i url say?
[16:44:46 CET] <zerodefect> Let me try your suggestion. I used -report and I noticed it had read the start and then seeked to the end but then was repeatedly seeking backwards. It's like it's trying to find something. ...
[16:45:36 CET] <JEEB> does s3 let you do partial requests btw?
[16:45:45 CET] <JEEB> byte offsets etc
[16:47:13 CET] <zerodefect> Yup. I can see in -report that it's successfully using `Range:` header
[16:48:35 CET] <JEEB> yea but does it actually succeed?
[16:48:49 CET] <JEEB> is this mxf or what btw?
[16:49:43 CET] <zerodefect> Yes, mxf over https: https://pastebin.com/cSva2P9G
[16:50:16 CET] <zerodefect> Short snipped (eventually ctrl+c)
[16:50:21 CET] <zerodefect> *snippet
[16:50:43 CET] <JEEB> anyways, may get back hereas i get home. afk
[16:54:11 CET] <zerodefect> @JEEB - I could share link with you if I could communicate with you somehow privately.
[16:55:26 CET] <zerodefect> ...if you're interested of course. No pressure :)
[18:34:55 CET] <transhuman> Hi! can anyone tell me what parameters I need for ffmpeg to get it to output the following format type of video I am having trouble replicating what telegram will take. https://paste.debian.net/1120538/ THANKS in advance, your help is appreciated!
[18:55:13 CET] <kepstin> transhuman: it's possible that there might be other requirements that aren't obvious from that file, but it looks like ordinary h264 video and aac audio in mp4 container.
[18:55:15 CET] <transhuman> nm thanks anyway I solved it
[18:55:35 CET] <transhuman> it seems to be the -pix_fmt yuv420p
[18:55:42 CET] <transhuman> not sure what that does
[18:56:06 CET] <kepstin> ah, yeah, most video's already 4:2:0 sampling but if your source is a gif or screencapture you might need to add that conversion yourself
[18:56:24 CET] <transhuman> ok thanks
[18:56:25 CET] <kepstin> (this is why we usually ask for the output of the ffmpeg command you ran, that would have been obvious there)
[18:56:49 CET] <transhuman> yes it would have been I just didnt know what I was looking at sorry...
[18:57:11 CET] <transhuman> anyway thanks
[18:57:28 CET] <kepstin> yeah, which is why the more info you share, the more eyeballs on it to spot things like that :)
[19:12:12 CET] <klongwood3> Hello I recently made a posting in the mailing list, but wondered if a response would be possible here as well
[19:12:20 CET] <klongwood3> Is there any reference to how ffmpeg's algorithm determines frame count for audio?
[19:13:13 CET] <JEEB> frame count?
[19:13:33 CET] <klongwood3> frame number to be more specific
[19:13:45 CET] <klongwood3> http://www.ffmpeg-archive.org/FFmpeg-audio-frame-count-nb-samples-misunders…
[19:13:48 CET] <pink_mist> "ffmpeg's algorithm"? there's literally hundreds of different algorithms in ffmpeg
[19:13:57 CET] <JEEB> FFmpeg's own APIs are not frame-exact if that's what you mean
[19:13:58 CET] <pink_mist> which one do you even mean
[19:14:20 CET] <JEEB> when you go around parsing a file with FFmpeg you generally get packets, and usually each audio packet is a decodable thing
[19:14:34 CET] <JEEB> (exceptions like MPEG-H Audio or AC-4 exist of course)
[19:14:50 CET] <JEEB> so the amount of audio frames more or less depends on how many audio packets the compressed stream contains
[19:15:19 CET] <JEEB> I think AAC mostly has 1024 sample packets, and AAC had some 900-something I think?
[19:15:27 CET] <JEEB> *AC-3 for the second one
[19:15:35 CET] <JEEB> FLAC can have very long ones
[19:16:21 CET] <klongwood3> the audio stream is started from "sender" with a USB microphone. This audio stream is transported over TCP using RTSP, to a "receiving" machine. Both are using linux. I am trying to keep record of once the stream ends what frame number they end on.
[19:16:53 CET] <JEEB> "frame number"?
[19:17:15 CET] <JEEB> do you just want to know how many audio frames were decoded from whatever is the input?
[19:17:54 CET] <kepstin> "frame count" is mostly meaningless for audio, you really want to count number or samples, or just duration in seconds.
[19:18:16 CET] <klongwood3> In my log, the "sender" using ffmpeg to send rtsp ends on frame (n) number 359, but the "reciever " ends at frame number (n) 208
[19:18:57 CET] <kepstin> the first ffmpeg would be re-framing the audio samples from the input, whatever it is, to fit in rtsp packets.
[19:19:16 CET] <JEEB> I quickly had a look at your log and I'm not sure what you're calculating. if you just want to know how many packets/frames went through ffmpeg.c's decoding or encoding
[19:19:19 CET] <JEEB> then use -debug_ts
[19:19:36 CET] <JEEB> that specifically logs every time packet is read from input, passed to a decoder, frame received from decoder
[19:19:45 CET] <JEEB> crap passed into a filter etc etc
[19:19:45 CET] <klongwood3> JEEB this is with cli not c
[19:19:51 CET] <JEEB> ffmpeg.c is the cli
[19:19:51 CET] <JEEB> :P
[19:19:59 CET] <klongwood3> ohh got me there
[19:20:03 CET] <JEEB> as opposed to FFmpeg the project, hwihc includes the cli apps and the libraries
[19:21:08 CET] <JEEB> also with audio the thing is that your audio formats have packets that contain frames of differing size
[19:21:21 CET] <JEEB> like I just noted, so your input and outputs can differ in count
[19:21:45 CET] <kepstin> a "frame" in ffmpeg at the decoding side is just "however many samples the decoder decoded from one packet"
[19:22:03 CET] <JEEB> if you are 100% sure that your receiver will get all packets, then you should check the count of packets fed to muxer, and then the count of packets read from demuxer
[19:22:07 CET] <JEEB> those in theory should match
[19:22:16 CET] <kepstin> and if the encoding side of ffmpeg needs frames of different size, then the audio will go through a fifo to get re-frames.
[19:22:20 CET] <kepstin> re-frames
[19:22:31 CET] <kepstin> re-framed. i can't type today
[19:22:33 CET] <JEEB> but I'm still trying to figure what exactly you're gaining by checking the count
[19:22:50 CET] <JEEB> like, I can tell you how to get a count of some sort, but is that really useful for you?
[19:22:55 CET] <JEEB> is there something you actualyl want to get done
[19:26:17 CET] <klongwood3> well i am parsing the log for the last line to get the last recorded audio number. This is for multiple clients, but I have noticed it with 1 to 1 in my mentioned post.
[19:26:39 CET] <klongwood3> its really just a mechanism to make sure we recieve all the data samples at the a server before we end the stream
[19:26:54 CET] <kepstin> if you want to count samples, then count samples not frames
[19:27:07 CET] <klongwood3> samples = nb_sample??
[19:27:23 CET] <klongwood3> what do you mean "count" samples? can you clarify that
[19:28:59 CET] <JEEB> I kind of want to recommend -debug_ts if you want to know what exactly went out/in, but on the other hand it's just UGGHHHH that someone is parsing this stuff (which could at any point change if anyone wants to change the debug messaging)
[19:29:40 CET] <JEEB> for things that went into the muxer, there's a line that begins with "muxer <- "
[19:30:04 CET] <JEEB> and then on receiving side there's "demuxer -> "
[19:33:22 CET] <JEEB> unfortunately it seems like feeding into/receiving from an aduio decoder is not logged in that way
[19:34:44 CET] <JEEB> generally speaking there pretty surely is a programmatic way of doing it properly, but at this point of time I have a hunch that you don't want to actually write any multimedia code whatsoever so even if I recommend you something you would just brush it off
[19:34:58 CET] <JEEB> so eff it, if you want packets passed on and received, that is it :P
[19:36:09 CET] <klongwood3> writing like a encoder/decoder? or an algorithm that will give correct count?
[19:36:33 CET] <JEEB> signaling in some way so you don't need to parse stderr
[19:41:24 CET] <klongwood3> well audio frame count parsing was just a mechanism where to keep in account for no "audio cut off". Really the scenario is similar to a walkie talkie. One machine has a push button mechanic along with the receiver. however we have come across where if the sender releases the button too early, or in reality immediately when they stop talking,
[19:41:25 CET] <klongwood3> parts of the audio is cut off/not heard when receiving. Frame count tracking was just a mechanism to have a safety method to tell the server not to close connection until the number is received
[19:42:39 CET] <klongwood3> parsing the stderr/log is not bad as it is from the log file outputted from the -report option
[19:45:50 CET] <JEEB> with UDP stuff I generally just set timeout, and then that's something between 250ms to 1.5s
[19:46:09 CET] <JEEB> if you don't get any packets within that time, just drop connection. otherwise block until the I/O has timed out
[19:46:42 CET] <klongwood3> side note, ffplay keeps giving an erro for debug_ts : Missing argument for option 'debug_ts'
[19:46:53 CET] <JEEB> yes, it's ffmpeg.c only
[19:47:03 CET] <klongwood3> damn
[19:48:00 CET] <klongwood3> also another question somewhat related, does RTSP always have sample size of 1024???
[19:48:04 CET] <JEEB> no?
[19:48:09 CET] <JEEB> as I said at the very beginning
[19:48:12 CET] <JEEB> it depends on the format
[19:48:18 CET] <JEEB> AAC is usually (but not always) 1024
[19:48:27 CET] <JEEB> AC-3 has something like 900-blah
[19:48:33 CET] <JEEB> FLAC can have quite long ones
[19:48:39 CET] <JEEB> no idea of vorbis or opus
[19:53:04 CET] <klongwood3> is there a reason why audio coming in has various/differing sample size from my USB mic? or is it also because of the fomat?
[19:54:05 CET] <JEEB> if you mean the input to whatever module you're utilizing with FFmpeg, that can depend on the capture settings, hardware and heck - even the actual capture module
[19:54:18 CET] <JEEB> I would guess the audio framework and its APIs mostly control that
[19:54:32 CET] <JEEB> (of your system, which the FFmpeg module is utilizing)
[19:57:49 CET] <klongwood3> I've tried setting the audio option frame_size when receiving audio from the mic (input) but nothing happens
[19:58:15 CET] <klongwood3> that prob is because like you mentioned, the various dependencies
[19:58:31 CET] <JEEB> also which module takes in which options :P
[20:00:26 CET] <JEEB> ffmpeg -h demuxer=pulse
[20:00:45 CET] <JEEB> that should output the options available (outside of the global ones) which that module takes in
[20:15:13 CET] <klongwood3> I ran the following command and got this output : https://pastebin.com/HFdDKtnR
[20:16:46 CET] <klongwood3> however when I ran with the setting -frame_count i still get varying "nb_sample" for each frame : https://pastebin.com/eBxcvsSV
[20:18:04 CET] <klongwood3> also what is fdebug ts?
[20:18:16 CET] <klongwood3> i receive an error when adding that option
[20:19:21 CET] <kepstin> hmm, you're encoding to aac, so it doesn't matter what size your input frames are, the aac encoder will re-frame them to 1024 samples per frame (plus padding)
[20:19:29 CET] <kepstin> the frame sizes up to the encoder are meaningless
[20:19:46 CET] <kepstin> what you probably want to do instead of counting decoded frames, is you should count encoded packets
[20:20:00 CET] <kepstin> just just look at the pts/duration.
[20:20:03 CET] <kepstin> or just*
[20:22:54 CET] <klongwood3> oddly enough, with -af 'ashowinfo' , the pts are not ending at the same time. The sender is ffmpeg :
[20:23:30 CET] <klongwood3> https://pastebin.com/N5ac0eFQ
[20:23:44 CET] <klongwood3> ffplay is the receiver : https://pastebin.com/YiSfg00R
[20:24:29 CET] <klongwood3> the sender ends with this line: n:312 pts:232734 pts_time:4.84863 pos:-1 fmt:s16 channels:1 chlayout:mono rate:48000 nb_samples:1200 checksum:EBBB95A2 plane_checksums: [ EBBB95A2 ]
[20:24:59 CET] <klongwood3> receiver ends with this line : [Parsed_ashowinfo_0 @ 0x7f6044005160] n:222 pts:227015 pts_time:4.72948 pos:-1 fmt:fltp channels:1 chlayout:mono rate:48000 nb_samples:1024 checksum:D0175357 plane_checksums: [ D0175357 ]
[20:30:19 CET] <kepstin> depending how the sender was stopped, it might be possible that there was some audio that passed through the filter chain but didn't get encoded/sent.
[20:31:29 CET] <kepstin> you also have multiple -f options on the output section of your ffmpeg sender command line, only the last one takes effect.
[20:32:18 CET] <klongwood3> -f s16le -f rtsp is not transporting the audio at 16bit format?
[20:32:32 CET] <kepstin> no, since the -f s16le is ignored, so it's using -f rtsp
[20:32:43 CET] <kepstin> it's then selecting the default codec since you didn't specify one
[20:32:45 CET] <kepstin> which happens to be aac
[20:33:34 CET] <JEEB> klongwood3: it's -debug_ts , not fdebug_ts
[20:33:46 CET] <JEEB> and I specifically noted you the keywords to grep for on the sending and receiving end with it :P
[20:34:06 CET] <klongwood3> in the doc, there is a part after -debug_ts that mentions fdebug_ts
[20:34:13 CET] <klongwood3> but i dont see any reference to it
[20:34:25 CET] <kepstin> if you want to send pcm audio over rtsp, you'd need to do something like "-c:a pcm_s16le"
[20:34:39 CET] <kepstin> (assuming rtsp allows that, i don't know enough about rtsp to say yes or no)
[20:34:45 CET] <JEEB> klongwood3: I have no idea what it does, but there is -fdebug ts
[20:35:06 CET] <kepstin> might run into udp packet size issues with raw pcm audio, fwiw.
[20:35:10 CET] <JEEB> that seems to print some stuff from within libavformat
[20:35:26 CET] <klongwood3> JEEB i keep getting error if i try running fdebug_ts : Reading option '-fdebug_ts' ...Unrecognized option 'fdebug_ts'.
[20:35:29 CET] <kepstin> (or maybe the rtsp muxer handles it for you and it's fine)
[20:35:41 CET] <JEEB> klongwood3: I... just noted how it is written in the docs
[20:35:49 CET] <JEEB> thanks for ignoring what I write. it makes me feel real good
[20:35:50 CET] <klongwood3> kepstin i am transporting over TCP tho
[20:36:58 CET] <klongwood3> JEEB not trying to, same as I have no idea either. Just wanted to let you know what response I got from using (attempting) that option. '=D
[20:38:38 CET] <kepstin> yep, that's the result you get for using any option that doesn't exist, it's not really interesting&
[21:19:42 CET] <ncouloute> So I want to make sure I got this right. The "Read frame with in pts XXXX" The XXXX value is coming from where in the log? I thought it was off the concat line but those PTS numbers dont match. I was hoping to use those so I know where the file starts and ends. Seems to be taken from the stts: line. Here is the log in question: https://paste.ee/p/DjHxM
[21:42:22 CET] <kepstin> ncouloute: that log message is printed by the fps filter
[21:42:57 CET] <kepstin> (as you can see from the stuff in [] before the message)
[21:44:37 CET] <kepstin> there should be a concat log where the pts number after the "->" matches with the "read frame with in pts" log from the fps filter
[21:44:46 CET] <ncouloute> yeah mine doesnt match
[21:44:56 CET] <kepstin> these logs are not necessarilly going to be near to eachother
[21:46:11 CET] <kepstin> in your paste, the concat log on line 3513 matches with the fps log on line 3571 for example
[21:46:40 CET] <ncouloute> yeah but thats the audio strema.. the stream:1
[21:47:19 CET] <kepstin> no, that's the video. audio is stream 0
[21:48:15 CET] <kepstin> lookat lines 690-700
[21:48:20 CET] <kepstin> to see the stream mapping
[21:49:38 CET] <ncouloute> I always thought video was the first one hmm I guess not always the case =/
[21:52:50 CET] <ncouloute> I guess it depends on the file... is there any way to force ffmpeg to map the video stream to 0?
[21:53:03 CET] <kepstin> no, that's the input so it depends on the file it's reading
[21:53:20 CET] <ncouloute> As I would rather not have to parse that as well
[21:53:22 CET] <kepstin> you can check the stream order with ffprobe or something before you start
[21:53:32 CET] <kepstin> that at least has output designed to be machine-readable
[21:53:57 CET] <kepstin> as opposed to fragile human-readable debug logs with no stability guarantees :)
[21:54:50 CET] <kepstin> honestly, with the amount of effort you're putting into this log parsing thing, it probably makes sense to build an app using ffmpeg apis instead.
[21:58:52 CET] <ncouloute> I would love to use ffprobe if I could pass the same ffmpeg line to ffprobe get the start and stops of the concatenated file..No telling where the frames will end up unless you parse it as it goes along. I really should just learn the api then I can fix a lot of the issues I come across. I just dont understand how video works. I need to find some resouces for that
[22:01:53 CET] <kepstin> video is not really that complicated... as long as you're not dealing with interlaced stuff, video is basically a series of frames, each frame is a still image plus a timestamp that says when it should be displayed.
[22:02:02 CET] <kepstin> the rest is just implementation details ;)
[22:03:12 CET] <ncouloute> I will have to handle every type of video... I thought about using a frameserver like avisynth but that slows things down signficantly. Another benefit of the API I can use concat filter which handles funky files better since it doesnt try to concat them first. Concat filter doesnt have the nice logging of concat demuxer.
[22:03:34 CET] <bencc1> How can I capture with x11grab using constant framerate?
[22:03:57 CET] <bencc1> this is what I'm trying:
[22:03:59 CET] <bencc1> ffmpeg -f pulse -ac 2 -ar 48000 -i default -f x11grab -framerate 30 -i :0.0 -acodec aac -b:a 96k -vcodec libx264 -pix_fmt yuv420p -preset:v veryfast -crf 23 cap.mkv
[22:04:14 CET] <kepstin> if you're writing an app using ffmpeg libraries, you can do the concatenation yourself at any stage, and know exactly what you're doing to the timestamps.
[22:05:05 CET] <kepstin> bencc1: x11grab do to its design can't do true constant framerate. (it works by repeatedly sleeping then asking for a frame)
[22:05:42 CET] <bencc1> kepstin: can I apply a filter in the same command to force constant frame rate?
[22:05:58 CET] <bencc1> or do I have to do another pass after the screen capture?
[22:06:39 CET] <ncouloute> yeah, I'll take another crack at the ffmpeg api then. Hopefully also it will tell me why it doesnt always make a cfr file on concat of cfr files.
[22:06:44 CET] <kepstin> yes, you can convert to constant framerate in one command, add a "-vf fps=30" or so. But note that it might drop or duplicate some frames to achieve the constant rate, meaning it could add some judder.
[22:07:14 CET] <kepstin> (of course, you might have some judder from the x11grab in the first place)
[22:08:02 CET] <klongwood3> JEEB: do you still have any other recommendations?
[22:12:30 CET] <bencc1> kepstin: I've tried adding "-vf fps=30" but "ffmpeg -i cap.mkv -vf vfrdet -f null -" show that I don't get constant framerate
[22:13:04 CET] <bencc1> ffmpeg -f pulse -ac 2 -ar 48000 -i default -f x11grab -framerate 30 -i :0.0 -acodec aac -b:a 96k -vcodec libx264 -pix_fmt yuv420p -preset:v veryfast -crf 23 -vf fps=30 cap.mkv
[22:13:57 CET] <kepstin> mkv has a fixed timebase of 1/1000, so due to rounding errors a lot of files show up as vfr even if they're not really.
[22:14:33 CET] <kepstin> the vfrdet filter should show a fairly small difference between min and max delta (should be a difference of 1 ideally)
[22:19:18 CET] <bencc1> kepstin: got disconnected
[22:19:34 CET] <bencc1> checking if "-vf fps=30" really give 1 error
[22:20:23 CET] <kepstin> you could alternatively use a container which supports different timebases; try nut for example instead of mkv.
[22:26:08 CET] <bencc1> kepstin: checked the mkv - [Parsed_vfrdet_0 @ 00000000005eee40] VFR:0.667752 (615/306) min: 12 max: 55 avg: 33
[22:26:32 CET] <bencc1> with the command above so for some reason "-vf fps=30" doesn't help
[22:26:35 CET] <bencc1> I'll try nut
[22:27:09 CET] <bencc1> I'm also getting many: [null @ 0000000000583f80] Application provided invalid, non monotonically increasing dts to muxer in stream 1: 1138528 >= 1138512
[22:37:54 CET] <bencc1> kepstin: nut gives me: [Parsed_vfrdet_0 @ 0000000002a7b500] VFR:0.001408 (1/709) min: 2048 max: 8192 avg: 8192
[22:38:23 CET] <bencc1> and during the capture I'm getting an error: [nut @ 0x565055677a20] read_timestamp failed. Last message repeated 4 times
[22:42:33 CET] <bencc1> kepstin: when converting the .nut to .mp4 I'm getting "VFR:0.000000 (0/937)" so it seems to work
[22:42:35 CET] <bencc1> thanks :)
[22:43:11 CET] <bencc1> I'll test on a longer capture now
[22:56:40 CET] <bencc1> kepstin: do I need to add "-vsync cfr" and/or "-enc_time_base 1/1000"
[22:56:41 CET] <bencc1> ?
[23:50:20 CET] <bencc1> when using nut I'm getting an error: [nut @ 0x55acde247a20] EOF before video frames
[23:50:29 CET] <bencc1> what could be the reason?
[23:53:21 CET] <bencc1> kepstin: thanks. I'll add log and paste it
[00:00:00 CET] --- Wed Dec 11 2019
1
0
[03:06:12 CET] <linjie> For CBR, bitrate and maxrate should be set and have the same value
[03:06:55 CET] <cehoyos> Sounds neither necessary nor sufficient
[06:30:03 CET] <linjie> Is there any test in fate to check whether the result of C and asm matches?
[06:35:11 CET] <rcombs> linjie: checkasm
[07:01:41 CET] <linjie> thx, verified with checkasm --test=hevc_add_res
[11:51:29 CET] <durandal_1707> https://pastebin.com/QMjRhye6 ---> what is purpose of this multiplications prior to idct8(and multiplication with sqrt(2)) ?
[12:58:57 CET] <durandal_1707> Lynne: i tried bunch of staff and 32 blocks decode only with blocky artifacts
[14:14:35 CET] <durandal_1707> does order matters if i do 8x4 idct so that idct8 comes before idct4?
[14:27:02 CET] <BBB> durandal_1707: in mathematical sense it doesn't matter, but the spec typically requires it to be done in a particular order to be normatively consistent
[14:27:52 CET] <durandal_1707> does it make output different?
[14:27:56 CET] <BBB> yes
[14:27:59 CET] <BBB> but not by a lot
[14:28:22 CET] <BBB> if you have visually significant artifacts, that's probably not the reason
[14:28:30 CET] <BBB> if you have rounding errors (off-by-ones), this may be why
[14:30:16 CET] <durandal_1707> i cant get 8x4 idct to work, codec uses idct 8x4 with scans of two 4x4 coined togethers so table goes like 0, 4, 8, 12, 1, 5...
[14:31:05 CET] <kurosu> that's interlaced? isn't that the dv one ?
[14:31:22 CET] <durandal_1707> 0, 1, 2, 3, 4, 5, 6, 7,
[14:31:22 CET] <durandal_1707> 8, 9,10,11, 12,13,14,15,
[14:31:22 CET] <durandal_1707> 16,17,18,19, 20,21,22,23,
[14:31:23 CET] <durandal_1707> 24,25,26,27, 28,29,30,31,
[14:31:48 CET] <BBB> I can count to thirty-one
[14:31:53 CET] <BBB> :D
[14:32:50 CET] <durandal_1707> yes, but to zizzag of 4x4 of left table with right table, interleave it and you get this 8x4 table
[14:34:45 CET] <durandal_1707> kurosu: i do not think this is interlaced, the two 4x4 block are combined together and done idct on it
[14:36:08 CET] <kurosu> in any case, maybe look up ff_simple_idct248_put
[14:36:57 CET] <durandal_1707> 0, 4, 8, 12
[14:36:57 CET] <durandal_1707> 1, 5, 2, 6
[14:36:57 CET] <durandal_1707> 9, 13, 16, 20
[14:36:57 CET] <durandal_1707> 24, 28, 17, 21
[14:36:57 CET] <durandal_1707> 10, 14, 3, 7
[14:36:59 CET] <durandal_1707> 11, 15, 18, 22
[14:37:02 CET] <durandal_1707> 25, 29, 26, 30
[14:37:04 CET] <durandal_1707> 19, 23, 27, 31
[14:37:14 CET] <kurosu> ah
[14:37:30 CET] <kurosu> I skipped your pasted array indicating the order
[14:37:33 CET] <kurosu> indeed unrelated
[14:44:02 CET] <durandal_1707> https://0x0.st/zUA5.png
[14:44:14 CET] <durandal_1707> its blocky and with no detail
[14:48:10 CET] <durandal_1707> https://pastebin.com/gZeGTETs
[14:48:19 CET] <durandal_1707> this is idct84_12bit
[15:04:42 CET] <BBB> so, I don't know how you typically od this sort of of thing, but I typically try to have a reference function to compare it to (this can be asm from a binary)
[15:04:49 CET] <BBB> so that you can run it and compare variables and states
[15:05:02 CET] <BBB> and then just run it and compare stuff
[15:05:08 CET] <BBB> not over a frame, but just over one block
[15:05:12 CET] <BBB> like checkasm
[15:06:34 CET] <Lynne> this is decompiled code, and small tables like this zigzag are usually inlined and not in rodata, its probably impractical
[15:07:41 CET] <durandal_1707> well, its full of heavily optimized simd that multiplies coefficients before calling idct
[15:09:17 CET] <Lynne> from what I can see from the picture there are no higher level coefficients, everything is a simple gradient
[15:15:21 CET] <durandal_1707> yea, AC have bunch of zeros
[15:22:57 CET] <durandal_1707> hmm, i think i know why artifacts, our idct does different permutation with zigzag_direct
[15:23:38 CET] <durandal_1707> i just need to figure out right table for 32 elements, that will give permutated output of 32 elements
[15:24:42 CET] <durandal_1707> why is this permutated at all?
[15:38:53 CET] <BBB> because top/left coefs are more likely to be non-zero than higher-frequency ones
[15:39:14 CET] <BBB> so it aligns likelihood (statistical) of being non-zero with coding order
[15:39:22 CET] <BBB> which makes it cheaper from a bits-spent perspective
[15:39:55 CET] <durandal_1707> so how to i permute above table (0, 4..) so that i get elements index less than 32?
[15:41:29 CET] <BBB> I don't understand the question, they are all under 32 already
[15:41:41 CET] <BBB> or do you mean how to invert that table?
[15:41:58 CET] <BBB> I don't see why a decoder should need that?
[15:42:21 CET] <durandal_1707> decoder uses direct zigzag for 8x8
[15:42:36 CET] <durandal_1707> ffmpeg uses permuted one of this i think
[15:42:54 CET] <BBB> ffmpeg uses permuted one for what?
[15:43:05 CET] <durandal_1707> for dct 8x8
[15:43:07 CET] <BBB> no
[15:43:10 CET] <BBB> idct is not permuted
[15:43:13 CET] <BBB> idct is in regular order
[15:43:16 CET] <BBB> coefficient coding is permuted
[15:43:53 CET] <BBB> so you "un-permute" it during coeficient decoding
[15:44:07 CET] <durandal_1707> if i use ff_init_scantable(s->idsp.idct_permutation, &s->scan[1], hh_scan); I get index elements > 31
[15:44:20 CET] <durandal_1707> and that does not work as it reads only 32 of them
[15:44:55 CET] <BBB> what codec is this? just don't use ff_init_scantable :)
[15:45:08 CET] <BBB> vp9 and vp8 and av1 don't use it
[15:45:43 CET] <BBB> init_scantable only does 8x8
[15:46:11 CET] <Lynne> ^^^
[15:47:00 CET] <durandal_1707> without permutation i get invalid results for Y plaen
[15:47:01 CET] <BBB> vc1 uses 8x4, and doesn't use init_scantabl
[15:47:03 CET] <durandal_1707> *plane
[15:47:12 CET] <BBB> show coef decoding code
[15:47:22 CET] <BBB> you can inline the permutation in the coef code
[15:47:55 CET] <BBB> I can explain the point of init_scnatable, but if you're going to use your own custom idct implementation, it's not relevant
[15:48:08 CET] <BBB> init_scantable is for simd implementations that use a different permutation than the C
[15:48:14 CET] <BBB> typically a partial transpose or full transpose
[15:48:23 CET] <BBB> so the idct transposes once instead of twice, which saves a lot of cycles
[15:48:36 CET] <BBB> but if you have a custom idct, none of that is relevant
[15:48:40 CET] <BBB> so then you just don't use it
[15:49:12 CET] <BBB> the idea was that you can keep "old" asm for neon while impelmenting "new" (depending-on-transpose) asm for x86
[15:49:14 CET] <durandal_1707> i use ffmpeg idct 12bit
[15:49:27 CET] <BBB> no you don't
[15:49:29 CET] <BBB> ffmpeg has no 4x8
[15:49:49 CET] <durandal_1707> well, for Y plane, I use 8x8
[15:50:12 CET] <durandal_1707> and that one looks to need it, or table is transposed
[15:50:44 CET] <durandal_1707> for pseudo U/V i wrote 8x4 hack
[15:52:01 CET] <BBB> so, you can't use init_scantable for that, you'll have to make a custom permutation table that is not 8x8 (which init_scantable assumes)
[15:53:17 CET] <BBB> or if the assumption is that the idct is C anyway, just tell it the permutation is identity
[15:53:23 CET] <BBB> and then it does nothing
[15:53:34 CET] <BBB> (except overwriting/reading your array by 32, but that's probably ok)
[15:58:21 CET] <durandal_1707> i cant guess correct table from already posted one above?
[15:59:58 CET] <BBB> it's likely the one you just gave: 0,4,8,12,1,5,...
[16:00:26 CET] <BBB> I mean,it depends on what code we're talking about
[16:00:41 CET] <BBB> if you're readin two sets of 4x4 coefs and do a quasi-4x8 uv idct
[16:02:02 CET] <BBB> then you need to write 0,8,1,2,9,16,24,17,10,3,11,18,25,26,19,27 for U
[16:02:20 CET] <BBB> and x+4 in V
[16:02:29 CET] <BBB> and that gives you the correct thing for a quasi-4x8 combined u+v idct
[16:02:33 CET] <BBB> but it's a little weird
[16:30:35 CET] <BBB> thinking about it more, you can't use a 4x8 as quasi-idct as is, you need to do two neighbour-"interleaved" idct4s, not one idct8
[16:30:38 CET] <BBB> it's not the same thing
[16:30:43 CET] <BBB> unless the bitstream is weird
[16:30:49 CET] <BBB> I really don't know what you're trying to do :D
[16:31:28 CET] <durandal_1707> BBB: they do indeed weird things, the float path use 8x8 idct for two sets of 32 coefficients
[16:32:24 CET] <Lynne> BBB: that sounds too weird, there's just no reason to group 2 4x4 idcts
[16:32:48 CET] <Lynne> but if they do then the zigzags make sense
[16:36:00 CET] <durandal_1707> BBB: feel free to look if you have time: https://pastebin.com/QMjRhye6
[16:36:36 CET] <BBB> ooo float code
[16:37:14 CET] <j-b> /j ffmpeg-meeting
[16:37:17 CET] <BBB> is this audio or video? you still haven't told me what this is supposed to do
[16:37:34 CET] <durandal_1707> BBB: blacmagic raw/.braw
[16:37:42 CET] <durandal_1707> video
[16:38:33 CET] <BBB> auVar26 = vpermq_avx2(auVar26,0xd8);
[16:38:38 CET] <BBB> I can see someone loving his lanes there
[16:38:47 CET] <BBB> some hacks are omni-present
[16:39:17 CET] <durandal_1707> i have integer only variant too
[16:40:30 CET] <durandal_1707> https://pastebin.com/ejEGuWe6
[16:41:20 CET] <durandal_1707> i do not get why integer variant does simd _before_ extracting of coefficients
[16:59:45 CET] <Illya> durandal_1707: remember to join meeting
[17:00:25 CET] <j-b> https://meet.google.com/eqm-icti-vpr
[18:25:01 CET] <durandal_1707> BBB: any ideas?
[18:28:08 CET] <BBB> not yet
[18:28:31 CET] <BBB> I was participating in the meeting so didn't look at it yet
[20:10:40 CET] <williamto> Hi guys, today I drilled down to the `ff_hscale_8_to_15_neon` function for aarch64 system and performed data prefetching for load instructions
[20:11:06 CET] <williamto> https://imgur.com/a/jJPTh9r
[20:11:55 CET] <williamto> at first the overhead decreased, but after re-building and running the same command again with profiling, the overhead increased. Does anybody know why it's having this behaviour?
[20:12:24 CET] <williamto> shouldn't prefetching the data into cache make load instructions *slightly* faster in general?
[20:34:36 CET] <williamto> has there been any discussion before about implementing data prefetching for load instructions?
[20:36:20 CET] <nevcairiel> most modern cpus do automatic prefetching when you access data in predictable patterns
[20:36:58 CET] <nevcairiel> there is no magic bullet to improve memory load bottlenecks
[20:37:01 CET] <kurosu> williamto: drop it, you've hit a bottleneck
[20:37:05 CET] <kurosu> yeah, exactly
[20:38:01 CET] <kurosu> that and what benefit you get in local micro-benchmarks often disappear once inside a program where different parts compete for the memory bandwidth
[20:42:53 CET] <williamto> oh ok, I understand now.
[20:44:25 CET] <williamto> Thank you guys for helping me!
[22:17:32 CET] <burek123> test
[22:17:41 CET] <burek123> oh great :) hi all :) long time no see :)
[22:17:55 CET] <burek123> can anyone please +v my nick on #ffmpeg so i can ask a question :)
[22:18:12 CET] <JEEB> I don't think you need that for a question? as long as you are registered
[22:18:28 CET] <burek123> oh, right, i forgot about it, thanks man :)
[22:18:29 CET] <JEEB> since at one point publicly known channels just got a buzzload of spam
[22:18:43 CET] <JEEB> and that was the simplest way apparently to limit that
[22:18:52 CET] <burek123> sure, makes sense
[00:00:00 CET] --- Tue Dec 10 2019
1
0
[00:04:11 CET] <scramblez> Hi All, I've created a series of sinewave frequencies to help tuning a subwoofer. I'd like to add a video showing on the screen the actual frequency of the audio, as it changes. I've seen drawtext and could use it, but I assume I would need a video file as input to add to it.
[00:04:33 CET] <scramblez> I have no such video file, how could I create a black screen to add the text to?
[00:06:07 CET] <durandal_1707> see filter color
[00:06:34 CET] <scramblez> durandal_1707: thanks, I'll have a look at it.
[00:31:45 CET] <scramblez> durandal_1707: OK, I got this much working: "ffmpeg -f lavfi -i color=color=0x483D8B -pix_fmt yuv420p -t 5 test.mp4" now I need to specify hd1080 resolution ... how do I do that?
[00:32:09 CET] <nicolas17> try -s hd1080 before -i
[00:33:18 CET] <scramblez> Thanks nicolas17! Sadly it gives: "Option video_size not found."
[00:33:54 CET] <nicolas17> hm
[00:34:08 CET] <furq> color=0x483D8B:s=1920x1080
[00:35:15 CET] <scramblez> Ha! It works! :-) Thank you furq!
[00:36:14 CET] <furq> https://ffmpeg.org/ffmpeg-filters.html#sine
[00:36:15 CET] <furq> there's also this
[00:37:59 CET] <scramblez> yes, I have already used this to generate the audio frequencies, I'm now looking into adding a video displaying the actual frequency being played using text on the TV screen.
[00:38:42 CET] <scramblez> Is it necessary to specify a font file, or will some generic font get used?
[00:39:29 CET] <furq> FREQ=200 ffmpeg -f lavfi -i sine=f=$FREQ -f lavfi -i color=0x483D8B:s=1920x1080,drawtext=text=${FREQ}hz ...
[00:39:35 CET] <furq> something like that
[00:40:04 CET] <scramblez> WOW! furq you're saving me a lot of work here!
[00:40:20 CET] <nicolas17> I think if you're on Linux, something as generic as "sans" will be resolved to an actual font by fontcondig
[00:40:34 CET] <furq> you might need to specify a font, it depends on how your fontconfig is set up iirc
[00:40:47 CET] <scramblez> OK, will see what it gives.
[00:43:40 CET] <scramblez> Hmm ... "Error initializing filter 'sine' with args 'f=' sine=f=: Invalid argument"
[00:44:44 CET] <scramblez> No matter, I'll hardcode it,
[00:45:08 CET] <furq> you probably need FREQ=200;
[00:45:21 CET] <furq> but if you have multiple frequencies then just use a loop for that
[00:45:43 CET] <furq> for FREQ in 100 200 300; do ffmpeg ...; done
[00:46:07 CET] <nicolas17> multiple videos?
[00:46:23 CET] <furq> apologies in advance to all the posix guys who will tell me that uppercase variable names are reserved
[00:46:28 CET] <scramblez> No, I was going to end up with one video, 5 seconds of each freq.
[00:46:46 CET] <scramblez> Starting at 10Hz and going up to 130Hz.
[00:47:03 CET] <scramblez> I don't mind doing it manually and concatenating the result.
[00:47:14 CET] <furq> yeah that's a lot simpler
[00:47:22 CET] <furq> you can do it in one command but it'll be a lot more complicated
[00:47:46 CET] <scramblez> Now it doesn't like text: "Error initializing filter 'drawtext' with args 'text=10hz'"
[00:48:14 CET] <scramblez> I may need to add a font file path.
[00:48:45 CET] <scramblez> I've got this at present: "drawtext=text="10hz"" and it errors out. :-/
[00:49:36 CET] Action: scramblez back in mo
[01:17:58 CET] <scramblez> Excellent! I got it done with: "ffmpeg -f lavfi -i sine=f=130 -f lavfi -i color=0x483D8B:s=1920x1080,drawtext="fontfile=/usr/share/fonts/dejavu/DejaVuSans.ttf:text='130Hz':fontcolor=white:fontsize=96:x=(w-text_w)/2: y=(h-text_h)/2" -t 5 130Hz.mp4"
[01:18:17 CET] <scramblez> Thank you All for your help! :-)
[01:19:31 CET] Action: scramblez off to bed ... zzz
[03:52:54 CET] <byte4byte_> blb
[06:20:30 CET] <byte4byte_> ffmpeg.exe -y -framerate 31.788647 -f rawvideo -pix_fmt rgb24 -vcodec rawvideo -s 640x480 -i tcp://127.0.0.1:54184 -acodec pcm_f32le -f f32le -ar 32006 -ac 2 -i tcp://127.0.0.1:54183 -c:v libvpx -crf 20 -pix_fmt yuv420p output.webm
[06:20:44 CET] <byte4byte_> im not getting any audio with the video does the command look ok?
[08:52:21 CET] <void09> got a .ts file i'm trying to -> .mkv, but ffmpeg stops at ~320mb / 4gb. getting these errors:
[08:52:22 CET] <void09> [mpegts @ 0x564037773080] start time for stream 0 is not set in estimate_timings_from_pts
[08:52:22 CET] <void09> [mpegts @ 0x564037773080] Could not find codec parameters for stream 0 (Video: h264 (HDMV / 0x564D4448), none): unspecified size
[08:52:22 CET] <void09> Consider increasing the value for the 'analyzeduration' and 'probesize' options
[08:52:56 CET] <void09> tried remuxing with mkvtoolnix/avidemux and it works, but the file is not seekable (only for short durations, and takes a bit)
[08:54:18 CET] <JEEB> those sound like something that happened at the beginning, and possibly due to how static ffmpeg.c is. anyways, if it's UHD BD or so, I recommend raising those two so it finds all streams.
[08:54:28 CET] <JEEB> or more specifically, gets the first packet for all streams
[08:56:49 CET] <void09> it's hdtv capture
[08:57:58 CET] <void09> ffmpeg -analyzeduration 45000000000 -probesize 45000000000 -i "
[08:58:00 CET] <void09> is this good?
[08:58:24 CET] <JEEB> it depends on how far it is in the stream
[08:58:34 CET] <JEEB> I think by default it scans 7 seconds and XX megabytes
[08:58:51 CET] <void09> i ran that and get : Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
[08:58:51 CET] <void09> [matroska @ 0x55e310f46140] Can't write packet with unknown timestamp
[08:58:51 CET] <void09> av_interleaved_write_frame(): Invalid argument
[08:58:51 CET] <void09> [matroska @ 0x55e310f46140] Can't write packet with unknown timestamp
[08:58:51 CET] <void09> Error writing trailer of outputvideo.mkv: Invalid argument
[08:59:07 CET] <JEEB> so yea, packets don't have timestamps; that's a separate problem
[08:59:20 CET] <void09> -fflags +genpts ?
[08:59:42 CET] <void09> nope, that doesn't work
[08:59:55 CET] <JEEB> wlel I'd recommend checking which stream has that tbh :P anyways, afk
[09:00:20 CET] <void09> which stream has what ?
[09:00:44 CET] <void09> only seeing an audio+ video stream
[09:01:18 CET] <void09> the .ts is perfectly seekable in mpv. just bugs me that this file is not .mkv-able
[09:01:34 CET] <void09> I can save 200MB :P
[09:04:03 CET] <void09> this is a weird ass .ts file. can anyone with some experience with these download 4gb and check it out ?
[09:04:33 CET] <void09> The knowledge gain on how to fix it will be valuable
[09:05:48 CET] <JEEB> DVBInspector is what I utilized generally to check out timestamps, and `ffprobe -of json -show_programs -show_packets -i BLAH.ts > dump.json` lets you have a json dump which contains how all packets are read by lavf
[09:05:57 CET] <JEEB> s/timestamps/MPEG-TS/
[09:06:00 CET] <JEEB> (but also timestamps)
[09:06:21 CET] <JEEB> then you can script around that JSON output to see any irregularities etc
[09:06:30 CET] <void09> I most definitely can't :(
[09:07:18 CET] <void09> I have no idea what to look for there
[12:49:41 CET] <snappy> Hi. Sorry this is a bit lazy to ask but I cannot stand the google search results on this. Is there a way to get ffmpeg convert mkv to mp4. I don't mind a quality loss. I prefer to do this via command line rather than some dubious 3rd party app that wraps ffmpeg. I'm on macos.
[12:51:43 CET] <snappy> ah nevermind i found a gist to do just this, plus a few tweaks because i guess the audio codec is ogg vorbis
[13:25:20 CET] <zerodefect> I'm tring to stream an MXF file off AWS s3 via https (ffplay). It seems like there is an issue related to this specific file because ffmpeg seems to be seeking backwards from the end of the file trying to stream it. I don't have problems when the file is played locally or with other streamed files. One interesting thing is that this is the largest file in my collecion ~63.3GiB.
[13:25:49 CET] <zerodefect> I don't have the rights to this file, so is there any way I can report this without it being publicly available?
[13:49:12 CET] <familiyaF> Hi, I am using hardware acceleration, is there a way to validate if the hardware is actually getting invoked
[14:16:32 CET] <DHE> if you specifically request a hardware encoder and it runs, it should be working. you can also query GPU usage on some hardware (eg: nvidia)
[17:32:56 CET] <encho> I am building ffmpeg on Linux/PC as a buildroot package for a mips32 server. It says it can not find fontconfig, when in fact fontconfig is present in the build environment which is easily verified because :
[17:33:07 CET] <encho> a) host/usr/bin/pkg-config --list-all | grep -i fontconfig
[17:33:27 CET] <encho> ... produces "Fontconfig - Font configuration and customization library"
[17:33:31 CET] <encho> and
[17:33:32 CET] <kepstin> you need fontconfig for the target, not for the host
[17:33:45 CET] <encho> b) ls -l staging/usr/lib/pkgconfig/fontconfig.pc -rw-r--r-- 1 alexander alexander 892 45: 9 18:09 staging/usr/lib/pkgconfig/fontconfig.pc
[17:34:39 CET] <encho> kepstin: I need fontconfig ON the target. It is built on the host. The tool to configure in the cross build env is in the host dir
[17:35:51 CET] <encho> If I were building ffmpeg on my embedded device then yes, I would need fontconfig on the target :)
[17:36:33 CET] <kepstin> you need to make sure that ffmpeg configure script is using a pkg-config binary that is searching the pkg-config dirs for the system you're building for.
[17:36:43 CET] <encho> Yup
[17:36:52 CET] <encho> That's the tool. The one I mentioned
[17:37:02 CET] <encho> It works fine for all the other packages btw :)
[17:37:15 CET] <kepstin> would be good if you can share the ffbuild/config.log then
[17:37:24 CET] <kepstin> might have some info as to what went wrong.
[17:37:24 CET] <encho> Sure, no problem
[17:37:53 CET] <encho> I think it does not ... I looked at it already.. i will pastebin it and trim it a little coz its HUGE
[17:39:13 CET] <encho> Oh and the version of ffmpeg which is used in my buildroot tree is 3.2.8... if anybody knows of any related fixes in more recent version that could probably save me a lot of typing :)
[17:39:39 CET] <kepstin> encho: there's a ton of fixes in every more recent version, please update
[17:39:54 CET] <kepstin> (not necessarily related, but those fixes will affect anything you're actually using ffmpeg for)
[17:41:06 CET] <encho> kepstin: ok I will try some more recent vesion ... that's the one which was "shipped" with the version of buildroot I am using and I was reluctant to update out of fear of dependencies failing
[17:41:43 CET] <encho> I will be using it to recode youtube videos downloaded by youtube-dl to my embedded box
[17:42:28 CET] <kepstin> fun thing about youtube-dl is that you need to /continuously/ update it due to changes on the web pages, and it does work best with a newer ffmpeg build.
[17:43:12 CET] <kepstin> doing transcoding on an underpowered mips box doesn't sound like fun tho
[17:44:17 CET] <kepstin> most of the nas-style systems that do transcoding use intel cpus so they can use the quicksync hw transcoder
[17:46:15 CET] <encho> kepstin: well I will only usiously e it for youtube not other sites. Hopefully I don't need to constantly update it coz that would be a serious problem
[17:46:32 CET] <encho> only *use it*
[17:46:50 CET] <kepstin> you do, google changes the youtube pages probably more often than the other sites youtube-dl supports :)
[17:47:08 CET] <encho> hmmmm
[17:47:40 CET] <encho> kepstin: ok then how does my semi-smart tv work? it has a youtube function
[17:48:01 CET] <encho> and probably was never updated since I bought it ... like 4 years ago
[17:48:05 CET] <kepstin> they presumably use private apis licensed to them by google
[17:48:22 CET] <encho> so the licensed api is guaranteed not to change?
[17:48:41 CET] <kepstin> that there have been some "smart devices" which lose accesses to services due to not being able to update
[17:48:50 CET] <kepstin> and most smart tvs do receive firmware updates
[17:49:16 CET] <encho> yeah thats why I said "semi" smart :) it does not have netoworking
[17:49:24 CET] <encho> so can not receive updates
[17:49:30 CET] <kepstin> if it doesn't have networking, then it can't play youtube
[17:49:41 CET] <kepstin> if it can play youtube, it has networking, therefore it can receive updates
[17:50:16 CET] <encho> errr ... right :) it does have newtorking I got confused about the other TV
[17:50:50 CET] <encho> ok heres the pastebin of the config.log:
[17:50:58 CET] <encho> https://pastebin.com/qZt9NvWE
[17:51:54 CET] <encho> kepstin: ok so now I will try a more recent version... Perhaps the latest 3.x would be a good candidate?
[17:52:22 CET] <kepstin> encho: you almost certainly need to remove the --disable-libfreetype (or change it to --enable-libfreetype)
[17:52:36 CET] <kepstin> 3.x is old, if you most use a release use the latest one
[17:52:50 CET] <encho> ok...
[17:53:39 CET] <kepstin> that said, that appears to be unrelated to the error
[17:54:24 CET] <kepstin> your actual error is "/home/workHD/buildroot-output/host/usr/lib/gcc/mipsel-buildroot-linux-uclibc/4.8.5/../../../../mipsel-buildroot-linux-uclibc/bin/ld: /tmp/ffconf.doV5zRg0.o: linking -mfp64 module with previous -mfp32 modules"
[17:54:25 CET] <encho> kepstin: actually it could be yet another manifestation of the problem and the error - if it can not find the freetype either it disables it?
[17:54:36 CET] <kepstin> the library is built with a different, incompatible abi
[17:55:10 CET] <encho> and what if mfp?
[17:55:13 CET] <encho> *is
[17:55:47 CET] <kepstin> i'm not familiar with mips, but fp64 vs fp32 probably means 64-bit floating point vs. 32bit floating point
[17:55:57 CET] <kepstin> i don't know which your system requires or how to set that appropriately.
[17:56:52 CET] <encho> Thank you kepstin, I will look into that :)
[17:57:24 CET] <encho> By the way - if I build mplayer... which has a 'built-in' ffmpeg source in one of its sub-dirs...
[17:57:31 CET] <encho> it builds fine.
[17:57:42 CET] <encho> But does not produce a ffmpeg executable LOL...
[17:58:28 CET] <encho> Anyway - for starters I will try the most recent source and look into this mfp problem. Thanks again kepstin
[18:00:39 CET] <kepstin> looks like you need to either rebuild all the other libraries with -mfp64 or remove the option --enable-mipsfpu from your ffmpeg configure line
[18:02:07 CET] <encho> ahh ... there was some grief with this FPU business... I remember ... long time ago I had do some patching and to fiddle with some asm instructions in the kernel code :(
[18:04:14 CET] <encho> So the CPU is indeed 32 bit and based on what you pointed kepstin, it seems that for some reason ffmpeg's configure adds the -mfp64 switch instead of -mfp32?
[18:04:30 CET] <kepstin> that has no bearing on whether the cpu is 32bit or not
[18:05:28 CET] <kepstin> you told ffmpeg to use the hardware fpu on a mips32r5 or newer cpu, and ffmpeg knows that the fpu on that chip can do 64bit floating point, so it added the option.
[18:06:36 CET] <kepstin> (note that i'm referencing latest git master, it's possible that this code is broken on the old version you have, although i doubt there were major changes)
[18:07:56 CET] <encho> Ok just a quick sidetrack - all these errors (mfp) happen in tests that configure runs to identify what is available on the system. So this may be an indication of some inconsistecny or inefficiency and eventally the fpu will not be used...
[18:08:31 CET] <kepstin> it just means that the shared libraries you're trying to link to are not compatible with the options that ffmpeg is using to build its own code
[18:08:36 CET] <encho> but is probalby not the real cause of the build failing?
[18:08:39 CET] <kepstin> that's it.
[18:08:46 CET] <byte4byte_> can someone assist?
[18:08:48 CET] <byte4byte_> ffmpeg.exe -y -framerate 31.788647 -f rawvideo -pix_fmt rgb24 -vcodec rawvideo -s 640x480 -i tcp://127.0.0.1:54184 -acodec pcm_f32le -f f32le -ar 32006 -ac 2 -i tcp://127.0.0.1:54183 -c:v libvpx -crf 20 -pix_fmt yuv420p output.webm
[18:08:53 CET] <encho> There are tons of these. In many tests.
[18:08:56 CET] <byte4byte_> i am not getting an audio in the video
[18:09:06 CET] <kepstin> encho: since the libraries aren't compatible, ffmpeg can't link to them
[18:09:07 CET] <encho> And only one mention of "fontconfig not found"
[18:09:12 CET] <byte4byte_> i verified i am getting a connection on port 54183
[18:09:20 CET] <kepstin> encho: it's probably disabling a bunch of other things as well
[18:09:44 CET] <kepstin> byte4byte_: the "rawvideo" input format only supports video
[18:10:08 CET] <kepstin> byte4byte_: not sure how you'd expect a video-only stream without a container to contain any audio?
[18:10:11 CET] <byte4byte_> but i have a 2nd input for audio
[18:10:24 CET] <kepstin> oh, right, didn't read far enough.
[18:10:46 CET] <encho> kepstin: Ok then I will continue as planned: newer version... if that does not help - investigatethe mfp bit problem
[18:10:49 CET] <kepstin> but I suspect that you might just have to add some -map options to select the right streams.
[18:11:13 CET] <kepstin> encho: newer version should behave the same way in terms of building, but unlike the old version, more people here will be willing to help you
[18:11:31 CET] <kepstin> encho: you have to sort out the mips library abi issue, determine which cpu you have and use matching options
[18:13:36 CET] <encho> kepstin: maybe now is the time to mention that I am fairly ahead in this project? I mean I have various apps and libs working including things like SDL2, several GUIs, apps which do blitting, play video and audio and display PNGs?
[18:14:06 CET] <encho> I mean isn't improperly built ABI something which would prevent all this from happening?
[18:14:17 CET] <kepstin> encho: if all your other libs are already built, easiest thing to do is to make ffmpeg use matching abi, which means that you should remove the --enable-mipsfpu option
[18:14:28 CET] <byte4byte_> hey kepstin https://pastebin.com/xqZ167Mq
[18:15:28 CET] <encho> kepstin: right.. but that will probably affect performance ?
[18:15:48 CET] <kepstin> encho: probably? i mean it might make it go from "pretty awful" to "really awful"
[18:15:59 CET] <kepstin> encho: but the alternative is you have to rebuild everything else
[18:16:36 CET] <kepstin> (and you should check if you actually have a mips32v5 chip with a hardware fpu first)
[18:16:57 CET] <encho> kepstin: right! :)
[18:19:34 CET] <encho> kepstin: so.... in buildroot's "Target Architecture" option it is "Generic MIPS32" that's selcted, and there are the R2, R5 and R6 variants there as well as interAptiv and M5150
[18:20:55 CET] <encho> So that tells me that a) I will need to talk to my hardware colleague tomorrow and b) that ffmpeg for some reason is selecting an options which it should not
[18:21:28 CET] <kepstin> you told ffmpeg to use the hardware fpu with the --enable-mipsfpu option, that's what caused ffmpeg to use the different abi
[18:21:51 CET] <kepstin> if you remove that option, then it will match the other stuff you've built
[18:24:03 CET] <encho> kepstin: ... so there is no user-controlled option in buildroot to select ffmpeg build with or without mpisfpu... which probably means it somehow infers that it has an FPU
[18:24:31 CET] <encho> Time to open buildroots config files I guess ... <sigh>
[18:24:46 CET] <kepstin> it is explicitly passing --enable-mipsfpu to the ffmpeg build, so... :/
[18:30:27 CET] <encho> kepstin ....
[18:30:31 CET] <encho> you rock man :)
[18:31:02 CET] <encho> --disable-mipsfpu did the trick.. it is building now
[18:31:58 CET] <encho> I will of course investigate further coz I think it does have an FPU so I will need to reconfigure the thing to recognize its FPU and build everything properly...
[18:33:07 CET] <encho> ... but you did point me in the right direction coz I was all about "ffmpeg is not invoking the cross config tool properly and hence does not find fontconfig and the other libs"
[18:33:07 CET] <kepstin> yeah, you probably would want to rebuild everything with the fp64 abi for best performance with media stuff
[18:33:16 CET] <encho> oh yeah :)
[18:33:35 CET] <kepstin> not that it'll ever be good
[18:33:51 CET] <encho> why..?
[18:33:57 CET] <kepstin> probably be faster to transcode on a 5 year old intel laptop instead of most mips hardware i've seen
[18:34:09 CET] <encho> :(
[18:34:27 CET] <encho> and it's a lower end mips system too...
[18:34:37 CET] <encho> so .. pretty hopeless huh?
[18:34:38 CET] <kepstin> (partly because a 5 year old intel laptop has a hardware video transcoder, but even on cpu it would be faster)
[18:34:39 CET] <kepstin> yeah
[18:35:30 CET] <encho> ok.. well... we'll see! for now I am happy that it is building and nothing can dimmer this joy! nothing I tell ya!
[18:36:37 CET] <encho> ok, kepstin thanks again for your help, I am off for now :)
[19:43:31 CET] <ScarletMarauder> hello, I have a question about splitting mkvs and keyframes. So I am sure this question has been asked a million times before, but here it goes. I am interested in splitting an mkv by its exact chapter markers. but since the keyframes do not perfect line up, the files are a few seconds long.
[19:44:21 CET] <ScarletMarauder> is there a way I could split the mkvs and only reencode the from the nearest keyframe to the chapter mark getting a third file.
[19:45:25 CET] <ScarletMarauder> so if say I had an hour long file with 20 chapters in it, and the keyframe is a few seconds after the chapter marker, I reencode from section from the keyframe to the chapter marker, and so on.
[19:46:23 CET] <c_14> It's possible, yes, but not without scripting or using the libraries
[19:48:06 CET] <ScarletMarauder> C_c14 ah, I figured I would be doing some scripting to get it work. would I be better off doing it in ffmpeg or mkvmerge.
[19:49:42 CET] <c_14> whichever's easier for you, should be doable with either
[19:49:45 CET] <ScarletMarauder> I recall there was a windows program in 2015 that could split files using that method, but it was abandoned before cli access was added. I figured something that would get keyframes and compare that list with the files chapter list.
[19:50:15 CET] <ScarletMarauder> c_14, thank you. shame it doesn't look like anyone has published something like that recently.
[19:50:39 CET] <c_14> yeah, just grab a list of all the keyframes and chapters. Then iterate over both, find the nearest keyframe before the chapter, copy that out, encode from that keyframe to the chapter, concat and repeat
[19:52:28 CET] <ScarletMarauder> this will be fun
[19:53:26 CET] <ScarletMarauder> I am trying to reedit the old clone wars cartoon, make an abridged version with less filler and move ventress's introduction to the start of the series.
[20:31:30 CET] <kepstin> the trickiest bit is that you need to match the encoder and settings used when re-encoding the parts of the video
[20:32:08 CET] <kepstin> otherwise it won't play correctly when concatenated
[20:50:08 CET] <ScarletMarauder> kepstin ah
[20:50:27 CET] <ScarletMarauder> i got a feeling this project is goign to take me a while
[20:52:11 CET] <kepstin> honestly, i'd just re-encode the whole thing. with appropriate encoder settings, there should be minimal quality loss, and it would be far easier to do.
[21:50:29 CET] <ScarletMarauder> kepstin that probably makes the most sense
[22:09:24 CET] <TanaPanda> Helo
[22:09:26 CET] <TanaPanda> Hello
[22:26:50 CET] <burek021> test
[22:26:58 CET] <JEEB> yup
[22:26:59 CET] <burek021> yay :) hi all :)
[22:28:04 CET] <burek021> is it possible to use ffmpeg together with an ocr tool (like tesseract) to convert dvb subtitles (image stream) into a text based subtitle stream (like srt or similar), on a live input stream? :)
[22:28:29 CET] <JEEB> definitely possible
[22:28:54 CET] <burek021> do you happen to know of any reference out there which i could take a look at? :)
[22:29:43 CET] <JEEB> it would be very similar to what ffmpeg.c's filtering stuff does with the sub2video functionality, and then what the OCR filter does with that https://www.ffmpeg.org/ffmpeg-all.html#ocr
[22:30:18 CET] <JEEB> now, the problem is that ffmpeg.c does nada with the frame metadata returned by that filter
[22:30:46 CET] <JEEB> so you need something that does AVFrame -> AVSubtitle
[22:31:04 CET] <JEEB> then you can feed that AVSubtitle to a subtitle encoder
[22:31:21 CET] <JEEB> be it srt, ass, webvtt
[22:31:40 CET] <burek021> i see, quite clear indeed, thanks a lot
[22:32:15 CET] <JEEB> it would be all simpler if subtitles used AVFrames, but alas we are not yet there :)
[23:14:02 CET] <TanaPanda> How many TS can ffmpeg transcode?
[23:14:07 CET] <TanaPanda> is there a limit?
[23:14:21 CET] <TanaPanda> i mean simultaneously
[23:15:25 CET] <JEEB> depends rather well on how many outputs from a single input, and what sort of inputs etc
[23:18:28 CET] <TanaPanda> IP and then IP back out
[23:18:37 CET] <TanaPanda> so IP in and then IP back out
[23:18:55 CET] <TanaPanda> transcoding a MP4 TS to a MPEG2 TS
[23:18:59 CET] <TanaPanda> MPEG4
[23:20:38 CET] <TanaPanda> which then goes to a QAM modulator and goes to the TV RF
[23:20:42 CET] <TanaPanda> its a mess
[23:22:09 CET] <JEEB> so probably libx264 and friends. and for the latter you need maxrate+bufsize for the encoder, and also the mpeg-ts muxer's buffer handling needs to be enabled
[23:28:26 CET] <DHE> I've tried that. but when I tried it, ffmpeg couldn't run for more than ~26.5 hours at a time due to timestamp wraparounds
[23:28:34 CET] <DHE> oh he's gone...
[23:52:14 CET] <JEEB> DHE: I've definitely done that
[23:52:41 CET] <JEEB> and I'm not sure if it's the lavf wrap-around handling, or ffmpeg.c's. but in either case it seems to work
[23:52:52 CET] <JEEB> like, surprisingly long amount of time
[23:53:18 CET] <JEEB> now, of course it should be in lavf but I haven't had the time to look into which side is properly handling the wrap-around
[00:00:00 CET] --- Tue Dec 10 2019
1
0
[00:22:24 CET] <durandal_1707> looks like braw either uses fringe colorspace or its using somesort of internal demosaicing which could explain initial "subsampling"
[03:12:49 CET] <cone-216> ffmpeg 03Andreas Rheinhardt 07master:ff2b75d94cee: avformat/matroskadec: Add a fate test for CodecPrivate compression
[11:44:30 CET] <cone-444> ffmpeg 03Gyan Doshi 07master:1b4f473d181a: avfilter/scale.c: factorize ff_scale_eval_dimensions
[12:09:33 CET] <durandal_1707> Lynne: so how to do 12bit idct of 32 elements, i presume 8x4 ?
[12:09:57 CET] <kurosu> there are simple_idct variants for DV and/or wmv3/vc1 iirc
[12:10:38 CET] <kurosu> 12 bits sounds like 16bits intermediates would loose too many precision
[12:10:47 CET] <kurosu> iirc, that's what happens for DNXHR
[12:11:03 CET] <kurosu> s/many/much
[12:12:03 CET] <kurosu> there's a tool not build by default (test_idct?) in ffmpeg that I think applies some ISO criteria to measure whether your idct has too much drift
[12:12:20 CET] <kurosu> (ISO11381? maybe mpeg1 or mpeg2)
[12:17:49 CET] <durandal_1707> kurosu: i mean output of idct is 12 bit depth
[12:18:21 CET] <durandal_1707> and coefficients are stored as int16_t
[12:20:36 CET] <Lynne> durandal_1707: 8x4 makes more sense than 4x8, and if you follow this order it'll be correct - http://paste.debian.net/1120063/
[12:21:04 CET] <iive> i think kierank implemented high bit depth idct for mpeg4 asp
[12:23:28 CET] <durandal_1707> iive: yes, but i need 32 element idct with 64 already implemented
[12:24:22 CET] <Lynne> durandal_1707: as for the dct, for now you should probably just copy some float one and make it round like in that diasm you posted
[12:24:38 CET] <Lynne> you can integerize it later on, its not hard
[12:36:20 CET] <kurosu> durandal_1707: I know. From experience on templating simple_idct10 and adding 12 bits support (for prores or dnxhr, can't recall), some patterns can cause overflow
[12:37:36 CET] <kurosu> anyway, maybe no overflow for 8x4, and you'll need to look at the variants implemented for DV/...
[12:38:00 CET] <kurosu> grep for ff_simple_idct48_add
[12:38:15 CET] <kurosu> or ff_simple_idct84_add
[12:38:28 CET] <kurosu> ah, WMV2 it was
[13:02:00 CET] <kurosu> also, achievement unlocked: being contacted by scientology because of ffmpeg
[13:02:15 CET] <kurosu> should I still reply because ffmpeg strives to become a better community ?
[13:02:55 CET] <durandal_1707> lol, why?
[13:04:11 CET] <kurosu> dnxhd
[13:04:13 CET] <rcombs> pretty sure scientology and better communities are incompatible
[13:04:34 CET] <kurosu> durandal_1707: just you wait, you're probably next in line if I recall recent history
[13:05:36 CET] <rcombs> hmmm, I think the weirdest software-related contact I've had was from some director of a university CS program who was confused about how version numbers worked
[13:05:49 CET] <rcombs> seemed to think that 1.2 > 1.10
[13:10:41 CET] <cone-444> ffmpeg 03Michael Niedermayer 07master:e3dddf2142e2: tools/target_dec_fuzzer: Also fuzz request_channel_layout
[13:10:51 CET] <durandal_1707> Lynne: in their obfuscated code i see for 32 transform they do idct4 before idct8
[13:12:15 CET] <JEEB> rcombs: to be honest, many people think that it's decimal numbers
[13:12:27 CET] <JEEB> and not NUM.NUM.NUM
[13:12:46 CET] <rcombs> sure, just, one would think someone in an authority position in a CS department would know better
[13:15:05 CET] <kurosu> rcombs: I was kind of ironic there, though the thing I asked myself was: what is the threshold of evilness where you do not reply? Such a large organization/sect must have a hefty amount of commercial contacts and suppliers, so...
[13:29:21 CET] <Lynne> durandal_1707: just swap them then, like https://paste.debian.net/1120082/
[14:48:39 CET] <jdarnley> 3
[15:38:23 CET] <durandal_1707> Lynne: i did use their float idct84 variant but i get greenish output in first 2 rows
[16:22:15 CET] <Lynne> durandal_1707: so you get 2 green lines, then 2 valid lines?
[16:24:07 CET] <durandal_1707> Lynne: i found something else while REing
[16:58:48 CET] <durandal_1707> Lynne: it simply give not valid output for bunch of blocks, i'm now dechipering SIMD for 32 idct
[17:02:41 CET] <Lynne> could be a weirdly scaled dct, yeah
[18:38:59 CET] <cpplearner> Guys, how can I set profile & bitrate when using h264_vaapi? I tried av_opt_set(..., "profile", "baseline", 0), but it fails.
[18:39:42 CET] <cpplearner> It would be nice if I can look into the complete list of av_opt_set options for h264_vaapi. ='(
[18:41:26 CET] <nevcairiel> it accepts main/high/constrained_baseline
[18:41:39 CET] <nevcairiel> not plain baseline, which is rarely hardware compatible
[18:42:04 CET] <cpplearner> nevcairiel: Oh, I see. Hmm, how can I see the list of accapeted options for h264_vaapi? I'm a newbie.. ='(
[18:42:18 CET] <cpplearner> Thanks for the info, BTW.
[18:44:10 CET] <nevcairiel> ffmpeg CLI can probable list them, try something like ffmpeg -h h264_vaapi
[18:46:43 CET] <cpplearner> nevcairiel: Thanks!!!!
[18:46:54 CET] <cpplearner> =D
[18:49:56 CET] <durandal_1707> Lynne: which zigzag to use for 32/8x4 ?
[18:58:18 CET] <Lynne> durandal_1707: there's only 2 choices, one starts down, the other starts right, to determine which you can just set the first 3 coefficients and swap the last 2 to see which looks more correct
[19:00:52 CET] <Lynne> the one which starts down is the de-facto standard, so its most likely that one, you can just write the rest of it manually with a sheet of paper
[19:07:30 CET] <durandal_1707> Lynne: but their is 4x8, because it goes, 0, 4, 8, 12...
[19:14:20 CET] <Lynne> for a 8x4 transform?
[19:15:46 CET] <durandal_1707> yes, but similar is for 8x8 one
[19:15:58 CET] <durandal_1707> they use weird idct implementation
[19:23:16 CET] <Lynne> I don't get how they lay out 8x4 in 4x8 or why
[19:40:40 CET] <cpplearner> Hmm, guys. Is there anything I should be careful with, when doing CBR encoding with h264_vaapi? Trying ffmpeg binary works fine, but av_opt_set gives me a cripppled output...
[20:17:49 CET] <cpplearner> Hmm, should I set bitrate with av_opt_set?
[22:24:34 CET] <cone-072> ffmpeg 03Andreas Rheinhardt 07master:9f7b2b37e3c6: fate/matroska: Add a test for propagating flac channel layouts
[00:00:00 CET] --- Mon Dec 9 2019
1
0
[08:58:09 CET] <void09> symphorien: I've been looking for that answer for a week, it seems it's not possible with the ffmpeg client
[09:10:40 CET] <dartleader> I finally figured out how to do lossless conversion of vob containers to mkv, time to save myself quite a few gigs of HDD space
[09:28:23 CET] <pink_mist> if it's lossless conversion, how are you saving gigs?
[09:31:45 CET] <void09> vob container overhead
[09:32:08 CET] <void09> dartleader: what was so hard to figure out, just drag and drop in makemkv : )
[09:32:19 CET] <kurosu> stripping unnecessary streams as well as using a more efficient file format? he probably means also stream copy
[09:32:40 CET] <kurosu> (ie not reencoding to a different, lossless codec)
[09:45:54 CET] <pink_mist> stripping unnecessary streams sounds like it could save some gigs, yeah, but vob container overhead shouldn't be that large
[09:46:17 CET] <pink_mist> I would argue that stripping streams means it's not lossless anymore though :P
[10:11:45 CET] <void09> yes, and you lose the menus
[10:12:30 CET] <void09> I was wondering, theretically, it would be possible to convert the mkv back to .vob or .m2ts (bluray format) with ffmpeg, from mkv, once you remux it
[10:13:18 CET] <void09> do you think there's a way to do this on the fly, so for example, i could play the dvd/bd using the mkv re-muxed to m2ts/vob on the fly?
[10:38:46 CET] <void09> without having to actually save it in that format
[13:24:19 CET] <spfy> Hi guys. Anyone able to answer my question? I am piping an .mkv into ffmpeg. It has a video stream and a subtitle stream. I'd like to hardsub the subtitle stream.
[13:24:19 CET] <spfy> stream is not image-based. Is it not possible to use the subtitles filter with a pipe or input stream?
[13:28:16 CET] <JEEB> spfy: yea currently you can only do it with the subtitle filter or so which takes in the input file as well, and thus internally reads it too. and thus piping probably won't work too well
[13:28:57 CET] <JEEB> I don't think it's a gargantuan job to add support to the sub2video logic the same stuff that the subtitle/ass filters are doing
[13:29:05 CET] <JEEB> but nobody has cared enough to do that yet
[13:29:40 CET] <JEEB> I think mpv's encoding feature can do that, not sure how close that is to something you'd want to try
[13:29:56 CET] <spfy> i see. darn. i'm trying to set up a nice pipeline for this instead of saving the files first.
[13:30:06 CET] <spfy> oh i havent tried mpv. ill look into it! thanks!
[13:30:40 CET] <BtbN> There's a lot of stuff that makes use of being able to seek in the input, so a pipeline isn't always the best idea.
[13:31:24 CET] <JEEB> well as long as you don't need any of that then piping isn't too bad?
[13:31:56 CET] <spfy> hardsubbing does require encoding though, which might seek i guess. i dont know too much about this kind of thing though
[13:32:17 CET] <JEEB> encoding by itself is a A->B process
[13:32:27 CET] <JEEB> otherwise encoding of live streams wouldn't exactly be a thing :)
[13:33:06 CET] <pink_mist> if the mkv has attachments for fonts or similar things though, that may require seeking
[14:16:07 CET] <void09> JEEB: any idea how i can send ffmpeg output to a named pipe ? I want to see if it's possible for a bluray to play with m2ts stream coming from an mkv
[14:16:35 CET] <void09> or anyone else : P
[14:17:36 CET] <spfy> can't you just redirect ffmpeg's stdout to the pipe?
[14:18:04 CET] <void09> how would i do that ?
[14:19:19 CET] <spfy> ffmpeg -i input.mp4 -c copy - >/my/pipe
[14:20:03 CET] <spfy> if you don't specify an output file and put - instead, it just writes the output to stdout. then you can redirect to the named pipe. hope it's clear!
[14:20:57 CET] <void09> hmm, does ffmpeg support m2ts as an ouput format anyway ?
[14:21:03 CET] <void09> I don't see it in ffmpeg -formats
[14:21:26 CET] <void09> oh, mpegts ?
[14:21:30 CET] <spfy> that i dont know lol
[14:22:22 CET] <void09> ffmpeg -i backup.m2ts -c copy - > 00274.m2ts
[14:22:25 CET] <void09> is this correct?
[14:23:02 CET] <void09> 00274.m2ts being a pipe created with mkfifo 00274.m2ts
[14:23:53 CET] <void09> if i run that and try to do something with it (like cat), I get: [NULL @ 0x56330d0b3240] Unable to find a suitable output format for 'pipe:'
[14:23:54 CET] <void09> pipe:: Invalid argument
[14:24:12 CET] <zeromind> you'll need to specify the format manually
[14:24:43 CET] <void09> :O Works
[14:25:09 CET] <spfy> nice! named pipes are magic. i started playing with them myself
[14:25:25 CET] <void09> I want to have bd-remux and bd too
[14:25:33 CET] <void09> like having the cake and eating it too :P
[14:25:57 CET] <void09> ok, is it normal for ffmpeg to exit when i close the video player reading the pipe ?
[14:26:07 CET] <void09> if yes, can i do something to keep it open ?
[14:26:26 CET] <void09> I get this on player exit: av_interleaved_write_frame(): Broken pipeB time=00:00:08.38 bitrate=35662.7kbits/s speed=1.35x
[14:26:26 CET] <void09> Error writing trailer of pipe:: Broken pipe
[14:27:14 CET] <spfy> maybe when you close the player, it's closing the pipe. not sure how you'd prevent that
[14:28:22 CET] <void09> when opening the Bluray folder in vlc, it does not work though
[14:28:27 CET] <void09> maybe vlc does not expect a pipe but a file
[14:28:47 CET] <void09> since the size of the pipe in thefilesystem is 0
[14:31:11 CET] <void09> playing the bd folder in smplayer results in some extras being played
[14:31:36 CET] <void09> playing the m2ts pipe in smplayer makes ffmpeg crash, but when restarting the ffmpeg pipe output, it start playing
[14:39:36 CET] <void09> hm seems you cannot seek back with a named pipe
[14:40:29 CET] <pink_mist> of course you can't
[14:40:35 CET] <pink_mist> you can't seek in any pipe
[14:42:40 CET] <cehoyos> How did you crash FFmpeg?
[14:42:53 CET] <cehoyos> It is not supposed to crash, if you can reproduce, please explain how!
[14:43:14 CET] <pink_mist> he closed the pipe ffmpeg was writing to, and ffmpeg got a SIGPIPE, and it reported that as an error
[14:43:21 CET] <pink_mist> afaik that's precisely how it should happen
[14:43:47 CET] <void09> yeah, i also crashed smplayer trying to close the "file"
[14:43:58 CET] <void09> vlc and mplayer worked ok
[14:44:05 CET] <void09> but what i really wanted to do does not work : (
[14:44:47 CET] <void09> can you do some brainstorm and tell me if there is any way to make this happen ? even writing custom code
[14:45:21 CET] <void09> That is, play a bluray with menus and everything, where the main feature stream comes from ffmpeg, doing mkv -> m2ts
[14:46:22 CET] <cehoyos> Note that FFmpeg does not really write bluray streams, it can write mpegts (to some degree)
[14:46:32 CET] <cehoyos> Patches to improve the bluray support exist
[14:47:11 CET] <cehoyos> And to repeat above: If FFmpeg crashes, there is (nearly) always an issue that should be fixed, if FFmpeg received a signal and reported an error and did not crash, there is of course no issue.
[14:48:12 CET] <void09> cehoyos: oh so no bluray stream support ? interesting
[14:48:44 CET] <cehoyos> (FFmpeg may for example crash if the memory allocation model of the underlying operating system is optimistic - which it often is - and the OS does not immediately report out-of-memory but kills FFmpeg later when it tries to access the memory: In this case, FFmpeg cannot be "fixed")
[14:48:48 CET] <void09> I misuses the word crash I guess
[14:48:52 CET] <cehoyos> No output support
[14:48:56 CET] <cehoyos> thank you!
[14:49:27 CET] <void09> so what's the state of those patches for m2ts ?
[14:49:44 CET] <void09> and why are they so difficult to implement, isn't the standard open ?
[14:49:49 CET] <JEEB> no?
[14:49:57 CET] <JEEB> blu-ray specs cost $8000/year
[14:50:00 CET] <JEEB> at least
[14:50:03 CET] <void09> lol what
[14:50:09 CET] <cehoyos> (But I don't think this is the main issue)
[14:50:15 CET] <void09> how can tehy cost "/year" ?
[14:50:28 CET] <JEEB> void09: you're not allowed to use them afterwards. either official PDF DRM or otherwise
[14:50:39 CET] <JEEB> the DRM of "not having a digital edition" worked pretty well for the DVD spec apparently
[14:50:47 CET] <JEEB> the actual MPEG-TS spec is open, yes.
[14:50:54 CET] <JEEB> but then what you put and how with what limitations
[14:50:55 CET] <void09> wait.. what
[14:50:57 CET] <JEEB> that is blu-ray
[14:51:16 CET] <cehoyos> The mpegts muxer has (non-trivial) issues independently of bluray...
[14:51:17 CET] <void09> you are not allowed to use them.. like. in software?
[14:51:23 CET] <void09> what if you already wrote the software ?
[14:51:45 CET] <cehoyos> As said, I don't think this is the reason bluray write support is very limited / highly incomplete
[14:51:50 CET] <JEEB> sure
[14:52:00 CET] <void09> I understand, just curious about this bluray spec $8k /year thing
[14:52:06 CET] <bencoh> it most certainly doesn't help people fixing it though :)
[14:52:19 CET] <bencoh> but yeah, ffmpeg mpegts muxer has other issues
[14:52:37 CET] <JEEB> anyways, this only matters if you want to write MPEG-TS that goes through a mastering app's validation
[14:52:50 CET] <JEEB> as in, would be OK to write onto an official blu-ray
[14:53:02 CET] <void09> alrigh then. is there some software that convert bluray menus to some open format ?
[14:53:33 CET] <JEEB> I think matroska had menus specified at some point, but at the end of the day that was so niche that nobody implemented any of that otehr than maybe divx inc briefly
[14:53:53 CET] <void09> oh wow : \ too bad
[14:53:56 CET] <JEEB> and after DVDs the menu systems have differed quite a bit. with blu-ray being java based and all that jazz
[14:54:44 CET] <JEEB> so the best way of keeping the menu structure is to just keep the darn original blu-ray file structure and utilize libbluray
[14:55:09 CET] <JEEB> if you need to "re-master" the thing based on another thing, you get into some other fun things
[14:57:45 CET] <void09> well I want the bluray video and extras backed up as mkv. cause that's the most convenient
[14:57:51 CET] <byte4byte_> blb
[14:58:01 CET] <JEEB> so basically what you need is actually blu-ray input
[14:58:05 CET] <void09> and i also want to back up the bd menu and crap
[14:58:13 CET] <JEEB> well, ok. that is less fun :P
[14:58:23 CET] <JEEB> like, you can get the playlists out
[14:58:28 CET] <JEEB> and remultiplex them
[14:58:38 CET] <void09> and take screenshots of the menu and save them as png :D
[14:59:01 CET] <JEEB> taking screenshots of the m2ts that contain the menu isn't too hard
[14:59:08 CET] <JEEB> they're usually a few minutes of random video
[14:59:12 CET] <JEEB> but it's not containing the java parts
[15:07:16 CET] <void09> so nobody worked on porting bluray menus to something else
[15:07:31 CET] <void09> and there's no working way of convering mkv to m2ts ? :\
[15:08:56 CET] <JEEB> why would you go that way 'round?
[15:09:32 CET] <void09> that way ?
[15:10:35 CET] <JEEB> from matroska to mpeg-ts?
[15:10:53 CET] <JEEB> or well, I can see some specific reasons like putting it through multicast in a local network for some reason, but most people don't do that :P
[15:12:33 CET] <void09> JEEB: from matroska to m2ts so i can copy all teh bd files excep the extras and main film, and when i need "bluray", i give it a m2ts stream from mkv
[15:12:35 CET] <void09> that was the plan
[15:12:57 CET] <JEEB> ok, so that now depends on how the blu-ray data files are working
[15:13:12 CET] <JEEB> because it's quite possible that the playlists etc just base on offsets
[15:13:24 CET] <JEEB> not that I know, if you read libbluray's code you might understand it better
[15:13:42 CET] <void09> I have thought of that. I thought it would at least play, with no working chapters and such
[15:13:47 CET] <void09> but it might not be that simple
[15:14:22 CET] <JEEB> so at that point I think esp. with current master the actual writing of the mpeg-ts is not the problem, the problem is then adjusting the things you have backed up to the newly created mux you have done
[15:14:56 CET] <JEEB> but of course I can't be sure, you'll have to read the "requirements" by reading libbluray code or so :P
[15:15:11 CET] <void09> :[ no
[15:15:29 CET] <void09> ok how about dvds then
[15:16:03 CET] <void09> they are split in multiple files, that might prove to be a problem , no ?
[15:16:14 CET] <void09> how do you turn an .mkv into 6 .vobs
[15:16:26 CET] <void09> without writing them to disc
[15:16:30 CET] <JEEB> there were some "re-mastering" apps there, esp. since it was popular to make 4.xGiB DVDs out of 9.xGiB ones or whatever it was
[15:16:43 CET] <JEEB> but I have no idea how good or bad those were
[15:16:54 CET] <void09> no, I don't want to remaster everything
[15:16:56 CET] <void09> anything*
[15:17:21 CET] <JEEB> well you have lost your original media files anyways
[15:17:25 CET] <void09> I want to have playable in both .mkv remuxed format, and the original, without keeping the d ata twice
[15:17:28 CET] <JEEB> so it effectively is creating new muxes
[15:17:39 CET] <JEEB> so recreating the DVD structure from that *is* "remastering"
[15:18:13 CET] <void09> well, technically
[15:18:27 CET] <JEEB> also I know for blu-rays people added subtitle streams etc to them, so there must be some software around :P
[15:18:32 CET] <void09> does not matter, as long as it retains the original "experience" of it
[15:18:46 CET] <void09> yes, there is software to remux those streams
[15:18:58 CET] <void09> which is why i am surprised ffmpeg has issues with it
[15:20:35 CET] <JEEB> I wouldn't be surprised if that software also modifies the playlists etc
[15:20:38 CET] <JEEB> since language codes etc are there
[15:21:42 CET] <JEEB> that is why if you use FFmpeg's libbluray input, which is on the I/O level, you don't get language identifiers or chapters. because they're not on the MPEG-TS stuff which gets passed onto the MPEG-TS reader, but rather in the metadata file(s)
[15:22:56 CET] <JEEB> void09: anyways it's really hard to say anything about what is working and what's not because nobody has really detailed this :P even if we don't go as far as actual blu-ray disc muxing goes, but just something that PC players would play.
[15:23:03 CET] <JEEB> but I wouldn't be surprised if it wasn't just about writing the mpeg-ts
[15:47:53 CET] <byte4byte_> blb
[17:04:31 CET] <glow8> How does ffmpeg download a video when you use `ffmpeg $FFMPEG_FLAGS -i "$url" "$name"`? I want to do exactly the same thing but inside a C program, so that I can save the data into an array rather than a file.
[17:05:17 CET] <glow8> I was going to use libcurl and then convert it with something like sox but I'm not sure if I can do it with libavutil or something like that
[17:17:44 CET] <DHE> ffmpeg abstracts file IO into their own wrapper. HTTP becomes just another IO driver
[17:23:00 CET] <glow8> So if FFMPEG_FLAGS was something like `-ac 1`, it converts the file into mono *while* (not after) reading/downloading the url, right?
[17:23:54 CET] <DHE> it means the input file is converted to mono while still in the "input file reading" phase. not really directly related to file IO
[17:24:30 CET] <DHE> but it means that if you had multiple outputs, all would treat the input as being mono. which would reduce CPU usage vs having each one individually remix the audio before converting
[17:32:10 CET] <glow8> that sounds so painful to program...
[17:33:03 CET] <glow8> Is there some way of piping the ffmpeg output file to an array in C or somethign?
[17:34:41 CET] <glow8> because inside C programs you can only use libav or similars. If I want to use ffmpeg's logic I have to rewrite everything...
[17:37:49 CET] <JEEB> a lot of it is already abstracted from you
[17:38:38 CET] <DHE> ffmpeg provides its own file functions, like rather than fopen() you call avio_open(), instad of fseek() you call avio_seek() etc
[17:38:39 CET] <JEEB> and of course you can literally pipe ffmpeg.c's output to another app
[17:38:54 CET] <DHE> the difference is ffmpeg's functions support stuff like realtime encryption, http(s), etc
[17:49:07 CET] <glow8> I'll try with avio_open() then and see how it goes. Thanks
[17:49:29 CET] <JEEB> not sure if you need custom I/O in your case
[17:49:42 CET] <JEEB> like, if you just want to have raw PCM in buffers, you get that from the AVFrames
[17:52:19 CET] <glow8> All I want is to run a ffmpeg command and have the output inside a C array. One use case is going to be downloading a video and converting it to mono & 48000KHz, and another is recording the desktop audio & converting it to mono & 48000KHz. The thing is that I'm not sure if ffmpeg is the best option for doing this, as it's really low level.
[17:55:12 CET] <JEEB> like I said, the simplest thing when you mention something like that is just having a thing reading the stdout after ffmpeg.c :P
[17:55:41 CET] <JEEB> then if that doesn't get good enough I'm not really sure how "low level" FFmpeg's libraries are given that they generally abstract a whole lot of stuff away from you.
[17:56:13 CET] <JEEB> but if you just want raw PCM at the other end, you can just stdout + pipe on the ffmpeg.c side, and having an app reading that from stdin into whatever you want
[18:01:11 CET] <glow8> that solution wouldn't work on windows though
[18:01:27 CET] <JEEB> why not?
[18:01:41 CET] <glow8> windows doesn't have pipes or stdin or anything like that
[18:01:43 CET] <JEEB> windows has stdou/stdin just like nay other OS
[18:01:45 CET] <JEEB> it does
[18:01:52 CET] <JEEB> I do encoding like that every now and then :P
[18:02:09 CET] <JEEB> I have vspipe pushing out video and then I have ffmpeg.c or x264's cli app or x265's cli app
[18:02:14 CET] <JEEB> taking stuff in from stdin
[18:02:30 CET] <JEEB> named pipes are what don't exist on the same layer
[18:02:36 CET] <JEEB> but stdin/stdout definitely do
[18:03:03 CET] <pink_mist> windows has named pipes too
[18:03:12 CET] <pink_mist> just they're pretty weird
[18:03:12 CET] <JEEB> yes, but I meant in the same way that on lunix
[18:03:13 CET] <JEEB> yes
[18:03:25 CET] <JEEB> you can't just make a named pipe as a file
[18:03:31 CET] <JEEB> and push/pull to/from it
[18:06:28 CET] <glow8> my mind is blown
[18:09:15 CET] <glow8> let me try to understand it
[18:09:29 CET] <glow8> you mean something like `ffmpeg -i test.wav -f wav pipe:1 | ffplay -`, right?
[18:12:35 CET] <JEEB> yes?
[18:12:45 CET] <JEEB> of course you need an output be "-" as well
[18:12:54 CET] <JEEB> or pipe:1 if that works too
[18:13:03 CET] <glow8> yeah that works perfectly
[18:13:27 CET] <glow8> so you can do that in windows too? I'll have to investigate more about pipes
[18:15:31 CET] <JEEB> yup
[18:15:40 CET] <JEEB> has been utilized for ages
[18:17:24 CET] <glow8> man computers are awesome
[18:17:37 CET] <glow8> it's such a neat solution
[18:17:44 CET] <glow8> thanks a bunch JEEB
[18:35:28 CET] <th3_v0ice> Is there a way to get left portion of a video? lets say, I have input which is 2*W x H, and I want to encode only left part of the video W x H.
[18:37:21 CET] <shibboleth> is ffnvcodec required for both encode and decode hwaccel or is this taken care of by cuda/cuvid?
[18:56:21 CET] <cehoyos> th3_v0ice: There is a crop filter
[19:14:33 CET] <th3_v0ice> @cehoyos: Thanks, I found it. Is there a way to split the frame and output to two different outputs?
[19:18:58 CET] <cehoyos> You have to split first and use the crop filter on both outputs
[19:26:06 CET] <th3_v0ice> Ok, thanks
[19:29:15 CET] <th3_v0ice> One more question, is it possible to use AVFrame->crop_top, left, right and bottom, before AVFrame is sent to the encoder? What I mean is will it be cropped if these variables are properly set for each frame?
[19:31:57 CET] <BtbN> Most likely not, no.
[19:32:14 CET] <BtbN> At least I'm not aware of any encoder even looking at them. I'm not even sure what actually does.
[19:55:46 CET] <cehoyos> The vaapi encoder seems to use it
[19:58:28 CET] <shibboleth> will ffmpeg default to using libjpeg-turbo if these are the only jpeg-dev packs installed?
[19:58:39 CET] <shibboleth> during compilation
[19:58:50 CET] <shibboleth> can't find a configure flag to specify
[20:00:42 CET] <cehoyos> FFmpeg does not support any libjpegs, neither turbo nor non-turbo
[20:00:59 CET] <shibboleth> ok, using its own lavf then?
[20:01:13 CET] <cehoyos> jpeg is not related to lavf
[20:01:33 CET] <cehoyos> But lavc contains a jpeg encoder and decoder, the decoder supports more variants than libjpeg
[20:01:55 CET] <shibboleth> k
[20:15:09 CET] <shibboleth> yeah, i can see ffmpeg build using jpeg2000 for lavc
[20:15:33 CET] <shibboleth> isn't turbo preferable re performance though?
[20:30:23 CET] <cehoyos> There is a native jpeg encoder and decoder, no need for an external dependency (with less features)
[20:31:17 CET] <shibboleth> i get that, reason i'm asking is that turbo includes quite a few accelerations
[20:32:21 CET] <JEEB> you should benchmark that, but I've heard similar remarks regarding jpeg2000 decoding
[20:34:32 CET] <shibboleth> been using zoneminder for close to two decodes, -turbo performance compared to -2000 i ridiculous
[20:35:19 CET] <shibboleth> at least if you've got >=pentium mmx :)
[20:38:38 CET] <shibboleth> anyway, i got my answer. just food for thought
[20:38:39 CET] <shibboleth> ty
[22:30:14 CET] <wouter> hi -- I have a media container with two mono audio streams. How can I use the ffmpeg command line to create a file with a single audio stream that contains a mixed version of the two original mono audio streams?
[22:31:58 CET] <wouter> (alternatively, if it's somehow easy to change two mono audio streams into a single stereo stream, that works too -- I can then use '-ac 1' to mix it down to a single mono channel again, as I've done before with stereo files)
[22:38:27 CET] <wouter> ah, found it
[22:38:49 CET] <wouter> -filter_complex '[0:1][0:2] amix=inputs=2:duration=first' does the trick
[23:18:19 CET] <Numline1> Hey guys :) Sorry, this might not be a question related specifically to FFMPeg, but close enough, since I couldn't figure out any other channel that deals with video. Anyway, I'm about to do some VHS tapes digitalization (is that a word?). I'm using a cinch2USB adapter and following this guide. https://www.youtube.com/watch?v=sn_TDa9zY1c&t=1010s
[23:19:00 CET] <Numline1> Anyway, the guy in the guide speaks about NTSC and interlaced fields used for VHS in NA. Was NTSC used in Europe or did we use PAL for videos? If so, what about interlacing and framerate? Thank you!
[23:49:01 CET] <cehoyos> PAL in Europe
[23:49:06 CET] <cehoyos> always 25 fps
[23:55:36 CET] <Numline1> thanks ;]
[00:00:00 CET] --- Mon Dec 9 2019
1
0
[01:36:09 CET] <cone-512> ffmpeg 03Andreas Rheinhardt 07release/4.2:40123639fe7e: avformat/av1: Fix leak of dynamic buffer in case of parsing failure
[01:36:09 CET] <cone-512> ffmpeg 03Andreas Rheinhardt 07release/4.2:2722fc2bcfae: avcodec/extract_extradata_bsf: Don't unref uninitialized buffers
[08:50:35 CET] <cone-515> ffmpeg 03Jun Zhao 07master:46d2a67f80e6: lavfi/avf_showspectrum: Fix the memory leak in error handle path
[08:50:35 CET] <cone-515> ffmpeg 03Jun Zhao 07master:70e292becf3f: lavf/rtmpproto: Don't unref uninitialized buffers
[14:11:41 CET] <thardin> jpeg has the ability to say "all remaining coefficients are zero", right?
[14:15:40 CET] <thardin> EOB.. but is that only per block? or also for progressive JPEGs?
[14:37:06 CET] <thardin> "One can combine these two features to generate an image with a very large number ofprogressive scans (say, 80,000), each of which uses the EOB run feature to represent millionsof zerovalue pixels using less than 100 bytes" seems I'm not the first one to note this
[16:43:09 CET] <cone-156> ffmpeg 03Andreas Rheinhardt 07master:af50f0a515d8: avformat/matroskadec: Fix use-after-free when demuxing ProRes
[16:43:09 CET] <cone-156> ffmpeg 03James Almer 07master:70efa31ba1d1: fate/matroska: add a demux test for ProRes using zlib compression
[17:39:00 CET] <cone-156> ffmpeg 03James Almer 07master:ade7f4c60c00: fate/matroska: fix dependencies for fate-matroska-prores-zlib test
[18:31:08 CET] <Mysoft> ok kinda advanced question here, i'm using ffmpeg to convert to webm (libvpx), but i send to ffmpeg raw images
[18:31:34 CET] <Mysoft> which input format would be optimal for ffmpeg to not need to convert, (as well reducing bandwidth when sending to ffmpeg)
[18:32:30 CET] <Mysoft> i assume it uses some form of yuv but i dont know which one, and i assume i may want to -vf "scale=in_range=pc:out_range=pc"
[18:32:53 CET] <Mysoft> to prevent it from re-ranging as well
[18:33:32 CET] <Mysoft> if all my assumptions are true, which format for yuv i should use for input for ffmpeg to not need to convert?
[18:35:36 CET] <BtbN> Whatever format(s) libvpx accepts.
[18:38:18 CET] <Mysoft> ok yeah found this
[18:38:18 CET] <Mysoft> https://trac.ffmpeg.org/ticket/3271
[18:38:25 CET] <Mysoft> so yuv420p good :)
[19:37:20 CET] <cone-156> ffmpeg 03hwrenx 07master:b7583230ae68: MAINTAINERS: add myself as libxavs2 maintainer
[19:37:21 CET] <cone-156> ffmpeg 03Michael Niedermayer 07master:e1d836d2375c: avcodec/atrac9dec: Check q_unit_cnt more completely before using it to access at9_tab_band_ext_group
[20:06:33 CET] <durandal_1707> how much is simple_idct different from standard one?
[20:19:49 CET] <phh> x
[21:11:58 CET] <durandal_1707> how does idct works with 32 size of block?
[21:20:56 CET] <Lynne> pretty sure we only have 8x8 dcts
[21:22:15 CET] <durandal_1707> but is there 4x8 idct in wild?
[21:29:18 CET] <Lynne> yeah, av1
[21:31:45 CET] <Lynne> a dct is spatially separable though so its just a 4-point dct followed by an 8-point dct, or the opposite
[00:00:00 CET] --- Sun Dec 8 2019
1
0
[00:41:29 CET] <byte4byte_> 11815 Vance Jackson Rd, APT 1806, San Antonio, TX 78230-1457
[00:41:32 CET] <byte4byte_> visit me
[00:44:45 CET] <DHE> nah
[00:45:17 CET] <Diag> oh damn can i get me some distilled alcohol products there
[13:40:32 CET] <Aison> is there a way to track a moving object inside a video and then crop to that object?
[14:01:33 CET] <roxlu> I wrote a little how-to that explains how to correctly build x264 + ffmpeg on Win10 with VS2019 and MSYS2: https://www.roxlu.com/2019/061/compiling-ffmpeg-with-x264-on-windows-10-usi…
[14:01:49 CET] <roxlu> I've tested the steps 3 times with a completely new/fresh msys2 install.
[14:04:50 CET] <roxlu> It would be great if this could be added to the wiki. Is that possible?
[14:14:19 CET] <JEEB> roxlu: pretty sure the trac wiki is freely editable?
[15:04:36 CET] <roxlu> ah thanks, didn't know that
[17:25:09 CET] <friendofafriend> HLS is working great, but my storage is soon full of segments. Is this the right command to have ffmpeg delete segments that are no longer needed when outputting to HLS? ffmpeg -i <source> -c:v copy -start_number 0 -hls_time 10 -hls_list_size 0 -segment_wrap 10 -hls_flags delete_segments -f hls ./out.m3u8
[17:29:28 CET] <friendofafriend> (And this is using ffmpeg version 3.2.14-1~deb9u1 from the Debian repo, not that deb-multimedia thing.)
[17:32:05 CET] <JEEB> check the output of `ffmpeg -h muxer=hls` to see if you even have that option?
[17:33:55 CET] <friendofafriend> Thank you, JEEB! Yes, the option appears there. https://paste.debian.net/plain/1119968
[17:39:36 CET] <friendofafriend> Ah, I think I should be using -hls_wrap instead, instead of that -segment_wrap thing. I do receive "Duplicated segment filename detected: file1.ts" messages, but I guess I don't need to delete_segments if ffmpeg is rewriting them anyway.
[17:40:23 CET] <friendofafriend> Is it standard practice to use a ramdisk for HLS segments? It does seem like an awful lot of disk writing, but I'm just a puddinghead.
[17:42:11 CET] <furq> friendofafriend: hls_wrap is deprecated, just use hls_list_size and hls_flags delete_segments
[17:45:21 CET] <friendofafriend> furq: Just tried to use those flags together, but I'm still seeing more than ten output files. ffmpeg -i <input> -c:v copy -start_number 0 -hls_time 10 -hls_list_size 10 -hls_flags delete_segments -f hls ./out.m3u8
[17:46:12 CET] <furq> if more than 10 is 11 then that's normal
[17:46:28 CET] <furq> you should have hls_list_size + hls_delete_threshold which defaults to 1
[17:46:59 CET] <furq> and probably also the segment that's still being written
[17:50:11 CET] <friendofafriend> I'd need -hls_delete_threshold 10 maybe? I'm getting an ever increasing number of files from the above command.
[17:51:38 CET] <friendofafriend> I don't see the "hls_delete_threshold" option in the output from ffmpeg -h muxer=hls, either.
[18:04:27 CET] <relaxed> friendofafriend: I do, which version are you using?
[18:06:39 CET] <friendofafriend> I'm using "3.2.14-1~deb9u1", relaxed. Are you on 4.x?
[18:08:32 CET] <relaxed> I'm using a recent build from git master. It should be available in my builds: https://www.johnvansickle.com/ffmpeg/
[18:09:00 CET] <relaxed> or build a recent version yourself
[18:11:28 CET] <friendofafriend> relaxed: Thanks! I usually build from git, but ability to update ffmpeg by apt is important in this instance. I've seen your builds before, and thanks for making them! :)
[22:18:57 CET] <symphorien> hello, when I convert a file with ffmpeg, I get an error "Error while decoding stream #0:0: Invalid data found when processing input". Is there a flag I can pass to have ffmpeg print the offset of the file where the invalid data lies (or the frame index, or something like that) ?
[22:43:54 CET] <ncouloute> So the DJI MAVIK Pro stuff that wouldnt concat on latest version. It looks like the DJI company uses a modifed version of ffmpeg 2.5.3. So that makes sense why it would work on that old 2013 version. copying the stream to mp4 then concat didnt work. Although if I copy to ts then concat that does work. So I may just change to using that workflow. I just hate having to manage temp files.
[00:00:00 CET] --- Sun Dec 8 2019
1
0
[00:50:06 CET] <cone-831> ffmpeg 03James Almer 07master:964eb754b456: tools: add a fuzzer tool for bitstream filters
[00:50:29 CET] <jamrial> j-b: ^
[00:55:00 CET] <cone-831> ffmpeg 03Zhao Zhili 07master:71fd72070c86: avutil/buffer: use appropriate atomic operations
[05:50:44 CET] <cone-527> ffmpeg 03Gyan Doshi 07master:b66a800877d6: avfilter/crop: avoid premature eval error
[09:28:15 CET] <kurosu> listening to nttw4, Carl remarked "for most audio files and in broadcast, audio bitdepth as a property does not exist" (https://www.youtube.com/watch?v=cjJZ0cjtaz8&t=4910s)
[09:28:20 CET] <kurosu> err what?
[09:29:39 CET] <kurosu> (addressing archivists)
[09:30:09 CET] <nevcairiel> for most lossy codecs thats true, but those archivists probably backup lossless
[09:31:34 CET] <kurosu> even for lossy codecs I find this debatable
[09:32:26 CET] <kurosu> just because you do a transform and quantize, doesn't say you can have whatever bitdepth
[09:40:12 CET] <rcombs> you could do the math to figure out how many binary sigfigs the output has, I guess?
[09:40:49 CET] <rcombs> it's just not really a simple property
[09:41:11 CET] <rcombs> and the dynamic range encoded might differ in different frequency bands
[09:41:31 CET] <rcombs> or between frames
[09:42:20 CET] <nevcairiel> assuming thats not the first thing a lossy codec sacrifices to reduce size
[09:43:07 CET] <nevcairiel> just look at opus, it goes even further, and audio basically loses its sample rate as well
[09:43:32 CET] <rcombs> isn't conversion to 48kHz literally part of the encoder process
[09:43:40 CET] <kurosu> I mean, I think Carl was missing the point and potentially wrong, depending on his definition of "broadcast"
[09:43:41 CET] <rcombs> *encoding
[09:43:50 CET] <kurosu> does he make a difference with eg "distribution"
[09:43:56 CET] <nevcairiel> no clue how it works, I just know that all audio comes out as 48 afterwards
[09:44:08 CET] <rcombs> iirc it's literally resampled to 48 internally
[09:45:10 CET] <rcombs> but yeah all this applies just as much to "distribution" or "storage" or w/e lossy codecs as it does to "broadcast" ones, esp. since those are mostly the same codecs anyway
[09:46:38 CET] <kurosu> err, sorry, I've just backtracked, I meant "contribution"
[09:47:46 CET] <kurosu> (ie the thing the broadcasters receive from eg studios)
[09:49:12 CET] <kurosu> in any case, and from what I've seen, audio encoders have specific profile for sampling ranges
[09:49:47 CET] <kurosu> but in the end they apply transform (eg MDCT), and after some processing, ends up with frequency bands that they then handle
[09:50:00 CET] <kurosu> (masking, gain control, ...)
[09:50:46 CET] <kurosu> so yeah, in that sense, bitdepth can be "lost", but that's not what I meant
[09:51:49 CET] <kurosu> s/encoders/codecs
[09:51:59 CET] <kurosu> s/codecs/formats :D
[09:54:15 CET] <j-b> jamrial: you rock
[09:59:58 CET] <thardin> feels like hairsplitting tbh
[10:01:46 CET] <kurosu> thardin: what I'm arguing? likely, though I was mostly reacting to the "lossy" part, but my real point was that those people are indeed not using any of the things he's referring to
[10:02:37 CET] <kurosu> for video, there is bitdepth even for lossy, but that's also because things happen in the pixel domain and there is potential drift
[10:05:30 CET] <thardin> yes, as the bad old days taught us
[10:06:55 CET] <kurosu> it's a different drift (ancient days, because of iDCT mismatch between encoder and decoder)
[10:07:16 CET] <kurosu> here, if the encoder/format refers data that is N bits
[10:07:30 CET] <kurosu> the decoder must do the same, otherwise drift
[10:08:14 CET] <kurosu> (predictions would differ)
[10:08:55 CET] <thardin> of course
[10:09:02 CET] <thardin> some codecs don't have that property tho
[10:11:06 CET] <nevcairiel> very few audio codecs even use prediction at all, i believe some AAC profile has it, but noone uses it
[10:11:42 CET] <cone-712> ffmpeg 03Marton Balint 07master:648b8cca6c56: avdevice/xcbgrab: wrap non-shm image replies in a buffer ref
[10:12:29 CET] <Lynne> opus uses prediction for the band energies, but doesn't flag keyframes as such or even consider whether old ones exist
[10:12:43 CET] <kurosu> Lynne: AAC is LTP right?
[10:13:49 CET] <Lynne> ltp technically doesn't qualify as it predicts within the mdct frame, but the main profile which delta encodes coeffs from the previous frame does
[10:15:11 CET] <Lynne> but every mdct codec relies on some part of the previous frame, so if you think that's prediction then all codecs which use it predict
[10:15:19 CET] <kurosu> both happen in the transform domain, but I did mention my comment applies to video, I was just commenting on the "prediction" (at all)
[10:15:31 CET] <kurosu> yeah, the overlap part of the MDCT
[10:29:07 CET] <thardin> codec2 does prediction, but it will converge to the right output quickly
[10:29:24 CET] <thardin> necessary when operating over a lossy channel
[11:27:16 CET] <durandal_1707> oh noes, here goes the spam
[11:33:08 CET] <cone-712> ffmpeg 03Limin Wang 07master:f9d6addd60b3: avformat/libsrt: fix for the memory leak if passphrase has been configured by option
[11:33:09 CET] <cone-712> ffmpeg 03Ting Fu 07master:039a0ebe6fd8: libswscale/swscale_unscaled.c: remove redundant code
[11:33:10 CET] <cone-712> ffmpeg 03leozhang 07master:0c7f9f714d87: avfilter/vf_yaepblur: add yaepblur filter
[11:33:11 CET] <cone-712> ffmpeg 03Limin Wang 07master:1d757b111aed: avfilter/vsrc_cellauto: Fix for random_seed type
[11:33:12 CET] <cone-712> ffmpeg 03Limin Wang 07master:5ee4c12ec277: avfilter/vsrc_life: Fix for random_seed type
[11:33:13 CET] <cone-712> ffmpeg 03Michael Niedermayer 07master:e7011a0ca654: avcodec/mvha: Check remaining space when reading VLC table probabilities
[11:33:14 CET] <cone-712> ffmpeg 03Limin Wang 07master:79d907774d59: avformat/libsrt: change tlpktdrop, nakreport, messageapi options to boolean type
[11:58:40 CET] <BtbN> Patch 001/224. Oh God.
[12:00:23 CET] <thardin> big boi
[12:00:48 CET] <BtbN> The series was posted an hour ago, and still only the first 10 mails reached me
[12:01:04 CET] <nevcairiel> he likely didnt send all of them but only a few
[12:01:46 CET] <BtbN> I hope so
[12:01:54 CET] <BtbN> otherwise this can get the list banned from various providers
[12:02:20 CET] <nevcairiel> if high volume gets you banned, you should get a better provider
[12:11:39 CET] <Lynne> so could the new channel api properly describe ambisonics or is it changing things for the sake of changing things?
[12:13:51 CET] <kurosu> very good question I was about to ask
[12:14:24 CET] <kurosu> you suggesting ambisonics makes it sound like there's likely one big user
[12:15:43 CET] <kurosu> at the risk of being bureaucratic (and not having checked enough the patchset), I'd say 1) deprecation warning long in advance 2) make sure there's not a non-trivial amount of users that would complain
[12:16:32 CET] <BtbN> What do you mean, long in advance? Warning about deprecation before an alternative exists is only confusing people.
[12:16:35 CET] <kurosu> ok deprecation is there
[12:17:39 CET] <kurosu> the alternative is implemented there, didn't pay attention (until now) whether it was bundled with deprecation warnings
[12:17:54 CET] <nevcairiel> the important part is compat with old api, as long as thats there, they can complain all they want, and then adjust later anyway
[12:19:22 CET] <nevcairiel> advanced channel layouts are coming (or are already here, just not in ffmpeg), so eventually we have to define a new api to represent them
[12:19:56 CET] <BtbN> Only thing I'm worried about is running out of bits in a 64bit integer
[12:20:19 CET] <nevcairiel> well you cant expect more advanced layouts to fit into the compat api
[12:20:30 CET] <nevcairiel> thats why the new one exists, since 64-bit integers are just limited
[12:20:44 CET] <BtbN> Oh, those new flags are purely for compat with the old API?
[12:21:40 CET] <nevcairiel> well sort of, not everything needs full special magic
[12:22:22 CET] <kurosu> or we could use gmplib :o
[12:22:23 CET] <nevcairiel> look at the new struct, it has two options to signal channel, either its a 64-bit mask, similar to before, or it can have an allocated array of complex structures to describe channel, in which case only the sky (or your memory) is the limit
[12:23:14 CET] <nevcairiel> so all simple cases will continue to use the 64-bit mask, it'll just be wrapped into a structure
[12:23:23 CET] <nevcairiel> anything that doesnt fit into that, has a new method to signal
[12:29:54 CET] <Lynne> kurosu: well, 2, I think vlc were working on something ambisonics related, but I just want google to not hack up the libopus wrapper
[12:31:25 CET] <kurosu> I have no opinion except I don't like changes without reasons
[12:31:49 CET] <kurosu> but then I see a few people here already thinking it's useful (besides the people working on it)
[19:13:12 CET] <cone-637> ffmpeg 03Andriy Gelman 07master:02a83e26de6a: lavc/cbs_h2645: Fix incorrect max size of nalu unit
[20:58:35 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:c78d5c9ce93e: avcodec/truemotion2: fix integer overflows in tm2_low_chroma()
[20:58:36 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b84cda4b6399: avcodec/msmpeg4dec: Skip frame if its smaller than 1/8 of the minimal size
[20:58:37 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d6b647e22138: avcodec/wmv2dec: Skip I frame if its smaller than 1/8 of the minimal size
[20:58:38 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b3dab0f894d3: avcodec/msvideo1: Check for too small dimensions
[20:58:39 CET] <cone-637> ffmpeg 03chcunningham 07release/2.8:acd49222eb03: lavf/mov: ensure only one tkhd per trak
[20:58:40 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:8381cbf692f4: avformat/nutenc: Document trailer index assert better
[20:58:41 CET] <cone-637> ffmpeg 03chcunningham 07release/2.8:68be54dfbecb: lavf/id3v2: fail read_apic on EOF reading mimetype
[20:58:42 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:01b179f39bc4: avcodec/mjpegdec: Fix indention of ljpeg_decode_yuv_scan()
[20:58:43 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:6cc642cafa41: postproc/postprocess_template: Avoid using %4 for the threshold compare
[20:58:44 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:75c53cf09e77: avcodec/fic: Fail on invalid slice size/off
[20:58:45 CET] <cone-637> ffmpeg 03gxw 07release/2.8:a7f94ae58381: avcodec/mips: Fix failed case: hevc-conformance-AMP_A_Samsung_* when enable msa
[20:58:46 CET] <cone-637> ffmpeg 03David Bryant 07release/2.8:12dcf732ff73: avformat/wvdec: detect and error out on WavPack DSD files
[20:58:47 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:415dd357af2b: avcodec/mjpegbdec: Fix some misplaced {} and spaces
[20:58:47 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1e41754792e4: avcodec/4xm: Fix returned error codes
[20:58:49 CET] <cone-637> ffmpeg 03James Almer 07release/2.8:d9590afafcc3: configure: bump year
[20:58:50 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:af857cb62f93: avutil/mem: Optimize fill32() by unrolling and using 64bit
[20:58:51 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:54c01b6f9404: avcodec/fic: Check that there is input left in fic_decode_block()
[20:58:52 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:90fbb18a7c2f: avformat/rtsp: Clear reply in every iteration in ff_rtsp_connect()
[20:58:53 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:61894a612b23: avformat/rtsp: Check number of streams in sdp_parse_line()
[20:58:54 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5f0699d39abf: avcodec/pgssubdec: Check for duplicate display segments
[20:58:55 CET] <cone-637> ffmpeg 03chcunningham 07release/2.8:4123064b5f25: avformat/mov.c: require tfhd to begin parsing trun
[20:58:56 CET] <cone-637> ffmpeg 03Wenxiang Qian 07release/2.8:7426a7c958f8: avformat/ftp: Fix Out-of-Bounds Access and Information Leak in ftp.c:393
[20:58:57 CET] <cone-637> ffmpeg 03Wenxiang Qian 07release/2.8:423319d1575a: avformat/http: Fix Out-of-Bounds access in process_line()
[20:58:58 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:8dde01b57b3c: avformat/webmdashenc: Check id in adaption_sets
[20:58:59 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:da696f996641: avcodec/jvdec: Check available input space before decode8x8()
[20:58:59 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1911fdb7b894: avcodec/mlpdec: Insuffient typo
[20:59:01 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d555be4ba5b8: avcodec/error_resilience: Use a symmetric check for skipping MV estimation
[20:59:02 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4797b6092df9: avcodec/jpeg2000dwt: Fix integer overflow in dwt_decode97_int()
[20:59:03 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1ca27e5215f9: avcodec/bethsoftvideo: Check block_type
[20:59:04 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:9a5150b40ca8: avcodec/aic: Check remaining bits in aic_decode_coeffs()
[20:59:05 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:6e926090d31c: avcodec/qpeg: Limit copy in qpeg_decode_intra() to the available bytes
[20:59:06 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d3423fb7d40c: avcodec/cdgraphics: Use ff_set_dimensions()
[20:59:07 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f8cb091b6e51: avcodec/dvbsubdec: Check object position
[20:59:08 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:ce5fb015acee: avcodec/dfa: Check the chunk header is not truncated
[20:59:09 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:0b93f593184c: avcodec/truemotion2: Fix integer overflow in tm2_null_res_block()
[20:59:10 CET] <cone-637> ffmpeg 03Carl Eugen Hoyos 07release/2.8:8d3764a54dcd: lavc/bmp: Avoid a heap buffer overwrite for 1bpp input.
[20:59:11 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4bc338278054: avcodec/hevcdec: Avoid only partly skiping duplicate first slices
[20:59:12 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:12e4877ae251: avcodec/truemotion2: Fix integer overflow in tm2_decode_blocks()
[20:59:13 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:059f291aafbf: avcodec/diracdec: Use 64bit in intermediate of global motion vector field generation
[20:59:14 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:89b9c728623f: avcodec/ivi: Move buffer/block end check to caller of ivi_dc_transform()
[20:59:15 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:aa152bcaeccb: avcodec/ccaption_dec: Add a blank like at the end to avoid rollup reading from outside
[20:59:16 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:ef7bef2ba4c2: avformat/aadec: Check for scanf() failure
[20:59:17 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:37b2a19afa25: avutil/avstring: Fix bug and undefined behavior in av_strncasecmp()
[20:59:18 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7a5f875e9898: avcodec/aacdec_fixed: Fix undefined shift in noise_scale()
[20:59:19 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:a4bd19c53afe: avcodec/truemotion2: Fix 2 integer overflows in tm2_update_block()
[20:59:20 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:9bb9aa9085e5: avcodec/jvdec: Use ff_get_buffer() when the content is not reused
[20:59:21 CET] <cone-637> ffmpeg 03Andreas Rheinhardt 07release/2.8:2df8814ae7ce: lavf/webm_chunk: Respect buffer size
[20:59:22 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:332de4c1e42e: avcodec/hq_hqa: Check available space before reading slice offsets
[20:59:23 CET] <cone-637> ffmpeg 03Adam Richter 07release/2.8:b55cf5f53d3e: libswcale: Fix possible string overflow in test.
[20:59:24 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:2f8d30fb9b53: avcodec/cpia: Check input size also against linesizes and EOL
[20:59:25 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:3fa90098a9fb: avformat/webm_chunk: Check header filename length
[20:59:26 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:fa0caf43c46c: avformat/webm_chunk: Specify expected argument length of get_chunk_filename()
[20:59:27 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:805e6923035e: avcodec/truemotion2: Fix several integer overflows in tm2_update_block()
[20:59:28 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d418ca3786b1: avformat/mp3enc: Avoid SEEK_END as it is unsupported
[20:59:29 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:3d7b7e533138: avcodec/aacdec_fixed: ssign seems always -1 in noise_scale(), simplify
[20:59:30 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7f4ac04f3096: avcodec/aacdec_template: Merge 3 #ifs related to noise handling
[20:59:31 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:53b314938ff4: avcodec/aacdec_fixed: Handle more extreem cases in noise_scale()
[20:59:32 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:380289beab8d: avcodec/aacdec_template: skip apply_tns() if max_sfb is 0 (from previous header decode failure)
[20:59:33 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b4aeb407a581: avcodec/vmnc: Check available space against chunks before reget_buffer()
[20:59:34 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7e7f52deda5f: avcodec/diracdec: Fix integer overflow in global_mv()
[20:59:35 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:386368fd918a: avcodec/mss4: Check input size against skip bits
[20:59:36 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:ea3df2f7becf: avcodec/mjpegdec: Check for non ls PAL8
[20:59:37 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:28e2f0c51d3e: avformat/sbgdec: Fixes integer overflow in str_to_time() with hours
[20:59:38 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5cca0755c721: avcodec/bitstream: Check for integer code truncation in build_table()
[20:59:39 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1bf0dd08c526: avcodec/bitstream: Check for more conflicting codes in build_table()
[20:59:40 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:990753e81f2d: avformat/wtvdec: Avoid (32bit signed) sectors
[20:59:41 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b9be7f3adf0b: avcodec/bink: Reorder operations in init to avoid memleak on error
[20:59:42 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d3a1a59c22a1: avcodec/iff: finetune the palette size check in the mask case
[20:59:43 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5a7a2180f8d5: avcodec/truemotion2: Fix integer overflow in last loop in tm2_update_block()
[20:59:44 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1df86144e086: avcodec/aacpsdsp_template: Fix integer overflow in ps_hybrid_analysis_c()
[20:59:45 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:677f461508e0: avformat/mov: Set fragment.found_tfhd only after TFHD has been parsed
[20:59:46 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1d288d16d871: avcodec/loco: Limit lossy parameter so it is sane and does not overflow
[20:59:47 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7ddb5fcbace0: avcodec/motionpixels: Check for vlc error in mp_get_vlc()
[20:59:48 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:274423dd468a: avcodec/binkdsp: Fix integer overflows in idct
[20:59:49 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:58c95520ee4e: avcodec/bintext: Check font height
[20:59:50 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7b9ca45a4317: avcodec/tta: Fix undefined shift
[20:59:51 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:006d1a2f8098: avcodec/vc1dsp: Avoid undefined shifts in vc1_v_s_overlap_c / vc1_h_s_overlap_c
[20:59:52 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:40a614a5bfd1: avcodec/ffwavesynth: Check ts_end - ts_start for overflow
[20:59:53 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:3af9317a113a: avcodec/videodsp_template: Fix overflow of addition
[20:59:54 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1894a36d6cbf: avcodec/libvorbisdec: Check extradata size
[20:59:55 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1b491fbf2505: avcodec/qdm2: Move fft_order check up
[20:59:56 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:43ced88379a5: avcodec/apedec: Add k < 24 check to the only k++ case which lacks such a check
[20:59:57 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7a4e69fed433: avcodec/alsdec: Fixes invalid shifts in read_var_block_data() and INTERLEAVE_OUTPUT()
[20:59:58 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:91c70cc895c8: avcodec/alsdec: Fix undefined behavior in decode_rice()
[20:59:59 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:cabdd900b7bf: avcodec/alsdec: Fix integer overflow with shifting samples
[21:00:00 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:a6d53b3028b4: avcodec/alsdec: Check opt_order / sb_length in ra_block handling
[21:00:01 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4e2bf59270b0: avcodec/alsdec: Fix integer overflow with buffer number
[21:00:02 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:fa89d0ec88e2: avcodec/alsdec: Add FF_CODEC_CAP_INIT_CLEANUP
[21:00:03 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:c583154829d2: avcodec/alac: Check lpc_quant
[21:00:04 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:05a164a4dcd3: avcodec/vc1_block: Check for vlc error in vc1_decode_ac_coeff()
[21:00:05 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:3bb800525e5e: avcodec/ffwavesynth: Fix backward lcg_seek()
[21:00:06 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d8c85a346484: avcodec/ffwavesynth: Simplify lcg_seek(), avoid negative case
[21:00:07 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:ace8a759e67e: avcodec/ffwavesynth: use uint32_t to compute difference, it is enough
[21:00:08 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:a58dfb447eac: avcodec/iff: Check ham vs bpp
[21:00:09 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7b4cd6ac8e88: avcodec/svq3: Use ff_set_dimension()
[21:00:10 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:8f5aff9e2d1b: avcodec/qdm2: Do not read out of array in fix_coding_method_array()
[21:00:11 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:2a1e1bc0b59b: avcodec/qdm2: error out of qdm2_fft_decode_tones() before entering endless loop
[21:00:12 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:76a60fc760bb: avcodec/qdm2: Check checksum_size for 0
[21:00:13 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:a70dd95c43c0: avcodec/4xm: Fix signed integer overflows in idct()
[21:00:14 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4696370756e5: avcodec/rv10: Fix integer overflow in aspect ratio compare
[21:00:15 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:54b3727a494c: avcodec/hq_hqa: Use ff_set_dimensions()
[21:00:16 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:65c25ad3688a: avcodec/mpc8: Fixes invalid shift in mpc8_decode_frame()
[21:00:17 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:40c3eedd40da: avcodec/huffyuv: remove gray8a (the format is listed but not supported by the implementation)
[21:00:18 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f2d81316e8ea: avcodec/pngdec: Check that previous_picture has same w/h/format
[21:00:19 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:332a03042dc6: avformat/xmv: Make bitrate 64bit
[21:00:20 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:42734c45785e: avcodec/ivi: Ask for samples with odd tiles
[21:00:21 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:9ad8710d1cdd: avcodec/parser: Check next index validity in ff_combine_frame()
[21:00:22 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:73556665ec90: avformat/utils: Check rfps_duration_sum for overflow
[21:00:23 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:561aefbf8add: avcodec/ffwavesynth: Check sample rate before use
[21:00:24 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:af0aea414fac: avcodec/ffwavesynth: More correct cast in wavesynth_seek()
[21:00:25 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:996accb0d7d1: avcodec/ffwavesynth: Check if there is enough extradata before allocation
[21:00:26 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:45a306e4c42f: avcodec/dvbsubdec: Use ff_set_dimensions()
[21:00:27 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d36bc33bcca5: avcodec/flicvideo: Make line_packets int
[21:00:28 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b4185cb15426: avcodec/alsdec: Fix 2 integer overflows
[21:00:29 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7700ef673784: avcodec/apedec: Fix multiple integer overflows in predictor_update_filter()
[21:00:30 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:0d922de167ba: avcodec/apedec: Fix various integer overflows
[21:00:31 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b217b8ed59cd: avcodec/vorbisdec: amplitude bits can be more than 25 bits
[21:00:32 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b47758964a8e: avcodec/vorbisdec: Check vlc for floor0 dec vector offset
[21:00:33 CET] <cone-637> ffmpeg 03Matt Wolenetz 07release/2.8:82094a703ed8: lafv/wavdec: Fail bext parsing on incomplete reads
[21:00:34 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e46c1c68c65c: avcodec/brenderpix: Check input size before allocating image
[21:00:35 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:8c66aed22bd5: avcodec/assdec: undefined use of memcpy()
[21:00:36 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f2eb30e65469: avcodec/eatgv: Check remaining size after the keyframe header
[21:00:37 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f9749f3335f8: avcodec/apedec: Fix multiple integer overflows and undefined behaviorin filter_3800()
[21:00:38 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f7f3c07282d3: avcodec/apedec: make left/right unsigned to avoid undefined behavior
[21:00:39 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e6701fa94b61: avcodec/truemotion2: Fix several integer overflows in tm2_motion_block()
[21:00:40 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5c1a6ecb9832: avcodec/vc1_block: Fix integer overflow in ff_vc1_pred_dc()
[21:00:41 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:8d6608c04d4b: avcodec/vc1_pred: Fix invalid shift in scaleforsame()
[21:00:42 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d1c2e5a36254: avcodec/vp3: Check that theora is theora
[21:00:43 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:18013f760b04: avcodec/hnm4video: Forward errors of decode_interframe_v4()
[21:00:44 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:cc600fe4b58e: avcodec/apedec: Do not partially clear data array
[21:00:45 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4748da854a3e: avcodec/vc1_block: Check get_vlc2() return before use
[21:00:46 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b4530a6ac8bb: avcodec/mss3: Check for the rac stream being invalid in rac_normalize()
[21:00:47 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:787501ae7f78: avcodec/apedec: Fix 2 signed overflows
[21:00:48 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:979d982bc1b8: avcodec/vorbisdec: Check parameters in vorbis_floor0_decode() before divide
[21:00:49 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:ef938d8efdd7: avcodec/vorbisdec: Implement vr->classifications = 1
[21:00:50 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:0e69785d5368: avcodec/ralf: Fix integer overflow in apply_lpc()
[21:00:51 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:21d93e0254da: avcodec/ralf: Fix undefined pointer in decode_channel()
[21:00:52 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:af58de8e490c: avcodec/dirac_parser: Fix overflow in dts
[21:00:53 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5a7b7fc0258f: avcodec/mss1: check for overread and forward errors
[21:00:54 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1d752c2a057d: avcodec/sanm: Check extradata_size before allocations
[21:00:55 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5818ae3cff32: avcodec/vqavideo: Set video size
[21:00:56 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:92c75a313ec6: avcodec/alsdec: Check for block_length <= 0 in read_var_block_data()
[21:00:57 CET] <cone-637> ffmpeg 03Andreas Rheinhardt 07release/2.8:a1233d39c62b: libavcodec/iff: Use unsigned to avoid undefined behaviour
[21:00:58 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:3ee68a677d67: avcodec/aacdec_template: fix integer overflow in imdct_and_windowing()
[21:00:59 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:09a6d81db0e9: avcodec/alsdec: Fix integer overflow of raw_samples in decode_blocks()
[21:01:00 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:781aa8f07f6e: avcodec/alsdec: Fix integer overflows of raw_samples in decode_var_block_data()
[21:01:01 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:3538c3476f16: avcodec/mpc8: Fix 32bit mask/enum
[21:01:02 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:514164d4e202: avcodec/dds: Use ff_set_dimensions()
[21:01:03 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:296a167b3ec0: avcodec/hevc_refs: Optimize 16bit generate_missing_ref()
[21:01:04 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:ba3f7c14af6d: avcodec/hnm4video: Optimize postprocess_current_frame()
[21:01:05 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:6eef056cf56e: avcodec/4xm: Check for end of input in decode_p_block()
[21:01:06 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:94242dd739a0: avcodec/vp56: Consider the alpha start as end of the prior header
[21:01:07 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:6201a6063155: avcodec/indeo2: Check remaining input more often
[21:01:08 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:479361eb92b6: avcodec/ffwavesynth: Fix integer overflow for some corner case values
[21:01:09 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:a982163627a3: avcodec/ffwavesynth: Fixes invalid shift with pink noise seeking
[21:01:10 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e32ef596a910: avcodec/loco: Check left column value
[21:01:11 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1b0aac8f4282: avcodec/anm: Check input size for a frame with just a stop code
[21:01:12 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:59f2ec706267: avcodec/alsdec: Limit maximum channels to 512
[21:01:13 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f4c287ed23a1: avcodec/alsdec: Fix integer overflow in decode_var_block_data()
[21:01:14 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d5ab2f5023d1: avformat/realtextdec: free queue on error
[21:01:15 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:72a0e74db986: avcodec/rl2: set dimensions
[21:01:16 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:db0b4479050e: avcodec/alac: Fix multiple integer overflows in lpc_prediction()
[21:01:17 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:9a46d7223580: avcodec/cavsdec: Limit the number of access units per packet to 2
[21:01:18 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:c4981bcf07b2: avcodec/vb: Check input packet size to be large enough to contain flags
[21:01:19 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:6d6965b7c41d: avcodec/tta: Fix integer overflow in prediction
[21:01:20 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7954bc8f63c0: avcodec/vorbisdec: Check get_vlc2() failure
[21:01:21 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:720c2deb0221: avcodec/vc1_block: Check for double escapes
[21:01:22 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4b2c2d787c41: avcodec/vc1dec: Require res_sprite for wmv3images
[21:01:23 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d35b7197ddf2: avcodec/truemotion2: Fix multiple integer overflows in tm2_null_res_block()
[21:01:24 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b74d119ee67d: avcodec/bgmc: Check input space in ff_bgmc_decode_init()
[21:01:25 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1da3f1084eb6: avcodec/ralf: fix undefined shift
[21:01:26 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:ac0ffb67f55a: avcodec/ralf: fix undefined shift in extend_code()
[21:01:27 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:6bfec5efc4e2: avcodec/apedec: Fix 32bit int overflow in do_apply_filter()
[21:01:28 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:08e46a341a40: avcodec/iff: Check for overlap in cmap_read_palette()
[21:01:29 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:feaf42eb0d73: avcodec/vorbisdec: fix FASTDIV usage for vr_type == 2
[21:01:30 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:c01055a1ffe1: avcodec/vc1_pred: Fix refdist in scaleforopp()
[21:01:31 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:0e704512b574: avcodec/qdm2: Check frame size
[21:01:32 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:04acafdc7c36: avcodec/vp56: Add vpX_rac_is_end() to check for the end of input
[21:01:33 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:8fecba0aa7e3: avcodec/vp5/6/8: use vpX_rac_is_end()
[21:01:34 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:80d27aaf7078: avcodec/vp56rac: delay signaling an error on truncated input
[21:01:35 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:668d797a5723: avcodec/alsdec: Check k from being outside what our implementation can handle
[21:01:36 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:2a306730a4a3: avcodec/hevcdec: repeat character in skiped
[21:01:37 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:a6f50a53cfd1: avformat/cdxl: Fix integer overflow in intermediate
[21:01:38 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:fc6664cb2abb: avcodec/sunrast: Fix return type for "unsupported (compression) type"
[21:01:39 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:0e406d200816: avcodec/sunrast: Fix indention
[21:01:40 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:40d3103d36e4: avcodec/ffwavesynth: Fix integer overflow in timestamps
[21:01:41 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:2f095670c88d: avcodec/alac: fix undefined behavior with INT_MIN in lpc_prediction()
[21:01:42 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e15fd9bc2562: avcodec/smacker: Fix integer overflow in signed int multiply in SMK_BLK_FILL
[21:01:43 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:880579a76387: avcodec/aacdec: Check if we run out of input in read_stream_mux_config()
[21:01:44 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:bf5e3a4962cb: avcodec/g729_parser: Check block_size
[21:01:45 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e60504a71dcb: avcodec/alsdec: Avoid dereferencing context pointer in inner interleave loop
[21:01:46 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e5ea4e727c55: avcodec/atrac3: Check block_align
[21:01:47 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:bdcff3ef0dcb: avcodec/4xm: Check index in decode_i_block() also in the path where its not used.
[21:01:48 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4b619bad46ff: avcodec/hevc_cabac: Tighten the limit on k in ff_hevc_cu_qp_delta_abs()
[21:01:49 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:76c86b0ad963: avcodec/apedec: Fix several integer overflows in predictor_update_filter() and do_apply_filter()
[21:01:50 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f7218d155e5a: avcodec/vc1: check REFDIST
[21:01:51 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:bdacbbba69c8: avcodec/vc1: Check for excessive resolution
[21:01:52 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e5796aa1b97a: avcodec/vc1_block: Fix invalid shift with rangeredfrm
[21:01:53 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:446238d170ca: avcodec/vc1_pred: Fix invalid shifts in scaleforopp()
[21:01:54 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4d9776589861: vcodec/vc1: compute rangex/y only for P/B frames
[21:01:55 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:923bcf0c3f92: avcodec/ralf: Fix integer overflow in decode_channel()
[21:01:56 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5812f834d4fe: avcodec/motionpixels: Mark 2 functions as always_inline
[21:01:57 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:214556b9d9db: avcodec/g2meet: Check if adjusted pixel was on the stack
[21:01:58 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:3690b8684f5a: avcodec/g2meet: Check for end of input in jpg_decode_block()
[21:01:59 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:9b424ca5d208: avformat/subtitles: Check nb_subs in ff_subtitles_queue_finalize()
[21:02:00 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:18f91bc819d0: avcodec/sunrast: Check for availability of maplength before allocating image
[21:02:01 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e4667a699196: avcodec/sunrast: Check that the input is large enough for the maximally compressed image
[21:02:02 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5591681af13b: avformat/mpsubdec: Clear queue on error
[21:02:03 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:9c6e76eee70f: avcodec/truemotion1: Check that the input has enough space for a minimal index_stream
[21:02:04 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:bd5a214c3c1c: avcodec/ituh263dec: Check input for minimal frame size
[21:02:05 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:560770d32be8: avfilter/vf_geq: Use av_clipd() instead of av_clipf()
[21:02:06 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:68b62e36eb2e: avcodec/adpcm: Fix left shifts in AV_CODEC_ID_ADPCM_EA
[21:02:07 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:23d226fe42b1: avcodec/lsp: Fix undefined shifts in lsp2poly()
[21:02:08 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:79532fa945a3: avcodec/g729postfilter: Fix undefined shifts
[21:02:09 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7187b14d9bac: avcodec/g729postfilter: Fix undefined intermediate pointers
[21:02:10 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:dad5ed01a82a: avcodec/apedec: Fix integer overflow in predictor_update_3930()
[21:02:11 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:68a8bdf5f198: avcodec/adpcm: Check initial predictor for ADPCM_IMA_EA_EACS
[21:02:12 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:8b462c958a91: avcodec/binkaudio: Check sample rate
[21:02:13 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:366cfe1615e2: avcodec/g729postfilter: Fix left shift of negative value
[21:02:14 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:a3692f404175: avcodec/wmalosslessdec: Check block_align
[21:02:15 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d9123585d152: avcodec/vc1_block: Fixes integer overflow in vc1_decode_i_block_adv()
[21:02:16 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:77847fd19e71: avcodec/ffwavesynth: Fix integer overflows in pink noise addition
[21:02:17 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:cdb193839ac5: avcodec/aliaspixdec: Check input size against minimal picture size
[21:02:18 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:684fbde54347: avcodec/smacker: Fix integer overflows in pred[] in smka_decode_frame()
[21:02:19 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:50947f65e0ad: avcodec/alac: Fix integer overflow in LPC
[21:02:20 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d85af33e05cc: avcodec/ptx: Check that the input contains at least one line
[21:02:21 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:cf5945613fc0: avformat/pjsdec: Check duration for overflow
[21:02:22 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:08a0c3cd179a: avcodec/ralf: Skip initializing unused filter variables
[21:02:23 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f1a20096f76a: avcodec/vp5: Check render_x/y
[21:02:24 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:62eced0903ae: avcodec/libvorbisdec: Fix insufficient input checks leading to out of array reads
[21:02:25 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1f183e8cc80f: avcodec/apedec: Only clear the needed buffer space, instead of all
[21:02:26 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5ebb902caf04: avcodec/adpcm: Fix invalid shifts in ADPCM DTK
[21:02:27 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:d7ebf3a074f9: avcodec/truemotion2: Fix several integer overflows in tm2_low_res_block()
[21:02:28 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5729bbfdc769: avformat/nutenc: Do not pass NULL to memcmp() in get_needed_flags()
[21:02:29 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:ef9340a9dc6e: avcodec/snowenc: Fix 2 undefined shifts
[21:02:30 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7a5c2173fec5: avcodec/apedec: Fix undefined integer overflow in long_filter_ehigh_3830()
[21:02:31 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:31ae31c21e7f: avcodec/ffv1dec: Use a different error message for the slice level CRC
[21:02:32 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f5fdab6b0e41: avcodec/apedec: Fix integer overflow in filter_3800()
[21:02:33 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f1b32668dc33: avcodec/wmavoice: Check sample_rate
[21:02:34 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:6f4c963d6168: avcodec/atrac3plus: Check split point in fill mode 3
[21:02:35 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:6ef666f4a699: avcodec/cook: Enlarge gain table
[21:02:36 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:20facd705edd: avcodec/twinvq: Check block_align
[21:02:37 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e53182c467ef: avcodec/cook: Move up and extend block_align check
[21:02:38 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:c8f306fc0b9a: avcodec/adpcm: Fix undefined behavior with negative predictions in IMA OKI
[21:02:39 CET] <cone-637> ffmpeg 03Carl Eugen Hoyos 07release/2.8:fbc6717495d9: lavc/tableprint_vlc: Remove avpriv_request_sample() from included files.
[21:02:40 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:e710fd6a838c: avcodec/sonic: Fix integer overflow in predictor_calc_error()
[21:02:41 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:0e40a839bb78: avcodec/apedec: Fixes integer overflow of res+*data in do_apply_filter()
[21:02:42 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:40872346be2e: avcodec/vc1_block: Fix undefined behavior in ac prediction rescaling
[21:02:43 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:b48dcc5613ca: avcodec/wmadec: Require previous exponents for reuse
[21:02:44 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:6248ed92fd63: avcodec/ralf: use multiply instead of shift to avoid undefined behavior in decode_block()
[21:02:45 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:67103c565c34: avcodec/atrac3: Check for huge block aligns
[21:02:46 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:aa8498c41783: avcodec/iff: Move index use after check in decodeplane8()
[21:02:47 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:1e57ce1dd5a1: avcodec/cngdec: Remove AV_CODEC_CAP_DELAY
[21:02:48 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:98510f3c8482: avutil/lfg: Correct index increment type to avoid undefined behavior
[21:02:49 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:22b24fe8ae76: avcodec/wmavoice: Fix integer overflow in synth_frame()
[21:02:50 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:c005d08103f5: avcodec/nuv: Move comptype check up
[21:02:51 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:8470f8fd8180: avcodec/mxpegdec: Check for multiple SOF
[21:02:52 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:33fff42d8d98: avcodec/g729dec: Use 64bit and clip in scalar product
[21:02:53 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:971a6493da7b: avcodec/ralf: Fix integer overflows with the filter coefficient in decode_channel()
[21:02:54 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:032650458cce: avcodec/ffwavesynth: Fix integer overflow with pink_ts_cur/next
[21:02:55 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:ce61019eb197: avcodec/nuv: Use ff_set_dimensions()
[21:02:56 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:9640ed3da01d: avformat/mxfdec: Clear metadata_sets_count in mxf_read_close()
[21:02:57 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4bfb9fa3fcf1: avcodec/vmdaudio: Check chunk counts to avoid integer overflow
[21:02:58 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:f6c63ac83ddc: avcodec/vc1_block: Fix integer overflow in AC rescaling in vc1_decode_i_block_adv()
[21:02:59 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:50dfc2dbf95a: avcodec/wmaprodec: Fix buflen computation in save_bits()
[21:03:00 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:fcc8c187fbde: avcodec/alac: Fix integer overflow in lpc_prediction() with sign
[21:03:01 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:4708c410e21e: avcodec/g729dec: require buf_size to be non 0
[21:03:02 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:7d76759b5999: avcodec/utils: Check sample_rate before opening the decoder
[21:03:03 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:29ea453b05a0: avcodec/utils: Check block_align
[21:04:48 CET] <durandal_1707> why is 2.8 still maintained?
[21:09:33 CET] <williamto> Hi guys, today I tried to profile `ffmpeg` with scaling option on an aarch64 system and found a high overhead in a load instruction.
[21:09:35 CET] <williamto> https://imgur.com/a/PuWLniP
[21:09:55 CET] <williamto> I was wondering if there would be optimization opportunities for me in this part?
[21:10:22 CET] <JEEB> that's probably swscale if it's vf_scale
[21:10:44 CET] <williamto> the function is called `ff_hscale_8_to_15_neon`
[21:11:21 CET] <JEEB> ah, so then it already has NEON... then it depends on how many chances there are to optimize it further
[21:13:00 CET] <michaelni> durandal_1707, because some distros use it, see https://trac.ffmpeg.org/wiki/Downstreams
[21:13:31 CET] <williamto> also I was wondering if it is normal for the `add` instruction to have high overhead
[21:20:57 CET] <J_Darnley> I can't comment on arm instructions but if it loads from memory then it could be
[21:21:46 CET] <J_Darnley> or maybe there's a bug like on x86 that causes an off by 1 error in theww profile
[21:22:15 CET] <Lynne> its arm, they can't touch memory without a load/store instruction
[21:23:58 CET] <Lynne> perf reports for which instruction took the most amount of time seemed random to me under aarch64, including on in-order CPUs
[21:24:13 CET] <williamto> oh really?
[21:26:34 CET] <williamto> i realized most overheads are mostly in load instructions
[21:26:45 CET] <williamto> they are probably hardware-related constraints
[21:27:43 CET] <williamto> on aarch64 systems that is
[21:28:10 CET] <williamto> is there any other parts of the ffmpeg code where I can find potential opportunities for optimization?
[21:37:07 CET] <cone-637> ffmpeg 03Michael Niedermayer 07release/2.8:5df3efbdd6bf: Update for 2.8.16
[00:00:00 CET] --- Sat Dec 7 2019
1
0
[09:58:36 CET] <jaggz> is there a way I can calibrate a video to remove stable pixel noise?
[09:59:02 CET] <jaggz> (ie. take dark image of blackness and subtract that from the original video)
[10:50:39 CET] <ButtDog> Is it possible to obtain video duration, bitrate, etc similar to FFProbe in the browser front end, from a file input without actually uploading the video?
[13:38:25 CET] <s_p> Can I cut short a .y4m video with ffmpeg? I have videos that are 5s long at 120 fps but I need only the first 2s of the video.
[13:39:50 CET] <s_p> Actually, I only need the first 200 frames. Is there an option to cut a video by the number of frames I want?
[13:41:47 CET] <Seaninho> I'm trying to concat 2 videos(intro, the actual video) and a overlay image in the top right corner. I believe i'm close but I keep getting this error.
[13:42:01 CET] <Seaninho> "Cannot find a matching stream for unlabeled input pad 1 on filter Parsed_overlay_2"
[13:45:05 CET] <klaxa> s_p: ffmpeg -i somefile.y4m -vframes 200 output.mp4
[13:45:46 CET] <klaxa> Seaninho: would help to know your command line with the filter so you can see what the error is referring to
[13:46:19 CET] <Seaninho> @klaxa Yes, i'm very new to ffmpeg so this is obviously a user error.
[13:46:21 CET] <Seaninho> ffmpeg -i cc_intro_video.mp4 -i Coloração.mp4 -i logo-video-watermark.png -filter_complex "[0:v]scale=-1:720[v0];[1:v]scale=-1:720[v1];[2:v]overlay=x=main_w-overlay_w-(main_w*0.01):y=main_h*0.01[v2]; [v0][v1][v3]concat=n=3:v=1:a=0 [v] [a]" -map "[v]" -map "[a]" output.mp4
[13:47:15 CET] <klaxa> i thnik you meant v2 and not v3 in the last [v0][v1][v3] thing
[13:47:20 CET] <klaxa> you never defined v3, but v2
[13:47:33 CET] <klaxa> *think
[13:47:34 CET] <Seaninho> Now i'm getting "No output pad can be associated to link label 'a'"
[13:47:49 CET] <Seaninho> Since i've updated [v3] = [v2]
[13:48:27 CET] <klaxa> you set the number of audio streams to 0
[13:48:33 CET] <klaxa> so no [a] is created
[13:49:10 CET] <klaxa> maybe you want 1 instead of 0?
[13:49:43 CET] <klaxa> so concat=n=3:v=1:a=1
[13:49:51 CET] <Seaninho> I tried doing that and i'm still getting some errors, I had a CLI for just doing the overlay ontop of the video and that worked fine. The minute I introduced the intro video I started having issues.
[13:50:21 CET] <Seaninho> [Parsed_scale_1 @ 0x7f919a403740] Media type mismatch between the 'Parsed_scale_1' filter output pad 0 (video) and the 'Parsed_concat_3' filter input pad 1 (audio)
[13:50:22 CET] <Seaninho> [AVFilterGraph @ 0x7f919a403340] Cannot create the link scale:0 -> concat:1
[13:51:32 CET] <klaxa> do all videos have an audio track?
[13:51:57 CET] <Seaninho> Yes they both have their own audio tracks
[13:52:04 CET] <klaxa> i'm also not sure, but i think overlay does not output audio?
[13:52:18 CET] <Seaninho> You're correct the overlay does not output audio.
[13:52:47 CET] <klaxa> maybe you have to concatenate audio and video separately
[13:54:20 CET] <klaxa> [v0][v1][v2]concat=n=3:v=1:a=0 [v]; [0:a][1:a]concat=n=2:v=0:a=1 [a]
[13:55:00 CET] <Seaninho> Let me try that!
[13:58:26 CET] <Seaninho> I'm getting my initial error now..."Cannot find a matching stream for unlabeled input pad 1 on filter Parsed_overlay_2"
[13:58:45 CET] <Seaninho> Maybe, i'm missing something obvious, i'll paste the new CLI.
[13:58:54 CET] <Seaninho> ffmpeg -i cc_intro_video.mp4 -i Coloração.mp4 -i logo-video-watermark.png -filter_complex "[0:v]scale=-1:720[v0];[1:v]scale=-1:720[v1];[2:v]overlay=x=main_w-overlay_w-(main_w*0.01):y=main_h*0.01[v2]; [v0][v1][v2]concat=n=3:v=1:a=0 [v]; [0:a][1:a]concat=n=2:v=0:a=1 [a]" -map "[v]" -map "[a]" output.mp4
[14:00:11 CET] <klaxa> overlay needs two inputs
[14:00:37 CET] <klaxa> do you want the overlay on the first or the second input video?
[14:00:44 CET] <Seaninho> The second video input
[14:00:59 CET] <klaxa> then add [v1] before [2:v] in overlay
[14:01:09 CET] <klaxa> so it becomes [v1][2:v]overlay=x=...
[14:02:26 CET] <klaxa> yeah should have seen that at the beginning, lol
[14:02:29 CET] <Seaninho> Invalid steam specifier ?
[14:02:36 CET] <klaxa> huh
[14:02:53 CET] <Seaninho> [v1][2:v]overlay=x=main_w-overlay_w-(main_w*0.01):y=main_h*0.01[v2];
[14:03:07 CET] <klaxa> but v1 was just created? :S
[14:03:26 CET] <Seaninho> Saying it matches no streams in the filtergraph
[14:04:07 CET] <Seaninho> Am I not terminating them correctly before each definition?
[14:04:52 CET] <klaxa> hmm... well now that i think about it, you at least don't want [v1] in the concat
[14:04:56 CET] <klaxa> but that's beside the issue
[14:04:59 CET] <s_p> klaxa: Thanks :)
[14:05:10 CET] <klaxa> np :)
[14:06:09 CET] <klaxa> Seaninho: i'll brb, i'll try some stuff out on my machine then
[14:06:20 CET] <Seaninho> @klaxa Okay, i'm a newbie when it comes to video encoding so I guess the question is, what's the right way to create a video with an intro/watermark then convert it to HLS?
[14:06:42 CET] <klaxa> well, you're on the right track ;)
[14:17:30 CET] <klaxa> hmm ok for me this filter complex worked: -filter_complex "[0:v]scale=-1:720[v0];[1:v]scale=-1:720[v1];[v1][2:v]overlay=x=main_w-overlay_w-(main_w*0.01):y=main_h*0.01[v2]; [v0][v2]concat=n=2:v=1:a=0 [v]; [0:a][1:a]concat=n=2:v=0:a=1 [a]" -map "[v]" -map "[a]"
[14:17:53 CET] <klaxa> with two videos with both audio and a png as third input
[14:18:21 CET] <klaxa> does your first video also have audio?
[14:18:30 CET] <klaxa> ah they do
[14:23:56 CET] <Seaninho> Yes it does have audio.
[14:24:00 CET] <Seaninho> I will try this.
[14:28:29 CET] <Seaninho> @klaxa Are you sure you got that to work?
[14:29:21 CET] <klaxa> yes
[14:30:18 CET] <klaxa> https://gist.github.com/klaxa/ab55aaa193b181a06f972709fc0a2b75
[14:32:10 CET] <Fyr> how can I mux an MKV into an MP4 without "Data: bin_data (text / 0x74786574)"?
[14:32:46 CET] <Fyr> "Unsupported codec with id 100359 for input stream 4"
[14:33:38 CET] <klaxa> you can use -map to specifically select the streams you want to copy
[14:33:49 CET] <Seaninho> Ok so when I copied your code from the gist it looks like it's encoding.
[14:34:01 CET] <Fyr> klaxa, tried.
[14:34:08 CET] <klaxa> for example: ffmpeg -i input.mp4 -map 0:v -map 0:a -c copy output.mp4 will only copy video and audio
[14:34:10 CET] <Fyr> FFMPEG still puts it into the MP4.
[14:34:26 CET] <Fyr> I used -map -0:4
[14:34:38 CET] <klaxa> that should also work... weird
[14:35:37 CET] <Fyr> FFMPEG writes an unsupported codec.
[14:35:47 CET] <JEEB> can you show an ffprobe -v verbose -i INPUT pastebin'd of the input :P
[14:35:51 CET] <Fyr> if it's unsupported, why the hell it does write it?
[14:35:53 CET] <JEEB> and then the full terminal output and command line of the copy
[14:36:18 CET] <JEEB> because I have a hunch it's chapters :P
[14:36:38 CET] <JEEB> because there's two ways of doing chapters in mp4, neither of which is official (but people still want them). and the MOV way of doing it is a text stream.
[14:36:57 CET] <JEEB> (the other way is from how lolnero did it back then)
[14:37:12 CET] <Seaninho> History time.
[14:37:13 CET] <klaxa> wow people should just adapt mkv everywhere
[14:37:21 CET] <klaxa> *adopt?
[14:37:28 CET] <klaxa> *use
[14:37:42 CET] <Fyr> ok, JEEB, it seems to be the chapter problem.
[14:37:44 CET] <JEEB> mp4 as a format isn't bad, it's just a problem when there's something that nobody wanted to specify properly :P
[14:38:02 CET] <klaxa> mkv as a format is better tho :P why settle for less?
[14:38:05 CET] <Fyr> is there a way to keep chapters without an unsupported codec?
[14:38:08 CET] <JEEB> how is it better?
[14:38:24 CET] <JEEB> other than it possibly having better tooling back in the day
[14:38:27 CET] <klaxa> yeah was about to say that compatibility is one of the parts where it's worse
[14:38:34 CET] <JEEB> matroska has no proper timestamps
[14:38:37 CET] <klaxa> but it packs more different formats
[14:39:00 CET] <klaxa> also streaming support without hacks
[14:39:03 CET] <klaxa> :^)
[14:39:08 CET] <JEEB> fragmentation is not hacks
[14:39:17 CET] <klaxa> ok :^(
[14:39:28 CET] <JEEB> they almost added proper timestamps to matroska
[14:39:34 CET] <JEEB> but then noted that they wouldn't do it
[14:39:38 CET] <JEEB> an it was (Ž4@)
[14:39:47 CET] <klaxa> ¯\_(Ä)_/¯
[14:41:19 CET] <JEEB> Fyr: no idea if you can limit yourself to just one of the ways chapters get written, but most likely not? but really, what's your major malfunction with it being visible like that in the output?
[14:41:31 CET] <JEEB> MOV does it like that, as a stream
[14:41:48 CET] <JEEB> we could in theory not show such streams but then we'd be hiding something
[14:43:10 CET] <JEEB> hey, someone actually wrote how the two chapter formats work :P https://github.com/Zeugma440/atldotnet/wiki/Focus-on-Chapter-metadata
[14:43:36 CET] <JEEB> although I'm pretty sure this person is using "timecode" where it's really timestamp
[14:45:04 CET] <JEEB> well, in the mp4 writer there's at least an option to disable the nero chapters
[14:45:21 CET] <JEEB> -movflags disable_chpl
[14:45:32 CET] <Fyr> it's not gonna change the unsupported codec error.
[14:45:48 CET] <JEEB> nope, since the QT/MOV chapter format is what uses an actual text stream
[14:46:11 CET] <JEEB> Fyr: but what's your real problem btw with the text stream track?
[14:46:31 CET] <JEEB> like, what is the problem you're trying to fix? is it then cutting that thing with -c copy and mapping all streams?
[14:47:24 CET] <Fyr> I just found it strange that FFMPEG produces a file it fails to read without error.
[14:48:20 CET] <JEEB> it reads it just fine, you get the chapters read from it just fine
[14:48:48 CET] <JEEB> it just shows up as an "extra" track because it is a track and nobody did the special magic to hide it because it was referred to as a chapter list
[14:50:16 CET] <Fyr> JEEB, both ffprobe and FFMPEG show chapters before stream information.
[14:50:36 CET] <JEEB> that's just how they dump it?
[14:50:42 CET] <Fyr> and then both of them add strange stream in the end, giving warning about unsupported codec.
[14:50:43 CET] <JEEB> not sure what you're trying to say
[14:51:40 CET] <JEEB> yes? the chapter track is parsed just fine. literally the only thing that's left is that you can see the data text track that is being referenced
[14:51:41 CET] <Fyr> I'm trying to say that ffprobe and ffmpeg should show something like: "Nero Chapter format" or "Quicktime chapter format".
[14:52:09 CET] <Fyr> it should not show chapter, then show streams, show the chapters as a strem and give warning about unsupported codec.
[14:52:50 CET] <JEEB> yes, it shows it in a weird way, that I don't disagree with :P
[14:53:32 CET] <JEEB> so more than actually making that referenced text track you dislike that it shows up in the format probe
[14:56:19 CET] <JEEB> although to be honest since MOV doesn't let you have any order limitations, you first have to create the tracks, and then handle chapters if any are there. and you can't really "take back" creating an AVStream easily :P
[14:56:30 CET] <JEEB> it is properly marked as data and that it should be discarded
[14:57:16 CET] <JEEB> in other words, FFmpeg has a problem because it cannot remove streams or at least I don't think that's currently possible :P
[14:57:38 CET] <JEEB> so the best you can do is set the "discard" field to "yes, please discard all"
[14:57:52 CET] <JEEB> anyways, it's complicated due to how this crap works :P
[14:58:31 CET] <JEEB> MOV loved to do this thing of referencing other tracks
[14:58:51 CET] <JEEB> and yes, we could add a codec id for chapters
[14:58:56 CET] <JEEB> to show them a bit better
[14:59:40 CET] <JEEB> but I'm not sure if that is by itself too useful since that codec will never actually be utilized for anything else than printing the info out
[15:00:13 CET] <Fyr> well, it must be easliy understandable info.
[15:00:33 CET] <Fyr> "Unsupported codec" warning is not understandable.
[15:01:03 CET] <Fyr> I think, I'm not the first who has asked here about this warning.
[15:01:45 CET] <JEEB> btw, you would still get the error there with at least ffprobe
[15:01:53 CET] <JEEB> since you get that if there is no decoder for the format
[15:02:06 CET] <JEEB> avcodec_find_decoder(stream->codecpar->codec_id);
[15:02:20 CET] <JEEB> if that doesn't give you a decoder for that codec id, you get that error
[15:02:56 CET] <Seaninho> In your opinon do you think it's acceptable that a website only has 720P for VOD?
[15:03:19 CET] <JEEB> Seaninho: depends on the input is. heck, there's still stuff that is SD only
[15:03:28 CET] <JEEB> *on what the input is
[15:03:53 CET] <JEEB> and when the master is SD, then sure - you can blow that up. but does the user get a better result out of that?
[15:04:58 CET] <Seaninho> The Input is 1080, i'm launching a subscription based VOD websites at the end of the month and was worried about only having my videos in 720P
[15:05:38 CET] <JEEB> it's your business. you should know what is profitable to you or not. there must be a reason why you originally only configured 720p output :P
[15:06:14 CET] <Seaninho> I tried using AWS mediaconvert thinking it would be better than raw FFMPEG myself but it's slow as shit and adds a lot of technical overhead such as back and forth communications with AWS to know when the video is done.
[15:07:28 CET] <Seaninho> I guess I could always update the HLS m3u8 file to have different qualities later.
[15:08:52 CET] <Fyr> I've set -metadata year=2018, but ffprobe of the output file does not output this metadata.
[15:08:58 CET] <Fyr> is it normal?
[15:11:06 CET] <th3_v0ice> Why would this happen while converting from 25fps to 18fps, and resolution from 1080p to 160p: "50 frames in, 0 frames out; 50 frames dropped, 0 frames duplicated."
[15:11:51 CET] <JEEB> ffmpeg.c's "vsync" had fun? I don't know :P post a full command and log on a pastebin or something, and link here
[15:12:09 CET] <th3_v0ice> I am using API :)
[15:12:26 CET] <JEEB> then you are dropping it? or what is logging that?
[15:12:30 CET] <JEEB> since that looks like ffmpeg.c's logging
[15:12:52 CET] <th3_v0ice> I turned on the library logs as well. I can copy them to pastebin
[15:13:54 CET] <JEEB> Fyr: quickly looked through where the mp4/mov writer checks for metadata fields and there's no such thing as "year" there :P you either mean the creation timestamp, or one of the itunes mapped things, where it is "date"
[15:14:25 CET] <Fyr> JEEB, I looked there: https://wiki.multimedia.cx/index.php/FFmpeg_Metadata#QuickTime.2FMOV.2FMP4.….
[15:15:13 CET] <JEEB> Fyr: seems like that documenti s just incorrect
[15:15:16 CET] <JEEB> \251day is mapped to "date"
[15:15:19 CET] <Fyr> ='(
[15:15:24 CET] <JEEB> not "year"
[15:16:05 CET] <th3_v0ice> JEEB: https://pastebin.com/u75QYASw
[15:16:58 CET] <JEEB> th3_v0ice: so you're using the fps filter?
[15:17:18 CET] <th3_v0ice> Yes
[15:17:29 CET] <JEEB> yes, that logs that line
[15:17:57 CET] <JEEB> it sounds like you're never pulling from the filter chain?
[15:18:43 CET] <th3_v0ice> I am actually, since I am feeding it 50 frames at a time, I always pull everything out of it. It works for other segments but not for this one.
[15:40:25 CET] <faLUCE> hello. Can I transform a wav audio to DTS with ffmpeg?
[15:41:03 CET] <faLUCE> (without re-encoding)
[15:45:53 CET] <JEEB> you mean you have wav with the DTS bit stream encapsulated in SPDIF or whatever it is?
[15:46:27 CET] <JEEB> it should probe for taht
[15:46:59 CET] <JEEB> which is perverse, but the wav and w64 things have a set_spdif thing which utilizes the SPDIF demuxer
[15:48:17 CET] <JEEB> it will attempt to probe for the SPDIF sync words within the probe buffer
[15:48:43 CET] <JEEB> and then the codec_id should be set accordingly
[15:51:25 CET] <faLUCE> JEEB: maybe my question is nonsense. because I need that to play this DTS file with an amplifier
[15:52:13 CET] <faLUCE> I know that it reads dts files, but I don't know the codec inside that it accepts
[15:52:27 CET] <JEEB> wat
[15:52:37 CET] <JEEB> if you just have a WAV file with SPDIF'd DTS
[15:52:48 CET] <JEEB> just use alsa or somethign to push it to wherever you want
[15:52:55 CET] <JEEB> no idea how to do it nicely with windows
[15:52:56 CET] <JEEB> :P
[15:53:17 CET] <JEEB> other than actually skipping the DTS-in-WAV part and just playing it with bit streaming
[15:53:20 CET] <JEEB> :P
[15:53:36 CET] <faLUCE> I need to play a 5.1 DTS with an amplifier connected to the optical cable of my soundcard
[15:54:25 CET] <faLUCE> so 1) I have to be sure that 1) the soundcard can output dts format 2) the amplifier plays this dts file
[15:55:03 CET] <JEEB> no fucking idea about 1) , that is an audio hardware related question which is 100% up to your OS or whatever
[15:55:21 CET] <JEEB> usually you just use a player with a proper DTS file or something, and enable spdif pass-through
[15:55:27 CET] <JEEB> and if it doesn't work, it doesn't work :P
[15:55:55 CET] <JEEB> same for 2), how are *we* supposed to know anything about your amplifier
[15:56:08 CET] <faLUCE> JEEB: yes... but I still have to buy the soundcard :-)
[15:56:09 CET] <JEEB> is there any reason why you are not just using a player that can do spdif bit streaming?
[15:56:18 CET] <JEEB> right, so you don't have the hardware yet?
[15:56:28 CET] <faLUCE> yes, I want to buy it
[15:56:37 CET] <JEEB> then you probably want something HDMI based anyways :P
[15:57:06 CET] <faLUCE> I have the amplifier. and it doesn't have hdmi
[15:57:43 CET] <JEEB> ok, then shit sucks. sorry. if it does have X inputs for the separate channels I'd almost rather use that :P
[15:57:49 CET] <JEEB> than doing lossy DTS/AC3 bit streaming
[15:58:18 CET] <JEEB> as in, audio card that has X output channels, and then separately HDMI for future
[15:58:30 CET] <JEEB> rather than buying *now* a card that has no HDMI, but only optical
[16:20:49 CET] <faLUCE> [15:57] <JEEB> than doing lossy DTS/AC3 bit streaming <--- I thought that DTS supports very high bitrates
[16:21:39 CET] <JEEB> for initial generation of DTS which fits 2ch (and thus optical audio), it's all lossy
[16:21:58 CET] <JEEB> the XLL (eXtension LossLess) stuff only works with HDMI
[16:22:32 CET] <JEEB> that is why I say that it's most likely better for you to get proper 5.1 or whatever audio output card, and then have HDMI as well in case you ever get a thing that supports HDMI input
[16:22:34 CET] <faLUCE> JEEB: I see. there's a bottleneck on the transport protocol
[16:23:00 CET] <JEEB> faLUCE: I think in theory the optical cables can do better, but nothing on the *audio* side supports that. and now we have HDMI, so nobody cares.
[16:23:19 CET] <faLUCE> JEEB: you are right that I have to search a board with HDMI support as well
[16:24:09 CET] <JEEB> faLUCE: basically for you it makes sense to get a thing that has proper X channels separately so you can stick them into your amp, as raw audio
[16:24:30 CET] <JEEB> then you can losslessly decode DTS XLL (aka "DTS-HD MA") on the PC
[16:24:33 CET] <JEEB> and play it through those
[16:24:45 CET] <JEEB> which most likely is better than trying to muck around with lossy bit streaming :P
[16:24:51 CET] <faLUCE> JEEB: but in this case the output from the board would be analogic
[16:24:56 CET] <faLUCE> but you are right
[16:25:47 CET] <faLUCE> ok, so, for making things better, if I get an amplifier with HDMI and a sound card with HDMI, can I transmit loseless codecs?
[16:26:56 CET] <JEEB> probably. hardware vendors are sometimes evil and only let you do the old amount of channels in bit streaming
[16:27:25 CET] <JEEB> although even there I wonder if there's much difference to just decoding the audio and passing it through as raw audio
[16:27:32 CET] <JEEB> because you can do 8ch raw PCM with HDMI :P
[16:28:07 CET] <faLUCE> <JEEB> because you can do 8ch raw PCM with HDMI :P <---- this is what I want. But do the amplifiers accept that bitstream?
[16:28:15 CET] <JEEB> why not?
[16:28:19 CET] <JEEB> no DTS decoding required etc
[16:28:42 CET] <JEEB> when you bit stream the "HD" (lossless etc) formats in HDMI, you set the channel count to 8ch after all :P
[16:28:55 CET] <JEEB> but just be wary and make sure you get something that can do both
[16:28:57 CET] <faLUCE> JEEB: because the amplifiers' vendors are evil... maybe they accept only specific formats
[16:29:24 CET] <JEEB> yea, although I think that's mostly a problem in general
[16:29:31 CET] <JEEB> if the thing only takes 2ch in through HDMI
[16:29:35 CET] <JEEB> then it's limited
[16:29:45 CET] <JEEB> or if the card only can output 2ch out through HDMI :P
[16:29:57 CET] <JEEB> but I'm pretty sure there's plenty of sane hardware out there nowadays.
[16:30:15 CET] <faLUCE> JEEB: in each case, I have to check both what the card can output and the amplifier can input
[16:30:28 CET] <JEEB> yes
[16:31:56 CET] <faLUCE> JEEB: not easy task
[16:32:24 CET] <faLUCE> they are very confusing in the descriptions
[16:32:25 CET] <JEEB> well most people I've seen buying things around me have succeeded :P
[16:32:30 CET] <JEEB> not that I know what they've bought
[16:32:37 CET] <JEEB> welcome to hardware :P
[16:32:53 CET] <JEEB> ever tried to buy TVs based on review results?
[16:33:20 CET] <faLUCE> JEEB: I have to ask to hw channel
[16:34:09 CET] <faLUCE> I don't know exactly what to google. maybe "8 channels RAW audio hdmi amplifier"
[16:34:11 CET] <faLUCE> ?
[16:34:18 CET] <faLUCE> (for the amplifier)
[16:37:11 CET] <JEEB> pcm is probably better as a keyword?
[16:37:33 CET] <faLUCE> yeah, I'll try that as well
[16:37:53 CET] <JEEB> I mean, that should be the simplest to find
[16:38:03 CET] <JEEB> and usually if you have truehd/dts-hd ma support for 7.1
[16:38:09 CET] <JEEB> it means it can take in 8ch pcm
[18:58:21 CET] <Soni> can we have sstv support?
[20:44:24 CET] <realies> I'm trying to run ffprobe -hide_banner -v quiet -print_format json -show_format on a input file and it dies with ENOMEM, it's a 4.0G wave file and the system only has 3.8G of ram (and 4.0G swap)
[20:44:39 CET] <realies> is there a way to get that info without loading everything in RAM?
[20:50:45 CET] <JEEB> realies: sounds really weird, what is teh container you're trying to poke?
[20:50:54 CET] <kepstin> it doesn't load everything into ram. with those options it should be barely reading any of the file at all, just the headers and exiting
[20:52:20 CET] <kepstin> (and it's very rare to actually have a process get an ENOMEM on linux since overcommit is usually on, usually it'll get oom-killed instead)
[20:53:03 CET] <DHE> ENOMEM usually only happens for outrageous memory requests
[20:53:28 CET] <kepstin> ffmpeg itself generates an ENOMEM error in some cases, for absurdly large frames/packets and things like that
[20:53:41 CET] <kepstin> can mean a corrupt input file in some cases
[21:04:48 CET] <realies> JEEB, a 4.0G wave file from a zoom recorder
[21:05:20 CET] <realies> DHE, ENOMEM is nodejs saying ffprobe failed (tries to spawn it from there)
[21:05:38 CET] <durandal_1707> realies: use latest ffmpeg
[21:06:48 CET] <realies> running 3.4.6 on ubuntu lts, I'll try get latest git static build
[21:40:27 CET] <realies> funny, ffmpeg runs fine now but when nodejs tries to spawn it it dies with ENOMEM :)
[21:40:30 CET] <realies> *ffprobe
[21:42:20 CET] <saml> nodejs is no mem
[21:42:34 CET] <realies> yup
[21:42:52 CET] <saml> you can download more mem in kubernetes
[21:43:03 CET] <realies> :(
[21:44:25 CET] <Diag> i need mem
[22:23:14 CET] <roxlu> can ffmpeg link against a static x264 lib?
[22:23:33 CET] <JEEB> yes, why not?
[22:24:15 CET] <roxlu> oop I should have added with MSVC
[22:24:31 CET] <roxlu> because of this https://github.com/FFmpeg/FFmpeg/blob/87b7e141a6fda7f450aff4560b776d546af31…
[22:25:32 CET] <JEEB> I have no idea what X264_API_IMPORTS does
[22:25:36 CET] <roxlu> I've created a static lib and trying to link against it but I get: https://gist.github.com/roxlu/62eb9b76e8237c2e5eaf8f73f839743e
[22:26:10 CET] <roxlu> it means: __declspec(dllimport) is a storage-class specifier that tells the compiler that a function or object or data type is defined in an external DLL.
[22:26:37 CET] <JEEB> and X264_API_IMPORTS sets something related to that?
[22:27:18 CET] <roxlu> yeah I defines the call decl. to be __declspec(dllimport)
[22:28:06 CET] <roxlu> or at least that's my understanding; I might be wrong
[22:28:19 CET] <JEEB> can you cehck with make V=1 if the actual link command contains all the libraries required, and if x264 is there and that specific thing makes it fail, you could add another check to that
[22:29:01 CET] <roxlu> yeah it has, but I think that I might have interpreted --enable-static incorrectly ... it seems to mean that ffmpeg will link with static libs
[22:29:34 CET] <JEEB> --enable-static means just that the libraries you build (libavcodec etc) will be statically linked
[22:29:57 CET] <roxlu> yeah, though I just read: enable-static: use this option to link all libraries statically
[22:30:11 CET] <JEEB> probably means "all *included* libraries"
[22:30:28 CET] <JEEB> whichever library (shared or static) is preferred by your linker for the same link command gets utilized
[22:30:39 CET] <JEEB> like the ld linker auto-preferring shared libs
[22:30:46 CET] <JEEB> or dll.a instead of .a
[22:30:48 CET] <JEEB> for mingw-w64
[22:31:07 CET] <JEEB> linkers can have their own -static thing that only takes in static libs, but taht's separate
[22:31:33 CET] <JEEB> whether you build your FFmpeg as enable shared or static, has no preference regarding which dependency library gets utilized
[22:31:39 CET] <JEEB> that is up to your toolchain if you have both around
[22:32:41 CET] <roxlu> yeah I thought so. So if I bulid a static x264 lib and the the libpath (windows thing) to the dir where this static lib can be found, how come that it tries to link usig those import libs?
[22:33:15 CET] <JEEB> I think it was link for MSVC
[22:33:21 CET] <JEEB> cl was the compiler, and link was the linker?
[22:33:50 CET] <roxlu> ah! I think I saw a note about that somewhere
[22:34:27 CET] <JEEB> anyways, I have no idea what on earth you're talking about but the linker prefers whatever it can find
[22:34:45 CET] <JEEB> unless you can find something special in FFmpeg's configure that sets some specific parameters
[22:34:58 CET] <roxlu> hehe yeah but now you mentioned cl / link, that cl=M$ and link is gcc?
[22:35:07 CET] <JEEB> no?
[22:35:13 CET] <roxlu> oh :)
[22:35:13 CET] <JEEB> ld is the most utilized GNU linker
[22:35:27 CET] <JEEB> msvc has cl and link
[22:35:33 CET] <roxlu> ah ok
[22:36:37 CET] <JEEB> Microsoft (R) Incremental Linker Version 14.13.26131.1
[22:51:32 CET] <roxlu> Ok. so /usr/bin/link was used by the MSVC compiler. I've renamed /usr/bin/link to "link.bak" and recompiling again
[22:53:00 CET] <JEEB> yea I think the MSVC related docs mention that you might have to remove msys(2)'s link.exe :)
[22:53:03 CET] <JEEB> or rename at least
[22:54:27 CET] <roxlu> ok so the __declspec(dllexport) and __declspec(dllimport) are used to "programmatically import/export" symbols. w/e that means
[22:56:45 CET] <roxlu> ah ok (reading up on this), normally when you want to create a dll you have to define what functions you want to export
[22:56:55 CET] <roxlu> you can do this with a .def file or with __declspec(dllexport)
[23:23:17 CET] <roxlu> Ok, so this is going on. I compile and link x264 with MSVC. Then I try to build ffmpeg and get an error about unresolved x264 symbols. All unresolved symbols start with __imp_
[23:23:38 CET] <roxlu> I think that __imp id generated because of the `__declspec(dllimport)`
[23:24:11 CET] <roxlu> and X264_API_IMPORTS is set here for MSVC https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libx264.c#L33
[23:24:56 CET] <roxlu> from my understanding this means that one needs to have a shared lib when compiling with MSVC
[23:25:11 CET] <roxlu> I'm going to build a shared x264 lib and see if that works
[23:34:23 CET] <JEEB> roxlu: and after that you can check if just removing that define helps with the static one
[23:34:35 CET] <JEEB> I would guess 99%+ who do MSVC just do libx264 dll
[23:34:39 CET] <JEEB> so that define is exactly what they need
[23:35:45 CET] <roxlu> JEEB: yeah
[23:36:22 CET] <roxlu> I've got the libx264.dll.lib now .. had to rename it to libx264.lib and recompiling atm
[23:36:44 CET] <BtbN> If you get that kind of error, you probably didn't build libx264 correctly
[23:37:11 CET] <BtbN> In a static build, it should define neither dllimport nor export
[23:37:42 CET] <roxlu> BtbN: yes.
[23:38:03 CET] <roxlu> BtbN: it seems that ffmpeg is trying to link programmatically with imports
[23:38:19 CET] <BtbN> It uses whatever the libx264 headers define
[23:38:25 CET] <roxlu> BtbN: because the source defines this https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libx264.c#L33
[23:38:54 CET] <BtbN> Yeah, with that define in place, it's probably impossible to statically link libx264
[23:39:13 CET] <roxlu> BtbN: because that line is there, the x264.h will use `__declspec(dllimport)` forcing a shared/import lib
[23:39:51 CET] <roxlu> What did you mean with "It uses whatever the libx264 headers define" ?
[23:40:01 CET] <BtbN> https://github.com/mirror/x264/blob/master/x264.h#L55
[23:40:25 CET] <BtbN> With how ffmpeg is currently setup, you cannot statically link libx264 when building with MSVC.
[23:41:15 CET] <roxlu> Ok, thanks. I'm happy to link dynamically
[23:41:22 CET] <roxlu> which is working now
[23:41:25 CET] <BtbN> Well, or just comment out that line
[00:00:00 CET] --- Sat Dec 7 2019
1
0