Ffmpeg-devel-irc
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
December 2019
- 1 participants
- 62 discussions
[00:25:21 CET] <cone-649> ffmpeg 03Marton Balint 07master:28b5dc6199ed: avfilter/vf_interlace: restore lowpass mode constants
[00:25:21 CET] <cone-649> ffmpeg 03Marton Balint 07master:6498522befb2: avfilter/vf_tinterlace: add support for bypassing already interlaced frames
[00:25:21 CET] <cone-649> ffmpeg 03Marton Balint 07master:4cd2cee7ed51: avfilter/vf_interlace: do not interlace already interlaced frames
[00:25:21 CET] <cone-649> ffmpeg 03Marton Balint 07master:1f8e43938bc2: avfilter/x86/vf_interlace: always use unaligned movs
[01:27:17 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:f064c7c449f1: avcodec/mp3_header_decompress_bsf: Check sample_rate_index
[01:27:18 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:c94cb8d9b21b: avcodec/pnm: Check that the header is not truncated
[01:27:19 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:2c2ee67fd36e: avcodec/apedec: Set error on error in ape_decode_value_3860()
[01:27:20 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:185f441ba26a: avcodec/iff: Skip overflowing runs in decode_delta_d()
[01:27:21 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:9d4282658082: avcodec/wmalosslessdec: Check that padding bits is not more than sample bits
[01:27:22 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:ec3fe67074ad: avcodec/wmalosslessdec: Fix several integer issues
[01:27:23 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:5d0b3e282a6a: avcodec/wmavoice: Add FF_CODEC_CAP_INIT_CLEANUP
[01:27:24 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:50db30b47d01: avcodec/adpcm: Fix invalid shift in xa_decode()
[01:27:25 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:a9cc69c0d590: avcodec/wmaprodec: Fixes integer overflow with 32bit samples
[01:27:26 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:6b7bcd437e59: avcodec/decode: Fix integer overflow in max_samples check
[01:27:27 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:92455c8c65c4: avcodec/wmalosslessdec: Fix 2 overflows in mclms
[01:27:28 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:19c41969b26d: avcodec/wmavoice: Check remaining input in parse_packet_header()
[01:27:29 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:a76690c02b4f: avcodec/dstdec: Use get_ur_golomb_jpegls()
[01:27:30 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:5a8877da35bc: tools/target_dec_fuzzer: Adjust threshold for dst
[01:27:31 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:01593278cef0: avcodec/targa: Check colors vs. available space
[01:27:32 CET] <cone-649> ffmpeg 03Michael Niedermayer 07master:9fe07908c3f6: avcodec/adpcm: Clip predictor for APC
[11:44:22 CET] <f00lest> I am using transcoding.c example to get jpeg images out of image frames
[11:45:24 CET] <f00lest> I am doing `avformat_alloc_output_context2(&ofmt_ctx, av_guess_format("image2", NULL, NULL), NULL, filename);` on line 129
[11:45:44 CET] <f00lest> as advised
[11:46:08 CET] <f00lest> but still it encodes the images to h264
[11:46:16 CET] <f00lest> can it be encoded to jpeg instead
[11:46:24 CET] <f00lest> what should be done in that case?
[11:47:28 CET] <f00lest> there is some code about filters, can I just remove this code? https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/transcoding.c#L375 Is this code useful for my application?
[12:59:33 CET] <MarioMey> JEEB: I'm here again... with the "dagger" in my back, but trying to compile ffmpeg-2.1.5 again. Are you there?
[13:02:07 CET] <BtbN> Why tho
[13:03:31 CET] <MarioMey> I need to compile Blender 2.78... and it uses an old version of ffmpeg. So, I need to compile ffmpeg too.
[13:04:06 CET] <MarioMey> Compiling that old version of Blender in Buster is impossible.
[13:05:00 CET] <MarioMey> I have so much errors... because of ffmpeg.
[13:05:46 CET] <MarioMey> So, I have ffmpeg-2.1.5 to compile, but I don't want to install that version in my O.S. I would like to know how to do it.
[13:06:00 CET] <BtbN> Why not just build a more recent blender version?
[13:06:11 CET] <MarioMey> I need that version.
[13:06:14 CET] <MarioMey> Trust me.
[13:06:33 CET] <durandal_1707> then build without ffmpeg
[13:06:40 CET] <MarioMey> I can't, I need ffmpeg.
[13:07:45 CET] <MarioMey> I use the game engine and I play videos with it.
[13:08:08 CET] <durandal_1707> then there is no solution
[13:27:17 CET] <jdarnley> MarioMey: install that old stuff to some local prefix and it won't interfere with the system
[13:27:43 CET] <jdarnley> Then just tell blender where to find it
[13:27:57 CET] <jdarnley> or rather: blender's build system
[13:29:38 CET] <jdarnley> I don't build such old things but for my dev work I usually use ~/pfx
[13:30:01 CET] <jdarnley> then it is just: ./configure --prefix=$HOME/pfx && make && make install
[15:20:35 CET] <MarioMey> jdarnley, thanks... now I'm compiling in ~/pfx
[15:21:12 CET] <MarioMey> It's funny, before you talk, your name got my attention... I thought it was "darlene"... as in Mr Robot.
[15:21:20 CET] <MarioMey> :D
[15:22:00 CET] <MarioMey> jdarnley!!!
[15:22:25 CET] <MarioMey> I made ./configure --prefix=~/pfx --disable-yasm and it creates a folder with the name "~"
[15:22:39 CET] <MarioMey> lol
[15:24:47 CET] <MarioMey> Sorry, I touched ESC by accident.
[15:26:20 CET] <BradleyS> MarioMey: have you considered spinning up a virtual machine circa the era of your blender version
[15:26:26 CET] <BradleyS> build with older tools
[15:26:36 CET] <BradleyS> like gcc 4.7 or something
[15:31:48 CET] <MarioMey> BradleyS: my intention is to use this Blender version in this O.S.
[15:31:59 CET] <BradleyS> you can
[15:32:20 CET] <BradleyS> but it might save you a lot of grief to build with an older system with those tools
[15:32:52 CET] <MarioMey> The compiled-in-Debian-9 Blender version doesn't work in Debian 10.
[15:33:03 CET] <MarioMey> That's I try to compile now.
[15:33:11 CET] <BradleyS> you would have to build statically
[15:33:31 CET] <MarioMey> Oh...
[15:33:42 CET] <MarioMey> How should I...?
[15:34:29 CET] <BradleyS> assuming it's using a typical configure and makefile system, configure with --disable-shared --enable-static
[15:34:41 CET] <BradleyS> that might be enough
[15:35:11 CET] <MarioMey> Ok, I'll take that in mind...
[15:37:52 CET] <jdarnley> MarioMey: it is the shell that expands ~ and usually only does it when at thet start of an argument
[15:38:26 CET] <jdarnley> So if you want to use it in the middle you need to expand it, or use $HOME
[15:52:22 CET] <MarioMey> Ok, thx.
[20:25:40 CET] <durandal_1707> BradleyS: does app you use to work with braw files contain any info about internal colorspace used (like file info)?
[20:32:17 CET] <philipl> BtbN: did you respond to that guy who was asking about flushing nvenc?
[20:32:53 CET] <BtbN> I don't think I did, where did he ask?
[20:33:07 CET] <philipl> Went to the list on the 18th of november.
[20:33:14 CET] <philipl> "nvenc: Add encoder flush API"
[20:42:46 CET] <BradleyS> durandal_1707: the blackmagic raw player does not, but i'll import into resolve and check there
[20:43:46 CET] <philipl> BtbN: Are encoders allowed to implement flush? avcodec_flush_buffers doesn't state it clearly, although it mentioned decoding.
[20:43:59 CET] <philipl> audiotoolboxenc implements flush
[20:44:18 CET] <philipl> If it's valid, then it's just a matter of implementing .flush for nvenc and people can call it.
[20:50:10 CET] <BradleyS> metadata in resolve only says "black magic raw 24 fps 3840x2160"
[20:50:47 CET] <BradleyS> another thing to consider, there are multiple luts for each camera/sensor they make and each dynamic range preset
[20:51:26 CET] <BradleyS> https://i.imgur.com/8SPRGRq.png
[20:51:42 CET] <BradleyS> so i suspect the curve is dependent on the device's characteristics
[20:51:52 CET] <BradleyS> i only have the pocket 4k
[20:52:21 CET] <BradleyS> (those are 3D LUTs not 1D)
[20:53:03 CET] <BradleyS> but perhaps you are only concerned with the standard curve
[20:57:03 CET] <BradleyS> http://www.bmcuser.com/showthread.php?22311-Oops!-BRAW-isn%92t-Raw-%96-It%9…
[20:57:09 CET] <BradleyS> suggests YCbCr, not RGB
[20:58:26 CET] <durandal_1707> its similar but not exactly yuv
[20:58:30 CET] <BradleyS> apparently they're doing debayering in camera (on at least some models)
[20:58:55 CET] <BradleyS> davinci resolve uses an internal editing space they call YRGB
[20:59:26 CET] <BradleyS> a hybrid of yuv and rgb, where you can adjust luminance directly and the rgb color channels directly
[20:59:59 CET] <BradleyS> i wonder if braw is full resolution Y and subsampled RGB instead of UV
[21:01:59 CET] <BradleyS> some screenshots here and analysis might help, but it's mostly speculation: https://forum.blackmagicdesign.com/viewtopic.php?f=2&t=79611&start=0
[21:03:33 CET] <BradleyS> also: https://cml.news/g/cml-raw-log-hdr/topic/braw_codec_analysis/25749037?p=,,,…
[21:04:06 CET] <BradleyS> very good info under "What there is"
[21:04:22 CET] <BradleyS> "Transfer curve that is partially linear and partially quadratic, with a threshold"
[21:04:35 CET] <BradleyS> "The DCT compressed data is in a pseudo-YCbCr colour-space, so encoding a weighted RGB average, and differences towards R and B"
[21:04:45 CET] <BradleyS> hope that helps
[21:05:57 CET] <BradleyS> also read "the partial de-mosaic"
[21:11:24 CET] <Lynne> so its applied after yuv conversion?
[21:23:07 CET] <durandal_1707> there is no yuv conversion done
[22:04:18 CET] <durandal_1707> i see some 32768 size arrays being populated by powf(), i wonder is that such transfer function
[22:23:22 CET] <BtbN> philipl, though I'm not sure if nvenc can be flushed
[22:23:32 CET] <BtbN> Without killing it until re-init
[22:31:11 CET] <philipl> BtbN: the email seemed to suggest it can
[22:39:19 CET] <BtbN> I'm still not seeing an E-Mail anywhere. Is it on ffmpeg-devel?
[23:05:42 CET] <durandal_1707> hmm, this color stuff is directly related to what camera uses internally
[23:24:13 CET] <BradleyS> did you see "Linearization LUT, with 32K points" in that last link
[23:24:28 CET] <BradleyS> wonder if that's embedded and camera specific
[23:24:36 CET] <BradleyS> or if that's the sidecar he's writing about
[23:26:51 CET] <durandal_1707> BradleyS: inspecting binary, there is custom luts generated, there is camera specific and other standards ones like 709 and aces, but looks like no camera use that
[23:27:19 CET] <BradleyS> ah, interesting
[23:27:26 CET] <BradleyS> resolve does have aces support
[23:28:17 CET] <BradleyS> not sure why a player would need it if it's not used
[23:28:51 CET] <BradleyS> so do you think the storage format is weighted RGB with offsets?
[23:32:50 CET] <durandal_1707> they basically invented own colorspace and called it Blackmagic Design
[23:32:50 CET] <kierank> durandal_1707: I don't understand
[23:32:56 CET] <kierank> your review
[23:33:08 CET] <kierank> "There is thread_once there."
[23:33:09 CET] <kierank> where?
[23:33:21 CET] <durandal_1707> in init function
[23:33:33 CET] <BradleyS> well, i assume it's intended to play nice with their YRGB space in resolve
[23:33:47 CET] <kierank> durandal_1707: in wrapper I guess?
[23:35:09 CET] <kierank> other codecs use ff_thread_once in init
[23:35:26 CET] <nevcairiel> its litereally there in his init function
[23:35:34 CET] <kierank> oh
[23:35:48 CET] <kierank> i am stupid
[23:36:00 CET] <kierank> sorry
[23:36:14 CET] <durandal_1707> BradleyS: it is marketing thing, for skin tones as they say
[23:41:09 CET] <BradleyS> did this bit in the analysis lend any insights?
[23:41:11 CET] <BradleyS> The partial de-mosaic may just mean:
[23:41:11 CET] <BradleyS> - take this RGGB raw data, create R, (Gr+Gb)/2, B, convert it to pseudoYUV444, encode with JPEG(444). And the little of Gb-Gr residue is encoded extra
[23:41:11 CET] <BradleyS> - for fast decoding at 1/2 of resolution just decompress the JPEG and convert to final color space, no de-mosaic, look ma - what a speed!
[23:41:11 CET] <BradleyS> - for high quality decoding, get the Gr/Gb difference back, compose the original RGGB bayer data and do a full resolution de-mosaic
[23:42:13 CET] <BradleyS> so it's basically jpeg + residuals to create pseudo-raw
[23:42:55 CET] <BradleyS> and color space is RGB->YUV JPEG with residuals to reconstruct the RGB
[23:43:07 CET] <BradleyS> well, reconstruct the RGGB
[23:43:50 CET] <BradleyS> and the color parameters are defined by the 32k point LUT
[23:46:12 CET] <durandal_1707> BradleyS: there is function in their SDK to recreate curve out of parameters
[23:47:01 CET] <durandal_1707> colorspace is neither RGB or YUV. its their own thing
[23:47:34 CET] <durandal_1707> if you have resolve, under metadata you will see color space : blackmagic design
[23:47:56 CET] <BradleyS> ah, i checked in resolve studio 15, not 16
[23:48:44 CET] <durandal_1707> BradleyS: i REd all of it except this last bit that export to standard RGB, you can look at patch on ML
[23:49:00 CET] <BradleyS> ah, did not know there was a patch, will check it out
[23:49:49 CET] <durandal_1707> it uses bayer, but dunno about that, as that is probably not correct will need to think about it
[23:50:03 CET] <BradleyS> does RGB->YUV JPEG + extradata Gb/Gr residuals not qualify as their own color space?
[23:50:53 CET] <durandal_1707> it is not that, it uses own matrix to define colorspace in XYZ domain
[23:51:32 CET] <BradleyS> ah, you mean actual colorspace / matrix, i see
[23:51:36 CET] <durandal_1707> and than store 2 8x8 matrix and 2 4x8 matrix of numbers
[23:52:17 CET] <BradleyS> have you looked at the premiere/avid braw plugins yet?
[23:52:42 CET] <durandal_1707> why? no, i do not have such software
[23:53:00 CET] <BradleyS> just in case the disasm would be helpful
[23:53:20 CET] <BradleyS> they are free
[23:54:04 CET] <BradleyS> i think it's part of the braw sdk, last update today https://www.blackmagicdesign.com/support/
[23:55:57 CET] <durandal_1707> aha
[00:00:00 CET] --- Mon Dec 16 2019
1
0
[00:36:18 CET] <BtbN> grosso, both of those functions are deprecated.
[00:37:05 CET] <BtbN> And generally, feeding a de/encoder with an empty input signals EOF.
[00:37:36 CET] <BtbN> So after it has dumped all queued frames out, it is not supposed to be used again, and behaviour is undefined.
[02:16:44 CET] <bodqhrohro_> Why I don't have libx264 options section in ffmpeg -h?
[02:18:33 CET] <BtbN> Because libx264 options are not ffmpeg options.
[02:18:55 CET] <BtbN> If all the encoder/decoder/filter/... options were in there, it'd be a mess.
[02:19:24 CET] <bodqhrohro_> BtbN: so where did they go now?
[02:19:40 CET] <BtbN> Read the top if the -h output...
[02:19:50 CET] <BtbN> Also, that's been like that for forever, not sure if it ever was different.
[02:20:07 CET] <bodqhrohro_> Oh, full. Thanks.
[02:20:42 CET] <BtbN> full is several thousand likes, you usually don't want that.
[02:20:53 CET] <BtbN> *lines
[02:42:18 CET] <bodqhrohro_> The -chromaoffset seems to be ignored even if I set -subq 5 -psy 0 -trellis 0 :/ Why?
[06:04:48 CET] <byte4byte_> wtf?
[06:04:54 CET] <byte4byte_> is there an op around
[06:05:01 CET] <byte4byte_> im being harassed via pm by a user name blb
[06:20:58 CET] <f00lest> I am generating images from a video using transcoding example and image 2 oformat, but I am not able to generate jpg images
[06:21:41 CET] <f00lest> is there anyway I can ask ffmpeg to convert to png images?
[06:22:33 CET] <f00lest> I've tried using `avformat_alloc_output_context2(&ofmt_ctx, av_guess_format("image2", NULL, NULL), NULL, "image%d.jpg");`
[06:23:04 CET] <f00lest> but the image viewer says file is not jpeg image
[06:54:35 CET] <f00lest> I've also tried to this on line 128 of trancoding.c example `encoder = avcodec_find_encoder(AV_CODEC_ID_MJPEG);`
[06:54:45 CET] <f00lest> but that throws a segmentation fault
[09:08:31 CET] Last message repeated 1 time(s).
[09:08:31 CET] <f00lest> http://dranger.com/ffmpeg/tutorial01.html
[09:08:58 CET] <f00lest> Can I use dranger's first tutorial
[09:09:23 CET] <f00lest> replace the AV_PIX_FMT from RGB to something else and get jpeg pictures
[09:12:52 CET] <f00lest> has any one tried to get jpeg pictures using drangers tutorial and a video file?
[09:16:52 CET] <f00lest> does anyone know how to write headers for jpeg file, I think AV_PIX_FMT_YUVJ420P is what I need.
[16:28:49 CET] <void09> anyone know how to make a black&white image mask representing the logo position in a video ?
[16:29:28 CET] <void09> automagically, that is : ) so I can use this in a script to removo the tv logo in a video at a keypress
[16:30:31 CET] <void09> something like, take some screenshots at various poitns in the video, and see what pixels match in all of them
[16:31:00 CET] <void09> and somehow excluding black bars
[16:33:56 CET] <scramblez> I've converted a webm UHD/HDR video from you tube to mp4 and see the "Side data:" field is not carried across into mp4. Is this how it is meant to work? Is the mp4 container not suitable for HDR content?
[16:34:18 CET] <scramblez> This is the output from the two videos: http://dpaste.com/39EK36A
[16:34:50 CET] <JEEB> there's a colr atom but generally formats have their own headers in place so you don't need the info on the container side
[16:35:07 CET] <JEEB> google did the thing it did with webm because they had standardized color spaces not-so-well with VP9
[16:35:18 CET] <JEEB> so they more or less were like "uhh, yea. we totally didn't think this through back then"
[16:35:45 CET] <scramblez> JEEB: I C ... so mp4 will still carry across the full HDR luminance and colors?
[16:36:10 CET] <JEEB> depends on what you did, if it's just remux the content is the same
[16:36:18 CET] <JEEB> and it seems like you got the colorspace values through?
[16:36:28 CET] <JEEB> since you have BT.2020 and SMPTE ST.2084 marked there
[16:36:33 CET] <scramblez> Yes, just remux into mp4 container. The video stream was just copied over.
[16:36:54 CET] <scramblez> Yes, the gamut, but not sure about luminance?
[16:37:18 CET] <JEEB> the only thing you lost is metadata that says that the content will not have more than 1000 nits
[16:37:33 CET] <JEEB> which is a helper thing for things trying to play it
[16:37:41 CET] <scramblez> I C
[16:37:44 CET] <JEEB> mostly because that metadata in most formats is in the video stream
[16:37:55 CET] <JEEB> and I don't think the colr atom in mp4 has that
[16:38:07 CET] <JEEB> (for formats that don't have that in the video stream itself)
[16:38:18 CET] <scramblez> So why is this "Side data" added in the stream? How is it meant to be used?
[16:38:55 CET] <JEEB> the mastering screen one is mostly informational and probably useless for playback. the content light level thing is a helper thing for playback
[16:39:09 CET] <JEEB> so that when you're tone mapping the content to the screen, you know that you don't need to consider stuff higher than 1000 nits
[16:39:14 CET] <JEEB> thankfully a lot of stuff is dynamic anyways :P
[16:39:24 CET] <scramblez> Thanks JEEB, what you say makes sense.
[16:39:34 CET] <JEEB> like the video renderer in mpv which dynamically calculates the brightness
[16:40:31 CET] <scramblez> Sadly I played it on the TV, not a PC. The TV comes with its own video player and limited formats compatibility.
[16:41:03 CET] <JEEB> yes, most things ain't gonna take VP9 in MP4
[16:41:07 CET] <JEEB> I would guess?
[16:41:19 CET] <JEEB> not that I've tested :P
[16:43:20 CET] <scramblez> Another Q, perhaps not relevant to ffmpeg - I created a series of sinusoidal tones for testing different frequecies. I would like to measure (with a laptop) the SPL output from the speakers as these frequencies are played back. Could I use ffmpeg to do this?
[16:44:24 CET] <scramblez> So something which shows the dB output would be what I'm after.
[16:45:49 CET] <scramblez> arecord has a VU meter, but was wondering if ffmpeg can display dB on sound as captured by a mic.
[16:52:16 CET] <pink_mist> scramblez: ffmpeg doesn't really do display stuff, there's ffplay, but it's mainly a debugging tool
[16:59:08 CET] <Hello71> also it's meaningless.
[16:59:17 CET] <Hello71> you need to calibrate either the speaker or the microphone first
[17:05:10 CET] <scramblez> Hello71: I was going to play back each frequency and see what dB I get out of the speakers for each one of those.
[17:05:23 CET] <Hello71> ... how.
[17:05:49 CET] <scramblez> Sorry, I don't understand. :-/
[17:09:16 CET] <scramblez> I play a file I prepared with various frequencies, set the AVR to a loud enough level so I can hear it and then use a laptop with a mic to display the level of each frequency using some app (like e.g. arecord)
[17:10:03 CET] <scramblez> I some frequencies show up with a much lower dB level then I have a speaker/subwoofer tuning issue
[17:12:10 CET] <Hello71> no
[17:12:21 CET] <Hello71> if the speaker is non-linear, why would the microphone be linear
[17:13:38 CET] <Hello71> if you have some professional microphone with calibrated frequency response curves then you can normalize it
[17:14:00 CET] <Hello71> and then you have reinvented speaker calibration
[17:14:29 CET] <Hello71> s/linear/flat/
[17:22:26 CET] <scramblez> Hello71: yes, I see what you're saying.
[17:24:30 CET] <scramblez> I guess I'd be better off using my ears. :-)
[17:34:26 CET] <scramblez> Thank U all, need to run now.
[22:11:31 CET] <rigid> ahoy
[22:12:26 CET] <rigid> is there a cpu-friendly way to switch encoding between two v4l2 devices without restart?
[22:14:40 CET] <rigid> i'm currently offering a stream using "ffmpeg -f video4linux2 [...] -i /dev/video0 [...] -f flv -listen 1 rtmp://hostname:8080/cam" it would be nice if I could switch that stream to /dev/video1 and back without interruption
[22:40:18 CET] <kepstin> rigid: the ffmpeg cli tool isn't designed for that sort of thing, but it is technically possible if you make the command read both inputs in parallel and use the "streamselect" filter to pick one. You can then use filter commands (e.g. via the zmq filter) to tell it to switch which input is selected.
[22:41:16 CET] <rigid> ah, hm... i thought a way would be more on the v4l2 side, but that's even better
[22:41:22 CET] <durandal_1707> only designed to work with files
[22:41:54 CET] <kepstin> oh, does streamselect not discard frames from the non-selected source?
[22:42:10 CET] <rigid> i failed to find "streamselect". with that it's probably straightforward
[22:42:13 CET] <rigid> kepstin: thanks
[22:42:15 CET] <kepstin> huh, guess that won't work then
[22:42:30 CET] <rigid> kepstin: so it reads both sources at the same time?
[22:42:43 CET] <rigid> that'd probably be cpu-hungry
[22:42:52 CET] <rigid> but better than nothing
[22:43:06 CET] <durandal_1707> yes, and discard not used one, designed to work with files only
[22:43:14 CET] <kepstin> oh, no, streamselect uses framesync, it should work ok with this use case
[22:43:36 CET] <durandal_1707> but such stuff was never tested
[22:44:00 CET] <rigid> i will test it
[22:44:25 CET] <rigid> if really "everything is a file" it should work :-P
[22:44:42 CET] <kepstin> it's in the "i don't see why it wouldn't work" kinda thing
[22:45:21 CET] <kepstin> v4l cameras are kernel timestamped, i think, so you shouldn't be getting timestamp drift between multiple cameras
[22:45:45 CET] <rigid> i could imagine that there's a lag if a video device needs some time to come up, but i wouldn't care as long as the stream doesn't drop
[22:46:43 CET] <kepstin> the main issue would be that ffmpeg opens inputs sequentially, so it'll start one camera before the other. dunno if this'll actually cause any issues other than lag.
[22:47:03 CET] <rigid> suppose not
[22:47:23 CET] <rigid> in theory i could also restart ffmpeg, but it'd be nice if I could avoid that lag
[22:47:47 CET] <kepstin> also if one camera is slower framerate than the other, the fact that ffmpeg doesn't have input threads might cause issues.
[22:47:48 CET] <rigid> i'm replaying with ffplay and it needs some quirks to be low-latency
[22:48:09 CET] <kepstin> or might not, i dunno if there's kernel buffering :/
[22:48:13 CET] <rigid> wouldn't it switch framerate in-stream?
[22:48:19 CET] <rigid> i suppose that's not possible
[22:48:46 CET] <kepstin> no, the issue is that ffmpeg cli tool as a while is single threaded, so if it gets blocked waiting for a frame from one camera, it might not be able to read from the other.
[22:48:59 CET] <kepstin> i've never tried multiple v4l inputs, i dunno if that's actually an issue with v4l
[22:49:39 CET] <rigid> we'll see, i'll try tomorrow. thanks a lot for your suggestions!
[22:50:16 CET] <kepstin> this is all in all kind of a hack, ffmpeg cli tool is not designed to work as a realtime video mixer :)
[23:04:36 CET] <Arnob> test
[23:04:46 CET] <Arnob> Hi, how can I change the color of the waveform in this command: ffmpeg -y -i 1.wav -loop 1 -i b.jpg -filter_complex "[0:a]showwaves=s=1280x720:mode=line,colorkey=0x000000:0.01:0.1,format=yuva420p[v];[1:v][v]overlay[outv]" -map "[outv]" -pix_fmt yuv420p -map 0:a -c:v libx264 -c:a copy -shortest output1.mkv Thank you.
[23:13:25 CET] <furq> Arnob: showwaves=s=1280x720:mode=line:colors=0xff0000|0x0000ff
[23:13:49 CET] <furq> also you shouldn't need chromakey and format, showwaves draws on a transparent background
[23:46:51 CET] <Kaedenn1> I'm trying to compile a program using mingw (on x86_64 Linux) that uses the libav* libraries. Can I just use the prebuilt libraries and header files for Windows, or do I have to compile it from source?
[23:47:17 CET] <Kaedenn1> I was told not to try compiling ffmpeg for Windows.
[23:48:38 CET] <johnjay> are regular non-bluray DVDs typically interlaced?
[23:49:15 CET] <DHE> Kaedenn1: you can use the prebuilt libraries if you have the right headers, which it sounds like you do...
[23:49:37 CET] <Kaedenn1> I don't. I'd need to grab those two.
[23:49:47 CET] <Kaedenn1> The entire ffmpeg-dev stuff; includes and libs.
[23:49:54 CET] <Kaedenn1> s/two/too/
[23:50:26 CET] <kepstin> johnjay: it really varies. most dvds of hollywood film releases in the past 10 years won't be interlaced
[23:50:30 CET] <kepstin> tv shows usually are
[23:50:57 CET] <kepstin> weird stuff from the mid-2000s is sometimes mixed interlaced/progressive/telecined because lol
[23:51:23 CET] <johnjay> i looked on wikipedia to figure out if dvds were progressive scan or not
[23:51:30 CET] <johnjay> it says.. 240p? that doesn't seem right
[23:52:00 CET] <kepstin> dvds can encode progressive scan content at 24fps (along with instructions on how to apply telecine to display on an analogue video signal)
[23:52:31 CET] <johnjay> yeah i thought a plain dvd movie could be 720p
[23:52:34 CET] <johnjay> is that wrong?
[23:52:37 CET] <kepstin> 30fps "progressive" is possible by doing a 1:1 pulldown, i.e. splitting the frame into a top field and bottom field
[23:52:40 CET] <johnjay> or is it 720i?
[23:52:55 CET] <kepstin> that's wrong, dvd only encodes standard definition
[23:53:10 CET] <johnjay> ok
[23:53:39 CET] <johnjay> i found this old dvd player with the component cables on it, was wondering if worth using
[23:53:40 CET] <kepstin> so 480i60 or 480p24 or mixed/switching is possible on ntsc dvds
[23:53:59 CET] <kepstin> better to rip the dvd to digital video on a pc
[23:54:02 CET] <johnjay> so it can achieve higher framerate by interlacing? radical
[23:54:12 CET] <kepstin> higher field rate, not frame rate
[23:54:22 CET] <kepstin> (well, it's 30 frames/s, so technically higher frame rate too)
[23:55:44 CET] <kepstin> (i'm not sure exactly what frame/field rates are supported on pal dvd, i suspect it might be only 576i50)
[23:56:18 CET] <johnjay> interesting.
[23:56:38 CET] <johnjay> i guess if i'm going to watch a SD i.e. standard dvd movie then there's no point in getting a dvd player with an hdmi
[23:56:47 CET] <johnjay> i already have this old one in the den where the tv is anyway
[23:57:06 CET] <johnjay> the only reason to buy something would be to buy a blu-ray, correct?
[23:57:07 CET] <kepstin> you'll always get a better picture using a digital cable instead of analogue
[23:57:22 CET] <kepstin> and most (all?) blu-ray players can also play dvds
[23:57:30 CET] <johnjay> because of the digital to analog conversion?
[23:58:02 CET] <kepstin> yeah. composite video (single wire, yellow cable ends) is particularly bad.
[23:59:01 CET] <johnjay> i vaguely knew that the component cables are better than the yellow one yeah
[23:59:05 CET] <johnjay> but didn't know the reason
[23:59:09 CET] <kepstin> if you're using an lcd tv, then using an analogue cable means it's going from digital (on the dvd) to analogue (on the cable) back to digital (in the tv)
[23:59:36 CET] <johnjay> ouch
[23:59:55 CET] <kepstin> you will get noticably better picture using hdmi instead of composite
[00:00:00 CET] --- Mon Dec 16 2019
1
0
[00:21:41 CET] <cone-383> ffmpeg 03Paul B Mahol 07master:24424a6516f8: avcodec/simple_idct_template: fix integer overflow
[04:38:10 CET] <kierank> jdarnley: how hard do you think it is for me to write 32-bit coeff 10-bit idct support over christmas
[04:38:14 CET] <kierank> and 12-bit idct
[04:38:25 CET] <kierank> asm
[04:52:25 CET] <kierank> also why does 8-bit have dc only hack but not 10-bit
[09:50:36 CET] <cone-300> ffmpeg 03Carl Eugen Hoyos 07master:193143486e8a: lavc/pnmdec: Fix 16bit decoding.
[12:15:29 CET] <jdarnley> kierank: C and ASM? Or just ASM?
[12:15:41 CET] <durandal_1707> ???
[12:15:53 CET] <jdarnley> <@kierank> jdarnley: how hard do you think it is for me to write 32-bit coeff 10-bit idct support over christmas
[12:16:01 CET] <jdarnley> at [Sat 14 04:38]
[12:16:57 CET] <durandal_1707> why?
[12:17:23 CET] <jdarnley> IIRC it is some weird studio format he's been working on for the past few years
[12:17:49 CET] <jdarnley> Was it part of MPEG-4?
[12:17:54 CET] <jdarnley> I don't recall
[12:29:13 CET] <kurosu> yes, studio profile uses that
[12:29:32 CET] <kurosu> dunno why it needs more precision than say prores or dnxhd, though
[12:32:52 CET] <Lynne> jdarnley: if you're going to write it please write it into libavutil/tx
[12:33:11 CET] <durandal_1707> i can not figure out what LUT curve braw uses
[12:34:00 CET] <durandal_1707> Lynne: should i use avutil/tx for 2d idct?
[12:39:03 CET] <Lynne> the API is capable for it, so if you write a new transform you should put it there
[12:39:38 CET] <Lynne> right now its just ffts, though I could write a float/int dct using an fft too
[12:40:03 CET] <Lynne> but its like 4x the price if you use an fft to do a dct
[12:41:04 CET] <BradleyS> durandal_1707: there are three dynamic range settings on my cam
[12:41:15 CET] <BradleyS> film, extended video, and video
[12:41:46 CET] <BradleyS> blackmagic provides luts in cam and in davinci resolve for film and extended video
[12:42:15 CET] <BradleyS> film is the widest dynamic range / least compressed
[12:42:25 CET] <BradleyS> extended video is wider than video
[12:42:49 CET] <BradleyS> video is basically normal / standard not needing a lut
[12:43:12 CET] <BradleyS> if you want i can shoot all three and provide samples for comparison
[12:44:02 CET] <BradleyS> not sure whether their lut files are available or if they're embedded in resolve / protected in some way
[12:45:44 CET] <durandal_1707> BradleyS: have you uploaded standard already?
[12:45:59 CET] <BradleyS> don't think so, pretty sure they are all film
[12:46:16 CET] <BradleyS> i can set exposure with gray card and shoot some targets in all modes for you
[12:46:50 CET] <BradleyS> and prores versions for comparison
[12:47:03 CET] <Lynne> are the luts not in the disasm/
[12:48:09 CET] <BradleyS> i don't think their player app has the luts, only camera and resolve applies them on playback (can enable/disable)
[12:50:45 CET] <durandal_1707> BradleyS: feel free to do it for standard mode, with prores as reference
[12:51:05 CET] <BradleyS> okay, will try to get that done today
[12:51:20 CET] <BradleyS> UTC-5 here so just getting going
[12:56:35 CET] <durandal_1707> player have sidcar files, but even without them their output is much brighter
[12:56:46 CET] <durandal_1707> *sidecar
[13:02:51 CET] <BradleyS> ah
[14:35:03 CET] Action: BradleyS summons the paul
[14:44:16 CET] <BradleyS> wb
[14:44:23 CET] <BradleyS> same link: https://www.dropbox.com/sh/8s7bb7hkylewbtm/AAB8BuW23OyyqE9qtRqzQvlEa?dl=0
[14:44:31 CET] <BradleyS> last 6 files
[14:44:41 CET] <BradleyS> BRAW-DR-* and ProRes-DR-*
[14:45:11 CET] <BradleyS> Film (Widest) > Extended Video (Wide) > Video (Standard)
[14:59:29 CET] <kierank> jdarnley: ASM for 32-bit coeff input
[14:59:37 CET] <kierank> Have been reading the code
[14:59:41 CET] <kierank> It's possible
[14:59:55 CET] <kierank> But there are some tricks that make it hard
[15:03:04 CET] <jdarnley> It is probably possible over christmas
[15:03:41 CET] <jdarnley> Depends on how much free time you have given the current project.
[15:04:20 CET] <jdarnley> As for the dc only hack in the the 8-bit...
[15:04:29 CET] <jdarnley> I would assume it was there for speed reasons
[15:05:44 CET] <jdarnley> IIRC it is slightly different to the normal coeffs so maybe it was also to match some other decoder
[15:06:53 CET] <jdarnley> Didn't we make a blog post about it? I went looking and I found no answer.
[15:19:43 CET] <yuzo555> Hi, cloud anyone confirm is this ( https://trac.ffmpeg.org/ticket/5578 ) a bug and when will it be fixed?
[15:20:46 CET] <jdarnley> When you submit a patch for it.
[16:04:30 CET] <durandal_1707> michaelni: please write bayer 16bit to rgb 16 bit conversion
[16:05:00 CET] <cehoyos> What conversion do we currently have?
[16:05:29 CET] <durandal_1707> only to > 8bit
[16:05:49 CET] <durandal_1707> so it kills other 8bits of 16
[16:05:59 CET] <cehoyos> from bayer to 8bit rgb? That sounds correct, no?
[16:06:10 CET] <cehoyos> I thought it is actually 4bit bayer, no?
[16:06:17 CET] <cehoyos> What we currently have
[16:06:24 CET] <durandal_1707> 16 bit bayer to 16bit rgb
[16:06:37 CET] <cehoyos> But our "16 bit bayer" is actually 4bit, no?
[16:06:39 CET] <durandal_1707> 4bit bayer is nonsense
[16:07:08 CET] <durandal_1707> bayer 16 bit is 16 bit RGGB pattern
[16:08:24 CET] <cehoyos> Indeed;-)
[16:10:57 CET] <cone-290> ffmpeg 03Carl Eugen Hoyos 07master:8b5ef2dcffe5: lavu/pixfmt: Cosmetics, remove wrong end-of-comment markers.
[16:38:13 CET] <durandal_1707> BradleyS: what about taking picture of gray ramp, from pure black to pure white?
[16:39:29 CET] <BradleyS> i don't have a standard chart for that but could try to find something
[16:40:13 CET] <BradleyS> there are gray ramped swatches on the target but obviously that only gives you 6-8 levels
[16:40:35 CET] <BradleyS> i will see if i can find something printed with a gradient here
[16:41:22 CET] <durandal_1707> BradleyS: picture monitor/tv screen?
[16:42:37 CET] <BradleyS> probably
[17:18:55 CET] <cehoyos> michaelni: A regression was reported: https://trac.ffmpeg.org/ticket/8430
[17:54:14 CET] <MarioMey> Hello, people.
[17:54:34 CET] <MarioMey> I'm having some issues with ffmpeg by compiling Blender...
[17:55:33 CET] <MarioMey> Last time I compiled it was with Debian 9. Now, I'm on 10 (Buster) and I'm having some messages when compiling.
[17:56:06 CET] <MarioMey> The same compiler suggests me some changes... but there're ones that has no suggestion and no-idea how to fix it.
[17:56:31 CET] <MarioMey> I think it's about ffmpeg version... can I downgrade it?
[18:03:23 CET] <MarioMey> This just one of the error mesages with suggestion:
[18:03:26 CET] <MarioMey> /home/mario/src/blender-git/blender/source/blender/blenkernel/intern/writeffmpeg.c:639:15: error: CODEC_FLAG_GLOBAL_HEADER undeclared (first use in this function); did you mean AV_CODEC_FLAG_GLOBAL_HEADER?
[18:03:26 CET] <MarioMey> c->flags |= CODEC_FLAG_GLOBAL_HEADER;
[18:03:26 CET] <MarioMey> ^~~~~~~~~~~~~~~~~~~~~~~~
[18:03:26 CET] <MarioMey> AV_CODEC_FLAG_GLOBAL_HEADER
[18:09:33 CET] <cehoyos> Apart from "wrong channel": Don't you agree that the message looks rather helpful?
[18:11:26 CET] <cehoyos> (AV_CODEC_FLAG_GLOBAL_HEADER was added more than four years ago)
[18:14:40 CET] <BradleyS> durandal_1707: same link, BRAW|Prores-DR-Grad-*
[18:14:44 CET] <BradleyS> out of focus to avoid moire
[18:16:45 CET] <BradleyS> see also in directory, BRAW-DR-Grad-WhiteClipping.jpg
[18:17:02 CET] <BradleyS> photo of cam display with zebra guide showing white clipping area for standard curve
[18:18:05 CET] <BradleyS> unfortunately my calibrated (today) 99% sRGB coverage S-IPS display has poor definition in the blacks, so the it's somewhat flat on the left side of the gradient
[18:18:10 CET] <BradleyS> but should help
[18:19:43 CET] <durandal_1707> thanks
[18:19:55 CET] <BradleyS> any time
[21:59:07 CET] <MarioMey> cehoyos: Sorry if this is no the channel. Tell me where to ask this... meanwhile, this is not the only error. There're others with no suggestions, like:
[21:59:10 CET] <MarioMey> /home/mario/src/blender-git/blender/source/blender/blenkernel/intern/writeffmpeg.c:576:3: error: AVCodecContext {aka struct AVCodecContext} has no member named me_method
[21:59:10 CET] <MarioMey> c->me_method = ME_EPZS;
[21:59:11 CET] <MarioMey> ^~
[21:59:24 CET] <MarioMey> Or:
[21:59:25 CET] <MarioMey> /home/mario/src/blender-git/blender/source/blender/blenkernel/intern/writeffmpeg.c:576:17: error: ME_EPZS undeclared (first use in this function)
[21:59:26 CET] <MarioMey> c->me_method = ME_EPZS;
[21:59:26 CET] <MarioMey> ^~~~~~~
[22:00:00 CET] <JEEB> seems to only be utilized for libx264 so it seems to now only appear as an AVOption
[22:00:05 CET] <JEEB> instead of an AVCodecContext global option
[22:01:11 CET] <MarioMey> I'm concern with this issue... because I really need to compile Blender.
[22:01:39 CET] <MarioMey> There's a way to compile the stuff that Blender needs... for example, ffmpeg.
[22:02:33 CET] <MarioMey> But I'm confused...
[22:04:01 CET] <JEEB> the deprecation for that stuff was done between october 2014 and july 2015, and finally removed completely in March, 2017
[22:04:12 CET] <MarioMey> It's possible to compile ffmpeg and get the "include" path appart from the one from O.S.?
[22:04:41 CET] <JEEB> when you `make install` the .pc files for the libraries contain the installed prefix's directories
[22:05:32 CET] <JEEB> for example `PKG_CONFIG_PATH=/home/jeeb/encoding_prefix/lib/pkgconfig/ pkg-config --libs libavcodec`
[22:05:50 CET] <JEEB> should give you the flags for that libavcodec installed under ~/encoding_prefix :P
[22:06:19 CET] <JEEB> (This is not specific to FFmpeg, all pkg-config utilizing things can and should do this)
[22:06:33 CET] <MarioMey> Sorry, man... I'll continue in another moment... I have a terrible pain in my back as a dagger and I don't know why... I can't write any more. I'll save what you are saying.
[22:07:00 CET] <MarioMey> :-$
[22:41:03 CET] <mkver> michaelni: Are you sure it is the "Stop reallocating" patchset that fixes your testcase and not the "Copy one NAL unit at a time"? (https://ffmpeg.org/pipermail/ffmpeg-devel/2019-October/251732.html)
[22:46:22 CET] <michaelni> mkver, the refered patch fixed a timeout caused by repeated packet growing. it was faster after that patch, i admit i did not fully test after each patch, so maybe another one made a (substantial diference too) i just quickly tested that the refered one made it from (iam too lazy to wait) to quick
[22:47:01 CET] <mkver> Oh, a timeout. Then it indeed must have been that patch.
[22:47:01 CET] <michaelni> that is unless i made a mistake and mixed something up ...
[22:51:19 CET] <mkver> Do you have some numbers for me to add to the commit message (your timeout fixes always contain these nice numbers)? It doesn't matter if you are comparing the fixed version with git master or the preceding patch.
[00:00:00 CET] --- Sun Dec 15 2019
1
0
[03:04:48 CET] <hiihiii> I'm stuck using ffmpeg 3.2.x to encode x264 videos for posting to social media (mainly twitter) cause my ffmpeg 4.x.x encoded vids always get them rejected
[03:06:19 CET] <hiihiii> everything from the same exact command
[12:08:26 CET] <void09> anyone know if the ffmpeg scenedetect filter is better than pyscenedetect ?
[14:27:23 CET] <Filarius> kepstin: I got advice to directly place stdout of first ffmpeg as stdin of second ffmpeg, and finally got its working, its just about 4-5 frames "lag"
[14:27:53 CET] <Filarius> ffmpeg -loglevel quiet -f rawvideo -pix_fmt gray -s:v '+str(w)+'x'+str(h)+' -re -r 60 -i - -c:v libx264 -preset fast -crf 28 -g 100 -tune zerolatency -f h264 -
[14:28:08 CET] <Filarius> ffmpeg -loglevel quiet -probesize 32 -f h264 -re -r 60 -i - -c:v rawvideo -pix_fmt gray -f image2pipe -
[14:31:19 CET] <kepstin> Filarius: i'm pretty sure that's what i told you to do :/
[14:52:37 CET] <Filarius> kepstin, maybe i did not was carefull listener :)
[14:53:55 CET] <Filarius> i miss part "take stdout buffer from one and place as stdin for second"
[14:55:25 CET] <Filarius> whatever, there was several other thing just today realize I did wrong
[14:58:27 CET] <furq> Filarius: idk if it'll help but on the right hand side you should drop -re and have -pixel_format gray as an input option
[14:58:44 CET] <furq> instead of -pix_fmt gray as an output option
[15:00:16 CET] <furq> actually after reading it again i have no idea which of those commands is which
[15:02:48 CET] <Filarius> i had "magic" problem with making commandline so I just trying make something what works, not i got what I did wrong
[15:03:08 CET] <Filarius> *now I got it
[15:03:50 CET] <Filarius> its 2 commands for 2 ffmpeg running at same time, what one of it you speaking about? both ?
[15:04:33 CET] <Filarius> python -> gray frame -> ffmpeg encoding -> ffmpeg decoding -> gray frame -> python
[15:06:23 CET] <furq> what part of this means lag is an issue
[15:09:36 CET] <Filarius> (if I got what you mean) i need to have very short queue of frames being "in ffmpeg box", now its about 7-8 frames (4-5 was mistake, I wrote 2 times per iteration then i said it)
[15:11:21 CET] <Filarius> i mean, i said there was 4-5 frames "lag", but then I cound frames I assidently made "write 1 frame to ffmpeg" 2 times, but count only 1
[15:17:25 CET] <Filarius> i just remove both -re and -r, i do not need frame rate here (its not affects how x264 do encoding, right ?)
[15:45:51 CET] <DHE> -re makes ffmpeg throttle its file read speed to simulate "realtime" encoding. -r overrides the framerate on the input file
[15:46:37 CET] <DHE> setting the framerate on the input makes ffmpeg treat that as the file input framerate. setting it on the output will drop/dup frames to make the output file meet your requested framerate but keeping the video as close to the input as possible
[15:49:25 CET] <cehoyos> furq: You cannot force the pix_fmt for h264
[16:13:25 CET] <f00lest> I'm trying to open video and save all frames as png files
[16:14:02 CET] <f00lest> can I use this example? https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/decode_video.c
[16:14:27 CET] <cehoyos> I think you need transcoding.c
[16:15:37 CET] <f00lest> cehoyos will transcoding.c all of it?
[16:15:46 CET] <cehoyos> all of it?
[16:16:08 CET] <f00lest> I mean extracting frames from video, then convert those frames to png images
[16:16:46 CET] <cehoyos> I believe I already understood that.
[16:17:05 CET] <f00lest> okay, so transcoding.c does that
[16:17:14 CET] <cehoyos> I am not sure it does
[16:17:25 CET] <f00lest> owh
[16:17:31 CET] <cehoyos> But it will show you how to encode video (you want that) and this is not shown in decode_video.c
[16:17:38 CET] <cehoyos> (At least I would be surprised if it is)
[16:17:39 CET] <DHE> should be able to use image2 as the output "format" and it will deal with the file IO as long as you give it png encoded packets
[16:18:06 CET] <cehoyos> Or you simply write each frame into a file...
[16:18:29 CET] <DHE> depends how much extra work you want to do since a mulit-file muxer already exists
[16:19:00 CET] <f00lest> DHE what is this image 2
[16:19:09 CET] <f00lest> is it an example filename?
[16:19:35 CET] <DHE> f00lest: ffmpeg includes a muxer/demuxer called image2 which can simulate a "video" which is actually a bunch of images in a directory, both reading and writing
[16:20:00 CET] <DHE> I used it to turn jpegs taken once every 10 minutes over a time of months into a single time lapse video
[16:20:45 CET] <f00lest> DHE so cool
[16:21:21 CET] <f00lest> is there some code I need to insert into the transcoding.c code so that I can use image2
[16:24:48 CET] <DHE> line 121, avformat_alloc_output_context2, has an option for the oformat (output format). you need to set this to the image2 output format which av_guess_format("image2",NULL,NULL) should provide
[16:25:47 CET] <DHE> the filename then would conform to image2's file pattern rules. so you likely want something like: "image%d.png" or generally anything suitable for sprintf(frame_filename, your_string_here, framenumber);
[16:26:17 CET] <f00lest> DHE okay thanks
[16:26:24 CET] <f00lest> I'll try that right now
[16:26:30 CET] <f00lest> cehoyos thank you
[16:28:25 CET] <DHE> and obviously video codec of png (this example just transcodes to the same codec as the input)
[16:32:35 CET] <f00lest> is that too in the options of `avformat_alloc_output_context2` ?
[16:37:22 CET] <f00lest> may be I can read a guide or tutorial that can teach me these basics about ffmpeg?
[16:42:24 CET] <f00lest> owh so the transcoding example just converts high quality to a lower quality video
[16:42:47 CET] <furq> well that's what transcoding is
[16:43:29 CET] <f00lest> owh wait, I think I am mistaken, output size is actually > input file size
[16:45:38 CET] <f00lest> I thinks it just packs frames into a new video
[16:47:19 CET] <f00lest> sorry about that
[17:39:58 CET] <asterismo_l> hi
[17:40:00 CET] <asterismo_l> is there any repository of lib x264 and ffmpeg with disabled sse3 and sse4 instruction sets? i tried to compile lib x264 with parameter --disable-asm but gif conversion to mp4 will fail again complaining on sse3 and sse4 cpu
[17:46:19 CET] <cehoyos> asterismo_l: How did you compile x264, what command line did you test and how does the complete, uncut console output look like?
[17:46:56 CET] <asterismo_l> i'm digging, actually it may resulted ok
[17:47:09 CET] <DHE> these things are supposed to be auto-detected. how did such instructions get used if your CPU doesn't support them?
[17:47:26 CET] <cehoyos> Its a virtualized (broken) cpu
[17:47:50 CET] <DHE> that's pretty broken
[17:47:56 CET] <asterismo_l> its a VPS server
[17:48:00 CET] <cehoyos> And it is not using them although they are not supported, they are supported but the cpu does not report them correctly (iiuc)
[17:57:49 CET] <asterismo_l> the AES-NI instructions as well as sse3 and sse4 are disabled somehow
[18:04:26 CET] <DHE> according to gcc, the minimal athlon64 profile only had sse2, so I guess it's a legal CPU configuration..
[22:06:36 CET] <Guest84> hey, I am trying to upload a video to youtube, but the ffmpeg of streamable and youtube fails with exit code 1
[22:06:54 CET] <Guest84> .\ffmpeg.exe -i .\lmao2.png -i .\SoundRecord-2019-12-14-21-32-52.wav -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p -movflags +faststart -vf scale=w=1920:h=1080:force_original_aspect_ratio=decrease -c:a aac -b:a 256k test.mp4 -framerate 60 < this is a cmdline I use
[22:07:21 CET] <Guest84> the video plays back fine
[22:07:39 CET] <Guest84> not sure what the deal is
[22:07:54 CET] <Guest84> at first I am like "ah right .mkv doesn't work at all on youtube"
[22:08:13 CET] <Guest84> then I am like "ah right it can't be lossless"
[22:08:20 CET] <Guest84> then "ah right it can't be yuv444p"
[22:09:49 CET] <Guest84> I will just make lossless mkv version and convert with handbreak
[22:09:57 CET] <Guest84> it uses ffmpeg anyway but who knows
[22:51:26 CET] <grosso> I'm trying to use android mediacodec h.264 decoder. It turns out that this codec has the AV_CODEC_CAP_DELAY flag, so...
[22:51:42 CET] <bodqhrohro_> I watch analog TV with weak signal and wonder if some codec supports temporarily discarding U/V information in order to fit into bitrate constraints, instead of other quality regressions.
[22:52:43 CET] <grosso> after calling avcodec_decode_video2 and receive a decoded frame, then I keep calling avcodec_decode_video2 with an empty packet in order to flush codec
[22:53:59 CET] <grosso> so the codec first eat about 10 av_packets and then it spits about 10 decoded frames, and then...
[22:54:38 CET] <grosso> when I call avcodec_decode_video2 with the next encoded video packet, it hangs and never returns
[00:00:00 CET] --- Sun Dec 15 2019
1
0
[08:47:54 CET] <thardin> does avutil have a std::deque-type thing?
[08:49:53 CET] <JEEB> yea I was using something like that for AVPackets in movenc.c for one of those patches I'll hopefully post on the ML soon
[08:50:13 CET] <JEEB> (I just added addition back to the pop() point IIRC)
[08:50:26 CET] <JEEB> so the base functionality for put/pop should already be there
[08:51:01 CET] <thardin> what's it called?
[08:52:41 CET] <JEEB> ff_packet_list.*
[08:53:21 CET] <JEEB> AVPacketList apparently being the struct
[08:53:36 CET] <JEEB> there might be a void * thing as well
[08:54:11 CET] <thardin> I see it's lavf-specific
[08:54:28 CET] <thardin> wait a sec.. isn't there a std-like thing for C?
[08:54:28 CET] <JEEB> I think there was something in libavutil as well, but I don't remember that one
[08:54:37 CET] <JEEB> there could be, I'm not sure
[08:54:48 CET] <JEEB> also the logic seems rather generic in this thing 8)
[08:58:00 CET] <thardin> http://sglib.sourceforge.net/
[08:58:24 CET] <thardin> http://savannah.gnu.org/projects/avl
[10:09:16 CET] <cone-352> ffmpeg 03Martin Storsjö 07master:06ec9c4746eb: configure: Check for the SetDllDirectory and GetModuleHandle functions
[10:14:06 CET] <f00lest> how can I get exact functionality that `ffmpeg -i video.webm thumb%04d.jpg` offers using just c code.
[10:14:32 CET] <JEEB> see the doc/examples/transcode or so example
[10:14:36 CET] <JEEB> ignore the audio reltaed stuff
[10:26:02 CET] <nevcairiel> the image generation is the "image2" muxer
[10:26:18 CET] <nevcairiel> encode to jpeg, mux with image2, and it can generate a list of image files
[10:27:21 CET] <f00lest> JEEB thanks
[10:27:52 CET] <f00lest> nevcairiel not clear on what you said, sorry I am just getting started with ffmpeg and c
[10:56:45 CET] <f00lest> nevcairiel was that message for me, may be I mistook it? was it for some one else?
[11:03:52 CET] <JEEB> f00lest: it was for you
[11:04:05 CET] <JEEB> so when opening a muxer, the one writing multiple images is called "image2"
[12:53:25 CET] <cone-352> ffmpeg 03Paul B Mahol 07master:824324db4102: avfilter/vf_datascope: add decimal output
[14:55:20 CET] <durandal_1707> michaelni_: libavutil/bswap.h:60:8: runtime error: implicit conversion from type 'int' of value 2101792 (32-bit, signed) to type 'uint16_t' (aka 'unsigned short') changed the value to 4640 (16-bit, unsigned)
[15:03:19 CET] <durandal_1707> michaelni_: Lynne : the 12bit idct simd code is incorrect - it differs from C variant
[15:04:51 CET] <durandal_1707> and create artifacts at borders
[15:10:31 CET] <cone-352> ffmpeg 03James Almer 07master:54d09eb8d052: fate/cbs: use the rawvideo muxer for AV1 tests
[15:45:16 CET] <cone-352> ffmpeg 03Guo, Yejun 07master:ed9fc2e3c576: avfilter/vf_dnn_processing: refine code for better naming
[15:45:17 CET] <cone-352> ffmpeg 03Guo, Yejun 07master:e52070e89c75: convert_from_tensorflow.py: add support when kernel size is 1*1 with one input/output channel (gray image)
[16:04:36 CET] <cone-352> ffmpeg 03Andreas Rheinhardt 07release/4.2:2f89f24eb952: avformat/matroskadec: Fix demuxing ProRes
[16:04:37 CET] <cone-352> ffmpeg 03Andreas Rheinhardt 07release/4.2:48ae2358482f: avformat/matroskadec: Fix use-after-free when demuxing ProRes
[16:30:43 CET] <BBB> jamrial: don't you think that by default filling in the correctly-implied values is valuable?
[16:30:55 CET] <BBB> for users of cbs that don't want to have to load ref explicitly
[16:32:45 CET] <jamrial> no, because you can't do it for all frames in a TU. whatever is stored in the cbs private context, it will be from the last parsed frame, in whatever order they were coded in the TU (usually the visible frame)
[16:34:02 CET] <jamrial> if you want values for one specific frame out of four in a TU, then you have no choice but to derive them from priv->ref[frame->ref_frame_idx[frame->primary_ref_frame]]
[16:35:18 CET] <jamrial> and you of course can't apply those derived values into the frame proper because then the writing process will think they are coded values rather than derived values
[16:41:37 CET] <jamrial> maybe this could just magically work if you write them into the frame proper without risking the writing code thinking they are coded because the *_update fields will be false
[16:42:09 CET] <jamrial> but i can't say if it's safe or ideal
[16:42:26 CET] <jamrial> would like to hear jkqxz's opinion before doing anything
[16:47:47 CET] <durandal_1707> help!
[17:15:17 CET] Action: BradleyS helps durandal_1707
[18:32:37 CET] <Illya> Anyone seen Diego recently?
[18:37:03 CET] <BBB> which one?
[18:48:11 CET] <Illya> BBB: Biurrun
[18:51:16 CET] <kierank> why would he be on this channel
[18:52:32 CET] <durandal_1707> pain
[18:53:42 CET] <Illya> I mean at all, not necessarily in this channel. It's fine I'll just email him
[19:17:11 CET] <durandal_1707> what can cause block 8x4 idct output? for other files it works fine, just for this single one it breaks
[19:17:21 CET] <durandal_1707> *blocky
[19:18:11 CET] <BBB> overflow?
[20:15:07 CET] <mkver> durandal_1707: MAINTAINERS says you are still on Google+.
[20:31:07 CET] <durandal_1707> mkver: please send patch :)
[20:31:16 CET] <mkver> Ok.
[20:59:31 CET] <durandal_1707> BBB: unlikely, i changed SUINT to int and build with -fsanitize=integer and do not get overflows
[21:00:08 CET] <BBB> it typically means you lost high frequency coefs
[21:00:09 CET] <BBB> so ...
[21:00:12 CET] <BBB> anything leading to that
[21:00:21 CET] <BBB> what's your scantable and post-init_scantable scantbale?
[21:09:22 CET] <durandal_1707> BBB: for 8x4 i have only one scantable, do need coefficients after first idct 8 transform?
[21:46:31 CET] <jamrial> michaelni_: are you going to apply "avcodec/cbs_av1_syntax_template: Check num_y_points"?
[21:47:56 CET] <michaelni_> jamrial, i can, i was just waiting as noone reviewed/approved it
[21:48:15 CET] <jamrial> michaelni_: i did
[21:52:55 CET] <jamrial> also made a suggestion in the same review email
[21:53:13 CET] <michaelni_> i see your mail on patchwork i dont see it in my local mailbox nor my spam folder
[21:59:19 CET] <jamrial> weird
[21:59:37 CET] <durandal_1707> BBB: could be quantization queficients?
[21:59:46 CET] <BBB> possible, yes
[21:59:57 CET] <BBB> that's why I asked for the coef array (input to idct8x4)
[22:00:04 CET] <BBB> but ... let's see
[22:02:03 CET] <durandal_1707> quants too small or too big?
[22:03:23 CET] <BBB> probably too small
[22:03:57 CET] <BBB> but could also be too big
[22:04:03 CET] <BBB> it depends whether the dc is too big or the ac too small
[22:19:09 CET] <michaelni_> jamrial, i see a bounce in the logs around the time so its probably something on my mail servers side. if this becomes more frequent then i need to find something more reliable or setup my own. but till now it was more reliable than gmx.at
[22:19:48 CET] <jamrial> could have been a fluke
[22:27:56 CET] <linjie_fu> for idct, are you talking about c version implementation or asm?
[22:28:09 CET] <durandal_1707> C
[22:29:05 CET] <linjie_fu> em... happen to know an coeff overfow issue for asm
[22:29:22 CET] <linjie_fu> seems not related with C :D
[22:29:27 CET] <durandal_1707> what bitdepth?
[22:31:05 CET] <linjie_fu> https://patchwork.ffmpeg.org/patch/16722/
[22:31:41 CET] <linjie_fu> similar with this if you modify the test case in checkasm for h264 idct, asm goes wrong
[22:32:23 CET] <durandal_1707> simple_idct 12bit depth only here
[23:16:51 CET] <durandal_1707> i get overflow from pure white to black with idct
[23:16:54 CET] <durandal_1707> 8x8
[23:59:35 CET] <cone-383> ffmpeg 03Michael Niedermayer 07master:bbe27890ff7e: avcodec/cbs_av1_syntax_template: Check num_y_points
[00:00:00 CET] --- Sat Dec 14 2019
1
0
[00:00:04 CET] <TanaPanda> i'm currently using: ffmpeg -stream_loop -1 -i input.mp4 -map 0:v -vcodec copy -f mpegts udp://192.168.6.2:20
[00:00:17 CET] <TanaPanda> hmmm
[00:00:19 CET] <TanaPanda> I had a thought
[00:01:51 CET] <BtbN> Why are you transcoding the audio to whatever (probably horrible) default mpeg-ts has?
[00:02:00 CET] <BtbN> Or does it just not have audio?
[00:03:00 CET] <TanaPanda> it has audio but I am taking this one step at a time
[00:03:07 CET] <TanaPanda> I would like to get the video to stream properly
[00:08:38 CET] <TanaPanda> nvm my thought was no good
[00:30:24 CET] <wodim> how do I make it so the animation frames here in the overlay loop forever? ffmpeg -i cat.mp4 -i animation/%02d.png -filter_complex overlay -y output.mp4
[00:30:31 CET] <wodim> I know stream_loop, but "1" makes it repeat once
[00:30:40 CET] <wodim> and a high number makes the overlay keep moving when the video has already ended
[00:43:17 CET] <wodim> solution: add eof_action=endall to overlay
[08:30:39 CET] <familiyaF> Hi, I am writing a mac application, where I want to integrate VideoToolbox, is there any guideline available for hardware filter support integration. Any direction would be much appreciated.
[11:43:09 CET] <Radioactive> hello, I was wondering if anyone can guide me on FFmpeg and thread safety, as in which functions are definitely not thread safe for audio decoding in particular, and if i have multiple instances of say format contexts and codec contexts on different threads, if they're still referencing shared memory making operations on them not thread safe?
[11:44:04 CET] <Radioactive> also does avformat_open_input allocate a new instance each time or could it return an existing instance if one has been made already?
[11:45:59 CET] <Radioactive> cc JEEB
[11:46:02 CET] <JEEB> lavf/lavc contexts should be separate, but if there's some underlying library utilized for TLS or whatever, those might be not-threadsafe
[11:46:08 CET] <Radioactive> that was fast :D
[11:46:25 CET] <JEEB> so if you are handling different inputs from different threads, that should be OK as long as you don't cross the beams
[11:47:10 CET] <Radioactive> what do you mean by cross beams exactly JEEB?
[11:48:25 CET] <Radioactive> an issue i'm having is that different streams from a file are being decoded with different format context/codec context objects on different threads, but i'm still getting crashes indicating a race condition of some kind
[11:48:45 CET] <JEEB> oppen debug time
[11:48:49 CET] <JEEB> *oppan
[11:50:00 CET] <Radioactive> it's difficult to parse the crash, it happens deep within an ffmpeg callstack, but usually happens inside of av_read_frame or avcodec_decode_audio4 (yes I know it's deprecated but also happens if i switch to using send_packet/receive_frame) while they're both being called from different threads
[11:50:52 CET] <JEEB> and the lavf/lavc contexts are all handling just their own thing?
[11:51:02 CET] <JEEB> anyways, $dayjob - no real time :P
[11:52:21 CET] <Radioactive> as far as i know, unless things like avcodec_find_decoder avcodec_open2 avformat_open_input etc.. return shared stuff
[12:26:21 CET] <docwhite> Hello! I was trying to do something I'm struggling to be able to search on Google. I basically have some .ts fragments that have audio and video. I would like to set the audio to a stream with 0 channels. Is it possible?
[12:28:12 CET] <docwhite> The reason being to simulate a case that breaks a GStreamer command we use (ges-laungh-1.0)... It panics and hangs when it's processing an HLS where one fragment all of a sudden has an audio stream with 0 channels (whereas before it had > 1). Just trying to reproduce it, that's why I was asking.
[13:05:46 CET] <wodim> can't I apply the fps filter to an input?
[13:33:09 CET] <tth> hello
[13:34:38 CET] <tth> I'm trying to encode 16bits pnm files to .mp4, with no luck -- source: http://la.buvette.org/vrac/00042.pnm -- result: http://la.buvette.org/vrac/foo.mp4 -- any hint to do that ?
[13:35:01 CET] <furq> tth: pastebin the command line and full output
[13:43:34 CET] <tth> furq: http://la.buvette.org/vrac/encoding.txt
[13:44:25 CET] <kepstin> looks like an issue in ffmpeg's pnm decoder, even just playing that file in ffplay looks wrong, while loading it in an image viewer is fine
[13:44:54 CET] <BtbN> What even is pnm? Animated png?
[13:45:17 CET] <pink_mist> I thought that was apng
[13:46:25 CET] <furq> BtbN: one of the netpbm formats
[13:46:37 CET] <furq> or uh
[13:46:41 CET] <furq> the collective name for all of them i guess
[13:46:56 CET] <BtbN> Never heard of that before
[13:47:09 CET] <kepstin> classic unix image format
[13:47:22 CET] <kepstin> many of the variants are text based
[13:50:49 CET] <furq> ppm is a neat intermediate file format for piping
[14:40:36 CET] <Zusor> I'm adding text to a video and copying the audio over isn't working. This is generated using ffmpeg-python. Here's the command and output. https://pastebin.com/fPwF1Gbx
[14:42:00 CET] <DHE> you're using -map, so you'll have to explicitly request the audio be pulled in as well. add -map 0:a
[14:42:38 CET] <DHE> wait...
[14:43:37 CET] <DHE> you want 0:v for the video description in the filter_complex path as well...
[14:45:38 CET] <Zusor> Do you have any idea on how to do that in ffmpeg-python. Here's the code I'm using to generate the command https://pastebin.com/EqkJ4Urc
[14:49:09 CET] <DHE> no. but from the CLI it is calling a filter with [0] as an input. that should be [0:v]
[14:49:59 CET] <DHE> or if you need a black screen, there's a "filter" that takes no inputs and produces a black rectangle of video as an output that would be better suited
[14:55:23 CET] <faLUCE> hello. Why if I do: ffmpeg -i file.flac -acodec copy out.flac the bitrate changes from 1553kb/s to 124kb/s ?
[14:55:35 CET] <faLUCE> I thought flac was lossless
[15:05:17 CET] <kepstin> faLUCE: you're doing copy, so it's not even changing. either the original file had a bunch of junk in it that didn't get copied (e.g. large png cover art?) but was included in the bitrate calculation, or the source bitrate calculation was just wrong
[15:05:49 CET] <kepstin> 1553kbps is higher than i've seen a normal flac - iirc that's actually higher than uncompressed cd audio?
[15:06:34 CET] <furq> yeah it is but you can have 24-bit flac
[15:06:37 CET] <faLUCE> kepstin: it's 5.1 dolby. anyway, doesn't matter. the relevant thing is to be sure that ffmpeg doesn't recompress
[15:06:40 CET] <furq> or that
[15:07:02 CET] <furq> what's reporting that bitrate
[15:07:21 CET] <kepstin> faLUCE: are you using any other options or is that *exactly* the ffmpeg command line you ran?
[15:07:43 CET] <kepstin> if you use -c copy when trimming a flac, the duration is not updated correctly, which means the bitrate will be reported wrong on the output file.
[15:37:23 CET] <void09> what can i use to cut comercials from a .ts capture, while keeping dvbsubs synced ?
[15:38:09 CET] <JEEB> in theory dropping TS packets while rewriting timestamps and discontinuity counters would be the thing
[15:38:21 CET] <JEEB> I used to use murdoccutter for some stuff
[15:38:28 CET] <void09> i tried mkvtoolnix, splitting the file into parts by timestamps, then joining them back. i find the last/4th segment has the subs late by 5 frames
[15:38:38 CET] <JEEB> kind of wish there was an OSS thing like that which did minimal touching
[16:13:17 CET] <void09> avidemux is pretty good, but it did not implement subs for some reason
[16:13:59 CET] <void09> well, not perfect I guess. I am getting continuity errors with ffmpeg when scanning a certain avidemux cut job
[16:14:26 CET] <void09> The ones where I have to cut just from the beginning and end are fine, but the ones with commercials inbetween, not so perfect.
[16:21:52 CET] <JEEB> void09: avidemux etc still do a full demux/remux
[16:22:06 CET] <void09> hm ?
[16:22:10 CET] <void09> oh
[16:22:22 CET] <JEEB> if youjust want to cutmpeg-ts you don't need that
[16:22:22 CET] <void09> well you have to do it if you want to cut stuff out
[16:22:25 CET] <JEEB> no
[16:22:28 CET] <void09> no ?
[16:22:35 CET] <JEEB> only if ypu n3ed to cut within gops
[16:23:05 CET] <JEEB> but broadcast gops are short and commercials usually end up with rap in beginning
[16:23:45 CET] <void09> yep, the last movie i cut had commercials always beginning and ending within a gop
[16:23:49 CET] <void09> i mean, with a gop
[16:24:15 CET] <void09> probably some not dumb encoder (mpeg2). There is this tv station that does not do this though, always fixed gop
[16:24:21 CET] <void09> fixed duration
[16:24:51 CET] <JEEB> so what you need is something to at least cut packetsput. extra points for fixing discont counters and timestamps & pcr
[16:25:18 CET] <JEEB> the less ypu touch the less you have a chance to fuck up
[16:25:44 CET] <void09> I like perfect jobs.. and it bothers me I cannot do a perfect job :(
[16:26:07 CET] <void09> do you know of tutorials for cutting .ts ?
[16:26:58 CET] <JEEB> 188 byte packets, 0x47 start code
[16:27:12 CET] <JEEB> if you mena an app, look at something like murdoc cutter
[16:27:43 CET] <JEEB> although as i said, i'd love a kiss mpeg-ts cutter open source
[16:27:51 CET] <BtbN> If in doubt, head and tail will work.
[16:27:54 CET] <JEEB> but e-no-time
[16:28:39 CET] <JEEB> BtbN: yea if your capture strats at start code just bs=188 that
[16:32:40 CET] <void09> JEEB: got any english link to it? it's all japanese websites
[16:33:03 CET] <JEEB> it's ajapanese app but I just don't know anything else similar :p
[16:33:25 CET] <void09> no english translation in the app?
[16:33:51 CET] <JEEB> nope, although i think main buttons werw just generic english words
[16:34:57 CET] <void09> ok, where can I download it ? :)
[16:35:34 CET] <JEEB> also last time it was checked the download php script added php at the beginning or end of the zip :D
[16:35:48 CET] <JEEB> like the script got barf'd into the buffer
[16:36:26 CET] <JEEB> the official site is that it's a direct
[16:36:28 CET] <JEEB> thing
[16:43:11 CET] <celebrate> Hi, what is the recommended format to encode videos using ffmpeg for whatsapp/facebook?
[16:43:45 CET] <celebrate> When using the following, initial video output is fine however once it is compressed by facebook/whatsapp there is a audio/video sync issue :(
[16:43:46 CET] <celebrate> let command = ffmpeg() .input(tempFilePath) .videoBitrate(2500) .videoCodec('libx264') .format('mp4') .output(targetTempFilePath)
[16:46:03 CET] <void09> facebook encodes the video itself, no?
[16:46:08 CET] <celebrate> it does as well yes
[16:46:20 CET] <celebrate> but there seems to be a problem with the way i'm encoding it first
[16:46:29 CET] <void09> so why encode it one more time ? the web is full of crappy quality stuff encoded 100 times :P
[16:46:39 CET] <celebrate> Because i'm displaying videos on my platform first
[16:47:00 CET] <celebrate> imagine an app where users can upload videos - i initially compress them so that theyre way smaller to download
[16:47:18 CET] <celebrate> then a user has an option to download this video himself, and later they can share it to any platform they want - this is where the issue happens
[16:47:30 CET] <durandal_1707> crappy quality
[16:48:01 CET] <celebrate> i imagine theres a standard/recommended format for compressing videos that intend to be shared on facebook/whatsapp no?
[16:49:51 CET] <celebrate> praying to the ffmpeg gods that someone will help ðð»
[16:52:43 CET] <void09> I still don't get it : P
[16:52:50 CET] <void09> let facebook compress it, and then download it back ? :D
[16:58:57 CET] <celebrate> its about sharing my content
[16:59:00 CET] <celebrate> from my platform to another
[16:59:21 CET] <celebrate> and this is all scalable.. uploading to facebook then downloading it back isn't scalable
[16:59:47 CET] <celebrate> make sense?
[17:29:54 CET] <kepstin> celebrate: you should always upload the original video to services like that where possible
[17:30:11 CET] <kepstin> since they transcode it anyways, so you want as few lossy transcode steps as possible
[17:38:33 CET] <celebrate> that makes sense
[17:38:37 CET] <celebrate> but some of these files are really big
[17:38:42 CET] <celebrate> 50-> 100 MB on phone
[17:38:48 CET] <celebrate> which is why i also do the transcoding
[17:41:03 CET] <celebrate> regardless..what is the optimized format (+ audio/video encoding) for such sharable videos, via whatsapp/fb?
[17:41:11 CET] <celebrate> i can try that out and see
[17:42:42 CET] <kepstin> there's no such thing, all these services re-encode every video format no matter what you provide
[17:44:48 CET] <kepstin> if the source files are bigger than you want to keep around, i suppose a reasonable option would be to do a re-encode with x264 to a high quality (use crf mode with a value that doesn't cause any noticable quality loss)
[17:45:48 CET] <celebrate> so this is what im doing now
[17:45:49 CET] <celebrate> let command = ffmpeg() .input(tempFilePath) .videoBitrate(2500) .videoCodec('libx264') .format('mp4') .output(targetTempFilePath)
[17:45:55 CET] <celebrate> you can see i'm using x264
[17:46:35 CET] <DHE> 2500 kbit seems kinda low unless you're at 720p or lower resolution
[17:46:36 CET] <kepstin> yeah, the problem is you're setting a bitrate, don't do that, you want to use crf mode instead
[17:46:47 CET] <kepstin> for archiving, anyways
[17:47:13 CET] <celebrate> ok so you recommend using crf instead of bitrate
[17:47:19 CET] <celebrate> or at least trying
[17:48:39 CET] <kepstin> also you should consider just writing the ffmpeg command lines yourself instead of whatever library you're using, it's possible the library is hiding some stuff from you and we can't really help you when things go wrong unless you share the real command line anyways
[17:49:35 CET] <kepstin> ['ffmpeg', '-i', tempFilePath, '-crf', '18', '-c:v', 'libx264', '-f', 'mp4', targetTempFilePath]
[17:49:44 CET] <kepstin> or something like that :)
[17:50:05 CET] <kepstin> (you also have to deal with audio, of course, maybe throw a -c:a copy in there.
[17:50:06 CET] <kepstin> )
[17:51:27 CET] <celebrate> i'm using fluent-ffmpeg
[17:51:41 CET] <celebrate> https://github.com/fluent-ffmpeg/node-fluent-ffmpeg/
[17:51:55 CET] <celebrate> but yes probably writing down the whole command is not a bad idea
[17:52:06 CET] <celebrate> appreciate it!
[17:52:29 CET] <celebrate> what's the 18 for?
[17:52:34 CET] <celebrate> after the -crf
[17:53:06 CET] <kepstin> it's an arbitrarily-scaled number that corresponds to a quality setting.
[17:53:22 CET] <kepstin> lower numbers are higher quality, higher numbers are smaller files.
[17:53:44 CET] <kepstin> 18 is a good starting point for a video that you want to archive with minimal quality loss
[17:54:28 CET] <kepstin> with that "fluent" interface you're gonna have to use the .outputOptions() method to set all these options manually anyways, so it doesn't really give you anything :)
[17:56:18 CET] <celebrate> yeah haha was just looking at that
[17:56:41 CET] <celebrate> but going off of what you wrote
[17:57:46 CET] <celebrate> something along the lines of this?
[17:57:50 CET] <celebrate> .outputOptions('-i tempFilePath -crf 18 -c:v libx264 -f mp4 targetTempFilePath');
[17:59:31 CET] <kepstin> no, what i gave was a complete command line
[18:00:13 CET] <celebrate> but i have to use the fluent library
[18:00:22 CET] <kepstin> why?
[18:00:22 CET] <celebrate> i modified yours a bit
[18:00:31 CET] <kepstin> but anyways, assuming you use the fluent interface to set everything you have, and you remove the bitrate, then i think it would be .outputOptions(['-crf', '18'])
[18:00:33 CET] <celebrate> because its hooked up to some serverless function provider
[18:00:52 CET] <celebrate> This method allows passing any output-related option to ffmpeg. You can call it with a single argument to pass a single option, optionally with a space-separated parameter:
[18:00:58 CET] <celebrate> it mentiosn "space-seperated"
[18:01:12 CET] <kepstin> use the array format.
[18:01:17 CET] <celebrate> oh nvm
[18:01:19 CET] <celebrate> youre right
[18:01:20 CET] <celebrate> :)
[18:01:21 CET] <celebrate> yep
[18:01:31 CET] <celebrate> ok cool will give it a try, thanks!
[18:21:50 CET] <wodim> can I use scale to upscale or downscale a video as necessary, making sure neither of the two dimensions is bigger than x?
[18:22:29 CET] <wodim> in other words, make it fit in a square of 500x500 but upscaling if necessary
[18:22:34 CET] <wodim> preserving AR
[18:26:24 CET] <asterismo_l> hi, i need some help compiling ffmpeg without SSE3 and SSE4 instruction set
[18:26:58 CET] <asterismo_l> i'm getting this error when converting a gif to a mp4: ffmpeg: common/cpu.c:251: x264_cpu_detect: Assertion `!(cpu&(X264_CPU_SSSE3|X264_CPU_SSE4))' failed
[18:28:05 CET] <asterismo_l> so i tried to compile ffmpeg with --disable-sse --disable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42 but the error i think it is thrown by x264 library
[18:28:11 CET] <JEEB> well yea
[18:28:18 CET] <wodim> then you have to compile the x264 library?
[18:28:36 CET] <asterismo_l> so i compiled x264 with --disable-asm and replaced those libs and the error still
[18:30:02 CET] <asterismo_l> wait, i still libx264-148 in my system
[18:30:49 CET] <JEEB> also that assert isn't on current master nor the previous one I had cloned
[18:31:19 CET] <JEEB> x86: Remove some legacy CPU detection hacks
[18:31:21 CET] <JEEB> in 2017
[18:31:27 CET] <JEEB> 344699fd386890ac1cf80a70a68a3ae16767ed62
[18:31:50 CET] <JEEB> > Some misconfigured virtualized systems could sometimes also trigger this code path and cause assertions
[18:35:43 CET] <asterismo_l> this is the library files in debian: https://packages.debian.org/stretch/amd64/libx264-dev/filelist
[18:36:47 CET] <asterismo_l> compiling x264 does not create libx264.so
[18:38:46 CET] <asterismo_l> do i need it?
[18:39:45 CET] <wodim> docs in ffmpeg.org are from the current stable version or git?
[18:39:52 CET] <JEEB> git master
[18:39:59 CET] <JEEB> there are some doxygen generated docs that are per branch
[18:40:11 CET] <wodim> scale=force_divisible_by is not in 4.2.1 ?
[18:40:37 CET] <wodim> docs would be much more useful if they said in which version filters/options/etc were added :/
[18:41:20 CET] <JEEB> yea, the specific option is in master only
[18:41:28 CET] <JEEB> before that there was a hack to use negative numbers
[18:41:42 CET] <JEEB> like w=1280:h=-2
[18:41:56 CET] <JEEB> would set it to matching value according to aspect ratio, and make sure it was divisible by 2
[18:41:58 CET] <wodim> I have "scale=w='max(600,iw)':h=max'(600,ih)':force_original_aspect_ratio=decrease", could I shove a negative number into that?
[18:42:06 CET] <wodim> yeah x264 is complaining about divisilibity
[18:42:08 CET] <JEEB> (or you could do math)
[18:42:27 CET] <JEEB> I think when I last did that myself I used math, because it was before the negative number hacks
[18:44:37 CET] <JEEB> wodim: since you're already knee-deep into the math stuff (max etc) you might as well go with that -- and there's the example @ https://ffmpeg.org/ffmpeg-filters.html#scale
[18:44:45 CET] <JEEB> > Increase the size, making the size a multiple of the chroma subsample values:
[18:45:00 CET] <JEEB> because that's what you need, multiple of chroma subsampling
[18:45:24 CET] <wodim> hmmm okay thanks
[18:46:15 CET] <JEEB> the last one is specifically mod2, but generally speaking the chroma subsampling is why "some codecs" require specific sizes :P
[18:55:02 CET] <celebrate> hey, so the crf thing worked but also kind of didn't
[18:55:21 CET] <celebrate> i the crf value was low (18) it worked, but as i started moving it up that seemed to be causing the issues
[18:55:31 CET] <celebrate> however the whole idea is to be able to compress the video files
[18:55:40 CET] <celebrate> so perhaps i need to play around w/ the audio as well?
[19:00:05 CET] <wodim> JEEB, yeah, but I guess it doesn't really matter whatever I do with w or h when later force_original_aspect_ratio=decrease will change either and possibly end with an odd number
[19:00:19 CET] <wodim> unless I'm misundersatnding something
[19:01:27 CET] <wodim> I'll end up building from git, seems like less trouble
[19:12:09 CET] <tjader> Hello, I'm trying to use ffmpeg to convertt a bunch of png files to a webm slideshow, but my output is coming out short
[19:12:29 CET] <tjader> I'm using ffmpeg -framerate 1 -pattern_type glob -i '*.png' -lossless 1 Fazenda.webm
[19:12:58 CET] <tjader> I have 60 png files, and ffmpeg identifies the output as being a minute long, but the output webm is only 38 seconds long
[19:14:39 CET] <tjader> https://pastebin.com/wX5EAeK8 here's the full output
[19:18:53 CET] <kepstin> celebrate: if you want to have a high quality video that can be uploaded to other services, then it needs to be high quality and therefore fairly big
[19:19:11 CET] <kepstin> if you want a streamable low quality file, that's a different encode
[19:19:54 CET] <cehoyos> tth: Patch sent: https://ffmpeg.org/pipermail/ffmpeg-devel/2019-December/254310.html
[19:21:48 CET] <cehoyos> void09: FFmpeg is not the right tool if you don't want to re-encode, ProjectX is old software that does exactly what you want.
[19:28:31 CET] <celebrate> my main issue is just the fact that some of the files lose audio/video sync when they are processed by facebook/whatsapp
[19:28:51 CET] <celebrate> i guess the solution would be as you mentioned..if they export the video they'll get the original oe
[19:28:55 CET] <celebrate> one*
[19:29:19 CET] <celebrate> whereas if they are viewing it on my platform, they'll see the compressed version i created
[19:29:22 CET] <celebrate> makes sense i guess
[19:29:32 CET] <celebrate> ideally would have just one file that would work universally
[20:15:47 CET] <Filarius> Sigh, i'm trying to write Python stript to use 2 ffmpeg to x264 compress frames sequence and get lossy raw images storing frames just in memory without saving h264 to file
[20:16:06 CET] <Filarius> just saving to file and read raw frames from compressed files works okay
[20:16:45 CET] <Filarius> but I can't make ffmpeg to read from stdin and write to stdout at same time
[20:17:41 CET] <Filarius> with this i'm trying to just get compressed stream
[20:17:43 CET] <Filarius> ffmpeg -y -report -f rawvideo -pix_fmt gray -s:v 1920x1080 -r 60 -i - -c:v libx264 -preset fast -crf 28 -f mpegts -
[20:19:16 CET] <Filarius> here Python script just not able to get pipes
[20:19:27 CET] <Filarius> its in Windows OS btw
[20:21:41 CET] <kepstin> you'll need to close the pipe going to ffmpeg's stdin so ffmpeg sees the eof and flushes its output.
[20:22:10 CET] <kepstin> dunno if that's exactly the issue you're hitting, but it's one common reason for an ffmpeg pipe to hang.
[20:22:37 CET] <Filarius> i want to stream many frames without closing pipe
[20:23:23 CET] <Filarius> gray -> h264 -> gray frames in realtime
[20:24:04 CET] <kepstin> well, if you keep pushing frames in, then eventually frames will come out the other end.
[20:24:19 CET] <kepstin> but x264 has large internal buffers, so it'll take a while.
[20:24:56 CET] <kepstin> alternately you could run it in zerolatency mode, but then it has significant reduction in encoding efficiency
[20:24:56 CET] <Filarius> also debugging in Python show me "-1" instead of stdin and stdout buffers
[20:25:11 CET] <Filarius> like they are not exist
[20:26:05 CET] <kepstin> what's the actual reason you're doing this, anyways?
[20:26:27 CET] <Filarius> I will try to make another example where I had error from ffmpeg about its can't find proper output formant while stdin stdout in Python debugger there was exists
[20:26:59 CET] <Filarius> well
[20:27:20 CET] <kepstin> also you're not providing a frame size (resolution) on the input
[20:27:39 CET] <kepstin> the default probably is wrong, which might be part of your issue.
[20:27:48 CET] <Filarius> there -s:v 1920x1080
[20:28:01 CET] <Filarius> its works okay if I saving to file
[20:28:04 CET] <kepstin> that's an output option that scales the video
[20:28:15 CET] <Filarius> no
[20:28:29 CET] <kepstin> oh, wait, i got mixed up, yeah it's before the -i
[20:28:31 CET] <kepstin> never mind
[20:28:43 CET] <Filarius> okay :)
[20:28:52 CET] <kepstin> right, as an input option, -s acts like an alias of the -video_size demuxer option
[20:29:43 CET] <Filarius> well, i'm playing with neural networks building, and I need relatively fast option to compress raw image with x264 and decompress it to get lossy image to push to neural network
[20:30:06 CET] <kepstin> so, do you care about mix of frame types - I, P, B?
[20:30:18 CET] <kepstin> gop size? motion estimation?
[20:30:45 CET] <kepstin> video codecs when compressing video of motion do different things on different frames within a group of frames
[20:30:56 CET] <Filarius> i just care about good/bad image differnce, not care about what type of frame it is
[20:31:08 CET] <kepstin> x264 tracks motion between frames and reduces detail on stuff that's moving fast for example, because people can't see detail there
[20:31:33 CET] <kepstin> are you encoding completely independent images, or an actual continuous video?
[20:31:37 CET] <Filarius> bad better to have all kinds of frames to compare, not only key-frames
[20:31:50 CET] <kepstin> and do you need it to be representative of how actual video encoding works?
[20:32:07 CET] <Filarius> i need to work with continuous
[20:33:02 CET] <kepstin> if you're dealing with continuous video, and you want it to be representative, i'd recommend just pre-encoding the video, rather than doing it realtime. Then you just feed the original video, and the result of decoding the other video, as two inputs to your thing.
[20:33:24 CET] <kepstin> less fuss, and probably faster too
[20:33:39 CET] <TanaPanda> how do I send a video that is already the format i want into ffmpeg and out to an IP address?
[20:34:00 CET] <kepstin> TanaPanda: it depends on what network protocol you want to use.
[20:34:43 CET] <Filarius> right now I just saving 1 single frame to file and read it, but ffmpeg start/stop is taking long time, and i need it really many times to do
[20:34:47 CET] <TanaPanda> UDP\
[20:34:51 CET] <kepstin> (which mostly means "what network protocol does the thing you're sending to accept?")
[20:35:07 CET] <TanaPanda> I want to send the video to UDP://192.168.6.2:20
[20:35:18 CET] <TanaPanda> and yes I know 20 is way below 1024 but its what I have to use
[20:35:20 CET] <kepstin> Filarius: you really want to encode the whole video all at once to a single file
[20:35:38 CET] <kepstin> TanaPanda: sending to arbitrary ports is fine, that doesn't need special priviledges or anything
[20:36:01 CET] <TanaPanda> I have made it seem to work before however when I try to open the stream via VLC i get nothing
[20:36:14 CET] <kepstin> Filarius: once you do that, then you can read the original source and the re-encoded video in parallel and do stuff a frame at a time quickly and easily.
[20:36:25 CET] <TanaPanda> I dont want to change anything about the file
[20:36:33 CET] <TanaPanda> other than to stream it
[20:37:26 CET] <kepstin> TanaPanda: well, that's mostly a question of setting up the receiving end, not an ffmpeg question. and if you don't want to touch the file, you don't even need ffmpeg, even netcat can read a file and send over udp
[20:37:58 CET] <kepstin> (although that would run faster than realtime, you'd probably need pacing)
[20:37:58 CET] <Filarius> kepstin, every new frame will be made new based on knowladge of previous frames, i can't just make only one video
[20:38:29 CET] <Filarius> i mean based on knowladge of how x264 make losses on previouse frames
[20:38:33 CET] <kepstin> Filarius: I have no idea what you're getting at then. because when doing video encoding with modern techniques, the video encoder references future frames.
[20:38:44 CET] <kepstin> so this literally causes a time paradox ;)
[20:39:21 CET] <kepstin> that's (one of the reasons) why the encoder buffers a lot of frames, btw, so it can see into the future
[20:40:07 CET] <kepstin> you *can* turn this off, that's what -tune zerolatency does - but at a significant cost to encoding efficiency, so it's not really representative of general video encoding.
[20:41:35 CET] <kepstin> TanaPanda: if you use ffmpeg as the source for this, note that it can't do a direct file copy, at a minimum it will remux, so you need to specify the output container (even if you want the same as the input)
[20:41:36 CET] <tth> cehoyos: many thanks !
[20:41:53 CET] <TanaPanda> hmmm
[20:42:09 CET] <TanaPanda> This is the first time I have attempted to use ffmpeg so dumb it down please and thank you
[20:42:27 CET] <kepstin> TanaPanda: the ffmpeg command will look something like "ffmpeg -re -i input.file -c copy -f mpegts udp://192.168.6.2:20"
[20:42:46 CET] <Filarius> look, I generate frame and send to encoder, take lossy frame, by knowning how lossy one looks like I making another good frame and send to encoder again, and etc many-many times until i get some signal whats things going good
[20:42:58 CET] <kepstin> where the "mpegts" has to be replaced with the actual container format you want to use for stream. But mpegts is an ok choice commonly used with udp.
[20:43:34 CET] <kepstin> Filarius: meanwhile, the encoder can't encode the current frame until it gets the next frame, because it looks into the future. so you get stuck with nothing making progress.
[20:43:52 CET] <Filarius> its not problem if there will be several frames buffered inside of ffmpeg, i will just will keep send "blank" frames to wait my good frame will go out to me
[20:44:11 CET] <kepstin> Filarius: if you're encoding the *same* frame over and over again, then you need to *re-initialize the encoder* each time so it's starting in the same state
[20:44:31 CET] <TanaPanda> so using that command I am able to start the stream and open the strema in VLC but no picture
[20:44:31 CET] <kepstin> otherwise it'll be referencing the previous encoded frame when making the new one, which kinda makes your results invalide
[20:45:10 CET] <kepstin> Filarius: i still have no idea about the *why* you're trying to do this, which might help me suggest something that would actually work.
[20:45:29 CET] <TanaPanda> and using wireshark I can see the packets moving
[20:46:28 CET] <kepstin> TanaPanda: if that ffmpeg command ran without error, then it's successfully sending the video, and you're either running into network issues or the player isn't set up correctly :/
[20:47:02 CET] <TanaPanda> if I do the same thing but through VLC wire shark shows the packets as mpeg ts instead of UDP and i get picture
[20:47:04 CET] <Filarius> lets speak about.. sheeps. I paining sheeps and keep sending to ffmpeg, and then I will see how sheeps looks like on output i will change how I paining sheeps, and will wait until another-pained sheeps appears from ffmpeg, and etc until i will find i like my sheeps :)
[20:47:08 CET] <TanaPanda> which is confusing me
[20:47:58 CET] <Filarius> painting
[20:48:12 CET] <kepstin> Filarius: meanwhile, x264 is going "ok, got a picture, lets wait until i get another one, maybe i'll be able to copy/paste the same sheep in both and save some bits"
[20:48:21 CET] <Filarius> sorry, English not my best language
[20:48:55 CET] <kepstin> Filarius: so *why* are you doing this?
[20:50:40 CET] <kepstin> Filarius: normally, you paint a bunch of pictures of sheep, and then send them all to the encoder and say "please make my sheep look as good as you can but make it no bigger than x bits" and later it comes back with a group of bits that when decoded turn into all of your sheep paintings again, but when you look close you realize that some of the sheep look the same between pictures.
[20:52:45 CET] <Filarius> i want to speedup process of making new frames, whatever how many I will make frames to be encoded, I will need only small piece of one frame to process, and i will need to start next iteration
[20:53:38 CET] <kepstin> Filarius: why?
[20:53:45 CET] <kepstin> what's going on?
[20:54:06 CET] <kepstin> give me the one sentence summary at the top of the scientific paper you're writing saying what you hope to accomplish :)
[20:54:36 CET] <kepstin> right now, what you're doing seems to have no bearing with how real video codecs actually work, so i don't know why a video codec is involved at all
[20:54:43 CET] <TanaPanda> excelleration of photon at 10x the speed of light to travel in time
[20:56:03 CET] <Filarius> neural network need lossy frames to learn on. And also its used to generate frames. Every time its learns - it will make another frame. 1 step of learning needs only part of one frame. If I will make it learn on several frames without makeing fresh ones - this learning will do nothing good, or even make it worser
[20:56:12 CET] <kepstin> Filarius: a real video encoder doesn't operate on invidual frames, instead it operates on entire groups of frames at a time.
[20:56:26 CET] <kepstin> Filarius: so you need to design your stuff to work with that.
[20:57:00 CET] <kepstin> Filarius: you've explained "how", but i asked "why"
[20:57:01 CET] <Filarius> i mean, after network changes inside - its also will start making another frames than was before
[20:57:33 CET] <Filarius> why I need it ?
[20:57:35 CET] <kepstin> why does this neural net exist? what are the frames it generates used for?
[20:57:46 CET] <kepstin> why does it need to see the lossy frames?
[20:57:58 CET] <TanaPanda> sounds like he is making/designing something
[20:58:24 CET] <Filarius> well, steganography, as example
[20:59:23 CET] <kepstin> ok, so if your goal is "i want to put a pattern into this video that doesn't get taken away when using this encoder when encoding with these settings"
[20:59:35 CET] <kepstin> then you need to operate on a group of frames at a time, not at a single frame at a time
[20:59:45 CET] <kepstin> because otherwise the results are meaningless :/
[21:00:16 CET] <kepstin> since the video encoder has its own internal context and memory between frames that you are interacting with
[21:00:21 CET] <Filarius> just I want NN to learn behaviour of H264 encoder, not what rocket science guys do in related publications - they mostly use normal (gauss) noise instead
[21:01:05 CET] <Filarius> but its looks like hard way - takes more time
[21:01:26 CET] <Filarius> to make "fresh lossy image"
[21:01:30 CET] <kepstin> if you want the nn to learn how a read h264 video encoder operates, then you have to have it look at entire groups of pictures at a time, since the video encoder operates on entire groups of pictures at a time.
[21:02:09 CET] <kepstin> if you want to make a "cool glitch effect that degrades the image", then don't bother with a nn at all, just run the video through an h264 encoder with settings that make it look bad.
[21:03:03 CET] <kepstin> (note also that by default x264 doesn't even have fixed groups of frames, it dynamically decides when to start a new group based on image analysis)
[21:03:15 CET] <Filarius> I tryed that, while NN is "stupid" - it can learn on groups, but to make it really "smart", I think, every small step of learning must be made on freshy generated pictures
[21:03:41 CET] <kepstin> if you want it to learn on individual pictures, then you might as well just use a still image encoder
[21:03:49 CET] <kepstin> like jpeg or something.
[21:04:03 CET] <kepstin> x264 can run as a still image encoder, but you have to re-initialize it each image
[21:04:18 CET] <kepstin> (which isn't very slow if you use it as a library instead of starting up ffmpeg cli)
[21:04:36 CET] <kepstin> but the result of that won't be representative of *video*
[21:04:39 CET] <kepstin> since it's still images
[21:04:40 CET] <Filarius> like i said before, 1 frame of video provide many steps to learn
[21:04:53 CET] <Filarius> while i need only 1 step
[21:06:20 CET] <kepstin> there's a fundamental mismatch between what you're doing and how video encoders work. your thing works fine with still images, but video encoders work on multiple frames together, so you need to *generate* multiple frames together.
[21:06:24 CET] <Filarius> well, I can encode several frames, and take only one from middle, or choose random, then it will learn "video frames"
[21:06:41 CET] <kepstin> since a change in a previous or future frame of x264 input can effect what it'll output for the current frame
[21:07:06 CET] <kepstin> affect*
[21:07:06 CET] <Filarius> I can just make NN to look at previous frame too
[21:07:33 CET] <kepstin> you should make your nn treat a unit of work as "an entire series of frames"
[21:08:00 CET] <Filarius> I will, but right now I just trying to make something what works
[21:08:00 CET] <kepstin> you could start with something like 8 or 16 frames or whatnot, and use the options to the video encoder to switch it to fixed gop size that matches
[21:09:04 CET] <kepstin> that's only kinda representative, since real video for many applications doesn't used fixed gop (although much streaming and broadcast does have fixed gop)
[21:09:35 CET] <Filarius> while I right now i just can't make ffmpeg to give me lossy images without using saving to file as inbetween so I will not need to restart ffmpeg each time
[21:09:43 CET] <kepstin> in the mean time, if you want to treat x264 as a still frame encoder, and you are using ffmpeg cli, then you need to restart ffmpeg each time.
[21:10:28 CET] <kepstin> you could do it much faster using the library interface, btw., but i suppose if you're writing python that could be tricky.
[21:11:12 CET] <kepstin> hmm. I suppose the other workaround to get it to act as a still image encoder on continuous input is to set the gop size to 1 frame
[21:11:15 CET] <kepstin> and disable lookahead
[21:11:31 CET] <Filarius> but if people make livestreams - then video stream appears without need to restart ffmpeg
[21:11:44 CET] <kepstin> right, because they're generating a continuous video.
[21:12:01 CET] <kepstin> not a "generate one frame, wait for it to encode, then send the next frame"
[21:12:18 CET] <kepstin> instead they're pushing frames into the encoder continuously and not caring about what happens after.
[21:12:52 CET] <Filarius> yes, and I also can make continuous video, filling buffer with frames what I will not use for processing
[21:13:16 CET] <Filarius> like street traffic where I count only red cars
[21:13:23 CET] <kepstin> the contents of those filler frames will affect how x264 encodes the frames you care about
[21:13:42 CET] <kepstin> since ffmpeg will use them as part of the group of pictures that it's encoding
[21:13:45 CET] <Filarius> they will be kind of what i need, no problems
[21:14:27 CET] <kepstin> remember, changing any single frame within a group of pictures can affect how the video encoder encodes past and future frames
[21:15:02 CET] <kepstin> so as an optimization problem it's pretty hard, you can't just say "oh, this frame is good" and go on, because the changes you make to the next frame will result in x264 doing somehting different on the previous frame
[21:15:12 CET] <Filarius> so, can we be more close "how to do it" and more far from "why i (do not) need this"
[21:16:38 CET] <Filarius> yep, I know in h264 previous frames is affects on next up to key-frame
[21:17:50 CET] <Filarius> I will work on this after I will be able to make that "streaming"
[21:18:57 CET] <kepstin> My internet dropped there, oops. Switched to my phone so typing slow now
[21:20:06 CET] <kepstin> alright. so if you want to make your application "work", but produce results that aren't representative of real video, then use the "-tune zerolatency" option on the encoder
[21:20:28 CET] <kepstin> that will cause the encoder to only use the past rather than also looking into the future when optimizing frames
[21:21:29 CET] <kepstin> there might still be other sources of latency in that pipeline, but in theory that should get you to "one frame in, wait a bit, one frame out"
[21:21:50 CET] <Filarius> well, first i need to make that "streaming" at all, and only after it will be available - make tweeks and design what use idea of different kind of x264 frames
[21:22:22 CET] <Filarius> but thanks for reminding about zerolatency
[21:22:26 CET] <kepstin> since you seem to still be working on still frames at this point, you should also set "-g 1" so a "group of pictures" is only one frame long
[21:22:38 CET] <kepstin> that way the encoder won't keep (as much) context from frame to frame
[21:23:09 CET] <kepstin> that way you're basically optimizing against (almost, but not quite) a still image encoder
[21:23:12 CET] <kepstin> only I frames
[21:23:19 CET] <kepstin> again, not representative of real video
[21:24:50 CET] <kepstin> many streaming services do actually use a fixed gop of around 2-5 seconds, assuming 30fps is reasonable you should eventually be targeting working on around 60-150 frames at a time instead of one frame at a time
[21:25:14 CET] <kepstin> encoding fixed gop with x264 might need special options if you're not reinitializing the encoder between runs, feel free to ask for help about that
[21:26:01 CET] <kepstin> but even getting up to around 10-30 frames would likely start to give reasonable results
[21:26:15 CET] <kepstin> iirc bluray specs use really short gop size that might be close to that? have to check.
[21:27:18 CET] <Filarius> but first I need make it possible to write good frames and get lossy frames without saving to file (as I expect this must take less time to get freshy lossy frame), right now I can't make it works
[21:27:25 CET] <kepstin> and also note that you're optimizing against a *specific implementation* of an encoder using *specific options* so the result won't really be generalizable.
[21:28:08 CET] <Filarius> not only "implementation" but also "specific encoding options", yep i know it
[21:28:36 CET] <kepstin> running an ffmpeg encoder piped into an ffmpeg decoder works fine for that, read your programming standard library documentation about how to hook up pipes between processes.
[21:29:20 CET] <kepstin> normally you'd start one process, then start the next process and pass the stdout pipe from the first to the stdin of the next
[21:30:59 CET] <Filarius> i said, I made Python script what was able to write to pipe, and to read to pipe, but in Windows i see what when I use both annon pipes at same time - module what allow to make easy communication with cli application just do not see stdin/stdout available, i found it while debugging.
[21:31:40 CET] <kepstin> you wouldn't be using both pipes from any single ffmpeg?
[21:31:57 CET] <kepstin> you send raw frames to stdin on one ffmpeg, then read raw frames from stdout on the second ffmpeg
[21:32:20 CET] <Filarius> both pipes at same time from same instance of cli application - not before this time
[21:34:14 CET] <kepstin> i'm not sure what you're talking about. you have two cli applications, and each has only one pipe connected to your program.
[21:34:44 CET] <kepstin> your program ffmpeg encoder ffmpeg decoder your program, right?
[21:34:54 CET] <Filarius> yep
[21:35:22 CET] <Filarius> i will start separate "minimal example script" to do right now
[21:35:37 CET] <kepstin> so you make sure you use the "-tune zerolatency" (since otherwise the encoder won't do anything until you close the first pipe), then write a frame to the first ffmpeg, then read from the second ffmpeg.
[21:36:46 CET] <Filarius> right now I just trying to make 1 ffmpeg, what will read raw frames and return me h264 stream, its just not works at all
[21:37:23 CET] <kepstin> first, get it working where you close the stdin pipe
[21:38:08 CET] <kepstin> if that doesn't work, nothing will. after that it's configuring the encoder correctly to not buffer frames internally.
[21:39:16 CET] <Filarius> closing stdin - works
[21:39:35 CET] <Filarius> at last i got some data from stdout after it
[21:40:19 CET] <kepstin> make sure when you're doing this that the ffmpeg cli log output is going somewhere (a terminal?) that you can read it
[21:40:39 CET] <Filarius> -report
[21:41:05 CET] <kepstin> so, check it and make sure it says it encoded one frame without any errors :)
[21:41:31 CET] <Filarius> "cur_dts is invalid" on each frame
[21:42:13 CET] <kepstin> hmm, that might be because you didn't use the -framerate input option. doesn't really matter for this use case since presumably you don't care much about accurate frame timestamps.
[21:42:32 CET] <Filarius> aaaand i do not see any erros on log related to output
[21:43:53 CET] <kepstin> right, so the next step is to make sure that your program is flushing any buffers it has after each frame. there's usually a flush method or something on the stream object.
[21:53:04 CET] <Filarius> hm, good idea but seems here flush is defined but not implemented, will goodle related topix
[21:53:36 CET] <Filarius> calling flush() do nothing
[22:07:31 CET] <Filarius> no effect whatever i flush stdout or stdin, only after closing stdin was closed - ffmpeg return result
[22:13:05 CET] <Filarius> if you have some ideas - throw me, I will check it tomorrow, its time to sleep in here
[22:57:54 CET] <kepstin> did you actually set the -tune zerolatency option?
[22:58:08 CET] <kepstin> but yeah, other than that, i dunno what else it could be.
[23:00:55 CET] <jemius> Compression is fascinating. My 18.7 MB video is 15.1 MB large when converted to grayscale
[23:03:11 CET] <kepstin> yeah, the way the YUV colourspace works, most of the hard-to-encode detail is in the "Y" channel, which represents lightness. The U/V channels, which determine the colour, take up much less space.
[23:06:15 CET] <kepstin> (the simplest way to convert a YUV video to greyscale is to simply drop the U/V channels completely and use the Y channel as the greyscale value)
[23:07:19 CET] <Filarius> also i had some research - losses on UV is much less than in Y
[23:11:16 CET] <kepstin> the most common video pixel format, yuv with 4:2:0 sampling, actually encodes the U and V channels at Œ the resolution (half width, half height) of the Y channel.
[23:11:35 CET] <TanaPanda> Hello again
[23:11:57 CET] <TanaPanda> I finally got my stream to work in ffmpeg
[23:13:08 CET] <TanaPanda> but how do I make it loop?
[23:14:09 CET] <kepstin> the "-stream_loop -1" option (when placed before an input) will cause ffmpeg to read that input in a loop.
[23:14:26 CET] <kepstin> -1 means infinite, otherwise it's a count of times to loop
[23:14:33 CET] <TanaPanda> ok thanks
[23:14:38 CET] <TanaPanda> the command i got to work is
[23:14:39 CET] <TanaPanda> ffmpeg -loglevel debug -max_interleave_delta 15000000 -rtbufsize 128000k -threads 0 -re -i /home/pi/Desktop/ActiveChannel/Property_LCI.mp4 -codec copy -s 720x576 -q10 -shortest -f mpegts udp://192.168.6.2:20?pkt_size=1316?buffer_size=65536
[23:14:45 CET] <TanaPanda> incase anyone else cares to know
[23:15:37 CET] <kepstin> TanaPanda: the "-s 720x576" and "-q10" output options on that doesn't do anything, you can't resize video or change quality when using -codec copy
[23:15:54 CET] <TanaPanda> ok. i'll try dropping those and see if it still works
[23:15:57 CET] <TanaPanda> thank you
[23:16:21 CET] <TanaPanda> and it does still play
[23:16:23 CET] <TanaPanda> awesome
[23:16:30 CET] <jemius> Filarius, what is UV?
[23:18:36 CET] <Filarius> okay, will go sleep and will return to digging solution somewhere tomorrow. I see its can be a proble with flushing stdout/in in Python for ffmpeg
[23:18:43 CET] <kepstin> jemius: U and V are two arbitrary axis in a color plane. U is (roughly) blue-green, and V is (roughly) red-green. https://en.wikipedia.org/wiki/YUV has some diagrams and examples
[23:18:53 CET] <Filarius> UV in YUV420P
[23:19:04 CET] <TanaPanda> so would I add -stream_loop -1 after -re?
[23:19:20 CET] <kepstin> TanaPanda: or before the -re, the only thing that matters is that it's before the -i
[23:19:29 CET] <Filarius> and -tune zerolatency with 500+ frames still not working
[23:19:48 CET] <kepstin> Filarius: probably some buffering issue then. I have no idea how pipes work on windows
[23:19:54 CET] <kepstin> you might consider using linux? :/
[23:20:22 CET] <Filarius> i consider make it cross-platform, but starting from Windows :)
[23:22:28 CET] <TanaPanda> now I can cut VLC out of my process I love it
[23:23:34 CET] <TanaPanda> think that bit rate and buffer rate will work on just about any mp4 file?
[00:00:00 CET] --- Sat Dec 14 2019
1
0
[02:00:51 CET] <cone-191> ffmpeg 03James Almer 07master:13f2b6dc720b: fate/cbs: update the two film grain cbs_av1 tests
[02:24:18 CET] <cone-191> ffmpeg 03Andriy Gelman 07release/4.2:0493699813cc: lavc/cbs_h2645: Fix incorrect max size of nalu unit
[02:24:18 CET] <cone-191> ffmpeg 03Fei Wang 07release/4.2:69abae318a7e: avcodec/cbs_av1: avoid reading trailing bits when obu type is OBU_TILE_LIST
[02:24:19 CET] <cone-191> ffmpeg 03James Almer 07release/4.2:d3fef1a3bd9f: avcodec/cbs_av1: fix array size for ar_coeffs_cb_plus_128 and ar_coeffs_cr_plus_128
[02:35:53 CET] <mkver> James, I think you have forgotten to backport my recent Matroska demuxer patch.
[09:49:21 CET] <JEEB> was there a simple way to dump certain type of side data packets out?
[09:49:36 CET] <JEEB> trying to get an overview of how a US closed caption packet looks
[09:50:13 CET] <JEEB> the thing you stick into side data and then it gets put into a NAL unit or so
[09:59:24 CET] <kierank> JEEB: vf showinfo
[10:01:18 CET] <linjie> Hi, "If you need a sample uploaded send a mail to samples-request."
[10:02:47 CET] <linjie> someone may have asked, what's the address of "samples-request"
[10:05:00 CET] <linjie> sample-request(a)ffmpeg.org?
[10:26:04 CET] <JEEB> kierank: that just outputs how big it is... I guess I'll just write a simple C app that dumps it
[10:26:15 CET] <JEEB> > side data - A/53 closed captions (60 bytes)
[10:26:41 CET] <kierank> ah
[10:27:12 CET] <JEEB> just trying to get a feeling of how a basic text packet would look in it
[10:31:07 CET] <kierank> I think that's a whole can of worms
[10:31:34 CET] <nevcairiel> you can look at the spec, even wikipedia has a simple rundown of the packet layout
[10:31:37 CET] <nevcairiel> its not very "text"
[10:34:57 CET] <cone-001> ffmpeg 03Martin Storsjö 07master:b85dcd8586e2: fate: Fix dependencies to sample files to use local paths
[10:34:57 CET] <cone-001> ffmpeg 03Martin Storsjö 07master:e9bb1410e475: fate: Fix use of target_path/target_samples
[10:34:57 CET] <cone-001> ffmpeg 03Martin Storsjö 07master:29f8d4e9477c: rtsp: Use AVERROR() with errno.h error codes for error returns
[10:41:03 CET] <rcombs> JEEB: if you'd like I can send you some .scc files
[10:41:29 CET] <rcombs> (SMPTE timecodes + hex representation of the A/53 packets)
[15:28:39 CET] <durandal_1707> i'm desperate, can not find solution for 8x4 idct scan table
[15:29:45 CET] <Lynne> well the dc should remain in the same position, its a start
[15:30:09 CET] <durandal_1707> so, 15! combinations?
[15:30:11 CET] <BBB> durandal_1707: can you provide a test?
[15:30:30 CET] <BBB> like, give me a sequence of integers read from the bitstream in order of occurence in the bitstream
[15:30:36 CET] <BBB> and the output of the 2x4x4 idct
[15:32:37 CET] <durandal_1707> output of idct is hard to get, i need to use debugger and set breakpoints to read it
[15:34:00 CET] <BBB> it would help a lot to know the output
[15:34:51 CET] <BBB> (and input)
[15:35:33 CET] <durandal_1707> thing is for 8x8 transform they use zigzag but with down direction, and our is with right direction, and i get correct output using our zigzag
[15:38:37 CET] <BBB> it's just transposed
[15:38:42 CET] <BBB> because our idct is transposed
[15:38:46 CET] <BBB> (it makes simd easier)
[15:38:58 CET] <BBB> I cna explain but you probably don't want to know :)
[15:39:08 CET] <BBB> so with 8x4, it'd be the same thing, o we just don't transpose our idct
[15:39:12 CET] <BBB> it's not too different really
[15:39:56 CET] <durandal_1707> i use their 8 idct and 4 idct with their permutation and still get incorrect results
[15:40:48 CET] <durandal_1707> when i used our 8 row idct i got bunch of overflows
[15:40:56 CET] <durandal_1707> integer idct*
[15:41:53 CET] <durandal_1707> i could fetch output of idct, but i'm still unsure what idct they use
[15:42:19 CET] <durandal_1707> because codepath diverge for opencl/cuda and pure CPU code
[15:45:02 CET] <BBB> let's start wih input and output
[15:45:08 CET] <BBB> I already have disassembly from you earlier
[16:38:34 CET] <cone-947> ffmpeg 03James Almer 07master:aedffc0b220b: avcodec/mlp_parser: mark sync frames as key frames
[16:38:34 CET] <cone-947> ffmpeg 03Yuki Tsuchiya 07master:610473b9679b: lavc/codec_desc: introduce AV_CODEC_PROP_INTRA_ONLY flag to audio codec
[16:38:34 CET] <cone-947> ffmpeg 03Yuki Tsuchiya 07master:30047b6a571d: lavc: add MPEG-H 3D Audio codec id
[16:38:34 CET] <cone-947> ffmpeg 03Yuki Tsuchiya 07master:632b8298b709: lavf/isom: support for demuxing and remuxing of MPEG-H 3D Audio in MP4
[16:38:34 CET] <cone-947> ffmpeg 03James Almer 07master:6467a159979f: Changelog: add entry about MPEG-H 3D Audio support in mp4
[16:38:34 CET] <cone-947> ffmpeg 03Yuki Tsuchiya 07master:0ceed513d563: lavf/movenc: cosmetics
[16:39:55 CET] <JEEB> :)
[16:40:08 CET] <JEEB> nice stuff
[16:40:43 CET] <JEEB> jamrial: thanks.
[16:40:49 CET] <JEEB> now to see if we can get a decoder :P
[16:44:28 CET] <durandal_1707> why was changelog changed? please revert ASAP!
[16:44:28 CET] <cone-947> ffmpeg 03Linjie Fu 07master:8446318502bf: lavc/qsvenc: add Tiles encode support for HEVC
[16:44:29 CET] <cone-947> ffmpeg 03Zhong Li 07master:a87b5d5e8c94: lavc/x265: set preferred_transfer_characteristics for HLG
[17:12:39 CET] <mkver> durandal_1707: Your mvha decoder contains a unused-but-set variable.
[17:18:06 CET] <durandal_1707> mkver: where?
[17:18:49 CET] <mkver> size in decode_frame
[17:19:29 CET] <mkver> Seems that the packet data contain a redundant size field, but you used pkt->size instead.
[17:21:30 CET] <durandal_1707> it should be checked and used so it is not bigger than packet size
[17:23:58 CET] <mkver> Then do it.
[17:53:43 CET] <durandal_1707> mkver: feel free to do it, since i'm busy with other stuff
[17:56:12 CET] <jamrial> durandal_1707: you could fix it when you have the time
[17:56:21 CET] <durandal_1707> BBB: the only app that i can debug sucessfully uses lowres, so its not useful
[17:56:27 CET] <durandal_1707> jamrial: i never have time
[18:56:33 CET] <BBB> durandal_1707: can still be useful
[18:56:38 CET] <BBB> it's merely downsampled, right?
[18:57:20 CET] <durandal_1707> BBB: you couldnt belive it, i GUESSED it!
[18:57:41 CET] <BBB> the table?
[18:57:43 CET] <durandal_1707> yes
[18:57:52 CET] <BBB> thumbs-up-smiley !
[18:58:01 CET] <BBB> ð
[18:58:10 CET] <BBB> good job
[18:58:15 CET] <BBB> so ... it's really an idct8?
[18:58:18 CET] <BBB> that is so weird
[18:59:01 CET] <durandal_1707> pseuedo chroma is idct8x4, pseudo Y is idct8x8
[18:59:45 CET] <BBB> so weird
[18:59:46 CET] <BBB> ok
[18:59:48 CET] <BBB> well, good job
[19:02:17 CET] <Lynne> told you, now go and get a lottery ticket
[19:17:57 CET] <durandal_1707> still need to figure out how they get RGB out of this
[19:24:18 CET] <Lynne> its not yuv?
[19:27:22 CET] <durandal_1707> nope
[19:30:44 CET] <Lynne> nice
[19:39:58 CET] <cone-947> ffmpeg 03Andreas Rheinhardt 07master:56ce2ad2cccf: avformat/mov: Use ff_alloc_extradata for dvdsub extradata
[19:39:59 CET] <cone-947> ffmpeg 03Andreas Rheinhardt 07master:2e328a8a38e0: avformat/apngdec: Make sure that extradata is zero-padded
[19:40:00 CET] <cone-947> ffmpeg 03Andreas Rheinhardt 07master:c1d300f83a00: avformat/apngdec: Don't free extradata manually
[19:40:01 CET] <cone-947> ffmpeg 03Andreas Rheinhardt 07master:cb88cdf7730e: avformat/rtpdec_hevc: Don't reimplement ff_alloc_extradata
[19:40:02 CET] <cone-947> ffmpeg 03Andreas Rheinhardt 07master:c1e439d7e9ab: avformat: Forward errors where possible
[19:40:03 CET] <cone-947> ffmpeg 03Andreas Rheinhardt 07master:82d61a9ce3e2: avformat: Don't free old extradata before ff_alloc/get_extradata
[19:40:04 CET] <cone-947> ffmpeg 03Linjie Fu 07master:bffb9326b6b3: lavc/mips: simplify the switch code
[19:40:04 CET] <cone-947> ffmpeg 03Linjie Fu 07master:7aef2f59b518: lavc/utils.c: fix code indentations
[19:40:06 CET] <cone-947> ffmpeg 03Michael Niedermayer 07master:ab3044368f3f: avcodec/v210dec: move the stride read after its fully initialized
[20:52:13 CET] <thardin> boy what a fun ticket
[20:54:03 CET] <thardin> it struck me how absolutely impossible it would be to seek to the middle of an MXF, in terms of presentation (material) timestamps
[20:54:56 CET] <thardin> one doesn't really know where the indexes are located
[21:02:59 CET] <JEEB> yup
[22:40:13 CET] <cone-529> ffmpeg 03Michael Niedermayer 07master:9d1f7870a9de: avfilter: Fix type in av_log for random_seed in cellauto and life
[22:57:14 CET] <cone-529> ffmpeg 03Martin Storsjö 07master:f58bda642d6d: checkasm: af_afir: Use a dynamic tolerance depending on values
[00:00:00 CET] --- Fri Dec 13 2019
1
0
[00:06:14 CET] <TanaPanda> Hello
[00:06:54 CET] <TanaPanda> Lets say I have a MP4 video that I would like to stream to an IP address using UDP. What command would I use in Rasbian to stream the file using FFMPEG?
[00:07:28 CET] <BtbN> You will need to be more specific then "using UDP"
[00:07:56 CET] <TanaPanda> I want to stream it to say UDP://192.168.6.2:17
[00:08:02 CET] <DHE> usually it means mpegts over udp, and for added fun (ie. pain) over multicast
[00:08:18 CET] <TanaPanda> so file located on my raspbian OS streaming to that IP address
[00:08:30 CET] <TanaPanda> yes sorry TS encapsulation
[00:08:39 CET] <TanaPanda> i would assume for streaming
[00:08:51 CET] <DHE> to do it properly you need to know the bitrate of the source video. preferably it would be CBR or damned close
[00:09:14 CET] <TanaPanda> right click and look at properties for this info?
[00:09:26 CET] <DHE> or ffprobe. but cbr vs vbr isn't so obvious
[00:10:16 CET] <TanaPanda> does VLC use FFprobe in the background when you stream files?
[00:10:36 CET] <TanaPanda> I assume VLC just uses ffmpeg to perform these operations so I am atempting to cut VLC out of the picture
[00:10:43 CET] <DHE> no. it embeds the ffmpeg libraries..
[00:11:17 CET] <DHE> well you can safely overestimate. take your video and audio bitrates, add them together, add 20%, what's the result?
[00:11:29 CET] <DHE> or just the bitrate of the file as a whole +20%
[00:12:25 CET] <TanaPanda> 1239
[00:12:47 CET] <TanaPanda> So with this question your asking me
[00:12:53 CET] <DHE> kilobits?
[00:12:59 CET] <TanaPanda> let me expain some more that i didnt think was relivent
[00:13:55 CET] <TanaPanda> Ideal situation is to have a command line that auto runs. it will point to a video inside a folder and start streaming it upon startup. I would like to be able to delete the video in said folder and replace it with another with the exact same name and then have that video start playing on startup
[00:14:29 CET] <TanaPanda> they will alwyas be streamed to the same IP address and port
[00:14:53 CET] <TanaPanda> such as 192.168.6.2:187
[00:14:58 CET] <DHE> the "right" way to do this requires knowing the bitrates because networks are unreliable and this process makes them better
[00:15:02 CET] <TanaPanda> i mean 192.168.6.2:17
[00:15:07 CET] <DHE> also it's tradition to use a higher number port. 1024 minimum
[00:15:07 CET] <BtbN> If you have something listening there on that UDP port, waiting for mpeg-ts, just blast away and see if it works?
[00:15:20 CET] <TanaPanda> yes it not going through a traditional network
[00:15:29 CET] <BtbN> UDP is UDP though
[00:15:37 CET] <TanaPanda> its gpoing though a device strictly for braodcasting TV
[00:15:41 CET] <BtbN> And ports below 1024 are priviledged, you can't easily bind to them
[00:15:46 CET] <TanaPanda> the Com3000 from technicolor to be specific
[00:16:07 CET] <DHE> ffmpeg -re -i INPUT.MP4 -c copy -f mpegts -bitrate 1239k -muxrate 1239k -pkt_size 1316 udp://192.168.6.2:12345
[00:16:29 CET] <DHE> for the "I don't know the bitrate scenario" dropping the two bitrate parameters may work, but it also may result in glitching due to packet loss
[00:16:43 CET] <BtbN> Broadcasting equipment is usually INSANELY picky with their inputs. So don't be surprised if it just doesn't work at all, for unknown reasons.
[00:16:56 CET] <TanaPanda> It works through VLC perfectly
[00:17:02 CET] <TanaPanda> I would just like to simplify the process
[00:17:24 CET] <DHE> I have used ffmpeg for broadcast equipment in the past. still do from time to time. it works, but yeah you definitely want to be anal about following the rules. the bitrate thing really is one of those rules
[00:17:52 CET] <BtbN> or the profile, or only taking very specific resolutions, or other seemingly random codec constraints
[00:18:01 CET] <TanaPanda> I will tst with dropping the bitrate lines and see what happenes
[00:18:09 CET] <BtbN> Like, "we support h264, but only if you don't use feature XY"
[00:18:11 CET] <DHE> with those options, ffmpeg will go out of its way to send a single UDP packet every 5 milliseconds (or whatever the math works out to be) rather than sending a small burst of packets before waiting 1/30th of a second
[00:18:12 CET] <TanaPanda> when I set the port number literally nothing else will be sharing it
[00:18:59 CET] <DHE> because network switches are garbage with tiny buffers and ffmpeg will just blast packets unless told not to
[00:20:25 CET] <TanaPanda> so the unit function on an internal managed switch
[00:20:49 CET] <TanaPanda> the IP address I am sending the video to belongs to a QAM modulator that will then convert it to RF and send it over COAX
[00:21:06 CET] <DHE> unit function?
[00:21:18 CET] <TanaPanda> ?
[00:21:23 CET] <DHE> <TanaPanda> so the unit function on an internal managed switch
[00:21:25 CET] <TanaPanda> oh my bad
[00:21:41 CET] <TanaPanda> the Com3000 is on a managed switch that I am sending the TS to
[00:21:45 CET] <TanaPanda> is what i meant
[03:37:40 CET] <Yiden> sorry to bother. I'm wondering if someone can re-post a link to the "to directive" for ffmpeg?
[03:38:04 CET] <Yiden> I'm trying to figure out to extract an mp4 file from an mp4 file from time mm to time nn.
[03:39:14 CET] <pzich> You probably want to use -ss and -t or -to https://trac.ffmpeg.org/wiki/Seeking
[03:40:03 CET] <Yiden> is it going to be hard for me to get th formating right?
[03:40:34 CET] <Yiden> I mean, I just work in a crappy little office. we don't have a lot of great technolgoy or technical people.
[03:40:56 CET] <Yiden> I mean, is the default input also the default output?
[03:42:03 CET] <Yiden> input format/output format
[03:43:04 CET] <Yiden> this is a great read. i love the pictures.
[03:43:30 CET] <Yiden> what CMS is this website using?
[03:44:19 CET] <DHE> trac
[03:45:49 CET] <Yiden> Wow, it even talks about burning subs into a video.
[03:46:18 CET] <Yiden> If I just specify a .mp4 output, am I going to have 'codec problems'?
[03:48:24 CET] <Yiden> Uhm, sorry, last thing I was wondering: will "cutting out a section" destroy the origional?
[03:49:16 CET] <Yiden> It would be cool if ffmpeg download page had a link to a persistent example directory.
[03:52:53 CET] <Yiden> for my personal reference: from-to command: ffmpeg -ss 00:01:00 -i "target original.mp4" -to 00:02:00 -c copy target_output.mp4
[04:05:30 CET] <fks> anybody have ffmpeg build that has rav1e
[04:16:19 CET] <edenist> fks: mine is built with it
[04:16:33 CET] <edenist> from freebsd ports
[04:16:37 CET] <fks> edenist how did you get it
[04:17:06 CET] <edenist> built from source
[04:18:07 CET] <fks> i don't use freebsd
[04:18:22 CET] <edenist> what OS?
[04:19:03 CET] <fks> windows
[04:19:15 CET] <fks> i cannot find ffmpeg with rav1e
[04:19:46 CET] <edenist> it's pretty new, and experimental. Likely not goign to find a binary ready to go. Look up a guide to build it from source and you can enable it then
[04:50:39 CET] <iconoclasthero> hi, i'm trying to get ffmpeg to trim an audio file (12 - Joss Stone -- Girlfriend on Demand.flac) to a duration 4m 31s starting from the beginning.
[04:50:39 CET] <iconoclasthero> i thought i wanted to use ffmpeg -i 12\ -\ Joss\ Stone\ --\ Girlfriend\ on\ Demand.flac -to 0:4:31 -acodec copy 12-trimmed.flac
[04:50:39 CET] <iconoclasthero> but despite ffmpeg reporting "size= 23886kB time=00:04:30.93 bitrate= 722.2kbits/s speed=5.84e+03x" both mediainfo and vlc still show the file being 7:30.
[04:54:44 CET] <iconoclasthero> https://pastebin.com/zBBKvzMT
[08:45:06 CET] <Damme> Hey guys, I added an extra sound track to a container, but I lost the chapter titles when doing that. How do I keep that information ?
[12:12:38 CET] <lesshaste> I need to recode a video from 50fps to 30fps. I am using ffmpeg -i in.mp4 -filter:v fps=fps=30 out.mp4
[12:12:56 CET] <lesshaste> two questions. I don't want to recode the audio, can I just copy it over somehow?
[12:13:06 CET] <lesshaste> also, what exactly does -filter:v do?
[12:19:03 CET] <lesshaste> can I just add -acodec copy and it will all be properly synced?
[12:49:58 CET] <BtbN> You will also want to specify video encoder options. Otherwise it will fall back to defaults, which are usually less than ideal.
[13:04:50 CET] <lesshaste> BtbN, ah ok. The main problem is that reducing the frame rate from 50fps to 30fps is really really slow as an operation it seems.
[13:05:21 CET] <lesshaste> so anything I can do to speed that up would be great
[13:39:28 CET] <BtbN> lesshaste, reducing the framerate is effectively free, it just throws away excess frames.
[13:39:38 CET] <BtbN> Encoding video is slow. Specially on default settings.
[14:17:18 CET] <lesshaste> BtbN, so what is the quick way to do this?
[14:26:52 CET] <DHE> you probably want something like: -c:a copy -c:v libx264 -preset:v faster -crf 25
[14:32:45 CET] <lesshaste> DHE, thanks!
[14:34:39 CET] <lesshaste> trying that now
[15:09:41 CET] <epileg> hello
[15:10:25 CET] <epileg> is it possible to embed a cue sheet to m4a (pm4 alac audio) with ffmpeg?
[15:10:49 CET] <epileg> *mp4
[15:59:08 CET] <Lantizia_> hey I've been trying to set up a HLS server... think I'm good on that now - and I seem to be able to use ffmpeg to use a .mp4 file as input - and send it to the rtmp server (which is an nginx module) and that spits it out as http hls m3u8 style stuffffs
[15:59:47 CET] <Lantizia_> but having difficulties when i want to use a http mpegts input with ffmpeg to output to rtmp in the same way
[16:00:00 CET] <Lantizia_> ffmpeg doesn't show any errors but webbrowsers can't seem to play the content
[16:00:31 CET] <BtbN> You are aware ffmpeg can just generate a hls playlist on its own?
[16:00:38 CET] <BtbN> So all you need is a relatively dumb http server.
[16:01:07 CET] <DHE> still, the input format shouldn't matter here
[16:01:30 CET] <BtbN> And Browsers are relatively picky with formats they accept. So if it's not h264+aac/vp9+opus, it probably won't play.
[16:01:50 CET] <BtbN> Natively, they don't even support HLS as a transport, that's a JavaScript blob doing that.
[16:14:09 CET] <Lantizia_> BtbN, yeah it's h264 and aac
[16:14:17 CET] <Lantizia_> no i didn't know ffmpeg could just do it on it's own
[16:15:20 CET] <Lantizia_> essentially I'm using this... ffmpeg -i http://hostname.com:5004/auto/v107 -vcodec copy -vprofile baseline -acodec aac -strict -2 -f flv rtmp://localhost/show/stream
[16:16:26 CET] <Lantizia_> https://pastebin.com/raw/ZWPY5gbz
[16:17:08 CET] <Lantizia_> the video codec is on copy (as it's already h264) but the audio is on aac as the source is aac_latm
[16:17:39 CET] <Lantizia_> oh and i usually throw in -sn to ignore subtitles too
[17:15:40 CET] <iconoclasthero> hi, i'm trying to get ffmpeg to trim an audio file (12 - Joss Stone -- Girlfriend on Demand.flac) to a duration 4m 31s starting from the beginning.
[17:15:40 CET] <iconoclasthero> i thought i wanted to use ffmpeg -i 12\ -\ Joss\ Stone\ --\ Girlfriend\ on\ Demand.flac -to 0:4:31 -acodec copy 12-trimmed.flac
[17:15:40 CET] <iconoclasthero> but despite ffmpeg reporting "size= 23886kB time=00:04:30.93 bitrate= 722.2kbits/s speed=5.84e+03x" both mediainfo and vlc still show the file being 7:30. https://pastebin.com/zBBKvzMT
[18:06:57 CET] <kepstin> iconoclasthero: hmm, i think i remember someone running into something similar before. iirc ffmpeg doesn't update some length metadata when in copy mode with flac.
[18:07:01 CET] <kepstin> might be an issue open for it
[18:13:21 CET] <kepstin> workaround is to re-encode I guess. flac encoding is reasonably fast, and it is lossless, so that's not a terrible option :)
[19:06:23 CET] <epileg> hi, is there a way to use cue sheet with ffmpeg?
[19:25:55 CET] <klaxa> epileg: i'm not sure, but years ago i wrote this script: https://gist.github.com/klaxa/5089109
[19:37:53 CET] <Filarius> i'm doing some x264 related research where i use ffmpeg. I made wrapper to write to stdin and get mp4, and to exactract raw frames from that mp4 to stdout where I read from my program. But i just need to get raw frames after x264 compression, is here some trick I can do it with one command like on ffmpeg ?
[19:38:17 CET] <epileg> klaxa: Thank you, but I'm tolking about cue sheet (metadata text file), not binary one
[19:42:30 CET] <epileg> so basically I've an m4a file with whole CD and also I've a cue sheet with the chapters info. I just want to embed this cue sheet to the m4a (mp4 alac). This is usefull to have a whole live CD without cuts between tracks, but you can choose an specific song as well
[19:42:49 CET] <klaxa> epileg: yes, me too
[19:43:19 CET] <epileg> klaxa: is there a way to do it?
[19:43:54 CET] <DHE> Filarius: you can request raw h264 as an output format. it's on you to be able to split the frames up while parsing it though
[19:45:01 CET] <Filarius> DHE, I mean i need raw_yuv -> h264 -> raw_yuv
[19:45:58 CET] <DHE> encoder, and immediately decode again, presumably to compare the frames to measure quality somehow?
[19:47:13 CET] <DHE> I mean you can do it with 2 ffmpeg instances piped into each other, but I don't think a single instance can do that.
[19:47:51 CET] <Filarius> u mean something like "ffmpeg -i - ... -| ffmpeg -i - ... -" ?
[19:48:33 CET] <klaxa> epileg: as you can read from the script, it just parses the .cue file
[19:49:00 CET] <Filarius> does in Windows I should use "ffmpeg .. > ffmpeg ... " ?
[19:50:02 CET] <furq> | works on windows
[19:50:50 CET] <furq> ffmpeg -i foo -c:v libx264 -f nut - | ffmpeg -i - -c:v rawvideo -
[19:51:07 CET] <furq> or -f rawvideo
[19:51:25 CET] <Filarius> i quess i will need to add some buffering to wait until frame will come out to compare frames
[19:53:00 CET] <Filarius> I already have commands to read and write to ffmpeg, thanks, just will need make second one to read raw x264 instead of file
[19:54:11 CET] <bodqhrohro_> How to delay drawtext?
[19:54:58 CET] <epileg> klaxa: yes, I tried your script but unsuccessful
[19:55:08 CET] <bodqhrohro_> I think of a trick of drawing it on nullsrc and then overlaying the delayed video stream, but how to make this nullsrc transparent?
[19:55:24 CET] <Filarius> ...right now I just starting ffmpeg each time to encode only 1 frame and start another time to read that frame from mp4, its add some time to wait until ffmpeg starts and to while process will die
[19:56:50 CET] <klaxa> ah, too bad :/
[19:57:30 CET] <DHE> Filarius: mp4 is not live-streaming friendly. you might try mpegts instead
[20:01:26 CET] <Filarius> i think i will just will try that "double dragon". I have very promising results here. Not sure if "live-streaming" is related here. Hm. do you will advice make piping from ffmpeg to ffmpeg with raw x264 stream, or wrap into mpegts or something ?
[20:08:07 CET] <DHE> wrapping in mpegts might be overkill but somehow I just prefer using a container. it does preserve some metadata like the framerate.
[20:11:30 CET] <Filarius> also i'd like to have very low count of "buffered" frames, because after each unique output i will change what frames in sending in, and with "buffer lag" i will need to keep send "filler" frames until frame of changed kind will pop-up to all me to do next iteration if changes
[20:12:07 CET] <Filarius> *to allow me
[20:13:03 CET] <Filarius> i do not need frame rate, just put frames in and take out
[20:13:41 CET] <iconoclasthero> kepstin: that's what I ended up doing...i.e., removing the -c copy and it worked. I don't know what "iirc" ffmpeg means though.
[20:13:48 CET] <iconoclasthero> should i open a ticket?
[20:16:19 CET] <DHE> Filarius: x264 buffers a LOT of frames by default. internally for its own encoding purposes. taking that away can be done but will negatively impact image quality
[20:16:36 CET] <wodim> I want to overlay a series of png files, in loop, one image per frame, on a video. would this be a good approach? https://stackoverflow.com/q/42943805
[20:18:13 CET] <DHE> that's one way. if the duration of each overlay is fixed and consistent, you could probably treat the image sequence as a looping video and do a simple 2-video overlay
[20:22:04 CET] <wodim> can videos have transparency?
[20:22:23 CET] <kepstin> yes, but very few codecs support it so it's pretty rare
[20:22:28 CET] <Filarius> DHE, well, I wish its will be faster whan start ffmpeg per each frame, also right now i work only key-frame, and piping between ffmpeg and ffmpeg will show me something more real, to check on other frames too
[20:22:39 CET] <wodim> adding more context: I would like to add a moving logo, like the one tiktok videos have.
[20:22:47 CET] <wodim> and I thought of that approach
[20:23:04 CET] <kepstin> wodim: it would be easiest to just have a directory of png images as input to ffmpeg for that.
[20:23:32 CET] <wodim> yeah but that creates a video with the files, like a gif, right?
[20:24:27 CET] <kepstin> ffmpeg can read a series of images as a video stream.
[20:24:40 CET] <wodim> yes but... I want to overlay that on another video
[20:25:25 CET] <kepstin> yes? if you have a video stream in ffmpeg, then you can overlay it over another video stream.
[20:25:59 CET] <wodim> hmmm, okay, I'll look into that
[20:26:32 CET] <wodim> thanks
[20:27:44 CET] <kepstin> it should be pretty much "ffmpeg -i somevideo.mp4 -stream_loop 1 -i directory/%04d.png -filter_complex overlay=<options for position> output.mp4"
[20:28:12 CET] <kepstin> obviously fixing any typos i made, since that's just off the top of my head
[20:28:36 CET] <wodim> that's very helpful
[21:31:00 CET] <TanaPanda> Hello
[21:31:39 CET] <JEEB> ohai
[21:32:11 CET] <TanaPanda> So I am using ffmpeg to strema a video to an IP address. I am using the command: ffmpeg -re -i /home/pi/Desktop/ActiveChannel/Property_LCI.mp4 -c copy -f mpegts udp://192.168.6.2:20
[21:32:35 CET] <TanaPanda> however when I connect my laptop to the Pi i am able to see the UDP on wireshark however I am unable to pull up the stream via VLC
[21:32:40 CET] <TanaPanda> any thoughts?
[21:33:02 CET] <TanaPanda> when I do thsi function with VLC the streams comes across as mpegts not UDP on wireshark
[21:33:24 CET] <TanaPanda> also I need to make sure that the video its streaming loops
[21:33:34 CET] <TanaPanda> but that can wait until I get the video working properly
[21:34:43 CET] <BenLubar> quick question to make sure I'm not going crazy: is the imaginary part of the FFT of audio frequency always 0?
[21:35:06 CET] <TanaPanda> incase it helps when i do this via command line on vlc my command looks like this : "std{access=udp,mux=ts,dst=192.168.6.2:20}"
[21:35:42 CET] <TanaPanda> if that question is directed at me then I have no idea
[21:37:54 CET] <BenLubar> oh wait I'm looking at this wrong now it seems more obvious
[22:32:21 CET] <pink_mist> TanaPanda: are you running VLC as root? otherwise there might be issues when listening on ports under 1024
[22:32:27 CET] <pink_mist> 20 is quite far under 1024
[22:34:05 CET] <TanaPanda> well i am streaming the video using vlc right now however I would like to simply use FFMPEG if possible
[22:34:29 CET] <TanaPanda> however I am not getting success with ffmpeg whereas i am successful when using vlc
[22:34:52 CET] <TanaPanda> the device i am streaming to does not have any ports above 780
[22:38:49 CET] <pink_mist> oh, I thought you were watching the stream from ffmpeg with VLC
[22:38:54 CET] <pink_mist> then I have no clue
[22:39:03 CET] <TanaPanda> no I am trying to stream a video to a source using ffmpeg
[22:39:59 CET] <pink_mist> also, all IP implementations I've ever heard of supports ports at least up to 65535
[22:40:11 CET] <pink_mist> I've never heard of one where 780 was the max
[22:41:02 CET] <TanaPanda> i'm sending the stream to a QAM modulator and its channels are set via the port. all ports are satic and end at 780
[23:53:33 CET] <TanaPanda> so
[23:53:52 CET] <TanaPanda> I can get my video to stream but when I watch the packets in wireshark they are using the UDP protocol
[23:54:04 CET] <TanaPanda> how do I get them to stream usign the mpeg ts protocol
[23:54:47 CET] <BtbN> mpeg-ts is not a layer 3 protocol
[23:54:53 CET] <BtbN> Or a protocol to begin with
[23:55:14 CET] <TanaPanda> why does wire shark show vlc streaming using the mpeg ts protocol then
[23:55:29 CET] <BtbN> I highly doubt it does, cause mpeg ts is not a protocol.
[23:55:39 CET] <TanaPanda> I can screen shot and share
[23:55:48 CET] <BtbN> If it claims it is, it's plain wrong.
[23:55:50 CET] <pink_mist> wireshark supports a lot of application protocols too
[23:56:07 CET] <pink_mist> and mpegts is certianly something it can recognise
[23:56:11 CET] <pink_mist> *certainly
[23:56:14 CET] <BtbN> raw mpeg-ts dumped over UDP is no protocol though.
[23:56:23 CET] <BtbN> It's just that, mpeg-ts dumped out via UDP
[23:56:32 CET] <pink_mist> it's a datastream that can be recognised
[23:56:38 CET] <pink_mist> wireshark can recognise it
[23:57:05 CET] <TanaPanda> i just for the life of me cannot get my video to work with ffmpeg but it orks fine when streamed out via vlc
[23:57:28 CET] <TanaPanda> the difference i can see is that coming from vlc it shows the packets as mpeg ts and they work
[23:57:40 CET] <TanaPanda> coming from ffmpeg they show as UDP and do not work
[23:57:51 CET] <TanaPanda> i'm sure its me and not the program
[00:00:00 CET] --- Fri Dec 13 2019
1
0
[00:06:30 CET] <durandal_1707> nobody knows how rl2 works?
[01:13:47 CET] <durandal_1707> michaelni_: can you explain meaning of each table in RLTable?
[03:41:24 CET] <cone-530> ffmpeg 03Fei Wang 07master:1ea44178f5ff: avcodec/cbs_av1: avoid reading trailing bits when obu type is OBU_TILE_LIST
[07:49:21 CET] <cone-470> ffmpeg 03Jun Zhao 07master:8d823e6005fe: lavf/libsrt: add linger parameter to libsrt
[07:49:21 CET] <cone-470> ffmpeg 03Jun Zhao 07master:952fd0c76874: lavf/libsrt: enable other encryption parameters
[07:49:21 CET] <cone-470> ffmpeg 03macweng 07master:e3c732bb0c9b: configure: add OPENSSL_init_ssl check if pkg-config fail
[07:49:21 CET] <cone-470> ffmpeg 03Jun Zhao 07master:4eae85a82f81: lavf/tls_openssl: support both pre-1.1.0 and post-1.1.0 init
[08:22:37 CET] <cone-470> ffmpeg 03Steven Liu 07master:ed8976333624: avformat/hlsenc: remove duplicate code block
[08:22:38 CET] <cone-470> ffmpeg 03Steven Liu 07master:4110029e562c: avformat/cache: rename the class name fro Cache to cache
[10:39:20 CET] <cehoyos> nevcairiel: That is not entirely correct, at least mentioning FFmpeg and the LGPL are an explicit requirement to comply
[10:40:06 CET] <cehoyos> (And you are not right about "mailing them is ok": They would have to make a legally binding offer to provide sources on request, that made sense before the internet but is irrelevant now)
[10:40:30 CET] <cehoyos> We have founds now and could decide to go after license violators.
[10:40:45 CET] <cehoyos> The question is if we have something to offer to them, this is not 100% clear imo
[10:43:05 CET] <nevcairiel> In any case, if you really wanted to go after license violations, using LGPL violations is still boring and not very fruitful, because all they need to do is add a bunch of text somewhere, spending energy on those non-free cases is far more interesting
[10:46:48 CET] <thardin> if they've baked them together like that then the code that does the baking should fall under the LGPL, right?
[10:47:03 CET] <thardin> probably not a huge issue to just release that
[10:47:17 CET] <thardin> so not very fruitful
[10:47:40 CET] <nevcairiel> baking like that is one command of a linker
[10:47:43 CET] <nevcairiel> not even code
[10:47:50 CET] <nevcairiel> i do that myself with some libraries
[10:48:32 CET] <nevcairiel> build as static libraries, bake into a dll and export all library symbols, done
[11:39:58 CET] <cone-470> ffmpeg 03Gyan Doshi 07master:78676ee8f812: avfilter/scale_eval: remove redundant mathematical constants
[11:55:22 CET] <durandal_1707> i guess i can not use rl table as its uses 16bit elements for codes, while mine have max of 18bit
[13:21:08 CET] <Illya> VLC_TYPE is also 16
[15:50:58 CET] <jamrial> any suggestion about the MPEG-H 3D patch? regarding how it tags audio key frames by changing is_intra_only() in lavf/utils.c
[15:51:36 CET] <jamrial> that function should be more general. it looks for AV_CODEC_PROP_INTRA_ONLY only on video codecs, despite the prop being allowed on audio codecs
[15:52:36 CET] <jamrial> and currently, only a bunch of lossless audio codecs set that prop
[15:53:52 CET] <JEEB> yea
[15:54:00 CET] <JEEB> basically thankfully most audio formats have that prop
[15:54:06 CET] <JEEB> I mean, they are intra-only
[15:54:25 CET] <jamrial> no, most don't set that prop
[15:54:31 CET] <JEEB> yes, I miswrote
[15:54:32 CET] <JEEB> sorry
[15:54:42 CET] <JEEB> I meant, all of them are/should be intra only
[15:55:00 CET] <JEEB> thus setting that flag and changing the code to be general
[15:55:18 CET] <jamrial> so codec_desc.c needs an overhaul :p
[15:55:18 CET] <JEEB> instead of having an if audio | MPEG-H 3D audio
[15:55:57 CET] <JEEB> yea I see for mayn formats the vlaues are set there
[15:56:11 CET] <jamrial> which codecs would not set intra_only? truehd, mpeg-h 3d, and what else?
[15:56:21 CET] <JEEB> aC-4, which we don't atm have
[15:56:26 CET] <JEEB> not sure about game codecs
[15:56:51 CET] <JEEB> but currently I think audio codecs are set generally intra only, no?
[15:57:06 CET] <JEEB> and was truehd really with inter prediction?
[15:57:20 CET] <jamrial> it has sync frames
[15:57:24 CET] <JEEB> ah
[15:58:28 CET] <JEEB> but yea, I feel really awful for not for whatever reason having brought this up a few weeks ago when I first noticed it
[15:59:04 CET] <jamrial> codec_desc.c doesn't set intra_only for the vast majority of audio codecs. i don't know if this is done or assumed elsewhere in the codebase
[15:59:28 CET] <JEEB> wasn't is_intra_only more or less assuming that?
[16:00:07 CET] <JEEB> yea, it would return 1 for audio formats
[16:00:09 CET] <jamrial> ah yeah, for every audio codec. my bad
[16:00:20 CET] <JEEB> not sure how many things utilize that function
[16:00:37 CET] <JEEB> after all the packet should also have that mentioned'
[16:00:59 CET] <jamrial> lavf util demuxing code, av_read_frame()
[16:02:14 CET] <jamrial> so, set intra_only prop for every codec in codec_desc.c sans the aforementioned couple, update is_intra_only(), and hope nothing breaks? :p
[16:02:59 CET] <JEEB> *every audio codec
[16:03:05 CET] <jamrial> yeah
[16:04:17 CET] <mkver> It might also affect the Real audio codecs (cook, sipr, atrac3, ra 288).
[16:05:08 CET] <mkver> At least when mkvmerge muxes them into Matroska, not all of the blocks get a keyframe flag. But this might just be how it is done in Matroska.
[16:05:26 CET] <mkver> Someone with more knowledge about these codecs should be consulted.
[16:05:41 CET] <jamrial> yeah, for truehd mkvmerge sets only the sync frames as key
[16:06:04 CET] <JEEB> but yea, I'd say for now (unless we want to get rid of that function), that would make it more sensible and more or less follow suite on what the function is returning atm (while letting you have non-intra only audio formats)
[16:43:08 CET] <durandal_1707> ac-4 have sync frames too
[16:43:53 CET] <durandal_1707> and because of current state in ffmpeg, it does not handle seeks very well, because lavc does not call flush
[16:45:21 CET] <jamrial> durandal_1707: would correclty setting keyframes in demuxer or parser rather than in lavf/utils.c as mentioned above help with that?
[16:46:08 CET] <Lynne> doesn't mpv's mkv demuxer have a hack to force mark all audio except truehd as keyframe because muxers don't really set it?
[16:48:01 CET] <jamrial> sounds like a workaround for precisely the current behavior in ffmpeg
[16:49:01 CET] <Lynne> so that's where the broken files came from
[16:55:21 CET] <cone-470> ffmpeg 03Andreas Rheinhardt 07master:91f775e0c533: avformat/apc: Remove unnecessary resetting of flags
[16:55:22 CET] <cone-470> ffmpeg 03Andreas Rheinhardt 07master:a6d292b954cb: avformat/flvenc: Don't reimplement ff_alloc_extradata
[16:55:23 CET] <cone-470> ffmpeg 03Andreas Rheinhardt 07master:86e9747c634b: avformat/iff: Use ff_alloc_extradata
[20:27:30 CET] <cone-191> ffmpeg 03Fei Wang 07master:5fc3099cafc8: avcodec/cbs_av1: rename enable_intraintra_compound flag
[21:47:11 CET] <cone-191> ffmpeg 03Martin Storsjö 07master:6569e9505c78: network: Define ENOTCONN as WSAENOTCONN if not defined
[21:47:12 CET] <cone-191> ffmpeg 03Martin Storsjö 07master:8f70e261fa6f: checkasm: float_dsp: Scale FLT/DBL_EPSILON sufficiently when comparing
[21:47:13 CET] <cone-191> ffmpeg 03Martin Storsjö 07master:c27a85b98355: fate: Use a oneoff test for the tremolo filter
[22:47:59 CET] <jamrial> jkqxz: there are some cbs patches that could use your eyes whenever you have time
[23:00:45 CET] <durandal_1707> why i get integer overflows when calling idctRowCondDC_int16_12bit ?
[23:00:57 CET] <durandal_1707> for Y component it works
[23:01:04 CET] <durandal_1707> for U/V it barfs out
[23:27:58 CET] <iive> U/V are signed or offsetted
[23:30:11 CET] <cone-191> ffmpeg 03James Almer 07master:a23dd33606d5: avcodec/cbs_av1: fix array size for ar_coeffs_cb_plus_128 and ar_coeffs_cr_plus_128
[00:00:00 CET] --- Thu Dec 12 2019
1
0
[00:08:22 CET] <bencc1> https://pastebin.com/raw/9JHyANXC
[00:09:23 CET] <bencc1> kepstin: I think it's because I've tried to capture audio but there was no audio from pulseaudio
[00:09:36 CET] <kepstin> bencc1: your input file is corrupt or truncated, yeah
[00:10:32 CET] <bencc1> kepstin: this is how I capture:
[00:10:35 CET] <bencc1> ffmpeg -f pulse -ac 2 -ar 48000 -i default -f x11grab -framerate 30 -i :0.0 -acodec aac -b:a 96k -vcodec libx264 -pix_fmt yuv420p -preset:v veryfast -crf 23 -vf fps=30 cap.nut
[00:10:52 CET] <bencc1> what can I do if I don't know in advance if I will have audio or not?
[00:12:16 CET] <bencc1> I didn't get an error when using the same commands with mkv but had the framerate wasn't constant
[00:15:15 CET] <kepstin> i'd expect that to be fine, how are you stopping it?
[00:15:35 CET] <kepstin> a single ctrl-c should be fine, and allow ffmpeg to finish and close all the files
[00:16:11 CET] <kepstin> and you have to describe "no audio" better. If ffmpeg tries to read audio from pulse and hangs, then it's not gonna make any progress (won't capture any video either)
[00:16:12 CET] <bencc1> from python: myproc.send_signal(signal.SIGINT)
[00:16:24 CET] <kepstin> if pulse provides silence, that's fine, no issue.
[00:16:34 CET] <bencc1> pulse provides silence
[00:17:21 CET] <bencc1> I don't wait after sending signal.SIGINT and before trying to convert nut to mp4
[00:17:27 CET] <bencc1> that's probably why it fails
[00:17:37 CET] <kepstin> yeah, you have to wait for the process to actually exit
[00:17:48 CET] <bencc1> how much time do I need to wait? how can I tell when it exited?
[00:17:52 CET] <kepstin> have to check my python apis, but it might be as simple as running "myproc.wait"
[00:18:00 CET] <bencc1> ok. checking
[00:18:41 CET] <kepstin> https://docs.python.org/3/library/subprocess.html#subprocess.Popen.wait yep
[00:19:39 CET] <kepstin> note that when using the libx264 encoder it can take a while for ffmpeg to finish shutting down, since it has to drain the threaded encoder (which can have several hundred frames) and finish writing the file.
[00:19:52 CET] <bencc1> I have:
[00:19:53 CET] <kepstin> shouldn't be more than a few seconds usually, tho
[00:20:08 CET] <bencc1> 1. subprocess.Popen(['ffmpeg', ...], stdout=subprocess.PIPE, shell=False)
[00:20:16 CET] <bencc1> 2. time.sleep(something)
[00:20:30 CET] <bencc1> 3. myproc.send_signal(signal.SIGINT)
[00:21:31 CET] <bencc1> not sure yet how to use Popen.wait(). I'll search for example
[00:22:23 CET] <bencc1> maybe just myproc.wait()
[00:23:52 CET] <kepstin> yeah, it's a method on the Pobject instance, same as send_signal
[00:23:57 CET] <kepstin> Popen*
[00:24:28 CET] <kepstin> (as a reminder, every process you start should always be wait()ed for at some point, otherwise it becomes a zombie)
[00:24:46 CET] <kepstin> (with some exceptions for things that you run in the background, daemonized)
[00:26:03 CET] <bencc1> myproc.wait() works
[00:26:18 CET] <bencc1> and thanks for the suggestion to ensure all processes ends
[00:41:19 CET] <bencc1> kepstin: I'm currently using NUT to capture and later convert to mp4
[00:41:40 CET] <bencc1> is there a reason not to use mp4 for capture and not use nut at all?
[00:44:45 CET] <durandal_1707> mp4/mov is awful format for capture
[00:46:23 CET] <bencc1> durandal_1707: so I'll stick with nut
[00:46:26 CET] <bencc1> can you explain why?
[00:47:45 CET] <durandal_1707> not designed for that
[00:48:34 CET] <bencc1> ok
[00:48:36 CET] <bencc1> thanks
[00:58:53 CET] <bencc1> 30fps is ok or is there a more 'standard' fps?
[00:59:13 CET] <bencc1> like 29.97
[00:59:36 CET] <bencc1> users will view mp4 only and maybe upload to youtube
[01:10:25 CET] <DHE> bencc1: whatever the framerate of your source is, try to avoid changing it. usually things are best when you modify as few things as possible
[01:13:59 CET] <bencc1> DHE: I'm capturing xvfb so I'm not sure if there is real source framerate
[19:28:09 CET] <klongwood3> Is it possible to split a stream to ffplay and ffprobe?
[19:34:53 CET] <c_14> not sure what you're trying to do, but tee muxer maybe
[19:52:54 CET] <lezsakdomi> Hi! ffmpeg says "Found duplicated MOOV Atom. Skipped it". How can I make ffmpeg parse it instead of skipping?
[19:53:49 CET] <JEEB> isn't duplicated moov kind of invalid? :P
[19:54:21 CET] <lezsakdomi> Context: I have a shitty scripts which outputs a bunch of very different mp4 files. I'd like to play them using ffplay or pipe through `ffmpeg - -f mp4 -`.
[19:54:45 CET] <JEEB> just use movie fragments?
[19:54:46 CET] <kepstin> "for file in *.mp4 ; do ffplay $file; done"
[19:55:12 CET] <lezsakdomi> JEEB: What do you mean by movie fragments?
[19:55:13 CET] <kepstin> or use mpv to play them, it can play multiple files in one command continuously in a single window :)
[19:55:48 CET] <JEEB> lezsakdomi: -movflags dash+negative_cts_offsets+delay_moov
[19:55:49 CET] <lezsakdomi> kepstin: Thanks, but unfortunately I have the raw mp4 data. I can manipulate it if I need to but I'd like to avoid that.
[19:56:26 CET] <kepstin> you don't have to manipulate anything? just put it in separate files on disk and play them
[19:56:27 CET] <lezsakdomi> hmm thanks I'll take a look both on mpv and those flags :)
[19:56:35 CET] <JEEB> the dash flag gives you fragmentation, empty moov, default base moof
[19:56:42 CET] <JEEB> and the rest are extra
[19:57:00 CET] <JEEB> like delay moov needed for various formats to get a proper moov written with fragmentation
[19:57:17 CET] <JEEB> and negative cts offsets just to get edit lists out
[20:01:38 CET] <klongwood3> c_14 i need stats of a stream. I mentioned this issue yesterday of trying to have a method to keep track of audio fram number, but apprently that was not a recommended approach. I am attempting to look at pts of the frames, but even doesnt seem consistent from the "sender" and "receiver"
[20:06:52 CET] <lezsakdomi> I belive I have the latest ffmpeg (4.2.1), but it says "Option movflags not found." :(
[20:06:57 CET] <lezsakdomi> Is it possible?
[20:07:33 CET] <lezsakdomi> I used the command `ffmpeg -movflags dash+negative_cts_offsets+delay_moov -i -`
[20:07:42 CET] <lezsakdomi> Or do I do it wrong?
[20:07:54 CET] <kepstin> lezsakdomi: it's an output option, not input
[20:08:10 CET] <lezsakdomi> oh hmm
[20:08:12 CET] <lezsakdomi> thanks
[20:09:03 CET] <kepstin> you can't pipe multiple individual mp4 files into ffmpeg without pre-processing them to make them fragmented.
[20:09:27 CET] <kepstin> but if you have multiple invidual mp4 files already, just play them with mpv, don't bother with anything else...
[21:08:37 CET] <Zusor> I'm trying to add add text to a downloaded twitch clip using ffmpeg-python. This is the command it generated which doesn't work. The original video does have audio but it doesn't find it. Here's the command https://pastebin.com/fPwF1Gbx
[22:01:58 CET] <ncouloute> Trying to understand the stream and exact_stream_id concat demuxer directives. I'm trying to specify which streams to use for video and audio. Not sure I have the syntax down. It seems every time I use the word stream it adds another stream so need to only declare it once? I either get a single audio stream or a error message.
[22:14:58 CET] <ncouloute> I got it now... I had the stream id wrong. Doesnt look I know where to get the stream ID exactly. Where it should be ffmpeg has the word (und). Media Info was able to get me the info.. Has to be a way to get it with the ff tools. =/
[22:32:21 CET] <ncouloute> only thing I can think of is that if the stream_id is not defined it just index them with a 1-based index. Although idk if thats true it fits the pattern so far.
[00:00:00 CET] --- Thu Dec 12 2019
1
0