Ffmpeg-devel-irc
Threads by month
- ----- 2026 -----
- 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
October 2019
- 1 participants
- 62 discussions
[03:04:42 CET] <ltrudeau> Anyone know in what version of RealVideo was directional intra prediction introduced? (I was told pross might know this)
[03:06:17 CET] <ltrudeau> Basically I'm backtracking directional Intra, and worked my way back all the way to RealNetworks
[03:06:59 CET] <ltrudeau> I'm assuming that if they proposed it in H.26L it's because they might already have in RV
[03:17:27 CET] <Lynne> ltrudeau: https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/ituh263dec.c#L463
[03:17:32 CET] <Lynne> rv10 version 3 probably
[03:18:45 CET] <Lynne> if h263_aic is true then https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/h263.c#L220 gets called which seems to do something directional
[03:19:02 CET] <ltrudeau> Lynne: Thanks for answering
[03:19:41 CET] <ltrudeau> Lynne: I was not precise enough in my question, I'm looking for H.264 style directional intra pred (angles like 45 degrees)
[03:21:45 CET] <Lynne> I think looking for such directional intra in realvideo is a red herring, that doesn't sound likely
[03:38:07 CET] <Lynne> no, nothing in either 263 or rv40, the closest directional thing I could find is dc prediction in 263 could either use top or left block through a simple heuristic
[03:42:17 CET] <Lynne> ltrudeau: found it https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/rv34.c#L972
[03:45:34 CET] <Lynne> but the codec's based on h264, so it probably wasn't the first
[10:09:35 CET] <cone-886> ffmpeg 03Peter Ross 07master:fd172185580c: vp4: prevent unaligned memory access in loop filter
[10:14:14 CET] <durandal_1707> pross: there is bug about ansi on trac
[10:59:34 CET] <cone-886> ffmpeg 03Philip Langdale 07master:d6ac6650b911: avformat/hls: Set AVFMT_TS_DISCONT flag on HLS input format
[11:11:28 CET] <cone-886> ffmpeg 03Alfred E. Heggestad 07master:a269fa044b13: doc: fix typo in muxers documentation
[12:30:11 CET] <durandal_1707> michaelni: you still havent fixed s16le in wav?
[12:32:37 CET] <michaelni> durandal_1707, no, after reading your mail where you claim i stole money i decided i will not look into this
[12:32:52 CET] <michaelni> this is not funny
[12:35:37 CET] <kierank> durandal_1707: wtf
[13:00:39 CET] <kierank> durandal_1707: you should retract your statement
[13:00:41 CET] <kierank> even if it is a joke
[15:03:41 CET] <JEEB> durandal_1707: the format is officially called "3D Audio" so I guess that's why the sony person put that in the name https://mpeg.chiariglione.org/standards/mpeg-h
[15:37:39 CET] <durandal_1707> michaelni: not really my problem or file or commit or bug
[16:02:28 CET] <cone-019> ffmpeg 03Guo, Yejun 07master:dff39ea9f015: dnn: add tf.nn.conv2d support for native model
[16:02:29 CET] <cone-019> ffmpeg 03Guo, Yejun 07master:e1b45b85963b: avfilter/dnn: get the data type of network output from dnn execution result
[16:02:30 CET] <cone-019> ffmpeg 03Guo, Yejun 07master:f4b3c0e55c84: avfilter/dnn: add a new interface to query dnn model's input info
[16:02:31 CET] <cone-019> ffmpeg 03Guo, Yejun 07master:912ab246f166: avfilter/vf_sr: correct flags since the filter changes frame w/h
[17:48:52 CET] <cone-019> ffmpeg 03Paul B Mahol 07master:2539fea777a7: doc/filters: move agraphmonitor to multimedia filters chapter
[18:00:32 CET] <cone-019> ffmpeg 03Paul B Mahol 07master:d4ba2506ce9e: doc/filters: move drawgraph to video filters chapter
[18:15:00 CET] <cone-019> ffmpeg 03Limin Wang 07master:78c0030f344c: FATE: add a test for freeezedetect
[18:15:01 CET] <cone-019> ffmpeg 03Zhao Zhili 07master:af70c94c63cc: avfilter/f_sidedata: fix Wtautological-constant-out-of-range-compare
[18:15:02 CET] <cone-019> ffmpeg 03gxw 07master:648b422e171d: avcodec/mips: msa optimizations for vc1dsp
[18:40:22 CET] <kierank> durandal_1707: give it a rest
[19:09:19 CET] <cone-019> ffmpeg 03Paul B Mahol 07master:89389b7ed47b: avfilter/af_afade: check for eof after crossfade later
[19:30:14 CET] <cone-019> ffmpeg 03Andreas Rheinhardt 07master:26aa04991e02: avformat/apngenc: Add deinit function
[20:10:38 CET] <cone-019> ffmpeg 03Lou Logan 07master:881f083a16a1: configure: fix standalone compilation of mxf muxer
[20:36:36 CET] <kierank> hmmm how is this guy fuzzing so well
[21:11:05 CET] <jamrial> kierank: he's testing muxers and filters, which google isn't
[21:11:10 CET] <jamrial> it's free real state :p
[21:11:48 CET] <kierank> I gather that
[21:11:52 CET] <kierank> but wondering how he's doing it
[21:11:56 CET] <jamrial> he's also using the cli with random command line options that make no sense in combination, instead of a reduced set of api functions in a simple c file
[21:12:02 CET] <kierank> ok
[21:12:11 CET] <jamrial> so that may also be a factor
[22:02:51 CET] <BBB> how did cehoyos manage to fly to the mentor summit for $90? o_O
[22:03:16 CET] <durandal_1707> he is superman
[22:03:23 CET] <nevcairiel> i feel like google should pay for transport
[22:03:31 CET] <BBB> they provide stipends
[22:03:53 CET] <jamrial> where was the summit? maybe he just took a train or two
[22:04:33 CET] <nevcairiel> its always in the US i believe
[22:04:49 CET] <jamrial> huh, no idea then
[22:05:10 CET] <nevcairiel> maybe he only requested the remainder after using up the stipend
[22:15:08 CET] <kierank> jamrial: it was in munich
[22:15:51 CET] <jamrial> train, then
[22:20:53 CET] <BBB> ah, that explains
[00:00:00 CET] --- Thu Oct 31 2019
1
0
[01:54:53 CET] <|szn-r|1> does ffmpeg support "pausing" ? is this possible since ffmpeg is commandline
[01:57:34 CET] <pink_mist> I'd presume it supports it just the same as any other commandline program, using ctrl+z and regular job control commands of your shell
[01:58:16 CET] <|szn-r|1> pink_mist so pausing is possible using ctrl+z ?
[01:58:59 CET] <pink_mist> like I said: I'd presume so
[01:59:05 CET] <pink_mist> I have no direct evidence
[01:59:14 CET] <pink_mist> because I've never wanted to try
[02:00:24 CET] <pink_mist> it's also not something that ffmpeg needs to do much about, it's your shell that should handle it
[02:00:42 CET] <pink_mist> if your shell doesn't support job control, get a better shell
[02:00:44 CET] <klaxa> it may behave strangely when working with pipes
[02:00:47 CET] <klaxa> i guess?
[02:00:52 CET] <pink_mist> maybe, yeah
[02:01:23 CET] <|szn-r|1> obs-studio support pausing (finally) after all those years
[02:01:37 CET] <|szn-r|1> and obs-studio uses ffmpeg
[02:01:49 CET] <pink_mist> that's not really relevant
[02:02:06 CET] <JEEB> OBS uses the API or generates its own input
[02:02:26 CET] <JEEB> I mean, you can do it fine with the API by just rolling forward. ffmpeg.c can't really do that dynamically
[02:02:32 CET] <JEEB> it was made for file -> file
[02:02:41 CET] <JEEB> the fact it works for a lot of other use cases is a very happy accident
[02:03:03 CET] <JEEB> also pausing a live stream usually means that you are still pushing something out :P
[02:03:08 CET] <JEEB> not that you pause your encoder fully
[02:03:21 CET] <pink_mist> yeah, that's quite a different thing
[02:03:40 CET] <|szn-r|1> i am talking about just "recording"
[02:04:42 CET] <|szn-r|1> is it possible for ffmpeg to do everything that obs-studio can do?
[02:05:21 CET] <JEEB> theoretically: yes, realistically: unless someone wrote code for it already, no
[02:05:34 CET] <JEEB> and I guess you mean ffmpeg.c when you say ffmpeg
[02:05:51 CET] <JEEB> you can do a lot more with the FFmpeg libraries than what ffmpeg.c does
[02:09:37 CET] <|szn-r|1> i mean with ffmpeg.exe
[02:09:51 CET] <pink_mist> you say .exe like you're on windows
[02:10:01 CET] <pink_mist> I don't believe windows supports job control with ctrl+z
[02:10:28 CET] <pink_mist> anyway, the ffmpeg executable binary is what JEEB means when he says ffmpeg.c
[02:14:28 CET] <|szn-r|1> i see
[02:15:02 CET] <|szn-r|1> if obs-studio uses ffmpeg why is obs-studio so buggy/unstable when using ffmpeg-custom
[02:15:16 CET] <pink_mist> ask the authors of obs-studio
[02:16:58 CET] <JEEB> OBS uses various back-ends/modules
[02:17:07 CET] <JEEB> I have no idea what it does with ffmpeg-custom
[02:32:41 CET] <|szn-r|1> obs-studio is fine when you use normal setting, with normal setting you can only use x264/aac
[02:33:19 CET] <|szn-r|1> but if you want to use any other encoder like vp9/opus you HAVE to use ffmpeg-custom
[02:37:57 CET] <ltrudeau> Anyone know in what version of RealVideo was directional intra prediction introduced?
[02:38:08 CET] <ltrudeau> RV30?
[02:44:07 CET] <JEEB> too bad the multimedia.cx page is not really great for these https://wiki.multimedia.cx/index.php?title=Real
[02:45:44 CET] <JEEB> rv10/20 seem to base on the H.263 decoder/encoder and be similar? (both are in rv10.c)
[02:46:55 CET] <JEEB> but yea, you might be able to poke pross on the -devel channel or kostya on his blog/e-mail (https://codecs.multimedia.cx/)
[02:47:02 CET] <JEEB> for actual details
[03:03:37 CET] <ltrudeau> JEEB: Yeah, I did not see directional intra in rv10.c
[05:33:25 CET] <AlexApps> Hey, I'm making a FFmpeg command to generate a slideshow, currently I input the frames with a framerate of "1/5" then I apply filters and output with a framerate of 30, which takes quite a long time to process.
[05:34:20 CET] <AlexApps> Is there any way to apply the filters once per input frame and then duplicate that frame to the desired length, cutting the processing time down drastically
[05:44:31 CET] <furq> that's probably already what you're doing
[05:44:55 CET] <furq> if you're doing something like -framerate 1/5 -i foo%d.png -vf your_filters,fps=30 out.mkv
[05:47:35 CET] <AlexApps> does it work like that if the fps is set through -r 30 instead?
[05:53:16 CET] <furq> i assume that happens after filtering but i don't know for sure
[05:54:08 CET] <AlexApps> is there any way to test?
[05:54:24 CET] <AlexApps> as in a way to check how many frames a filter was applied to?
[06:32:32 CET] <KombuchaKip> To decode an audio file and read its metadata, is it necessary to call read_header()? When is it necessary? https://ffmpeg.org/doxygen/trunk/structAVInputFormat.html#a286d65d159570516…
[11:29:54 CET] <BeerLover> I am trying to transcode an mp4 to hls with segment files and index file and trying to upload it to S3. I am using this: https://dpaste.de/30Xr
[11:30:11 CET] <BeerLover> but in the S3 bucket I only see index.m3u8 file and no segment files
[13:01:04 CET] <DHE> BeerLove_: You've split your outputs. when you specify simply "index.m3u8" you've set an output filename and all the HLS options apply there. then you specify a second output of http://....
[13:01:43 CET] <BeerLove_> didn't understand you DHE
[13:06:55 CET] <DHE> ffmpeg lets you have multiple inputs and multiple outputs for a single job
[13:07:04 CET] <DHE> you've accidentally requested 2 output jobs
[13:07:55 CET] <BeerLove_> but 1 mp4 will produce many .ts and 1 .m3u8 files?
[13:08:08 CET] <BeerLove_> my question is how to upload these to s3
[13:08:10 CET] <DHE> yes, but check the working directory you ran that command in
[13:10:39 CET] <BeerLove_> DHE ffmpeg -v trace -re -y -i song.mp4 -profile:v baseline -b:a 320k -hls_time 10 -hls_allow_cache 1 -level 4.0 -hls_segment_filename segment%d.ts -f hls index.m3u8 -method PUT http://\<S3-BUCKET\>/index.m3u8
[13:10:44 CET] <BeerLove_> looks fine to me
[13:10:46 CET] <DHE> I know
[13:10:56 CET] <DHE> https://dpaste.de/ozh9 I modified your paste to break it up how ffmpeg will interpret it
[13:10:57 CET] <BeerLove_> taking 1 input
[13:11:09 CET] <DHE> line 1: global options line 2: input line 3: first output line 4: second output
[13:12:42 CET] <BeerLove_> ok
[13:13:02 CET] <BeerLove_> so removing "index.m3u8" after -f hls will remove 1st output
[13:13:04 CET] <BeerLove_> right?
[13:13:06 CET] <DHE> yes
[13:13:26 CET] <BeerLove_> but still method put won't work correctly
[13:13:43 CET] <BeerLove_> as it will reqrite all segments as index.m3u8 in the bucket
[13:14:09 CET] <DHE> the next thing I'd try is setting the hls_segment_filename to also be an HTTP URL
[13:17:13 CET] <BeerLove_> it doesn't support that right? in docs it's just absolute path or local path of file
[13:22:02 CET] <DHE> "Should a relative path be specified, the path of the created segment files will be relative to the current working directory."
[13:22:10 CET] <DHE> I still think an http URL here is correct
[13:22:20 CET] <DHE> still, doesn't S3 require authentication to do uploading?
[13:24:35 CET] <BeerLove_> DHE yes
[13:25:13 CET] <BeerLove_> That's the next question. Ideally it would be through "aws s3 cp <file> s3://<bucket>/<file>"
[13:25:28 CET] <BeerLove_> how will segments be piped into this?
[13:26:31 CET] <DHE> well your use of -re makes me assume you're going for some kind of real time streaming with S3 as the storage medium
[13:29:09 CET] <DHE> is that correct?
[13:30:43 CET] <BeerLove_> yes
[13:39:17 CET] <snooky> hi all
[13:39:21 CET] <snooky> I am currently trying to create a virtual video and audio device. I already have a virtual video device with v4l2loopback. with ffmpeg I can also send a picture on this device. Now I need the sound virtually. there is snd-aloop. OK. then I send with ffmpeg the picture on the virtual video device and the sound on the virtual audio device. however, I have a delay of 1 - 2 seconds between picture and sound. At the end I build a rtp stream out of the video and the
[13:39:21 CET] <snooky> audio device. but if I send no picture to the virtual device, the rtp server aborts because no stream is there. How do I fix these errors?
[13:41:18 CET] <BeerLove_> DHE yes
[13:48:51 CET] <snooky> DHE?
[13:54:04 CET] <BeerLove_> snooky is DHE the man?
[13:54:43 CET] <snooky> sry
[14:06:19 CET] <DHE> I am A man....
[14:06:41 CET] <DHE> and beerlover has left...
[14:19:33 CET] <DHE> is there a container that is simultaneously streaming friendly and has a minimum of overhead? mp4 with faststart largely works but somehow is larger than my source input
[14:21:14 CET] <tablerice> is your output bitrate higher than your source?
[14:21:45 CET] <DHE> I'm just remuxing existing content for storage in an S3-like system
[14:27:50 CET] <klaxa> what's wrong with mkv?
[14:28:53 CET] <furq> if by streaming-friendly you mean you can stream it to browsers then no
[14:29:01 CET] <furq> other than webm but i assume that doesn't work for you
[14:36:06 CET] <tablerice> I'm trying to strip out an audio stream using negative mapping, but I'm getting an error "unsupported video codec on stream #2"... Is there a way to delete a stream that has an unsupported codec? That's kinda why I'm trying to delete it lol
[14:52:31 CET] <DHE> I mean I can do "ffmpeg -i http://.../filename.ext" and I can expect it to run rather nicely
[14:53:19 CET] <DHE> mp4 is probably good enough, but it's bugging me that the source file still somehow is smaller
[15:12:16 CET] <lilibox> hi
[15:13:59 CET] <lilibox> i would like to know current proper option how to do this: i have got couple of images and want them merge to .mp4 but i want put let say 10 seconds of black frames pre and 15 seconds black frames post
[15:28:39 CET] <snooky> how i can write the audio to the soundcard?
[15:28:59 CET] <snooky> ffmpeg -re -i file.mp4 -f v4l2 /dev/video1
[15:29:24 CET] <snooky> this streams the video to /dev/video1 but how i can send the audio to the soundcard at the same time?
[15:42:20 CET] <kepstin> snooky: you can use multiple outputs with different formats in an ffmpeg command
[15:42:39 CET] <snooky> alsa @ 0x5588052feae0] cannot open audio device hw:1.1 (No such device)
[15:42:39 CET] <snooky> Could not write header for output file #1 (incorrect codec parameters ?): Input/output error
[15:42:41 CET] <snooky> hmpf
[15:45:23 CET] <ponyrider> snooky: could this be helpful https://trac.ffmpeg.org/wiki/Capture/ALSA#Recordaudiofromanapplicationwhile…
[15:46:41 CET] <ponyrider> basically, configure alsa?
[15:51:24 CET] <snooky> https://nopaste.linux-dev.org/?1267502
[15:51:32 CET] <snooky> https://nopaste.linux-dev.org/?1267503
[15:51:41 CET] <snooky> i can open the rtp stream and see the video
[15:51:45 CET] <snooky> but no audio
[15:54:16 CET] <ncouloute> durandal_1707: Not sure if this is the proper way to upload sample/command but this is a zip of the 2 files and txt file with command in it. https://ufile.io/qs7kdlms I use zeranoe 4.2.1 32bit static build. Other clips seem fine if I use fps=fps-60000/1001:round=down but they were also off using fps=fps-60000/1001. round=near being the default it seems.
[16:02:39 CET] <ponyrider> snooky: https://www.ffmpeg.org/ffmpeg-devices.html#pulse-1
[16:02:56 CET] <ponyrider> snooky: i dont know what you are trying to do anymore. dont you want to stream to your soundcard?
[16:03:28 CET] <snooky> video to virtual video device
[16:03:36 CET] <snooky> audio to virtual audio device
[16:03:54 CET] <snooky> and then mux a rtsp stream from the virtual video and audio device
[16:06:43 CET] <sine0> I need to do some batch resize and then crop of images, what is best ffmpeg or imgmagick
[16:25:11 CET] <ponyrider> snooky: you should be able to do something like ffmpeg -i NAME -f pulse "device 0" ...
[16:25:40 CET] <ponyrider> providing you are using pulseaudio
[16:27:25 CET] <snooky> this is a root server in a data center
[16:27:36 CET] <ponyrider> so what?
[16:28:16 CET] <snooky> -.-
[16:28:17 CET] <ponyrider> sine0: imagemagick imo
[16:29:09 CET] <ponyrider> you said soundcard
[16:29:16 CET] <snooky> no physical soundcard
[16:29:22 CET] <snooky> no physical graphiccard
[16:29:49 CET] <ponyrider> cya
[16:32:01 CET] <snooky> I have to split the video and send it to a virtual video device and a virtual audio device. and then I have to build the video back from the video and audio together and send it to a rtsp server. that works too. So with the video. but I have no audio.
[16:42:35 CET] <durandal_1707> sine0: ffmpeg, obviously, imagetragick not
[16:46:07 CET] <sine0> lmao, fight!
[16:46:43 CET] <snooky> or pipe
[16:46:50 CET] <snooky> but how i pipe audio
[16:47:04 CET] <snooky> and then use this pipe in another programm?
[16:57:08 CET] <durandal_1707> ncouloute: both input files are CFR, and you use fps with same output fps, so where is bug?
[17:05:59 CET] <ncouloute> My first instinct was not to reencode but if I dont reencoder I get a vfr file. Same with mts files from Panasonic cameras as well. only solution for that is to remux to mts/ts and then do a binary concat. That causes other issues ... but on subject of the original command. If you look at the debug log. the first frame of the second file should produce a pts_time of 16.7253. I go to that frame in the file. it is
[17:05:59 CET] <ncouloute> actually the frame of the video before it. Next line of the log you can see that the Parse_fps moves the frame for whatever reason. I would expect that if the file is actually cfr the fps filter wouldnt need to touch the frame timings?
[17:11:29 CET] <durandal_1707> ncouloute: same happens if you use concat filter instead?
[17:13:25 CET] <ncouloute> yes it did, but I will retest it again.. I dont really like that method because it uses a lot of memory. out of memory error when trying to concat 74 files with 32bit version of ffmpeg. I suppose I can take the jump to 64-bit but that limits me in which machines can use it.
[17:15:52 CET] <durandal_1707> ncouloute: it should not use lot of memory
[17:16:03 CET] <durandal_1707> if it still does with latest master it is bug
[17:17:00 CET] <durandal_1707> ncouloute: basically with concat demuxer i see that one frame is duplicated, and that just in files split
[17:39:29 CET] <snooky> i dont became audio
[17:39:33 CET] <snooky> aaaaarrrrrrrrggggggggg
[17:48:54 CET] <KombuchaKip> To decode an audio file and read its metadata, is it necessary to call read_header()? When is it necessary? https://ffmpeg.org/doxygen/trunk/structAVInputFormat.html#a286d65d159570516…
[17:54:10 CET] <ncouloute> I think I used -r when I tested concat filter...So not a real test...Trying to figure out this filter_complex string is taking a while though. Apparently this file has 4 streams and concat wants me to map them all. :)
[17:56:59 CET] <snooky> now i have audio and a stand picture
[18:18:41 CET] <ncouloute> durandal_1707: So I confirmed same issue happens with concat filter. Had to remove the other 3 streams since I couldnt figure out how to map them. 3 Data stream
[18:19:37 CET] <durandal_1707> ncouloute: the frame is duplicated at split point?
[18:19:53 CET] <ncouloute> yes
[18:20:20 CET] <durandal_1707> can you open bug report on trac?
[18:21:33 CET] <snooky> so
[18:21:37 CET] <snooky> now i have it...
[18:21:52 CET] <snooky> with ffserver
[18:22:00 CET] <snooky> [mpeg @ 0x55a9a3d50130]buffer underflow st=1 bufi=5902 size=7022
[18:22:12 CET] <snooky> but what mean it with this?
[18:22:18 CET] <durandal_1707> ffserver is not available any more in FFmpeg
[18:22:58 CET] <snooky> and what is "Past duration 0.702162 too large?
[18:30:40 CET] <ncouloute> durandal_1707: So interestingly enough. If I convert the fps first then concat its fine... Its only when I concat first then convert the fps do I get that duplication issue. I think that works around the issue although not sure if thats an option when using the demuxer. =/
[18:31:28 CET] <durandal_1707> ncouloute: it is bug, that should be reported and ultimetely fixed
[18:32:59 CET] <kepstin> snooky: the "past duration too large" message is printed when a filter chain indicates it's doing cfr output, but two frames are too close together. there's a bug in the concat filter where this can happen if the second video is higher framerate than the first.
[18:33:14 CET] <kepstin> iirc i had a patch for that
[18:34:13 CET] <kepstin> should be fixed in ffmpeg master, but i don't think that's in a release
[19:10:21 CET] <TechnicalMonkey> testing one two three
[19:10:25 CET] <TechnicalMonkey> alright
[19:10:36 CET] <TechnicalMonkey> I can chat
[19:11:13 CET] <JEEB> yup
[19:12:03 CET] <TechnicalMonkey> so I came here looking for help on using ffmpeg to stream from a capture card, but I've run into problems
[20:05:16 CET] <snooky> ffmpeg -re -i tini2.mp4 -c:v libx264 -vf "fps=25,scale=640:480,setdar=4:3" -async 1 -pix_fmt yuv420p -preset ultrafast -map 0:0 -f v4l2 -vcodec rawvideo /dev/video1 -f alsa hw:1,0,0
[20:05:21 CET] <snooky> how i can add a watermarkß
[20:42:14 CET] <CFS-MP3> I'm trying to create a HLS playlist and segments from a mp4 file (actually final goal is a bit different but let's focus on this for now) but I'm not succeeding
[20:42:32 CET] <CFS-MP3> The output of this is unplayable
[20:42:35 CET] <CFS-MP3> ffmpeg -i "/home/carlos/Videos/bbb_sunflower_2160p_30fps_normal.mp4" -loglevel verbose -threads 0 -an -sn -vcodec libx264 -force_key_frames "expr:gte(t,n_forced*4)" -r 25 -f hls -hls_time 4 -hls_list_size 99999 -start_number 1 -hls_segment_type fmp4 -h^C_fmp4_init_filename "bbb_init.mp4" -t 30 "bbb.m3u8"
[20:42:46 CET] <CFS-MP3> (I've tried a few other things)
[20:54:20 CET] <mifritscher> moin
[20:56:14 CET] <mifritscher> under what circumstances can av_write_frame() crash with a writing memory exception to NULL ? Both the AVFormatConext and the AVPacket are ok, the lter 11k big. The used format is MPJPEG .
[20:56:19 CET] <mifritscher> *later
[20:57:49 CET] <mifritscher> the destination is a listening TCP socket
[20:58:20 CET] <mifritscher> (tcp://127.0.0.1:9722?listen
[20:58:45 CET] <JEEB> oppan gdb time I guess?
[20:59:07 CET] <JEEB> also on lunix I recommend running under valgrind
[20:59:45 CET] <JEEB> --leak-check=full --track-origins=yes
[20:59:55 CET] <JEEB> but gdb first makes sense
[21:00:03 CET] <JEEB> also possibly post code into pastebin or so :P
[21:01:03 CET] <mifritscher> I was afraid of this answer^^ It is a bit ... complicated. I only say JavaCV and Windows ;)
[21:01:39 CET] <mifritscher> it could have something to do with races - if it survives the first send it works fine
[21:02:07 CET] <JEEB> https://kuroko.fushizen.eu/random/gdb_builds/gdb-8.0.1.7z
[21:03:47 CET] <mifritscher> needs 20 minutes - despite having a fast line...
[21:04:08 CET] <JEEB> some people seem to get a weird route apparently
[21:04:16 CET] <mifritscher> I'll try to give you the quite informative crashlog, just a second
[21:06:05 CET] <mifritscher> https://mifritscher.de/austausch/crash.log
[21:07:16 CET] <mifritscher> if you need infos about the parameters I can print them
[21:08:21 CET] <JEEB> yea sorry. also you'll want to have debug symbols
[21:08:50 CET] <JEEB> as unfortunately that sort of java log doesn't really give you much info
[21:10:49 CET] <mifritscher> just another problem *g*
[21:17:38 CET] <mifritscher> as I see only one native frame I hope it crashes fairly at te beginning - so a static debug session can already help
[21:21:02 CET] <JEEB> mifritscher: one thing I can tell about AVPackets is that preferably you use av_new_packet() to initialize one
[21:21:59 CET] <JEEB> and if you need to allocate an AVPacket struct itself, there's av_packet_alloc
[21:22:14 CET] <JEEB> https://www.ffmpeg.org/doxygen/trunk/group__lavc__packet.html
[21:22:23 CET] <JEEB> both documented here
[21:25:08 CET] <mifritscher> alloc theems(!) to be done via javaCV, but at least it uses av_init_packet() on it
[21:25:36 CET] <JEEB> you're not supposed to know or depend on the size of AVPacket I think?
[21:25:43 CET] <JEEB> no idea, though :P could also be mistaken
[21:25:51 CET] <JEEB> I have example code that just uses a stack AVPacket
[21:26:02 CET] <JEEB> and then initializes it as needed
[21:26:17 CET] <JEEB> also av_init_packet only sets everything but the buffer and the size
[21:26:22 CET] <mifritscher> I don't need the size of AVPacket, right
[21:26:45 CET] <JEEB> av_new_packet will also initialize the buffer to a size you need
[21:26:50 CET] <JEEB> including the buffering
[21:26:55 CET] <mifritscher> (I only acquired the size to see whether it is ok
[21:27:18 CET] <JEEB> that's needed so that optimized writers can be utilized (which might require overread/write)
[21:27:27 CET] <JEEB> *optimized readers/writers
[21:28:50 CET] <JEEB> but yea, I would definitely attempt to a) get debug symbols on whatever binaries you're using if you don't have them already and b) see with a debugger
[21:29:09 CET] <JEEB> also I recommend making a simple thing without threading etc if that's also related in your case :P
[21:29:27 CET] <JEEB> attempt to have a simple case first, then grow complexity as you verify it works
[21:31:19 CET] <mifritscher> the multithreading is the thing which let it break I'm afraid - on simple cases it works fine
[21:32:52 CET] <JEEB> I'd say have one thing handling muxing :P
[21:33:14 CET] <JEEB> you can have multiple threads pushing into the queue if you make the queue thread-safe, but just have one thing handling the muxing :P
[21:34:24 CET] <mifritscher> I'I've one thread which fetches the frames and one which put them into ffmpeg again (aka: a transcoder)
[21:46:03 CET] <mifritscher> ok, the crash is indeed fairly at the beginng of av_write_frame
[21:47:48 CET] <lilibox> hello
[21:48:14 CET] <lilibox> i am going to ask after some hours again
[21:48:19 CET] <lilibox> i would like to know current proper option how to do this: i have got couple of images and want them merge to .mp4 but i want put let say 10 seconds of black frames pre and 15 seconds black frames post
[21:48:37 CET] <lilibox> i found this: https://forums.creativecow.net/docs/forums/post.php?forumid=291&postid=1315…
[21:49:11 CET] <lilibox> but as i stated i am looking for current and most clean solution, anybody can help me? pretty thank you
[21:49:38 CET] <mifritscher> ok, it crashes in the function compute_muxer_pkt_fields
[21:50:17 CET] <mifritscher> (btw, thank you very much for your many debug strings!)
[21:50:28 CET] <lilibox> sometime i need to preview short video pices cca 3 seconds long and some devices blends UI over video, where takes 5 minutes UI disolves/disapears
[21:50:53 CET] <lilibox> 5 seconds sorry :)
[21:51:01 CET] <jemius> Am I missing something or is there only a lowpass filter with at most 40dB per decade? I'd need something with more power ._.
[21:52:15 CET] <mifritscher> ok, now I'll need to dig deeper into the decompiled code *g*
[00:00:00 CET] --- Thu Oct 31 2019
1
0
[10:50:38 CET] <durandal_1707> michaelni: please take look at patch on devel mailing list that fixes logic error in c75273310cf
[10:57:25 CET] <durandal_1707> https://patchwork.ffmpeg.org/patch/16011/
[11:01:40 CET] <cone-497> ffmpeg 03Paul B Mahol 07master:1c3b70e2e078: avfilter: add median filter
[13:09:24 CET] <cone-497> ffmpeg 03Paul B Mahol 07master:4ce263a7fd1c: avfilter/vf_vfrdet: fix reporting max delta
[13:09:25 CET] <cone-497> ffmpeg 03Paul B Mahol 07master:3420e56d9a4a: avfilter/vf_vfrdet: also report average delta
[13:41:57 CET] <cone-497> ffmpeg 03hydra3333 07master:ba6b20df3f74: avcodec/nvenc: turn feature check failures into warnings
[13:44:21 CET] <xdudi> can anyone help me how use avformat_open_input() with digest authentication to get rtsp protocol? I can't find anything via google
[13:48:21 CET] <JEEB> I see it mentioned with RTSP_MODE_TUNNEL which gets set with rtsp_transport http or https
[13:48:38 CET] <JEEB> rtsp_transport is an AVOption for the rtsp module
[13:59:17 CET] <xdudi> I need something like that: https://github.com/leandromoreira/ffmpeg-libav-tutorial/blob/master/0_hello… but I need connect to camera with rtsp by digest authentication
[13:59:31 CET] <xdudi> what should I change in this example?
[14:14:12 CET] <durandal_1707> anybody is smart enought to answer this question: why ffmpeg -r behaves differently than fps filter when duplicating frames from VFR frames? fps filter uses "dumb" techique by duplicating first frame in cache up until to end of gap, while -r does more smart thing by using first frame from cache only halfway of the gap
[14:24:46 CET] <cone-497> ffmpeg 03James Almer 07master:dad75924290e: avcodec/tiff: check the black level denominator
[15:02:34 CET] <durandal_1707> anybody is smart enough to answer this question: why ffmpeg -r behaves differently than fps filter when duplicating frames from VFR frames? fps filter uses "dumb" techique by duplicating first frame in cache up until to end of gap, while -r does more smart thing by using first frame from cache only halfway of the gap; which way is correct way?
[15:11:11 CET] <thardin> i hear ndi-hx ships with lavf
[15:15:33 CET] <thardin> without shipping code or object file
[15:35:04 CET] <durandal_1707> thardin: again?
[16:17:25 CET] <durandal_1707> michaelni: why ffmpeg -r behaves differently than fps filter when duplicating frames from VFR frames? fps filter uses "dumb" techique by duplicating first frame in cache up until to end of gap, while -r does more smart thing by using first frame from cache only halfway of the gap; which way is correct way?
[16:23:31 CET] <cone-497> ffmpeg 03Andreas Rheinhardt 07master:8b28aa0767d5: avformat/dss: Remove superfluous headers
[16:23:32 CET] <cone-497> ffmpeg 03Michael Niedermayer 07master:1850c3feaa1c: avcodec/g723_1dec: fix invalid shift with negative sid_gain
[16:23:33 CET] <cone-497> ffmpeg 03Michael Niedermayer 07master:069be4aa5ddc: avcodec/libvorbisdec: Fix insufficient input checks leading to out of array reads
[16:23:34 CET] <cone-497> ffmpeg 03Limin Wang 07master:e1c4ce4761fc: avfilter/asrc_anoisesrc: change color variable to int
[16:23:35 CET] <cone-497> ffmpeg 03Michael Niedermayer 07master:f17ea0200178: avcodec/apedec: Only clear the needed buffer space, instead of all
[16:23:36 CET] <cone-497> ffmpeg 03Michael Niedermayer 07master:34e701ff93b6: avcodec/adpcm: Fix invalid shifts in ADPCM DTK
[16:23:37 CET] <cone-497> ffmpeg 03Michael Niedermayer 07master:d3dee676b8a8: avcodec/wmalosslessdec: Fix some integer anomalies
[16:26:58 CET] <michaelni> durandal_1707, they behave differently because they are different implementations with neither attempting to do exactly the same as the other. The correcter one is the one that recovers the "true" data better and that could depend on how the input was created, which way of frame droping was used for example
[16:42:17 CET] <durandal_1707> michaelni: do you mind if i add option to control this? so it can be like already is, or like -r option or some another rounding.
[17:02:06 CET] <michaelni> durandal_1707, sounds like a good idea, yes, iam in favor
[17:05:00 CET] <thardin> question: is there still talk about rewriting stuff for the sole purpose of having a weaker license?
[17:05:49 CET] <thardin> durandal_1707: I'm going to look a bit more into it, but word on the street is "yes"
[17:05:59 CET] <durandal_1707> thardin: question: rewriting what stuff?
[17:11:19 CET] <thardin> any stuff. let's say a decoder
[17:12:00 CET] <thardin> let's suppose there is an AGPL decoder for JPEG. someone wants to rewrite it in order to relicense under the MIT license
[17:12:47 CET] <thardin> I am of the opinion that we should reject such patches unless there is a very good reason to include them
[17:14:08 CET] <JEEB> so we don't want more of our users utilize functionality? given that LGPLv2.1plus is our base license?
[17:14:47 CET] <JEEB> note: i probably lack context into what ypu're commenting on
[17:15:24 CET] <JEEB> since my personal pet peeve is libaribb24's licensing and thus i have worked on getting an lgplv2.1plus implementatiom into FFmpeg
[17:15:58 CET] <thardin> that's only a problem for certain users
[17:16:13 CET] <thardin> specifically, proprietary vendors
[17:19:14 CET] <JEEB> i personally don't have a bone in that game, but for me there generally is a base license of FFmpeg, and for some reason it feels nice when your thing can be enabled by default
[17:21:12 CET] <JEEB> so if I see a patch set thatcan be attempted to upstream for some feature I'd like to have under a 'better' license (closer to baseline license) then i will attempt to see if that can be upstreamed
[17:23:25 CET] <JEEB> but I do agree that if there is a specific reason for something to be under license x, then at least hearing those reasons out is worthwhile
[17:25:26 CET] <thardin> yes, there can often be very good reason. what I'd like to avoid is a situation where someone decides to invest a lot of time rewriting something just to please some vendor
[17:26:35 CET] <thardin> it might also be possible that that person depends on said vendor to continue contributing to other parts of the codebase, so it's not so clear cut always
[17:28:50 CET] <thardin> worth having a discussion around at least, to prevent possible drama
[17:50:14 CET] <nevcairiel> in your example at least, every piece I can liberate from AGPL is a fight worth fighting, its a horrible license
[18:04:20 CET] <thardin> lol
[18:05:02 CET] <thardin> cloud companies hate it, therefore it is excellent for license trolling
[18:23:18 CET] <durandal_1707> michaelni: have you looked at that .wav file that is completely valid pcm_s16le but is recognized as crappy mp1?
[18:27:23 CET] <michaelni> durandal_1707, not yet
[18:48:37 CET] <thardin> durandal_1707: they say to send enquiries about LGPL sources by email
[19:24:21 CET] <kepstin> durandal_1707: note that the fps filter has some options for controlling its rounding behaviour
[19:30:58 CET] <kepstin> but yeah, it's designed with the assumption that a frame start at its pts and ends at the next frames pts, so it fills in the time that the frame should be appearing for.
[19:35:16 CET] <durandal_1707> kepstin: fps filter pick always first frame when duplicating frames, i added option to control that
[19:38:03 CET] <kepstin> well, as long as you don't change the default behaviour, which imo is most correct especially when increasing framerate.
[19:39:40 CET] <durandal_1707> kepstin: it is not correct when doing vfr -> cfr for same frame rate
[19:39:43 CET] <kepstin> the current method will cause the fps-adjusted video to look identical in a player if the output fps is an integer multiple of the input fps.
[19:40:40 CET] <kepstin> hmm, that should be handled by the rounding of the second frame.
[19:43:24 CET] <durandal_1707> i mean it will use only first frame in gap when filling gap between timestamps
[19:44:53 CET] <kepstin> right, because the pts of a frame is the time when it first appears
[19:45:58 CET] <kepstin> fps filter works by taking the pts of each input frame, converting to the output timebase (with configurable rounding) then filling any gaps with the frame that a player would be displaying during the gap.
[19:47:07 CET] <kepstin> if the behaviour isn't the way you expect when cleaning up "nearly-cfr" vfr video, then playing around with the rounding on the pts conversion should usually fix it.
[19:56:06 CET] <durandal_1707> no, rounding on pts conversion is not solution
[19:57:03 CET] <kepstin> i use it for doing stuff like fixing webcam videos with dropouts - no frame should ever appear before its pts value, because then it'll obviously be out of sync appearing too early.
[19:58:05 CET] <durandal_1707> kepstin: avs/vpy disagrees, also -r
[19:59:08 CET] <kepstin> if you have a particular example of bad behaviour with the fps filter, i'd be interested to see its decision log with -v debug
[19:59:27 CET] <durandal_1707> kepstin: it does not behave like -r
[20:00:10 CET] <kepstin> not behaving with -r doesn't seem like either a good or a bad thing? it's just different...
[20:00:22 CET] <kepstin> i personally don't use -r because its behaviour isn't appropriate for my use case
[20:03:07 CET] <durandal_1707> kepstin: thats why i wrote patch to optionally behave like -r
[20:04:49 CET] <kepstin> i'm mostly curious if the particular problem you're having could be solved by an existing option on the filter.
[20:05:34 CET] <kepstin> not really opposed to adding a new option, it just seems kind of weird since it might make a frame appear before its pts value, causing temporal glitches :/
[20:15:22 CET] <durandal_1707> kepstin: https://www.mediafire.com/file/c9iebz72cwxi97r/ffmpeg_psnr_example2.7z/file look at 0.mkv file and its gaps after 1st frame
[20:16:38 CET] <kepstin> converting to 24000/1001 fps?
[20:17:50 CET] <durandal_1707> no, to same fps, VFR->CFR
[20:19:02 CET] <kepstin> weird, the first frame in that file has pts=125, but the fps filter is using 0 as the first fps. Last time i worked on the filter, i thought it had it preserve the start offset
[20:19:05 CET] <durandal_1707> -vsync passthrough give 244 frames, while defaukt gives 246 frames, +2 out of nowhere
[20:19:17 CET] <kepstin> the issue is that it's filling in the time between pts=0 and pts of first frame
[20:20:58 CET] <durandal_1707> no, first pts is 0
[20:21:17 CET] <kepstin> oh, missed it
[20:21:53 CET] <durandal_1707> so, i want to mimic -vsync cfr with lavfi fps filter
[20:24:07 CET] <kepstin> hmm. so your input frame pts are 0, 125, 167, 208, 250. So the first frame is displayed for 125ms, then the second and on are displayed each for 41/42ms typical.
[20:24:30 CET] <kepstin> kind of a weird file, but the fps filter is behaving as expect. weird that the file has such a big gap at the start.
[20:25:37 CET] <kepstin> the first frame is being displayed for the duration of three frames at 24000/1001 fps, so that's what the fps filter fixes.
[20:32:57 CET] <kepstin> assuming that mkv file was made from the mp4 file, something really quite odd happened to the timestamps when it was muxed, since the mp4 has exact correct pts starting at 0.
[20:37:02 CET] <mkver> Can this be https://trac.ffmpeg.org/ticket/4536 ?
[20:45:57 CET] <durandal_1707> mkver: nope
[20:46:27 CET] <durandal_1707> kepstin: use ffmpeg -i 0.mkv -vsync cfr/passthrough 0.y4m
[20:46:36 CET] <mkver> Indeed, it's impossible because it has only one stream. I should have downloaded it before commenting.
[20:53:45 CET] <kepstin> durandal_1707: hmm. so from `ffmpeg -i 0.mkv -vsync cfr -vframes 48 -f framecrc -` I see that it makes 2 copies of the first frame and 2 copies of the second frame to fill in the gap
[20:55:11 CET] <durandal_1707> just like 1.mp4
[20:55:53 CET] <kepstin> so from a file with frame 1 at time 0 and frame 2 at time 125 (all ms, rounded to integers), it's made a file with frame 1 at times 0 and 41, and frame 2 at times 84, 125
[21:01:07 CET] <kepstin> how did the dup frames get dropped when that mkv was made? it should have kept the frame at ms 0 and the frame at ms 82 and dropped the duplicates at 41 and 125 if it wanted to preserve correct timing during video playback
[21:01:55 CET] <kepstin> what it instead did was move the start of the second frame to ~41ms after it was supposed to appear :/
[21:03:48 CET] <durandal_1707> kepstin: the frames are type B, looks like decoder may not output them at will
[21:06:55 CET] <kepstin> ... huh. that mkv files has two frames with pts 0, then one at pts 42, then one at pts 125.
[21:07:08 CET] <kepstin> unless i'm reading ffprobe -show_packets wrong
[21:08:55 CET] <kepstin> the fps filter only receives as input one frame with pts 0, then one frame with pts 125.
[21:15:09 CET] <kepstin> i'm really curious how this input file got made with such messed up frame timestamps, if i do something simple like "ffmpeg -i 1.mp4 -c:v libx264 2.mkv" then it preserves all the frames with correct pts values
[21:20:11 CET] <kepstin> anyways, the proposed rounding behaviour option will work around whatever dropped duplicate frames without preserving frame start timestamps on this particular file, but i'm thinking that might be more of a coincidence than anything else, and it might not even work on other files (if e.g. there was a longer run of duplicate frames or whatnot).
[21:57:00 CET] <durandal_1707> kepstin: no, it exactly should work like vsync cfr
[22:00:10 CET] <kepstin> hmm, well, the current behaviour does exactly what the file's timestamps say to do, but sure, an optional thing that makes it behave like -vsync cfr for compatibility with people who rely on that behaviour makes sense.
[00:00:00 CET] --- Wed Oct 30 2019
1
0
[00:20:36 CET] <cards> What's a common / technical / ADA name for subtitles intended for the hearing impared? ie, they contain extra information about background noises and identify the speaker's name
[00:23:09 CET] <JEEB> they're often noted as captions as opposed to subtitles. the disposition seems to be called "hearing impaired" in FFmpeg, and you can check the DVB specs regarding those if ye want
[00:24:25 CET] <cards> yeah, there seems to be a ton of nuance in technicalities of subtitles, closed captions, etc and their over-the-air transmission and disc encoding schemes. But I do recall some 4 letter acronym at one point
[00:27:11 CET] <cards> and apparently "hearing impared" is like calling someone a midget, and the NAD is asking people to use the word "deaf" again. :S
[00:29:39 CET] <cards> the acronym i'm looking for might be something like DHHS or DHHC for "Deaf & Heard of Hearing" Captions or Subtitles
[00:33:49 CET] <mayli> hey, how to use ffprobe the -skip_frame nokey and get the rigth coded_picture_number?
[00:40:58 CET] <ironm> kepstin, I got it: ffmpeg -loop 1 -r 1/10 -i BA10-header.png -c:v libx264 -r 50 -t 3 -pix_fmt yuv420p B10-head-x264.mp4
[00:41:21 CET] <ironm> it is working with those GoPro 7 MP4 files
[00:41:50 CET] <ironm> BA10-header.png: PNG image data, 3840 x 2160, 8-bit/color RGBA, non-interlaced
[00:47:18 CET] <cards> Think I found my answer. Assuming this is accurate adopted information.
[00:47:21 CET] <cards> > SDH subtitles are subtitles for the deaf and hard of hearing. Subtitles for the deaf and hard of hearing are a transcription - they are subtitles in the same language as the spoken dialogue, with added information for those who cannot hear the environmental sounds or lyrics.
[00:47:57 CET] <cards> With that, I'm going to use English.srt and English_SDH.srt
[00:49:25 CET] <cards> references https://www.rev.com/blog/sdh-subtitles-for-the-deaf-and-hard-of-hearing | https://blog.ai-media.tv/blog/what-is-sdh | https://www.121captions.com/2015/06/14/sdh-subtitles-deaf/
[00:53:03 CET] <Retal> Hello guys
[00:53:03 CET] <Retal> gptid/4dd123d4-a65e-11e8-a21e-0cc47a6ad8a8 FAULTED
[00:53:03 CET] <Retal> How to dtermine from CLI faluted disk phosical SN?
[00:56:06 CET] <nicolas17> Retal: are you sure you're in the right channel?
[00:59:13 CET] <Retal> :D :D nicolas17, soorry
[01:09:52 CET] <realies> having trouble converting a wav file to raw and from raw back to wav
[01:10:58 CET] <realies> ffmpeg -f s16le -ac 1 -ar 48000 i.raw o.wav, Output file #0 does not contain any stream
[01:11:38 CET] <realies> converted to raw with ffmpeg -i z.wav -f s16le -c:a pcm_s16le i.raw
[01:11:59 CET] <nicolas17> you're giving two output files and zero input files
[01:12:04 CET] <nicolas17> you're missing the -i
[01:12:28 CET] <realies> thanks 🤦
[01:13:08 CET] <Reinhilde> ideally your standard English subtitled would be SfDHI
[01:36:30 CET] <johnjay> hrm, why is ffmpeg taking 60 seconds to make a 60 minute silence file?
[01:36:44 CET] <johnjay> i specified -b:a 128k -minrate 128k -maxrate 128k to get something close to CBR
[01:36:53 CET] <johnjay> using anullsrc
[01:50:28 CET] <klaxa> 60 seconds for 60 minutes sounds not too bad
[01:52:04 CET] <furq> i'm guessing it's a lossy codec from the bitrate in which case yeah, that's to be expected
[01:53:54 CET] <DHE> still, I'd expect it to take more like 4-5 seconds on my own PC
[01:54:06 CET] <klaxa> well, no codec was given
[01:54:19 CET] <klaxa> for all we know he used -c:a flac and -b:a was overridden :P
[01:54:23 CET] <DHE> hahaha
[01:54:31 CET] <DHE> I'm guessing AAC or such
[01:54:47 CET] <furq> i'd expect flac to take a while as well
[01:55:12 CET] <klaxa> is encoding silence very much faster in general though?
[01:55:24 CET] <furq> i'm sure you could have some special fastpath for encoding long files where every sample is the same
[01:55:25 CET] <klaxa> i mean i guess there's a lot of shortcuts a codec can take
[01:55:32 CET] <DHE> depends. some codecs don't care, some do vary time by content
[01:55:33 CET] <furq> but i can't imagine anyone has bothered
[01:55:44 CET] <furq> it's not a very common use case
[01:56:41 CET] <klaxa> might be faster to generate with a short sample and a lot of concat muxes
[01:56:59 CET] <furq> yeah but could you write that command in less than 60 seconds
[01:57:30 CET] <klaxa> but think of the time savings in the long run! maybe i need a lot of silent files of specific length?
[02:07:42 CET] <DHE> then I suggest having a long file and truncating it
[02:16:27 CET] <klaxa> good idea
[02:48:12 CET] <realies> can you gpu accelerate the showwaves filter?
[02:51:32 CET] <realies> or reduce the fft so it goes faster?
[03:02:15 CET] <AlexApps> Hello, I've tried to loop an audio clip over an image sequence provided by cat (see below) using stream_loop, but the clip only plays once. Can anybody help me figure out why?
[03:02:16 CET] <AlexApps> cat *.png | ffmpeg -stream_loop -1 -i loop.mp3 -f image2pipe -framerate 1/5 -vcodec png -i pipe:0 -filter_complex [1]scale=force_original_aspect_ratio=decrease:h=1080:w=1920[s0];[s0]pad=color=white:h=1080:w=1920:x=-1:y=-1[s1] -map 0 -map [s1] -f mp4 -c:a aac -c:v libx264 -coder ac -fflags +shortest -pix_fmt yuv420p -r 30 video.mp4
[03:12:10 CET] <AlexApps> Anybody have any advice?
[04:43:23 CET] <KombuchaKip> Is the read_apic() function (https://ffmpeg.org/doxygen/trunk/id3v2_8c-source.html#l00441) apply to any type of media file, or is it strictly for mp3?
[04:44:17 CET] <kepstin> KombuchaKip: that's an internal method of the id3 code which is only for mp3, yeah
[04:44:45 CET] <kepstin> (well, sometimes people throw id3 tags on non-mp3 stuff, but i'm not sure if ffmpeg supports reading those)
[04:44:50 CET] <KombuchaKip> kepstin: Thank you. What do you recommend I take a look at for a general routine that can find artwork for any input?
[04:45:16 CET] <kepstin> KombuchaKip: for all formats that ffmpeg can read artwork from, it's exposed by the demuxer as a video stream
[04:45:56 CET] <kepstin> KombuchaKip: but it might be easier to use a dedicated music tagging library instead of ffmpeg, depending what you're doing
[04:45:56 CET] <KombuchaKip> kepstin: Yes, I saw that, but I wasn't sure if I should look for AVMEDIA_TYPE_AUDIO streams or ones with AV_DISPOSITION_ATTACHED_PIC disposition bit set?
[04:46:08 CET] <kepstin> well, audio streams are audio...
[04:46:14 CET] <kepstin> so it must be the other one
[04:46:15 CET] <KombuchaKip> kepstin: I need to progmatically extract album art.
[04:46:37 CET] <KombuchaKip> kepstin: Sorry, I meant AVMEDIA_TYPE_VIDEO
[04:47:02 CET] <kepstin> it'll be a video stream, as i said. I'm not sure exactly which flags are set.
[04:47:36 CET] <KombuchaKip> kepstin: Thanks.
[04:47:46 CET] <kepstin> I'd suggest you consider looking at something like taglib (c++) or mutagen (python) which are dedicated audio file tagging libraries, both of which support album art stuff in a more complete way than ffmpeg.
[04:49:25 CET] <KombuchaKip> kepstin: I'd prefer not to add another dependency to my code. I also don't need to motify any metadata. I just need to extract artwork and that's it.
[04:49:46 CET] <kepstin> in particular, i don't think ffmpeg supports multiple images well, if at all
[04:49:56 CET] <kepstin> if all you have is a single cover image it might be ok i guess.
[04:53:12 CET] <KombuchaKip> kepstin: Yeah I'm only looking to extract one. I'll look at the packet size and extract whichever one is the larget.
[04:53:14 CET] <KombuchaKip> *largest
[07:07:27 CET] <andyandybobandy> Hello! I'm trying to convert mkvs to mp4 with copied streams (HEVC/AAC) but only one language (audio&sub), but I'm asked to specify an encoder even though I specify copy - cmd: http://ix.io/206Q output: http://ix.io/206P
[07:24:33 CET] <furq> andyandybobandy: you're not mapping the video, so output stream 0.1 is one of the subtitle streams
[07:27:22 CET] <andyandybobandy> furq: yeah I thought that might be a problem, but I also tried adding a '-map 0:v' as the first map and it just shifted the stream numbers but no different really.
[07:27:33 CET] <furq> well you'll need -map 0:v anyway
[07:27:44 CET] <furq> -c:s mov_text should work for text subtitles
[07:27:47 CET] <furq> not sure why that's not autoselected
[07:28:35 CET] <andyandybobandy> is that standard for mp4?
[07:28:44 CET] <furq> that's the only one mp4 supports afaik
[07:29:33 CET] <andyandybobandy> furq: great, thanks! working well when I specify sub codec
[07:29:50 CET] <furq> browser players tend to just ignore it, but this is hevc so that's not going to work anyway
[07:29:58 CET] <furq> it should work fine in a proper player
[09:34:23 CET] <Glumetu> hello. Can u please help me i'm tryin to trasnform a footage that is 1080 at 50 fps interlaced into a 1080 at 25 fps progresive how can i combine fileds into frames?
[09:35:47 CET] <JEEB> deinterlace filter like yadif etc
[09:36:41 CET] <Glumetu> tryed that it doesn;t give me 25 fps it just deinterlaces it
[09:36:57 CET] <Glumetu> i read in manul about filters filedmacch
[09:37:08 CET] <Glumetu> fieldmatch
[09:37:12 CET] <JEEB> so is your content decoded as separate fields?
[09:37:37 CET] <JEEB> also yes, fieldmatch will just stick fields together
[09:37:52 CET] <JEEB> I'm having issues deciphering what exactly you have and what you want to do with it
[09:38:12 CET] <JEEB> a) when you decode with FFmpeg, do the fields come combed together as a "frame" or sepaate field pictures?
[09:38:25 CET] <JEEB> b) Do you want to just deinterlace or actually field-match it?
[09:39:14 CET] <Glumetu> i got a interlaced footage top fields first at 50 fps and i'm trying to get it to progresive at 25 fps
[09:39:35 CET] <Glumetu> and i think deinterlacing it will lose quality ..
[09:40:01 CET] <Glumetu> so th eoption b seems more like what i need
[09:41:02 CET] <Glumetu> any tips on how i can pass the fieldmatch command to get what i need?
[09:44:00 CET] <JEEB> what do you mean with 50fps?
[09:44:09 CET] <JEEB> do you mean fields per sec or frames per sec?
[09:44:16 CET] <JEEB> do you have 100 fields per sec, or 50 fields per sec
[09:44:41 CET] <JEEB> what is teh actual content you have. it is coded interlaced but is it actually interlaced (every field is different), or telecine
[09:45:33 CET] <JEEB> telecine meaning two fields making a single image, instead of every field being its own image
[09:45:41 CET] <JEEB> you should be able to check in a scene with motion
[09:48:54 CET] <Glumetu> is a verry good question i can;t give u a good answer
[09:49:02 CET] <Glumetu> media info look like this
[09:49:08 CET] <Glumetu> Frame rate mode: Constant | Frame rate: 50.000 FPS | Scan type : Interlaced | Scan type, store method: Interleaved fields | Scan order : Top Field First
[09:51:17 CET] <furq> Glumetu: https://ffmpeg.org/ffmpeg-filters.html#weave_002c-doubleweave
[09:51:27 CET] <furq> i don't necessarily recommend using it but it sounds like what you expected yadif to do
[09:52:39 CET] <furq> yadif mode 0 will output 25fps but it'll drop every other field for reasons that will become obvious if you try using weave
[09:52:54 CET] <JEEB> Glumetu: actually *look* at the fucking content
[09:53:00 CET] <JEEB> use mpv, ffplay, whatever
[09:53:06 CET] <JEEB> vapoursynth, avisynth
[09:53:15 CET] <JEEB> you cannot see what is inside from the *metadata*
[09:53:34 CET] <JEEB> metadata will only tell you how it is *coded*
[09:53:39 CET] <JEEB> not what it *contains*
[10:00:43 CET] <Glumetu> let's say is coded interlaced cause u can see jaggy edges on motion ... and that si what i'm trying to get rid of
[10:01:45 CET] <furq> so what was the problem with yadif
[10:02:12 CET] <Glumetu> the problem is that i can;t get it to give me 25 fps .. but is true it deinterlaces
[10:02:31 CET] <furq> just -vf yadif will output 25fps
[10:03:07 CET] <durandal_1707> Glumetu: what yadif gives you instead?
[10:03:08 CET] <Glumetu> i tryed -filter:v yadif=0
[10:03:18 CET] <Glumetu> still gives me 50
[10:03:46 CET] <Glumetu> same as my originl footage but deinterlaces avery frame
[10:04:26 CET] <durandal_1707> Glumetu: perhaps you need to add deint=all ?
[10:04:42 CET] <furq> that should be on by default
[10:05:59 CET] <Glumetu> now i could just add -r 25 to get 25 frames per second but i was looking intro weaving 2 fields intro one frame...
[10:06:19 CET] <furq> yeah that's not going to work
[10:06:29 CET] <Glumetu> but i think JEBB is right meybe i don;t realy have fields .... i just have interlaced footge
[10:06:29 CET] <furq> weaving two fields into one frame is what your video player is doing with deinterlacing off
[10:06:36 CET] <furq> which is why it looks like shit
[10:07:09 CET] <Glumetu> and because i don;t have fields i can't combiene 2 fields intro a frame to get to progresive
[10:07:18 CET] <durandal_1707> Glumetu: please provide short sample
[10:07:32 CET] <furq> yeah
[10:08:08 CET] <durandal_1707> Glumetu: there is weave filter to combine 2 separate frames/fields into single frame (2 fields)
[10:14:13 CET] <Glumetu> Short sample 2 s > 500 MB https://we.tl/t-BIVHnBrZS9
[10:16:45 CET] <durandal_1707> Glumetu: what is it 16K or you use uncompressed video?
[10:17:31 CET] <Glumetu> qtrle (animation)
[10:17:48 CET] <durandal_1707> lol
[10:18:33 CET] <durandal_1707> thats like uncompressed video when used with noisy content
[10:25:41 CET] <durandal_1707> Glumetu: video is marked as progressive, and does not appears to be interlaced at all
[11:30:24 CET] <void09> found a video that ffmpeg produces mostly incorrent snapshots of, like this: https://i.imgur.com/DTdjNUo.png a bluray m2ts file
[11:30:55 CET] <furq> how did you take the screenshot
[11:30:59 CET] <void09> I also get those gray frames in mpv when seeiking in the video
[11:32:18 CET] <void09> ffmpeg -ss [timestamp] -i fie.m2ts -y -frames:v 1 -vf scale=w=trunc(if(gte(sar\,1)\,iw*sar\,iw)/ohsub)*ohsub:h=trunc(if(gte(sar\,1)\,ih\,ih/sar)/ovsub)*ovsub,setsar=1' file.png
[11:32:43 CET] <void09> ffmpeg -ss [timestamp] -i fie.m2ts -y -frames:v 1 -vf 'scale=w=trunc(if(gte(sar\,1)\,iw*sar\,iw)/ohsub)*ohsub:h=trunc(if(gte(sar\,1)\,ih\,ih/sar)/ovsub)*ovsub,setsar=1' file.png
[11:33:30 CET] <furq> you probably need -ss after -i with mpegts since it has no seek index
[11:34:09 CET] <void09> ohh ;o what difference does it make, logically ?
[11:34:30 CET] <furq> well the corruption is because it's not seeking back to the previous idr frame and decoding it from there
[11:34:58 CET] <furq> -ss after -i will decode the stream up to the timestamp you asked for
[11:35:29 CET] <void09> all of it ?
[11:35:36 CET] <BtbN> yes
[11:35:41 CET] <furq> before -i it'll use the seek index to find the previous idr frame and then decode from there
[11:35:46 CET] <BtbN> That's the only way to reliably seek
[11:35:48 CET] <furq> so i assume that doesn't work well with mpegts
[11:35:58 CET] <furq> i'm not sure what it actually tries to do as an input option
[11:36:26 CET] <BtbN> you could also try to combine the two methods, to fast-forward skip the largest chunk first, and then precisely decode-seek to a keyframe
[11:36:55 CET] <BtbN> I think for mpegts it will just make a wildly inaccurate guess on the bitrate, and then jump forward based on that guess.
[11:37:16 CET] <furq> nice
[11:37:43 CET] <furq> not sure why seeking wouldn't work in mpv but i guess that's not a question for this channel
[11:37:49 CET] <void09> BtbN: I wouldn't know how to do that :\
[11:37:52 CET] <furq> it's always worked for me but i guess it's an "if you're lucky" thing
[11:38:04 CET] <void09> furq: it does, it just produces the first second or so or garbage video
[11:38:11 CET] <furq> yeah i mean i've never seen that
[11:38:22 CET] <void09> me neither, it must be something specific to this bluray disc
[11:38:24 CET] <BtbN> mpv will do the same as ffmpeg does. In that it just jumps to a random frame it guessed based on the bitrate
[11:38:29 CET] <void09> I mean i have seent it, very rarely
[11:38:32 CET] <furq> i guess it's more likely with higher bitrates
[11:38:35 CET] <BtbN> and then it will play broken output until it hits the next IDR frame
[11:39:14 CET] <furq> i tried with a few .ts files i have here and it always just found the nearest idr frame
[11:39:33 CET] <void09> vlc does the same too
[11:39:35 CET] <furq> but they're all pretty low bitrate so maybe it just fills the cache and sees if it finds one
[11:39:39 CET] <BtbN> Maybe m2ts is just especially broken
[11:40:01 CET] <void09> Monty Python the meaning of life bd
[11:40:11 CET] <BtbN> But yeah, -ss after -i should entirely avoid the issue.
[11:40:26 CET] <BtbN> And be actually precise timing, not some wild guess
[11:40:43 CET] <void09> yes but taking many screenshots at random times from a 29GB file by seeking all of it ? :\
[11:40:56 CET] <void09> oh wait, seeking is not decoding, right ?
[11:41:05 CET] <BtbN> if you put it after -i, it will
[11:41:11 CET] <furq> if you want to take many screenshots then use the select filter and do it all in one pass
[11:41:14 CET] <BtbN> like I said, try combining the two
[11:41:26 CET] <furq> or just take them with mpv
[11:41:36 CET] <BtbN> seek the largest chunk with -ss before -i, and then add the lase 30 seconds or so after -i
[11:41:39 CET] <void09> furq: mpv would probably produce the same results as it uses ffmpeg
[11:41:53 CET] <furq> it doesn't take screenshots by invoking ffmpeg -ss
[11:42:01 CET] <void09> BtbN: sorry but i have no idea how to do that
[11:42:06 CET] <furq> if it has the correct frame on screen then it'll take a correct screenshot of it
[11:42:16 CET] <BtbN> I have no idea how you can have no idea how to do that oO
[11:42:23 CET] <BtbN> Literally just put one -ss before and one after -i
[11:42:32 CET] <void09> oh
[11:42:44 CET] <furq> does that actually work
[11:42:48 CET] <BtbN> it should
[11:43:17 CET] <BtbN> it will still be largely inaccurate, due to no seek index
[11:43:36 CET] <BtbN> but seeking 30 extra seconds post-decode should ensure you hit an IDR frame
[11:44:09 CET] <furq> does -ss before -i still actually get you to the right timestamp
[11:44:23 CET] <BtbN> If there is no seek index, it will put you wherever it feels like
[11:44:32 CET] <BtbN> But it will be fast at doing so
[11:44:49 CET] <void09> bd keyframe is about every 40 frames or so, so 3 secounds before should be enough
[11:44:58 CET] <furq> yeah that's the part of this where i don't get how using -ss twice would work
[11:45:18 CET] <BtbN> Well, if the goal is to just get some screenshot, and the precision is not overly important.
[11:45:34 CET] <BtbN> If you want a screenshot of a precise timestamp, there is no way around decoding the whole thing
[11:46:39 CET] <furq> anyway if you want multiple screenshots at known timestamps then -vf "select='eq(t,1:23:45)'+'eq(t,2:34:56)',scale=whatever" -vsync 0 shot%d.png
[11:46:48 CET] <furq> that will decode the whole thing but only once instead of seeking through the file n times
[11:47:38 CET] <void09> BtbN: precision is very important .. i have implemented an algorithm so every nth screenshot always has the same timestamp
[11:49:01 CET] <BtbN> yeah, -ss after -i is the only viable thing to do then
[11:49:31 CET] <void09> but this can take hours
[11:49:48 CET] <void09> so doing -ss before and after -i will not result in an accurate screenshot ?
[11:50:09 CET] <void09> it's just a stream
[11:50:15 CET] <void09> no timestamps ? :\
[11:50:46 CET] <furq> -i foo -ss 30 means decode and discard 30 seconds of the input
[11:51:00 CET] <furq> so if it seeks to the wrong place then it's just going to decode 30 seconds from that wrong place
[11:56:18 CET] <void09> right, so it seeks to a byte position, not a time position, if it's not decoding the m2ts
[11:56:49 CET] <furq> yeah that would normally be mapped in a seek index
[11:56:58 CET] <furq> so it just has to make a wild guess if there isn't one
[11:57:45 CET] <void09> blah this sucks
[11:57:55 CET] <furq> how many screenshots do you need
[11:58:01 CET] <void09> arbitrary number of them
[11:58:09 CET] <furq> oh
[11:58:11 CET] <void09> 1-10 usually, whatever the user inputs
[11:58:20 CET] <void09> I am making a little program
[11:58:37 CET] <furq> yeah i was going to say for a large enough number decode and vf select would be faster
[11:58:41 CET] <furq> but 10 probably isn't large enough
[11:58:56 CET] <furq> it'll definitely be quicker than -ss 10 times though
[11:58:58 CET] <void09> of course it will be faster than decoding the video 10 times
[11:59:38 CET] <furq> if it was like 50 then i would do that even if there was a seek index
[11:59:39 CET] <void09> but still ,isn't it a ffmpeg bug that it does not correctly decode the frame ?
[11:59:58 CET] <furq> it's more a missing feature than a bug
[12:00:17 CET] <void09> i'd say it's a bug, it should not output an incorrectly decoded frame
[12:00:22 CET] <furq> it's decoding the frame correctly but you could argue it should seek backwards to find an IDR frame first
[12:00:37 CET] <void09> well, it's not decoding it correctly then :D
[12:00:50 CET] <void09> cause the frame depends on that IDR frame
[12:00:59 CET] <furq> i'll leave that semantic argument alone
[12:01:32 CET] <bencoh> :)
[12:01:36 CET] <furq> it's hard to cover all bases with this because sometimes that previous idr frame is missing or too far back to buffer
[12:02:09 CET] <void09> well with bluray it's pretty constant I think
[12:02:09 CET] <furq> and the current behaviour is technically doing what you asked for, just in an annoying way
[12:02:51 CET] <furq> sure but not all files with no seek index are from bluray
[12:03:30 CET] <furq> and with something like iptv mpegts you'd expect to start in the middle of a gop
[12:04:54 CET] <furq> the point being that if you do file a ticket it should probably be a feature request, not a bug report
[12:07:13 CET] <void09> furq: does that eq(t.. )+... command have any drawbacks?
[12:28:38 CET] <furq> not other than it decoding the entire file
[13:06:33 CET] <seni> if I'm compiling ffmpeg with the sole purpose of decoding arbitrary audio files into WAVPCM, what flags should I be setting? I've looked inside configure but there are so many options... it seems to be like I should probably be disabling everything except maybe 3 things?
[13:07:52 CET] <Reinhilde> you'll want to enable most audio codecs
[13:14:37 CET] <furq> at minimum you'll need every audio decoder, pcm encoder, mp3/m4a/ogg/flac/etc demuxers, wav muxer, ac3/aac parsers, file protocol
[13:14:42 CET] <furq> probably more stuff i forgot
[13:15:38 CET] <furq> check ./configure --list-decoders etc
[13:16:44 CET] <furq> also just generally don't do this unless you're shipping the binary with something else
[13:29:13 CET] <DHE> seni: when you mean "sole purpose", you mean you want to omit all other things?
[13:45:32 CET] <seni> DHE: yes. i have an app with which you can import audio files, and to process them I need them to be in WAVPCM
[13:49:30 CET] <seni> thanks guys
[13:50:12 CET] <DHE> sure. but a default build can also do that, but it takes longer to make and is like 20 megabytes large.
[15:57:00 CET] <Ingvix> Any idea why 'ffmpeg -ss 74.4 -i "input.mkv" -map_chapters -1 -to 00:25:21.920 -c:a copy -c:v copy "output.mkv"' works correctly, outputting the video between the timestamps but then 'ffmpeg -ss 74.4 -i "input.mkv" -map_chapters -1 -to 00:25:21.920 -c:a copy -c:v copy "output.mkv"' outputs fom -ss value to the end of video and not to -to value? The only differences I see are the timestamps. My version is
[15:57:00 CET] <Ingvix> N-86950-g1bef008 on Windows.
[15:57:24 CET] <Ingvix> whops, double paste
[15:57:41 CET] <Ingvix> Here's the second command: '
[15:57:41 CET] <Ingvix> ffmpeg -ss 1521.7 -i "input.mkv" -map_chapters -1 -to 00:46:49.610 -c:a copy -c:v copy "output2.mkv"'
[15:59:05 CET] <furq> Ingvix: those should both be broken
[15:59:16 CET] <Ingvix> oh
[15:59:21 CET] <Ingvix> how so?
[15:59:35 CET] <furq> -t/-to as an output option won't do what you expect if you use -ss as an input option
[16:00:25 CET] <furq> -ss 30 -i foo -to 40 will give you 30 to 1:10
[16:01:11 CET] <furq> -ss 30 -to 40 -i foo should work though
[16:01:17 CET] <furq> or both as output options but that'll take longer
[16:03:05 CET] <Ingvix> I see
[16:03:17 CET] <Ingvix> oh, I tried to insert to in front of -i but it gave some error. I'll try again if I just typed it wrong
[16:03:27 CET] <Ingvix> *-to
[16:06:11 CET] <Ingvix> I had them both after -i before but that caused video to not show until the first keyframe in the clip when inserting them before -i splits it before next keyframe (or closest, I'm not sure)
[16:09:13 CET] <Ingvix> I'm still getting error "Option to (record or transcode stop time) cannot be applied to input url input.mkv -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to. Error parsing optios for input file input.mkv. Error opening input files: Invalid argument"
[16:11:01 CET] <Ingvix> I wonder if my version is too outdated or was it just misconception on your end
[16:16:02 CET] <Ingvix> -t seems to work so I guess I can use that. Just need to calculate a bit. Unless someone knows better?
[16:18:36 CET] <Ingvix> docs do imply that -to should work with input file as well. Maybe I should try to update my ffmpeg
[16:32:50 CET] <Ingvix> yup, latest stable build fixed the issue
[19:06:27 CET] <phobosoph> hi
[19:06:44 CET] <phobosoph> still have the issue of youtube live stream stopping to work after some hours
[19:06:46 CET] <phobosoph> Failed to update header with correct duration.
[19:07:01 CET] <phobosoph> also the speed suddenly goes up from normal 1x to e.g. 19.3x !
[19:07:05 CET] <phobosoph> I am not using -r
[19:07:07 CET] <phobosoph> *-re
[19:07:19 CET] <phobosoph> the crazy thing is that ffmpeg still happily streams away, not aware of issues
[19:07:35 CET] <phobosoph> but youtube stops showing the stream - and when this takes for too long youtube will finish the stream
[19:07:51 CET] <phobosoph> so the question is why the speed suddenly goes up from 1.x after many hours of correct streaming?
[19:07:55 CET] <phobosoph> wtf
[19:07:58 CET] <phobosoph> pls help
[19:08:07 CET] <phobosoph> Failed to update header with correct duration.149.2kbits/s speed=19.3x
[19:08:21 CET] <phobosoph> this was logged as I noticed the youtube stream doesn't work anymore
[19:08:29 CET] <phobosoph> I restarted ffmpeg and now the youtube stream works again
[19:08:33 CET] <phobosoph> and speed is back to 1.x
[19:09:24 CET] <phobosoph> frame=12920 fps= 30 q=-1.0 size= 323841kB time=00:07:10.47 bitrate=6162.8kbits/s speed= 1x
[19:09:30 CET] <phobosoph> when it works ^
[19:09:42 CET] <phobosoph> but after some hours speed suddenly climbs dramatically and then youtube doesn't like the data anymore
[19:10:09 CET] <phobosoph> also, why is the bitrate so low for a 19.3x speed?
[19:10:13 CET] <phobosoph> something is off
[19:10:14 CET] <phobosoph> hmm
[19:13:19 CET] <phobosoph> anyone?
[19:13:20 CET] <phobosoph> :/
[19:15:53 CET] <ncouloute> I'm trying to go by the PTS_TIME in the ffmpeg debug log but the fps filter is further adjusting the frames. Is there any way to get ffmpeg to not move the PTS_TIME around. I played around with the fps filter settings but cant get it to be frame accurate. It seems I'm losing between 1-2 frames due to rounding. Hard to account for when it will round a frame or not. I suppose I can look at the Parsed_fps log entries but
[19:15:53 CET] <ncouloute> was hoping there was a better way.
[19:17:09 CET] <JEEB> if you don't want ffmpeg.c to touch the input demuxer timestamps, -vsync passthrough -copyts (you can then verify with -debug_ts that the timestamps aren't getting mangled within ffmpeg.c)
[19:17:44 CET] <JEEB> although I'm not fully sure what you're talking about :P
[19:20:54 CET] <ncouloute> Yeah its a bit hard to explain in the irc chat length.. but I'm converting any given file or files to 60000/1001 constant frame rate. So I suppose that wont work since vsync passthrough will make it vfr. I couldnt really understand the output from debug_ts but the loglevel debug output seems to make it seem like it is changing the fps after the concat.
[19:22:23 CET] <JEEB> debug_ts just logs the timestamps at each location
[19:22:36 CET] <JEEB> demux, decoding, filtering, encoding, muxing
[19:22:54 CET] <JEEB> and for various there's actually two
[19:23:02 CET] <JEEB> one for pushing something in, another for pulling something out
[19:23:04 CET] <JEEB> like for filtering
[19:23:05 CET] <JEEB> :P
[19:23:13 CET] <JEEB> (or decoding, or encoding)
[19:36:30 CET] <ncouloute> I guess my assumption that the fps filter would be frame accurate is just not the case. Doesnt always pick the right frame. Changing the rounding algorithm helped a bit but other areas it made it worse. Am I right to assume that for a vfr->cfr conversion there would have to be some sort of frame inaccuracy. Since a given frame for cfr is fixed. so you could have a vfr frame between that fixed length? I could be
[19:36:30 CET] <ncouloute> completely wrong though lol
[19:38:48 CET] <durandal_1707> ncouloute: fps filter just picks first frame encountered when duplicating frames
[19:44:27 CET] <durandal_1707> ncouloute: how you want timestamp gaps to be filled ?
[20:20:11 CET] <DanielTheKitsune> Hello, what codec is fine for low-CPU (like 1 GHz or less) environments, where bandwidth and HDD usage aren't important
[20:20:13 CET] <DanielTheKitsune> ?
[20:24:56 CET] <ritsuka> does your low-CPU have a hardware decoder?
[20:26:53 CET] <DanielTheKitsune> obviously nope
[20:27:07 CET] <DanielTheKitsune> or, even if it has, I don't want to use it
[20:28:00 CET] <DanielTheKitsune> ritsuka: actually, why it looks like every computer has a hardware video decoder of any kind?
[20:28:19 CET] <DanielTheKitsune> does every computer has a PCIe GPU?
[20:28:50 CET] <DanielTheKitsune> well, enough question ranting
[20:28:56 CET] <DanielTheKitsune> (sorry)
[20:29:03 CET] <ritsuka> because even the cheaper raspberry pi has got an hardware decoder
[20:29:16 CET] <DanielTheKitsune> yes, I own a RPi ;)
[20:29:26 CET] <DanielTheKitsune> but the low-CPU environment is actually a Pentium III
[20:29:48 CET] <DanielTheKitsune> with no GPU either, other than the built in the motherboard
[20:29:49 CET] <ritsuka> sell it and buy another rpi, it will be faster too :P
[20:29:59 CET] <DanielTheKitsune> meh, I am not allowed to sell it
[20:30:16 CET] <DanielTheKitsune> and I can't afford to buy another RPi either
[20:30:24 CET] <DanielTheKitsune> I am barely paying the one I currently own ;)
[20:31:31 CET] <DanielTheKitsune> also, this usecase will be handy for other environments, for example, when attempting to generate as little heat as possible, or spending as little power as possible, even if there is enough power to decode regular h264/h265 @ 4K
[21:07:18 CET] <ncouloute> @durandal_1707: Sorry for late response. I seek to various spots in the file and need the frame to be same as it was in the original file. I'm almost always converting to a higher framerate. So I understand there will be duplication. Trying to track down why the fps filter needs to move the frame. Example: Read frame with in pts 52523516, out pts 52471 Writing frame with pts 52470 to pts 52470
[21:09:27 CET] <durandal_1707> ncouloute: i see, nothing obvious
[21:09:46 CET] <durandal_1707> ncouloute: please share sample and command you so this can be reproduced
[21:19:17 CET] <ncouloute> Alright. I'm going to need to figure out how to cut this down since its large files from a GoPro 5 that I'm concatenating. I'll see if I can isolate the issue down to a few files
[22:23:07 CET] <Hello71> rpi zero is like $10
[22:23:36 CET] <Hello71> pretty sure that's no more than a day of work in places with internet access
[22:24:46 CET] <ncouloute> oh he gone. Is there a certain way one should upload a sample and command? saw there was one for bug reports but dont know for sure if this is a bug per say. Thinking about just upload to a random upload site and then put the command in a pastebin. =/
[00:00:00 CET] --- Wed Oct 30 2019
1
0
[00:10:24 CET] <BtbN> makes me wonder if nvenc or ffmpeg is messing that up, hm
[02:20:57 CET] <philipl> Lynne: BtbN: I'm pretty confident the problem is in the transfer logic. If I start with nvdec decoding to cuda hw fmt, then hwdownload,format=p010 and then upload to vulkan and then download again, it's fine.
[02:21:14 CET] <philipl> but anytime there's a cuda -> vulkan or vulkan -> cuda transfer it seems to stuff up
[02:32:21 CET] <Lynne> http://download.opencontent.netflix.com/?prefix=AV1/Sparks/
[02:33:27 CET] <Lynne> good job netflix, you couldn't write properly timestamped ivf files with gpac so now you're using annexb, something that should never have existed in the first place
[03:07:24 CET] <jamrial> Lynne: they aren't even annexb, they are raw obus
[03:14:02 CET] <Lynne> I thought it was weird dav1d didn't work, but libaom had some references to annexb with an .obu extension
[07:28:48 CET] <cone-787> ffmpeg 03Steven Liu 07master:1a109fba5499: avformat/hlsenc: move freep segment from sls_flags_filename_process after caller failed
[07:28:49 CET] <cone-787> ffmpeg 03Steven Liu 07master:22eae2d0c9fc: avformat/libmodplug: fix memleak when load modplug failed
[07:28:50 CET] <cone-787> ffmpeg 03Steven Liu 07master:7a200089641b: avformat/mpc8: fix memleak when seek table too big
[07:28:51 CET] <cone-787> ffmpeg 03Steven Liu 07master:59697e42e1b7: avformat/rl2: fix memleak when read end of file
[07:28:52 CET] <cone-787> ffmpeg 03Steven Liu 07master:991cf95fdeeb: avformat/rtmpproto: fix memleak when open rtmp failed
[07:28:53 CET] <cone-787> ffmpeg 03Steven Liu 07master:a3655a5cb2ab: avformat/smacker: fix memleak when avformat_new_stream failed
[07:28:54 CET] <cone-787> ffmpeg 03Steven Liu 07master:70c6e8406984: avformat/swfdec: fix memleak when inflateInit failed
[07:28:55 CET] <cone-787> ffmpeg 03Steven Liu 07master:68f623d64451: avformat/wc3movie: fix memleak when read content size not equvipe input size
[16:05:51 CET] <durandal_1707> i'm lost in Tokyo, please help!
[16:10:38 CET] <Lynne> exit google maps
[16:20:44 CET] <durandal_1707> Lynne: i'm lost in Tokyo, for real. And only have this irc app on cell phone
[16:21:15 CET] <nevcairiel> well you should've prepared and got a map app
[16:24:33 CET] <Lynne> durandal_1707: find east and keep walking until you see train tracks, then walk towards where you see more buildings to find a train station
[16:26:45 CET] <iive> durandal_1707, do you have working gps on the phone?
[16:31:43 CET] <JEEB> even if there is a lack of workers now to keep convenience stores open everywhere 24/7, you still have a metric crapload of them within 23ku :p
[16:32:49 CET] <JEEB> if you cannot see a single bigger road, road sign, convenience store, train or metro station or tracks or a police customer service station then Congratulations
[16:35:36 CET] <ubitux> for next time: i recommend maps.me + download the whole japan maps with wifi so you don't rely on the internet anymore
[16:35:51 CET] <ubitux> also, there are many open wifi in tokyo
[16:36:09 CET] <JEEB> yea, much better than 10 years ago
[17:09:37 CET] <Chagall> paper maps ftw
[00:00:00 CET] --- Tue Oct 29 2019
1
0
[01:00:56 CET] <oblio> howdy
[01:01:36 CET] <oblio> is there a filter for adapting videos btw aspect ratios? e.g. i have a 9:16 i want fit within a 4:5 ratio with a blurred background
[01:03:38 CET] <klaxa> https://stackoverflow.com/questions/30789367/ffmpeg-how-to-convert-vertical…
[01:16:02 CET] <oblio> klaxa: nice, thanks
[01:19:39 CET] <oblio> klaxa: do you have a suggestion if i dont want the video center cropped?
[01:42:32 CET] <Cyberworm> what do you people think about x264 vs GPU encoding?
[01:42:57 CET] <pink_mist> x264 any day of the week
[01:45:11 CET] <Cyberworm> pink_mist why? you had bad luck with GPU encoding?
[01:49:23 CET] <JEEB> it really depends on your use case
[01:49:57 CET] <JEEB> x264 can be pretty fast with alright quality, or very good at slower speeds (although to be honest with modern CPUs even the slower presets are quite fast)
[01:50:20 CET] <JEEB> on the other hand GPU encoding is usually locked to a single quality level, and generally is meant for realtime encoding
[01:50:53 CET] <JEEB> and usually optimized for low latency situations (or just no intent was made to put more buffering and capabilities into the hardware ASIC)
[01:51:20 CET] <pink_mist> yeah, basically unless you need realtime encoding, I wouldn't even consider GPU
[01:51:42 CET] <JEEB> even with realtime on a scale it often ends up being cheaper to get a beefier CPU :P
[01:51:52 CET] <DHE> I hear the rtx2000 series cards have a good nvenc chip, but at the end of the day GPU encoding is for when you need realtime or faster on 1080p at 30fps or higher
[01:52:19 CET] <JEEB> since server GPUs are stupid expensive and your server vendor will kill you for putting a normal thing there
[01:52:25 CET] <JEEB> (like, losing support etc)
[01:53:57 CET] <Cyberworm> <JEEB> on the other hand GPU encoding is usually locked to a single quality level : what do you mean i can choose higher quality or low quality
[01:55:12 CET] <JEEB> if you have the hardware you can start making your own tests if you really want, but if you just want to offload it onto the GPU no matter what, then just use the GPU :P
[01:56:55 CET] <JEEB> DHE: yea the ASICs have been getting better but I'm still not sure how scalable those are. like, if you want 5 or more outputs per input, and then figuring out how many inputs you can stick onto a box :P of course if you really don't care about handling "actual servers" with support etc it might get much, much simpler.
[01:58:50 CET] <DHE> JEEB: unless you have the server grade GPUs, nvidia's drivers will limit you to 2 streams regardless of how many cards you have.
[01:59:00 CET] <JEEB> yea
[01:59:00 CET] <DHE> assholes
[01:59:24 CET] <JEEB> of course you can patch the drivers apparently, but that goes into the whole "is this thing legit" part of business
[01:59:40 CET] <DHE> that said, it is my understanding that said server grade GPUs scale horizontally nigh-perfectly. if it can do 320fps at 1080p, it can probably do 10x 30fps 1080p streams
[02:00:06 CET] <JEEB> right
[02:01:53 CET] <JEEB> also x264 could be optimized to share stuff between instances, like I think x265 does
[02:03:29 CET] <Cyberworm> i am encoding my computer screen @ 1280x720 using 5 fps
[02:03:48 CET] <Cyberworm> and i want smallest file possible
[02:04:04 CET] <JEEB> if you want best compression then just use x264 :P
[02:04:13 CET] <JEEB> although to be honest I would do capture lossless
[02:04:32 CET] <JEEB> unless you need that thing to be pushable to a service right away
[02:04:47 CET] <Reinhilde> vp9 if your system can run it
[02:04:50 CET] <Reinhilde> mine can't
[02:05:00 CET] <Cyberworm> capture lossless and compress to smaller file later?
[02:05:00 CET] <JEEB> too bad all OSS vp9 encoders still suck
[02:05:03 CET] <JEEB> Cyberworm: yea
[02:05:13 CET] <JEEB> that way you don't need to care about encoding speed during the capture
[02:05:15 CET] <Cyberworm> how do i capture lossless using obs-studio
[02:05:31 CET] <JEEB> this is #ffmpeg, I'm sorry :P
[02:05:49 CET] <Cyberworm> reinhilde what is better quality/size? vp9 or x265
[02:06:02 CET] <Cyberworm> jeeb sorry you are right
[02:06:05 CET] <Reinhilde> try both
[02:06:06 CET] <JEEB> VP9 is a format, x264 is an encoder
[02:06:09 CET] <JEEB> *x265
[02:06:20 CET] <Reinhilde> JEEB: libvpx-vp9 is an encoder
[02:06:22 CET] <Cyberworm> reinhilde what is better quality/size? libx_vp9 or x265
[02:06:28 CET] <JEEB> Reinhilde: yes but that is libvpx
[02:06:33 CET] <Reinhilde> and it doesn't work on my vps
[02:06:35 CET] <JEEB> not just "VP9"
[02:06:51 CET] <Reinhilde> Cyberworm: try both and see where you go
[02:06:56 CET] <Cyberworm> does ffmpeg use same vp9 encoder that youtube uses?
[02:07:08 CET] <JEEB> Cyberworm: libvpx has awful psychovisual optimizations. x265 is not much better, but I'd probably expect it to do better
[02:07:15 CET] <JEEB> (also libvpx rate control is a joke)
[02:07:27 CET] <Cyberworm> what is "rate control"?
[02:07:41 CET] <JEEB> the algorithm that decides how many bits to use and where
[02:08:09 CET] <JEEB> and GOOG uses libvpx the last I knew, and that's a VP9 encoder available in FFmpeg at the moment, so yes.
[02:08:09 CET] <Cyberworm> then what encoder has good "rate control"
[02:08:30 CET] <JEEB> x264 is a classic example of good rate control. x265 I'm not sure. better than libvpx I'd guess.
[02:08:56 CET] <JEEB> note: x265 was not done by the community so it's quite a different thing compared to x264
[02:09:17 CET] <JEEB> they got the name rights from x264 LLC as part of a deal
[02:09:20 CET] <Cyberworm> i hate x264 version number system
[02:10:52 CET] <JEEB> but yea, it's sad that x264 is still one of the gold standards for sw video encoding :P all the new features etc in video formats make psychovisual optimizations a harder problem
[02:11:11 CET] <JEEB> and apparently companies in general are more OK with blurriness
[02:11:38 CET] <Cyberworm> even if you say x264 encoder has great "rate control" "psychvisual optimization" x264 is old format now
[02:12:06 CET] <JEEB> H.264 is an old format, and x264 is an old encoder, yes (although it does still get changes)
[02:12:11 CET] <Cyberworm> or i should say h264 is old format now
[02:12:16 CET] <JEEB> yes, you should
[02:12:28 CET] <JEEB> x264 is just an encoder that happened to be great :P
[02:12:57 CET] <Cyberworm> isn't x265 and libvpx also done by community?
[02:12:58 CET] <JEEB> but yea, age still doesn't make it any worse compared to the newer encoders. it had a simpler/a bit different job to tackle, but it seemed to do it really well
[02:13:01 CET] <JEEB> no
[02:13:07 CET] <JEEB> libvpx = GOOG throw-over-wall
[02:13:16 CET] <JEEB> x265 = MCW throw-over-wall
[02:13:38 CET] <Cyberworm> what do you mean by "throw over wall"
[02:13:56 CET] <JEEB> open source that generally is just corporate work thrown over the wall into a public repo
[02:14:14 CET] <pink_mist> Cyberworm: unfortunately, x265 and libvpx are too new and so haven't had even a miniscule amount of the work that was put into x264 put into them yet, so they are still playing catchup for a lot of things, even if the format itself is an improvement
[02:14:15 CET] <JEEB> x265 I guess attempts to look more like open source by the patches being sometimes posted on the mailing list
[02:14:32 CET] <JEEB> pink_mist: I mean, they're not even that new any more.
[02:14:41 CET] <pink_mist> comparably I mean :P
[02:14:56 CET] <JEEB> like, x264 6 years after release (2009) was quite a different situation already
[02:15:09 CET] <JEEB> both libvpx's VP9 and x265 stem from circa 2013
[02:15:37 CET] <JEEB> but yea, you don't have someone hacking it off like when the encoder stemmed from community
[02:15:47 CET] <JEEB> the closest we have for a community encoder atm is rav1e
[02:16:00 CET] <JEEB> which is one that's new
[02:16:09 CET] <JEEB> so it's got its problems
[02:16:23 CET] <Cyberworm> jeeb would you able to tell the difference between x264 2019 version vs x264 2009 version encoded video (using same video settings)
[02:17:16 CET] <JEEB> Cyberworm: I'm not sure if you could utilize the exact same options. a lot of the base stuff would already be there, though. haven't tried so no idea :P
[02:17:35 CET] <JEEB> you did get some nice stuff post-2009 pretty sure
[02:17:42 CET] <JEEB> psy-rd/trellis at least?
[02:17:49 CET] <JEEB> MB-tree?
[02:18:06 CET] <JEEB> I'd have to double-check if I remember the dates right tho
[02:18:12 CET] <Cyberworm> i wonder if i can do a test: not sure where i can get x264 2009 version
[02:18:37 CET] <JEEB> getting the version really isn't the problem; the problem is if you can make sure you're using the same options
[02:18:48 CET] <JEEB> anyways, sleep for me.
[02:24:07 CET] <Cyberworm> x264 core 65 = how do i tell what year this was released
[02:25:28 CET] <DHE> https://github.com/mirror/x264/commit/60455fff82906da0237a4f56b3686a588579e… I believe this is your answer
[02:26:23 CET] <Cyberworm> Sep 30, 2008
[02:26:24 CET] <Cyberworm> ?
[02:28:24 CET] <DHE> I'm showing october 1st, 2008, but I suspect there's some timezone quirkiness involved there
[02:29:17 CET] <DHE> let's pencil in a yes
[02:31:07 CET] <Cyberworm> how did you find that so fast
[02:31:14 CET] <Cyberworm> close enough
[02:31:42 CET] <DHE> I have the git repo on my local machine and asked for all the the commits to x264.h with their diffs, and searched for "BUILD 65"
[02:31:54 CET] <Cyberworm> i see
[02:32:16 CET] <Cyberworm> i see so many video using that x264 core 65 version
[02:35:42 CET] <DHE> weird.. core 66 was in january 2009 so that's a rather narrow time range...
[02:36:45 CET] <furq> probably some windows build that didn't get updated for a while
[02:37:04 CET] <furq> probably shipped with megui or something like that
[02:37:12 CET] <DHE> or some troll who's faking the identification string. :)
[02:37:29 CET] <DHE> (I've done that, sorta)
[02:37:38 CET] <furq> it'd be weird to pretend to be using an older build
[02:39:08 CET] <furq> if this is scene stuff then they're not exactly famous for being adventurous with using new stuff
[02:41:11 CET] <DHE> maybe, but it doesn't directly impact playback so its' not illegal...
[05:02:17 CET] <AlexApps> Hello, I'm just getting started with FFmpeg and I'm wondering what the difference is between using "-i pipe:" or "-i -"
[05:02:55 CET] <furq> there isn't one, but you can set an fd with pipe:0 or whatever
[05:03:17 CET] <AlexApps> Where is the "-" flag documented?
[05:03:48 CET] <furq> it's not a flag, that's a standard idiom meaning stdin or stdout
[05:03:59 CET] <AlexApps> Ok
[05:04:05 CET] <AlexApps> Thanks
[05:34:04 CET] <AlexApps> Hello again, I have used FFmpeg-Python to generate a command to make a sequence of images padded to a video, and although the padding works there is only one image contained in the video when I have multiple .png files in my directory
[05:34:16 CET] <AlexApps> ffmpeg -f image2pipe -framerate 1/5 -i pipe: -filter_complex "[0]scale=force_original_aspect_ratio=decrease:h=1080:w=1920[s0];[s0]pad=color=white:h=1080:w=1920:x=-1:y=-1[s1]" -map [s1] -r 30 -c:v libx264 -pix_fmt yuv420p video.mp4
[05:34:55 CET] <AlexApps> I know it's a lot to read, but even just a quick guess would be a lot of help to me :)
[05:35:53 CET] <AlexApps> I pipe in the image data with cat *.png in a directory with 3 png images
[05:38:35 CET] <pink_mist> AlexApps: I'd suggest you don't pipe them in, but instead allow ffmpeg to open them on its own
[05:39:13 CET] <AlexApps> The images I will provide in the finished version will be stored in memory instead of in a directory, so I would prefer to use pipes than temporary files
[05:39:15 CET] <pink_mist> AlexApps: it wouldn't surprise me if since you pipe them in, ffmpeg is convinced it's just a single image with some garbage on the end (that garbage being the other images)
[05:39:40 CET] <AlexApps> How would I fix that?
[05:39:43 CET] <pink_mist> AlexApps: since it can't tell when one file ends and the next begins
[05:39:49 CET] <AlexApps> The wiki has a similar example here: https://trac.ffmpeg.org/wiki/Slideshow#Pipe
[05:40:21 CET] <pink_mist> ok, then I'm probably mistaken, so disregard me
[05:45:04 CET] <AlexApps> If anybody else has any idea what I've done wrong, please lmk :)
[05:55:11 CET] <AlexApps> It worked once I replaced the images with different PNGs, and added "-vcodec png" to input
[05:56:09 CET] <AlexApps> I should have noticed, because in the logs of the previous runs it said "Stream #0:0: Video: mjpeg (Baseline)"
[05:57:13 CET] <AlexApps> There might be a mistake on the wiki page I was looking at, as it did not say that that was needed
[06:24:10 CET] <AlexApps> Are there any docs for image2pipe?
[06:27:32 CET] <furq> they're the same as the docs for image2
[06:28:00 CET] <AlexApps> Thanks
[08:05:45 CET] <mtcdood> is there a way to detect whether or not a video clip is inside another video clip?
[08:05:55 CET] <mtcdood> I'm try to deduplicate some files
[08:07:29 CET] <mtcdood> so if there's some way to do fingerprinting or something that might work
[08:08:30 CET] <AlexApps> Hello once again, if I'm making a video from an image sequence is there any way to loop an mp3 file over it for the entire duration of the generated video?
[08:11:21 CET] <furq> AlexApps: -stream_loop 1 -i foo.mp3 -shortest
[08:12:40 CET] <AlexApps> Thanks yet again, you've been really helpful :)
[08:12:57 CET] <mtcdood> what is "signature" ? https://amiaopensource.github.io/ffmprovisr/index.html#compare_video_finger…
[08:14:15 CET] <mtcdood> I see patches from three years ago, but it's not in my ffmpeg or the documentation
[08:14:47 CET] <mtcdood> looks like it was in 3.3
[10:24:52 CET] <AiNA_TE> is there a way to apply filters during two timestamps instead of to a whole video?
[10:25:25 CET] <AiNA_TE> like i need to use deblur for a couple of mins and then for the rest of the job i dont want deblur applied
[10:26:03 CET] <AiNA_TE> or is cutting the video in two, processing each part and concat them the only way
[10:26:28 CET] <durandal_1707> AiNA_TE: see timeline support via enable option and expressions
[10:26:52 CET] <durandal_1707> which filter you use for debluring?
[10:33:31 CET] <AiNA_TE> sorry i meand delogo
[10:33:38 CET] <AiNA_TE> i do this at the moment
[10:33:40 CET] <AiNA_TE> delogo=x=1676:y=36:w=182:h=24
[10:34:00 CET] <AiNA_TE> to remove a serial number from my cable provider
[10:35:16 CET] <durandal_1707> "delogo=old_params:enable='between(t, 5, 10)'"
[10:35:37 CET] <durandal_1707> "delogo=old_params:enable='between(n, 5, 10)'"
[10:35:57 CET] <durandal_1707> first is seconds between 5 and 10
[10:36:12 CET] <durandal_1707> second is frame number between 5 and 10
[10:38:00 CET] <durandal_1707> http://ffmpeg.org/ffmpeg-filters.html#Timeline-editing
[10:47:22 CET] <AiNA_TE> thank you very much
[11:50:39 CET] <Spring> can ffmpeg generate animated WebP images?
[12:13:08 CET] <w1kl4s> http://ffmpeg.org/ffmpeg-codecs.html#libwebp
[12:17:25 CET] <Spring> w1kl4s, I'm not seeing a note about animated support. Is it supported?
[12:33:03 CET] <Spring> nvm, apparently if video is the input it treats the output as such.
[18:05:32 CET] <rtwld> hi to all, i'd like to checkpoint/resume ffmpeg on Linux, what have I to use? (i'm using debian unstable)
[18:05:51 CET] <JEEB> what does checkpoint/resume mean?
[18:06:12 CET] <JEEB> I think using the pause functionality in linux works with the process at least
[18:06:24 CET] <JEEB> and unless you're using something that might time out while you're at it, it /should/ JustWork
[18:18:00 CET] <rtwld> pause? did you mean hibernation?
[18:18:53 CET] <rtwld> i want to save the state of encoding between shutdown
[18:20:53 CET] <JEEB> pause as in using the pause button I think
[18:20:57 CET] <JEEB> that generally just stops the process
[18:21:15 CET] <JEEB> to save the state you'd have to dump the whole memory of the process and pull it back afterwards
[18:21:19 CET] <JEEB> and hope that nothing changed in the process
[18:51:59 CET] <kepstin> if you have some checkpoint/resume functionality that works on arbitrary linux programs, it should also work on ffmpeg.
[18:52:25 CET] <kepstin> there's nothing builtin to ffmpeg to do that (and it would be very hard to add)
[18:53:24 CET] <kepstin> honestly if you don't have any other options, probably the easiest way would be to run ffmpeg in a VM that supports saving state, tbh.
[18:57:18 CET] <rtwld> thx bye
[19:05:12 CET] <DHE> JEEB: there is a project called checkpoint/restore which aims to save the state of running processes to disk. imagine live migrating a docker container or such
[19:05:33 CET] <DHE> but yeah it should work unless there's some hardware interaction that can't be saved properly
[19:07:15 CET] <JEEB> DHE: or solibs unless they are fully loaded into that memory dump at that point
[19:13:05 CET] <DHE> there is the expectation that the filesystem is present on the receiver side and hence mmap() is easily taken care of
[20:53:44 CET] <cards> Not an ffmpeg question per se (unless it is), but what are some modern tools for dejuttering / stabilizing a video? In particular, an old film, which are notorious for being very bouncy when copied digitally.
[20:55:23 CET] <cards> In many cases, this is what pre-2000's films primarily mean when they are "remastered" either professionally or by amateur pirates
[20:59:23 CET] <bluejaypop> hi guys, how is the correct form to apply more than 1 audio filter at the same time on the audio? I see some ways to do it as -f:a "volume=0.8" and in the ffmpeg.org homepage i see on the Audio Filters section as -filter-complex
[21:00:16 CET] <durandal_1707> bluejaypop: -af volume=0.8,volume=0.8
[21:01:04 CET] <bluejaypop> oh, only comma separated the filters then.
[21:10:33 CET] <ironm> !include jpg into mp4
[21:15:51 CET] <ironm> Hello. Is it possible to convert a single jpg file to an mp4 stream with defined length (like 2s) with an ffmpeg command?
[21:16:01 CET] <ironm> like: ffmpeg -framerate 10 -i Path/To/File/filename%3d.jpg -r 5 -y Path/To/File/test.mp4
[21:41:55 CET] <ironm> Ok, it looks it works: ffmpeg -loop 1 -framerate 10 -i in.png -r 50 -t 5 -c copy out.mp4
[21:42:48 CET] <ironm> However I am not sure about the -framerate (input) and -r )output)
[21:43:19 CET] <ironm> How do the correlate to each other
[21:43:34 CET] <ironm> s/ the / they /
[22:07:58 CET] <airking2> Hello! I'm trying to stream a raspberry pi's desktop using the guide located at the bottom of this page: https://wiki.archlinux.org/index.php/Streaming_to_twitch.tv
[22:08:10 CET] <airking2> I get the error "No such process" when attempting to run the script
[22:08:53 CET] <airking2> Here is a paste of the output
[22:08:54 CET] <airking2> https://pastebin.com/utiF3bGm
[22:08:59 CET] <pink_mist> that doesn't sound like an error that ffmpeg would give
[22:09:08 CET] <pink_mist> so you should probably ask whoever wrote that script
[22:11:23 CET] <airking2> The script just takes in a single argument and passes a few other arguments to ffmpeg, I don't really know how that error could come from the script
[22:15:25 CET] <kepstin> airking2: well, try running the generated command manually
[22:15:31 CET] <pink_mist> oh, you missed the "0:" in "0: No such process" ... now it looks more like something ffmpeg would output
[22:15:32 CET] <kepstin> (and include the complete command line in the paste)
[22:15:36 CET] <pink_mist> I didn't check your link until just now
[22:16:04 CET] <airking2> my bad, I didn't realize I missed the 0
[22:20:42 CET] <airking2> kepstin https://pastebin.com/vCeFRfgT
[22:21:00 CET] <airking2> It outputs the same error
[22:21:12 CET] <kepstin> ok, your problem is the `-f pulse -i 0`
[22:21:25 CET] <kepstin> 0 is not a valid pulseaudio device name
[22:22:58 CET] <airking2> hmmm, how can I get a list of the vaild ones?
[22:23:22 CET] <kepstin> `pacmd list-sources` and the names you use are the stuff between <> in the name field
[22:23:51 CET] <kepstin> if you're doing screen capture, you'd probably want to find the ".monitor" device attached to your main audio output
[22:24:00 CET] <airking2> This is a raspberrypi, unfortunately it isn't running arch
[22:24:13 CET] <kepstin> has nothing to do with arch?
[22:24:34 CET] <airking2> whoops, my bad saw pacmd and mixed it up with pacman
[22:25:52 CET] <kepstin> also lol, a raspberry pi almost certainly cannot do that command as specified
[22:26:02 CET] <kepstin> i expect it'll work, but your framerate will be much lower than 30fps
[22:26:23 CET] <airking2> If I just get rid of the "-f pulse -i 0" can I just stream without audiO?
[22:26:28 CET] <airking2> I just realized I don't actually need the audio
[22:26:39 CET] <airking2> It *appears* to work without that
[22:27:44 CET] <kepstin> most streaming services require an audio track, you can probably replace it with something like "-f lavfi -i aevalsrc=0"
[22:33:31 CET] <ironm> [ffmpeg/video] png: Invalid PNG signature 0x1019E626A.
[22:36:36 CET] <kepstin> ironm: yep, that's not a png signature.
[22:37:51 CET] <kingsley> What's the fastest video format to encode? Lossless? mkv?
[22:38:09 CET] <kepstin> rawvideo
[22:38:09 CET] <ironm> kingsley, thank you. What I did was:
[22:38:12 CET] <ironm> ffmpeg -loop 1 -framerate 10 -i in2.png -r 50 -t 5 -c copy out2.mp4
[22:38:33 CET] <kepstin> ironm: your png file is not a png file. what does "file in2.png" say?
[22:38:49 CET] <ironm> and then: ffmpeg -f concat -i mymp4.list -c copy outX.mp4
[22:39:07 CET] <kepstin> oh, wait, you're copying png into an mp4 file?
[22:39:40 CET] <ironm> kepstin, in2.png: PNG image data, 3839 x 2159, 8-bit/color RGB, non-interlaced
[22:39:48 CET] <kepstin> if you're concatenating data from multiple files with the concat demuxer, they all have to have the same video/audio codecs
[22:40:08 CET] <kepstin> (and you might have trouble if they're made with different encoders or encoder settings even)
[22:40:27 CET] <ironm> kepstin, thank you. The screenshot does not have an audio codec at all
[22:40:38 CET] <kepstin> it sounds like your first file in your playlist has png video, then the following ones have something different
[22:40:51 CET] <ironm> other mp4 files are from GoPRo7
[22:40:55 CET] <kepstin> which then breaks when the png decoder gets handed the "something different"
[22:41:04 CET] <ironm> kepstin, yes
[22:41:23 CET] <kepstin> if you have files with different codecs, you need to use the concat filter and re-encode
[22:41:30 CET] <ironm> otherwise the mp4 files generated from png are ignored
[22:41:53 CET] <kepstin> you cannot concatenate videos that have different codecs with -c copy
[22:41:55 CET] <ironm> I see, thank you. I will have to check how to do it
[22:43:55 CET] <ironm> kepstin, could I created an mp4 file from a png file settings the same codes as in original MP4 files from GoPro7 ?
[22:44:06 CET] <ironm> setting
[22:44:15 CET] <ironm> codecs
[22:44:25 CET] <kepstin> ironm: it's very hard to make h264 encoded files match when you use two different encoders.
[22:45:25 CET] <ironm> maybe it is possible to specify the codec inside "ffmpeg -loop 1 -framerate 10 -i in2.png -r 50 -t 5 -c copy out2.mp4" ?
[22:46:00 CET] <nicolas17> you can't make ffmpeg use the same encoder as your gopro since that's likely proprietary
[22:46:17 CET] <kepstin> that said, if the new file you're making is the first file, and you use x264 settings that enable a lot of features and use the x264 'stitchable' option, there's a chance it might work :/
[22:47:52 CET] <ironm> That means I would have to convert GoPro7 MP4 files to x264 (I thought I happens automatically)
[22:48:25 CET] <ironm> when I run ffmpeg .. (hover with the "-c copy" option)
[22:48:48 CET] <kepstin> you used "-c copy" which is how you explicitly tell ffmpeg to do no conversion
[22:48:59 CET] <ironm> true
[22:50:08 CET] <ironm> (+) Video --vid=1 (*) (h264 1920x1080 50.000fps)
[22:52:55 CET] <ironm> I use like: ffmpeg -i BA10_05_GH040086f00.mp4 -to 00:00:20 -c copy BA10_05_GH040086f00-20s.mp4
[23:00:34 CET] <ironm> I try now: ffmpeg -i GH060085.MP4 -c:v libx264 -preset ultrafast -crf 0 output.mp4
[23:04:15 CET] <ironm> kepstin, I run: ffmpeg -i BA10_04_GH030086f00-10s.mp4 -c:v libx264 -preset ultrafast -crf 0 output.mp4
[23:04:38 CET] <ironm> but the output.mp4 file is still: (+) Video --vid=1 (*) (h264 1920x1080 50.000fps)
[23:04:59 CET] <kepstin> libx264 is an h264 encoder, so yes...
[23:04:59 CET] <ironm> I have expected x264 instead
[23:05:10 CET] <ironm> omm
[23:06:51 CET] <ironm> (+) Video --vid=1 (*) (png 3839x2159 10.000fps)
[23:07:34 CET] <kepstin> you're also going to have to scale that png to the right size before you can concatenate the videos
[23:08:01 CET] <ironm> Yes, it looks like I miss one pix
[23:08:37 CET] <ironm> thank you kepstin
[23:10:40 CET] <ironm> for some reasen "scrot -s" cuts one pixel in every direction (4K display)
[23:21:44 CET] <ironm> Is there an easy way to create frames with text only in defined target resolution (FHD or 4K) based on text file?
[23:22:17 CET] <ironm> like title pages before the scene
[23:29:35 CET] <ironm> quite a lot of stuff to read - https://trac.ffmpeg.org/
[23:38:11 CET] <DHE> there is a text renderer, but that's quite a lot...
[23:45:16 CET] <ironm> DHE thank you, I will check it
[00:00:00 CET] --- Tue Oct 29 2019
1
0
[12:23:06 CET] <cone-404> ffmpeg 03Paul B Mahol 07master:ebff4bbd82c3: avcodec/vmdvideo: fix log error message
[15:04:08 CET] <durandal_1707> pross: is there ansi/xbin/bin codes specification?
[15:56:13 CET] <Lynne> BtbN, philipl, jkqxz: made a final version of the vulkan patches here https://github.com/cyanreg/FFmpeg/pull/1/commits
[15:57:02 CET] <Lynne> decided to squash the hwcontext_cuda changes for transfers into the base hwcontext commit (since it already modified hwcontext_cuda for cuda->vulkan device deriving)
[15:58:09 CET] <Lynne> don't really want to push a megabyte of N patches to the ML multiple times for multiple revisions, so not sure what to do
[15:59:35 CET] <durandal_1707> Lynne: the patches are so big?
[16:25:30 CET] <philipl> Lynne: squashing is fine.
[16:25:47 CET] <philipl> I'm happy to review on github, until we've got a final revision to send to the list.
[16:56:13 CET] <Lynne> philipl: btw is yuv420p used internally on nvidia by default instead of nv12?
[17:05:15 CET] <philipl> no. it's nv12
[17:05:27 CET] <JEEB> yea, hardware generally seems to be optimized for NV12
[17:05:29 CET] <philipl> for the actual hardware decoding.
[17:05:56 CET] <philipl> the hwcontext_cuda can handle most normal formats. We'v got generic pixdesc based code in there.
[17:06:10 CET] <JEEB> could of course be the other way and MS more or less spec'ifying NV12 is what lead to it
[17:06:15 CET] <JEEB> *led to it
[17:06:47 CET] <Lynne> philipl: because for a default pipeline I need to hwdownload yuv420p from vulkan to get frames to system ram
[17:07:19 CET] <philipl> Hmm. It should depend on what you've got next after the download right?
[17:07:27 CET] <philipl> hwdownload to nv12 should work too
[17:09:34 CET] <Lynne> ./ffmpeg_g -init_hw_device "cuda=cu:0" -hwaccel_output_format cuda -i sample.mkv -filter_hw_device cu -vf hwupload=derive_device=vulkan,avgblur_vulkan=planes=0xF:sizeX=5:sizeY=5,hwdownload,format=yuv420p -f null -
[17:09:49 CET] <Lynne> trying to download nv12 gives the usual error
[17:10:03 CET] <philipl> [hwdownload @ 0x55f1bf25e7c0] Invalid output format nv12 for hwframe download.
[17:10:06 CET] <philipl> hmm
[17:10:17 CET] <philipl> I don't remember that being the case.
[17:13:04 CET] <philipl> Lynne: so
[17:13:53 CET] <philipl> it's because we (everyone, not just you and me) write transfer_get_formats to return the internal sw format being used by the hwframe and nothing else.
[17:14:15 CET] <philipl> and I guess you end up using yuv420p as the internal format for 8bit content.
[17:14:27 CET] <philipl> if you'd used nv12, then only format=nv12 would work, etc.
[17:15:27 CET] <philipl> you'd need to run it through a scale filter to convert it before downloading
[17:16:06 CET] <philipl> (assuming scale_vulkan does format conversion. I didn't look at that yet)
[17:17:40 CET] <Lynne> no, it doesn't do format conversion, there used to be code to allow you to download a mono format from yuv but I deleted it since it wasn't really useful
[17:18:25 CET] <Lynne> I didn't get why yuv420p is used internally however
[17:18:41 CET] <Lynne> does something happen during the transfer or did the driver decide it?
[17:18:54 CET] <Lynne> on vaapi/drm nv12 is the default
[17:20:41 CET] <philipl> hmm.
[17:20:48 CET] <philipl> something has changed here recently
[17:22:38 CET] <philipl> Lynne: it's because you, and I independently, forgot to put '-hwaccel nvdec' in there.
[17:22:45 CET] <philipl> so it's not hardware decoding.
[17:23:59 CET] <philipl> Ok, now it works as expected.
[17:33:18 CET] <Lynne> oh, right, I actually found that out later when looking at the CPU and put it there when testing again but only tried using h264_nvenc rather than downloading
[17:34:30 CET] <Lynne> maybe hwupload shouldn't require a device reference for derive_device? or have a separate device_create option
[17:35:02 CET] <Lynne> so you wouldn't need to specify and initialize filter_hw_device for uploading from software
[17:51:36 CET] <philipl> Lynne: I had that. jkqxz didn't like it. :-)
[17:52:06 CET] <philipl> I do think it would be nice if it could implicitly use the decoder's device in the case of cuda hw decode and then derive from that device.
[17:52:16 CET] <philipl> Right now you need to init a separate device for the filter chain.
[18:11:33 CET] <Lynne> btw I noticed I can also init a vulkan hw device and specify it as the filter_hw_device
[18:12:06 CET] <Lynne> and nothing changes? shouldn't hwupload check the specified filter_hw_device is valid?
[18:13:25 CET] <Lynne> I guess its checking something, if I specify an opencl its returning function not implemented
[18:13:53 CET] <Lynne> but for some reason a vulkan device works too, even though you're uploading from cuda to vulkan
[18:25:13 CET] <philipl> Lynne: it's because the devices match and so the transfer succeeds when it happens
[18:26:21 CET] <philipl> basically it bypasses validation, but everything is still going to work, so it works.
[18:36:37 CET] <Lynne> I don't mind that
[21:41:51 CET] <philipl> Lynne: I tried a transcode of 10bit hevc and the output was garbled. 12bit was fine.
[21:42:30 CET] <philipl> ffmpeg -hwaccel nvdec -hwaccel_output_format cuda -i video-x265-12bit-420.mp4 -init_hw_device vulkan=vulkan:0 -filter_hw_device vulkan -vf hwupload,hwupload=derive_device=cuda -map 0:0 -c:v hevc_nvenc -y /tmp/out.mp4
[22:10:13 CET] <Lynne> the p010 nvidia uses has padding in the LSBs, right?
[22:10:27 CET] <JEEB> P010 should be generally spec'd as MS notes
[22:10:41 CET] <Lynne> wait, 12 bits shouldn't work
[22:10:58 CET] <Lynne> vulkan doesn't specify 12 bit components with padding
[22:11:37 CET] <nevcairiel> P010 is defined as exactly P016 with 6 bits zero (ie. so you can treat it like P016 if you want, and the result comes out fine), which means yes, padding is in LSB
[22:12:41 CET] <nevcairiel> nvdec/nvenc also dont specify 12-bit, they use P016 for that
[22:12:48 CET] <Lynne> oh, ok
[22:13:02 CET] <Lynne> maybe its a driver issue then, since the definition matches vulkan
[22:13:19 CET] <Lynne> and 10 bit works on intel (upload+download only, toaster hwdec chip)
[22:13:49 CET] <Lynne> I'm pretty sure upload+download 10bit works on nvidia too last I tested
[22:48:47 CET] <Lynne> philipl: tried p010 upload+download here, it works
[22:58:51 CET] <Lynne> it seems something else is going wrong here
[22:59:21 CET] <Lynne> hwdownload,format=p010 -c:v rawvideo out.nut gives junk
[22:59:38 CET] <Lynne> but hwdownload,format=p010,format=yuv420p10le doesn't
[23:00:16 CET] <Lynne> (libswscale fixed something, lol)
[23:11:37 CET] <cehoyos> nut does not support p010
[00:00:00 CET] --- Mon Oct 28 2019
1
0
[01:57:11 CEST] <bluejaypop> hi, good afternoon, if i want to apply -af filter to downmix from stereo to mono can I do something like "pan=1c|mono" ? or how is the correct way to do it ?
[02:02:54 CEST] <another> -ac 1
[02:06:50 CEST] <furq> bluejaypop: just -af pan=mono is fine if you don't want to use -ac
[02:07:49 CEST] <bluejaypop> ok great, the "|" can be used with "pan=1c|mono" ?
[02:07:59 CEST] <bluejaypop> i'm just going to test
[02:10:13 CEST] <furq> no the params after the first | are channel specifications
[02:10:30 CEST] <furq> https://ffmpeg.org/ffmpeg-filters.html#pan-1
[02:11:04 CEST] <bluejaypop> gotcha, thank you guys.
[02:11:08 CEST] <furq> pan=mono should be the same as pan=mono|c0=FL+FR
[02:11:34 CEST] <bluejaypop> yes, i just checked the output and it's correct.
[06:57:30 CET] <isbae93> Guys, I just tried the `transcoding.c` example, but the result is twice the duration & half the framerate of the original video. Any thoughts?
[07:00:45 CET] <sector_surfer> test
[07:01:06 CET] <sector_surfer> Hi
[07:01:51 CET] <sector_surfer> When I download from a facebook live video, I get the error Non-monotonous DTS in output stream error
[07:01:55 CET] <sector_surfer> here is the commandline I use
[07:02:03 CET] <sector_surfer> minus the URL of the facebook video
[07:02:29 CET] <Reinhilde> show us the command line
[07:02:37 CET] <Reinhilde> sector_surfer: it should not be an error
[07:03:15 CET] <sector_surfer> ffmpeg -i "insert-url-here" -metadata service_name=" " -metadata service_provider=" " -c copy manifest.ts
[07:04:42 CET] <Reinhilde> sector_surfer: does non-monotonous dts terminate the recording?
[07:04:49 CET] <sector_surfer> no it doesn't
[07:05:59 CET] <Reinhilde> then it's fine
[07:06:05 CET] <Reinhilde> i've seen it a lot
[07:06:48 CET] <sector_surfer> but when I play the video back, parts of the audio repeat themselves a few times, like a stuck record
[07:07:35 CET] <sector_surfer> I mean both the video and audio repeat themselves
[07:10:44 CET] <sector_surfer> it'll be fine, then at a certain point in the video, the previous 3 seconds will be repeated 3 or 4 times before continuing on
[07:13:37 CET] <sector_surfer> Reinhilde, are you there?
[07:14:54 CET] <sector_surfer> [mpegts @ 039d8a80] Non-monotonous DTS in output stream 0:1; previous: 9165167, current: 9165045; changing to 9165168. This may result in incorrect timestamps in the output file.
[07:19:34 CET] <sector_surfer> sometimes I get 404 errors
[07:30:39 CET] <pink_mist> 404 errors is really not something ffmpeg can help you with
[07:31:02 CET] <pink_mist> if you get 404, the thing you're looking for simply isn't there
[07:31:07 CET] <pink_mist> nothing ffmpeg can do about it
[07:36:15 CET] <ponyrider> sector_surfer: youtube-dl can grab videos from facebook just fyi
[07:36:34 CET] <sector_surfer> are you able to help out with the resulting video coming out wrong though?
[07:37:10 CET] <sector_surfer> youtube-dl can't seem to do live videos while they're ... well. live, if you get my drift
[07:39:11 CET] <sector_surfer> https://video.fmel5-1.fna.fbcdn.net/hvideo-cln1-lla/_nc_cat-106/v/rjd4WgX2m…
[07:39:29 CET] <sector_surfer> when I youtube-dl on that url, it doesn't work, I get an error
[07:41:06 CET] <sector_surfer> error, no video formats found
[07:42:42 CET] <sector_surfer> pink_mist as for the 404 errors, they just happen occasionally when downloading the live stream with ffmpeg. then it's like like.. all fine again and the stream continues downloading
[07:44:17 CET] <Reinhilde> sector_surfer: it shuld not be a big deal
[07:45:27 CET] <sector_surfer> OK, so can you help me with parts of the video coming out wrong? also, can you help me with downloading the live feed with youtube-dl?
[07:47:07 CET] <ponyrider> sector_surfer: i am unable to download that link you sent me using youtube-dl
[08:01:32 CET] <sector_surfer> weird.
[08:02:56 CET] <sector_surfer> ffmpeg could download the stream fine, but for some reason, youtube-dl requires the use of a cookies.txt file to do it.
[08:03:00 CET] <sector_surfer> how odd
[11:02:20 CET] <haasn> Does MP3 have checksums? i.e. will ffmpeg complain to stderr about corrupt MP3 files?
[11:03:27 CET] <durandal_1707> MP3 is crap
[11:04:52 CET] <haasn> Is that a no?
[11:11:20 CET] <durandal_1707> haasn: mp2 have some kind of crc, mp3 probably not, at least not available via libmp3lame
[11:12:27 CET] <durandal_1707> haasn: actually it have, just ffmpeg wrapper never use it
[11:12:44 CET] <haasn> hmm
[11:13:15 CET] <haasn> I have some flac and mp3 files that might have been corrupted (partial download) and I want to test if this is the case; using ffmpeg -i FILE -f null /dev/null I get stderr spam on the corrupt flac files
[11:13:25 CET] <haasn> (and I'm pretty sure flac has checksums so that's what I'd expect)
[11:13:47 CET] <haasn> for the mp3 files I have to listen to them to the end to make sure they're fine, I guess?
[11:13:48 CET] <durandal_1707> haasn: try also with reference flac to be sure
[11:15:05 CET] <durandal_1707> mp3 have 2 bytes for CRC protection, but it is optional
[11:34:14 CET] <Lynne> haasn: there's a rejected patch on the ml from march which added the ability to check it
[11:34:43 CET] <Lynne> (was rejected because it wasn't useful according to a certain someone)
[11:35:44 CET] <Lynne> unfortunately a lot of mp3s lack crcs so I had to dig in my collection to find some
[11:36:32 CET] <Lynne> oh yeah and the crc only protected a small part of the header of a packet, not the full one
[11:36:43 CET] <durandal_1707> give libmp3lame wrapper ability to check crc
[11:37:14 CET] <Lynne> that's an encoder
[11:37:37 CET] <durandal_1707> yes, but there should be added first
[15:50:55 CET] <cards> What's a simple command to extract all subtitles from a .mkv container
[15:51:31 CET] <cards> like, are there any macros such as ffmpeg --extract-subs
[15:58:43 CET] <JEEB> if you don't want to touch the APIs but only utilize teh command line apps, I guess ffprobe -of json -show_streams -i blah.mkv + ffmpeg.c command based on that
[15:59:06 CET] <JEEB> since technically -map 0:s you can map all subtitle streams, but nothing will create one output file for each of them :P
[15:59:31 CET] <cards> hrm
[15:59:45 CET] <cards> so it's an involving process. no macros built in for common tasks
[16:01:51 CET] <JEEB> if you make a specific app for that use case with the API you can then of course call that easily, but no - there is no format that would then just generate you multiple outputs for all of your mappings :P
[16:02:10 CET] <JEEB> since ffmpeg.c (the command line app) generally works with inputs and outputs
[16:02:58 CET] <cards> right. i'm just using the compiled windows binaries. figured i'd look at using the simple cmd line tool instead of some cludgy GUI app written 10 years ago
[16:03:35 CET] <cards> ie, ffmpeg --extract_subs *;srt -i file.mkv or some such
[16:03:37 CET] <JEEB> what most people do is ffprobe the input with the -show_streams option and usually with something their scripting language can parse, like json
[16:04:01 CET] <JEEB> and then you can generate map + copy + output for each subtitle stream in the probed input
[16:04:50 CET] <JEEB> also since matroska can keep multiple subtitle formats there's the difference of whether you want it in a specific format and thus require conversion, or do you just want to keep whatever's in the container
[16:05:02 CET] <cards> correct
[16:05:03 CET] <JEEB> (since it's not necessarily SRT)
[16:05:19 CET] <cards> there would have to be some arguments to the macro for how to handle
[16:06:46 CET] <cards> think i'll give mkvextract a try first
[16:07:02 CET] <cards> rather wish 7zip handled mkv containers
[16:08:19 CET] <JEEB> I thought mkvextract had a similar thing where you had to define what you wanted, too? which is why mkvinfo has the option to work similarly to ffprobe
[16:08:29 CET] <JEEB> as in, give info on the tracks/streams within the container
[16:08:47 CET] <JEEB> (and have the indexes work so you can pass them to mkvextract)
[16:09:11 CET] <JEEB> but yea, don't remember exactly :P
[16:09:12 CET] Action: cards pokes around
[16:09:22 CET] <cards> also has a handy push-button GUI for windows
[16:09:33 CET] <JEEB> yea, that probably does that behind the scenes
[16:09:48 CET] <JEEB> I know mkvmergegui, but I haven't utilized the extract one
[16:10:09 CET] <cards> mkvtoolnix-gui.exe
[16:11:02 CET] <cards> sad. https://github.com/mbunkus/mkvtoolnix/ went 404
[16:12:29 CET] <JEEB> https://gitlab.com/mbunkus/mkvtoolnix
[16:12:37 CET] <JEEB> seems to have moved to gitlab at some point
[16:12:40 CET] <cards> le https://mkvtoolnix.downloada
[16:12:45 CET] <cards> ah hah
[16:13:04 CET] <cards> -a
[16:15:21 CET] <cards> rather insane versioning. from 9.9.0 to 38.0.0 in just 2 years
[20:00:50 CET] <t-mart> How can I specify "the audio stream with channel_layout=stereo" for use in a -map argument? The streams for my file look like this: https://pastebin.com/X3jqyfNy (I suppose it's possible there may be multiple streams that match...what would I do in that case? However, my example just has 1 matching stream)
[20:01:30 CET] <JEEB> you can only utilize stream index or ID for map I think
[20:01:44 CET] <JEEB> so the best a non-API user can do is to ffprobe -show_streams or so
[20:02:14 CET] <JEEB> (possibly with -show_programs to know which program those streams came from with inputs with separate programs in them)
[20:02:31 CET] <JEEB> then parse f.ex. json that comes out of -of json, and build a command based on that
[20:02:48 CET] <t-mart> right, I see
[20:03:00 CET] <t-mart> was hoping I didn't have to parse anything
[20:04:36 CET] <t-mart> I was more hopeful because https://ffmpeg.org/ffmpeg.html#Advanced-options shows a -map with "ffmpeg -i INPUT -map 0:m:language:eng OUTPUT" where "m" is a metadata specifier. I suppose the stuff I'm getting from that ffprobe isn't metadata, so I can't specify with it.
[20:05:19 CET] <t-mart> (FWIW, my file has no helpful metadata)
[20:11:22 CET] <JEEB> t-mart: you will get things like that out too
[20:11:49 CET] <JEEB> you can try with `ffprobe -v quiet -of json -show_streams -i INPUT`
[20:11:55 CET] <JEEB> it will push JSON into stdout
[20:14:39 CET] <t-mart> Yes, but that doesn't help me with stream specification for a -map, unless I'm misunderstanding you. I've tried to construct what the specifier might be at https://pastebin.com/MDCETfev (command is first line), but ffmpeg reports "Stream map '0:m:channel_layout:stereo' matches no streams."
[20:15:10 CET] <JEEB> yea, since that's not metadata
[20:15:25 CET] <JEEB> if you look at ffprobe output you'll see what are the metadata keys under streams
[20:15:56 CET] <JEEB> thus effectively you will have to do that decision on which stream or streams to pick on your side
[20:16:42 CET] <t-mart> Would metadata (if present) be in the output of the command you pasted above? I don't know if my file's streams have metadata, but I'm not seeing them in that command's output
[20:17:12 CET] <JEEB> yes, it should
[20:17:16 CET] <JEEB> stream-attached metadata should be tehre
[20:17:58 CET] <t-mart> Yeah, ok. There's none. So I need to do manual selection. Which is awful because I have 6 files to go through and choose 1. the correct audio stream 2. the correct subtitle stream. =(
[20:19:04 CET] <JEEB> well, at least ffprobe's output should give you the means for that
[20:19:18 CET] <t-mart> My player (VLC) doesn't show stream id's. Perhaps I will use ffplay to manually test all the streams and note the ones I want and finally build a command
[20:19:19 CET] <JEEB> stuff like order of the streams, their type etc
[20:19:36 CET] <JEEB> stream IDs are usually in things like MPEG-TS etc
[20:20:18 CET] <JEEB> http://up-cat.net/p/3d306da6
[20:20:23 CET] <JEEB> like this stream out of a broadcast
[20:20:49 CET] <JEEB> id is 0x114 and it was 3rd (0,1,2) in the stream list
[20:21:33 CET] <t-mart> yeah, but if the test has to be conducted manually (e.g. I need to actually listen to the audio to make sure it's the language I want, channel layout I want, etc), then I need a player that tells me which id I'm actually listening to
[20:22:01 CET] <JEEB> right, if you have multiple alternatives and they have no meaningful distinction in the input
[20:23:50 CET] <t-mart> well, I'm off to do some tedious work. Thanks for your help JEEB
[20:23:57 CET] <JEEB> np
[20:24:10 CET] <JEEB> but at first it felt like knowing if it was stereo or not was enough
[20:24:20 CET] <JEEB> in which case you could have used ffprobe's output for that
[22:56:52 CET] <phobosoph> hi
[22:57:08 CET] <phobosoph> So I start ffmpeg to stream rtsp source to rtmp youtube live
[22:57:18 CET] <phobosoph> it works for some hours and then suddenly the stream dies and I have to restart ffmpeg
[22:57:50 CET] <phobosoph> after some logging it appears that speed=1.0 which is nice - but then after some hours it drops to 0.23 or so - which explains why youtube doesn't recognize the stream anymore
[22:57:53 CET] <phobosoph> but why? there is no -re flag
[22:57:54 CET] <phobosoph> :/
[22:58:20 CET] <phobosoph> sure, I could write a script that auto-restarts ffmpeg all 12 hours or so - or checks the stream health - but this is a hack and not the solution
[23:01:38 CET] <phobosoph> frame=12211 fps= 30 q=-1.0 size= 306027kB time=00:06:46.83 bitrate=6162.2kbits/s speed= 1x
[23:01:41 CET] <phobosoph> this is nice, this is what I want
[23:01:54 CET] <phobosoph> but then, after some hours I check the stream on youtube and it dieed
[23:02:09 CET] <^Neo> hello, I have separate inputs from my video and audio, and sometimes my audio drops out causing weird PTS issues and when I then package it to HLS I'm finding Chrome / video.js fails to play the video due "skipping audio splice trimming at PTS=x. Found only 21us of overlap need at least 1000us."
[23:02:09 CET] <phobosoph> and I check the log of the ffmpeg command and I find speed=0.2x whatever
[00:00:00 CET] --- Mon Oct 28 2019
1
0
[10:36:40 CEST] <cone-657> ffmpeg 03Paul B Mahol 07master:9130028d8754: avfilter/vf_lut3d: allocate 3d lut dynamically
[10:36:40 CEST] <cone-657> ffmpeg 03Paul B Mahol 07master:a2210f10d37e: avfilter/vf_lut3d: increase max level to upper limit defined by cube format specification
[10:36:40 CEST] <cone-657> ffmpeg 03Paul B Mahol 07master:4447aeaac2be: avfilter/vsrc_testsrc: increase max level of haldclutsrc
[15:17:00 CEST] <cone-629> ffmpeg 03James Almer 07master:1aa4fc1ec204: avfilter/avf_showfreqs: free input frame after using it
[15:33:01 CEST] <cone-629> ffmpeg 03Linjie Fu 07master:e1d993d829a6: lavc/qsvdec: remove unused check_dec_param
[16:02:30 CEST] <cehoyos> Is slice threading overlay really negligible?
[16:02:41 CEST] <cehoyos> Should it be added for v210?
[17:44:01 CEST] <JEEB> durandal_1707: btw did you already have an idea of how a generic opencv filter would work? do they have a filter chain syntax or?
[17:44:31 CEST] <JEEB> or was that just a way of you telling the person to eff off without actually telling the person that :P
[17:45:25 CEST] <durandal_1707> opencv have functions that operates on images, no nice way to use it like graphs
[17:46:34 CEST] <JEEB> but yes, I do agree that all the OpenCV things should share as much common code as possible :P
[17:47:52 CEST] <JEEB> just that if someone notes that a "generic" filter should be made, it should be at that point be clear what level of genericness is required
[17:48:35 CEST] <durandal_1707> look at current obsolete libopencv filter that use obolete C api
[17:48:40 CEST] <JEEB> yes
[17:48:42 CEST] <JEEB> I noted that in my reply
[17:49:09 CEST] <JEEB> only thing I didn't (yet) specifically note was that yes - opencv filters should share common code base
[17:49:19 CEST] <JEEB> mostly because I didn't know what you meant with "generic"
[17:49:36 CEST] <JEEB> since generic usually means something like being able to call all the functionality of the underlying thing like with filter chains :P
[17:49:46 CEST] <JEEB> which I'm not sure how well OpenCV lets you do it
[17:50:23 CEST] <JEEB> I wonder if ubuntu patches the opencv code already
[17:51:33 CEST] <durandal_1707> besides those hashing functions stuff should be native filters to ffmpeg, they seems very trivial
[17:52:01 CEST] <JEEB> oh huh, no patches in the debian tarball
[17:52:03 CEST] <JEEB> color me surprised
[17:52:15 CEST] <JEEB> right, they just don't build opencv :D
[17:52:46 CEST] <JEEB> https://packages.ubuntu.com/disco/libavfilter7
[17:52:47 CEST] <JEEB> yea
[17:53:03 CEST] <JEEB> they did with 4.0 tho
[17:53:17 CEST] <cehoyos> I wonder what you mean with "pretty sure"...
[17:54:27 CEST] <JEEB> as in, if my memory serves me right but not saying it outright as I did not just run a git grep on the code base
[17:55:24 CEST] <cehoyos> There is objective-c code, there should be no c++ code
[17:55:38 CEST] <durandal_1707> what?
[17:56:04 CEST] <JEEB> pretty sure decklink was c++ but lemme check
[17:56:13 CEST] <cehoyos> decklink, yes you are right
[17:56:26 CEST] <JEEB> aye
[17:57:55 CEST] <JEEB> anyways, I was just mostly trying to bring out the notion that unless someone really starts advocating for OpenCV to maintain C interfaces, telling people wanting to add OpenCV things into FFmpeg that they should use the C interfaces is not productive.
[17:58:12 CEST] <cehoyos> no other opinion here...
[17:58:42 CEST] <JEEB> and the other thing is what I just asked durandal_1707 regarding what was meant regarding "generic" filter
[17:59:08 CEST] <JEEB> so that possibly the guy could be helped to understand what would be required from him
[18:27:21 CEST] <cehoyos> jamrial, jkqxz: Please review libavcodec/v4l2_m2m_enc:free v4l2 encode session properly when initialiZzation fails Fix ticket 8285 bug
[19:03:41 CEST] <cone-015> ffmpeg 03ManojGuptaBonda 07master:1054752c563c: Add support for VP9 VDPAU hwaccel decode
[00:00:00 CEST] --- Sun Oct 27 2019
1
0
[02:20:22 CEST] <whitestone> hello
[09:13:39 CEST] <JAK-Zero> hey, I'm trying to find out the exact settings that the -preset options apply for x264
[09:14:16 CEST] <JAK-Zero> I tried `ffmpeg -h encoder=libx264` and it said `-preset <string> E..V..... Set the encoding preset (cf. x264 --fullhelp) (default "medium")`
[09:14:32 CEST] <JAK-Zero> what does `cf. x264 --fullhelp` mean?
[09:14:58 CEST] <Lypheo> JAK-Zero: see here: http://x264.janhum.alfahosting.org/fullhelp.txt
[09:17:04 CEST] <JAK-Zero> oh thanks
[09:17:18 CEST] <JAK-Zero> huh, they don't set crf?
[09:17:46 CEST] <JAK-Zero> it doesn't look like it sets bitrate either
[09:19:11 CEST] <Lypheo> why would they? it should be clear from the naming that the presets are meant to control speed, not quality
[09:20:13 CEST] <Lypheo> (although they do have bearing on quality to some extent at a fixed CRF)
[09:20:15 CEST] <JAK-Zero> oh, I thought you were picking compromises between speed and quality
[09:20:41 CEST] <JAK-Zero> what's the downside of picking ultrafast then?
[09:20:59 CEST] <Lypheo> terrible compression
[09:21:12 CEST] <Lypheo> meaning bloated file size
[09:21:29 CEST] <JAK-Zero> oh ok
[09:23:44 CEST] <JAK-Zero> I think I understand now, thanks for the help
[09:29:21 CEST] <Reinhilde> I have a progressive drop in recording framerate as the hours rack up.
[14:52:57 CEST] <pbox> hi I'm using ffmpeg to stream from a VPS to youtube and twitch. the audio plays fine - using jack as source - but I tried to use x11grab for streaming the desktop and it only shows a black screen
[14:53:56 CEST] <durandal_1707> use yuv420p format for output
[14:54:25 CEST] <pbox> I did
[14:55:05 CEST] <cehoyos> Does it work if you write to a local file?
[14:55:15 CEST] <BtbN> x11grab on a VPS?
[14:55:21 CEST] <pbox> in the -pix_fmt argument?
[14:55:27 CEST] <pbox> BtbN: I have lxqt installed
[14:55:36 CEST] <BtbN> Does the thing even have any kind of GPU?
[14:55:44 CEST] <pbox> and can use vnc just fine. no it does not
[15:02:52 CEST] <pbox> same thing happens when I write to disk
[15:04:09 CEST] <pbox> BtbN: do you think I won't get it to work without a GPU?
[15:04:27 CEST] <BtbN> maybe with full software framebuffer and rendering, but it will perform horribly
[15:14:32 CEST] <pbox> BtbN: thanks. I'm trying to search how to set ffmpeg to use software framebuffer and rendering but can't seem to find anything online. I don't mind a horrible performance if I can get some visuals for now. is it very hard?
[15:24:15 CEST] <asdjklnaskjdfgh> is there a way to list the codecs supported by a muxer?
[15:25:58 CEST] <durandal_1707> nope
[15:26:25 CEST] <asdjklnaskjdfgh> is there a reason for that?
[15:26:33 CEST] <durandal_1707> yes
[15:28:56 CEST] <asdjklnaskjdfgh> is there any way to see what combinations are possible?
[15:29:09 CEST] <cehoyos> What muxer are you interested in?
[15:29:36 CEST] <asdjklnaskjdfgh> I just want to write a little interface, where you can select a muxer and the codecs
[15:29:37 CEST] <cehoyos> Some support any codec, some are very limited
[15:29:49 CEST] <cehoyos> This is currently not easily possible.
[15:30:31 CEST] <cehoyos> Feel free to check AVOutputFormat.codec_tag but it does not always help
[17:13:23 CEST] <asdjklnaskjdfgh> Why does ffprobe show on some videos duration N/A, but when I open it manually it shows it under metadata?
[17:16:56 CEST] <cehoyos> Command line and complete, uncut console output missing (I guess the metadata is ignored)
[17:17:19 CEST] <asdjklnaskjdfgh> -v error -select_streams v:0 -show_entries stream=width,height,avg_frame_rate,duration -of default=noprint_wrappers=1:nokey=1
[17:27:26 CEST] <asdjklnaskjdfgh> this works ffprobe -v quiet -print_format json -show_format -show_streams
[00:00:00 CEST] --- Sun Oct 27 2019
1
0