Ffmpeg-devel-irc
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
November 2019
- 1 participants
- 60 discussions
[00:06:31 CET] <cone-922> ffmpeg 03Andreas Rheinhardt 07master:ff5c8e57e756: avformat/vividas: Avoid allocation of AVIOContext
[00:06:33 CET] <cone-922> ffmpeg 03Limin Wang 07master:c1ed00fd185e: avfilter/vf_yadif: rename config_props -> config_output, link -> outlink
[00:35:34 CET] <Illya> there's no reduce add instruction on x86 right? if you want SAD then something like psadw xmm0, xmm1; psadw xmm2, xmm3; paddw xmm0, xmm1; paddw xmm2, xmm3; paddw xmm0, xmm2; movhlps xmm1, xmm2; paddw xmm0, xmm1; movd eax, xmm0
[02:23:43 CET] <iive> Illya, I think there is instruction that does this directly check if psadbw is the one.
[02:24:45 CET] <iive> though it is byte. it looks like you want to work with words
[03:08:25 CET] <Gramner> psadbw to sum 8 bytes horizontally as pointed out already, pmaddwd to sum 2 words to a dword horizontally. aside from that you're indeed stuck with shuffle, add, repeat
[03:11:59 CET] <cone-859> ffmpeg 03Jun Zhao 07master:d96558902277: lavf/vividas: check avformat_new_stream() return
[03:11:59 CET] <cone-859> ffmpeg 03Jun Zhao 07master:2952d9c5dce4: lavc/mvha: Check init_get_bits8() for failure
[03:24:06 CET] <Illya> thanks for the info, just trying to do some really basic simd
[10:55:41 CET] <j-b> hello
[10:57:17 CET] <stevenliu> Hi
[10:59:03 CET] <JEEB> arr
[11:00:20 CET] Action: JEEB will attempt to review the MPEG-H thing this week-end, was able to find a free final draft of MPEG-H in ISOBMFF last week or so
[11:01:16 CET] <JEEB> although I'm not 100% liking adding demuxing before we have a decoder :P
[11:01:34 CET] <JEEB> because it means that people will utilize SomethingElse for that part
[11:02:01 CET] <JEEB> *MPEG-H Audio
[11:07:17 CET] <nevcairiel> feel free to submit a decoder by monday :d
[11:07:23 CET] <JEEB> yea, nah :V
[11:08:55 CET] <JEEB> anyways, have a few things I need to finish up / post
[11:08:57 CET] <JEEB> :s
[11:15:54 CET] <Lynne> is the channel count in 3d audio fixed or can it change?
[11:30:36 CET] <JEEB> Lynne: I think they changed the ISOBMFF mapping to have less single extradata due to that
[11:30:50 CET] <JEEB> the initial mapping had the decoder config in a box, but now they just say it's in-band
[11:43:25 CET] <Lynne> actually, they kind of need arbitary number of streams, don't they?
[11:44:17 CET] <Lynne> so how would that work? lavf would create one stream for each element, with its own side data to signal how to compose it
[11:45:11 CET] <JEEB> I would have expected arbitrary number of channels rather than streams? but I have no idea how the ambisonics API would work :P
[11:45:20 CET] <JEEB> I've only seen it in elenril/koda's WIP repo
[11:45:32 CET] <JEEB> and even then only knowing of its existence, not how it works
[11:50:58 CET] <nevcairiel> there will definitely need some API extensions for proper 3D support, nevermind that someone needs to make a mixer to actually be able to play it :p
[11:53:52 CET] <JEEB> yes
[11:56:38 CET] <Lynne> JEEB: codecs don't generally support arbitrary number of channels
[11:59:11 CET] <Lynne> aac could support 48 channels with a weird pce but you'll definitely need side data to make sense of the channel mapping
[17:31:08 CET] <cone-161> ffmpeg 03Paul B Mahol 07master:3a61297a672e: avfilter/vf_hqdn3d: add support for 12bit and 14bit yuv formats
[17:31:09 CET] <cone-161> ffmpeg 03Paul B Mahol 07master:8c2f81a17a21: avfilter/vf_hqdn3d: add support for commands
[20:01:10 CET] <cone-161> ffmpeg 03Andreas Rheinhardt 07master:2205fb281074: avformat/avio: Use ffurl_closep
[20:01:11 CET] <cone-161> ffmpeg 03Zhao Zhili 07master:19956d01ccf1: libavdevice/lavfi: check avfilter_graph_dump return value
[22:25:53 CET] <cone-161> ffmpeg 03James Almer 07master:de557eb19156: fate/lavf-container: add an AV1 mp4 remux test
[22:25:54 CET] <cone-161> ffmpeg 03James Almer 07master:13ed24359400: fate/lavf-container: add an H264 mp4 remux test
[23:01:33 CET] <cone-161> ffmpeg 03James Almer 07master:378065f08fbc: avcodec/av1_parser: export stream dimensions in avctx
[23:01:34 CET] <cone-161> ffmpeg 03James Almer 07master:0d67af34c2b2: fate/demux: add an AV1 Annex B test
[00:00:00 CET] --- Sat Nov 30 2019
1
0
[00:19:13 CET] <BeerLover> What is wrong with: ffmpeg -y -i song.mp3 -c:a libfdk_aac -vn -b:a:0 32k -profile:a aac_he tmp/song_32k.mp3 -b:a:0 128k tmp/song_128k.mp3 ?
[00:19:22 CET] <BeerLover> Invalid audio stream. Exactly one MP3 audio stream is required.
[00:19:50 CET] <BtbN> an .mp3 file can hold exactly mp3, nothing else.
[00:20:28 CET] <Hello71> seems pretty straightforward to me
[00:21:31 CET] <Hello71> hm... I wonder if you can do -c aac x.wav
[00:22:17 CET] <Hello71> yeah, works fine
[00:22:26 CET] <furq> except you can't decode it
[00:23:23 CET] <Hello71> hm.
[00:23:27 CET] <Hello71> that does appear to be an issue
[00:23:48 CET] <Hello71> avi works fine. I thought it was the same as wav
[00:24:15 CET] <furq> they're both based on riff but they're not the same
[00:24:32 CET] <DHE> yeah for AAC maybe you want an m4a instead?
[00:24:34 CET] <Hello71> seems unnecessarily confusing
[00:24:51 CET] <furq> it's a shame you weren't working at microsoft in 1991
[00:24:55 CET] <furq> you could have saved us all a lot of bother
[00:25:08 CET] <furq> that sounds like sarcasm but it is very sincere
[00:27:39 CET] <Hello71> maybe tell them to use UTF-8 while I'm there? heh
[00:29:07 CET] <DHE> did it exist back then?
[00:29:16 CET] <DHE> NT had some unicode but...
[00:30:39 CET] <furq> 92 apparently
[00:43:00 CET] <Hello71> my point is that UTF-16 sucks
[00:53:05 CET] <furq> yes it does
[00:53:52 CET] <furq> almost as badly as UCS-2
[12:11:56 CET] <rocktop> I concatenate two mp4 videos into one with ffmpeg concat but audio out of sync , how can I resolve this issue ?
[12:19:40 CET] <AiNA_TE> do both files have identical encoding settings
[12:19:47 CET] <AiNA_TE> what is the audio codec?
[12:19:59 CET] <rocktop> AiNA_TE: I don't know how can I chack ?
[12:20:03 CET] <rocktop> check*
[12:20:03 CET] <AiNA_TE> media info
[12:20:40 CET] <pink_mist> ffprobe, surely
[12:21:07 CET] <AiNA_TE> ffprobe works too if you want
[12:21:28 CET] <pink_mist> I mean, considering this is #ffmpeg, ffprobe seems more apropos
[12:21:42 CET] <AiNA_TE> im not a fan :P
[12:21:51 CET] <AiNA_TE> media info lays out the information better
[12:31:52 CET] <rocktop> AiNA_TE: https://bpaste.net/show/4GD6K
[12:33:27 CET] <rocktop> the only difference between both input stream audio is the first one is with 44100 Hz and second is with 48000 Hz
[13:05:26 CET] <oto313> Hi, I am building ffmpeg from source. After build I would like to install libavfilter/rtsp.h to installation folder. Is this possible?
[13:17:08 CET] <AiNA_TE> rocktop_ i would demux both audio tracks to wav
[13:17:32 CET] <AiNA_TE> ffmpeg -v quiet -stats -drc_scale 0 -y -i %input% -ac 2 -y audio1.wav
[13:17:46 CET] <AiNA_TE> then encode both files to aac, then cat them
[13:18:05 CET] <AiNA_TE> also cat the videos on their own, and then mux them back together
[13:20:45 CET] <AiNA_TE> bleh your videos have diffrent pixel formats also
[13:21:16 CET] <AiNA_TE> yuvj420p and yuv420p
[13:22:15 CET] <AiNA_TE> best to just encode both videos adding "-pix_fmt yuv420p" to your encode line
[13:23:04 CET] <AiNA_TE> ffmpeg -i video1.mp4 -vcodec libx264 -pix_fmt yuv420p -acodec aac out1.mkv
[13:23:11 CET] <AiNA_TE> ffmpeg -i video2.mp4 -vcodec libx264 -pix_fmt yuv420p -acodec aac out2.mkv
[13:23:23 CET] <AiNA_TE> then just cat out1.mkv and out2.mkv
[13:34:05 CET] <BtbN> oto313, that's not a public header, it won't get installed and you cannot use it from outside of libavfilter.
[13:36:25 CET] <oto313> I am writing application which consume rtsp stream. Can I somehow send RTSP commands like SET_PARAMETER?
[14:44:50 CET] <funnybunny2> What are planar and non-planar audio sample formats?
[14:45:09 CET] <funnybunny2> I guess non-planar is "packed"
[14:45:31 CET] <funnybunny2> (Trying to understand av_get_sample_fmt)
[14:47:36 CET] <funnybunny2> I guess planar means each audio channel's sample data is contiguous, and packed/non-planar means the sample data for each channel is interleaved
[14:48:14 CET] <funnybunny2> Please confirm!
[15:06:38 CET] <DHE> planar means that 6-channel audio (5.1 and all that) will have 6 discrete arrays in the AVFrame, one for each channel. and similar for other numbers of channel
[15:07:10 CET] <funnybunny2> DHE: Thanks
[15:07:28 CET] <funnybunny2> Is this the right channel for users of the ffmpeg API?
[15:07:33 CET] <funnybunny2> Or should I go to #ffmpeg-devel?
[15:07:58 CET] <DHE> ffmpeg-devel is for patches to ffmpeg itself. this channel is fine for user API use
[15:08:02 CET] <funnybunny2> OK
[15:09:09 CET] <funnybunny2> I think https://www.ffmpeg.org/doxygen/trunk/group__lavc__core.html#ga11f785a188d7d… should be updated to indicate that avcodec_open2 returns an AVERROR. I looked at the source code and it seems to be always returning AVERRORs. It's ambiguous whether it might not return one, but some arbitrary negative value instead.
[15:09:53 CET] <funnybunny2> Most functions say "returns a negative AVERROR". This one just says "Returns zero on success, a negative value on error"
[15:10:18 CET] <DHE> you can always look up the function av_strerror() to convert an error to a string
[15:12:20 CET] <funnybunny2> DHE: I am using av_make_error_string. I think av_strerror is used to get a description of the AVERROR. It's sort of vague how they're different, but I think av_make_error_string is supposed to be human-readable
[15:12:57 CET] <funnybunny2> My point is that for avcodec_open2, it's not clear from the documentation whether it returns an AVERROR, so it's not clear you use either of these functions with the return value
[15:13:25 CET] <funnybunny2> But from skimming the source of avcodec_open2, it seems to always return an AVERROR
[15:14:59 CET] <DHE> that's just the ffmpeg standard for returning errors. errno codes are sometimes used but they're not always descriptive enough
[15:16:00 CET] <funnybunny2> DHE: I just looked at the source, and av_make_error_string literally just returns av_strerror. How stupid. I guess it's for legacy purposes
[15:17:22 CET] <funnybunny2> Line 109: https://www.ffmpeg.org/doxygen/trunk/error_8h_source.html
[16:48:54 CET] <funnybunny2> Can someone give an example of when avcodec_receive_frame would return AVERROR(EAGAIN)? I'm trying to determine whether I can recover, or if I should just exit the program.
[16:49:58 CET] <funnybunny2> Or in a bigger piece of software, give up on playing the audio file
[17:13:36 CET] <Trieste> Hi, which one of the scaling algorithms would be best if I'm trying to downscale text while keeping it as sharp/legible as possible? :)
[17:27:27 CET] <Blacker47> Trieste, you can cut a small part of a video, like 10 seconds, and then try all of the algos like that: https://paste.debian.net/hidden/1c204aa0/
[17:28:39 CET] <Blacker47> Trieste, i assume bicubic or bilinear would be ok/best.
[17:29:20 CET] <Trieste> hah, did not consider that, thanks Blacker47
[17:30:26 CET] <kepstin> also try 'area' which can give good results retaining sharpness while downscaling
[17:31:35 CET] <kepstin> how much are you downscaling by?
[17:31:46 CET] <kepstin> and how big is the text? :)
[18:05:14 CET] <DHE> funnybunny2: just because you ran avcodec_send_packet() doesn't mean that avcodec_receive_frame will return a frame immediately. out-of-order decoding (B-frames) is a thing
[20:13:19 CET] <igssl> https://pastebin.com/wvVEEsAi < any clue what i did wrong? trying to convert a series of "0000"-named gifs into webms
[20:13:56 CET] <nicolas17> I don't think you can do batch conversion like that
[20:14:16 CET] <nicolas17> it will take each gif as a frame of the single output video
[20:14:47 CET] <igssl> ... there is no way to batch convert gifs in ffmpeg?
[20:15:13 CET] <nicolas17> use a script around it to run ffmpeg multiple times
[20:15:19 CET] <igssl> amazing
[20:15:21 CET] <nicolas17> oh you're on Windows... good luck
[20:40:06 CET] <pink_mist> can't he use ffmpeg to convert the gifs into single-frame images, and then take all those and make them into a webm
[20:40:43 CET] <nicolas17> pink_mist: I think he wants to convert *each* animated gif into a webm
[20:40:50 CET] <nicolas17> n gifs into n webms
[20:41:08 CET] <pink_mist> ohh
[20:41:32 CET] <pink_mist> right, then a small shellscript is the ticket
[00:00:00 CET] --- Sat Nov 30 2019
1
0
[00:00:41 CET] <cone-545> ffmpeg 03Paul B Mahol 07master:61dc7add3020: avcodec: add mvdv video decoder
[00:00:41 CET] <cone-545> ffmpeg 03Paul B Mahol 07master:ed58f8475fa8: avcodec: add mvha video decoder
[01:47:38 CET] <montana> i am looking for ffmpeg binary with rav1e support
[11:23:19 CET] <j-b> Hello
[11:24:07 CET] <durandal_1707> bye
[11:25:24 CET] <stevenliu> ouhayo, minasang
[12:15:10 CET] <durandal_1707> https://pastebin.com/aZ8Y2KU9 is this basically doing word swap within dword?
[12:20:09 CET] <jdarnley> I assume you want to avoid pshufb
[12:22:02 CET] <durandal_1707> jdarnley: this is code i'm REing, so i give shit how it is efficient, i just want to know what it does
[12:22:13 CET] <jdarnley> okay then
[12:23:55 CET] <jdarnley> 0x1b is q0123
[12:24:58 CET] <kurosu> in any case, just write some kind of vector containing eg 1 2 - 15, feed it into this code, and watch the result
[12:25:13 CET] <kurosu> probably faster than wrapping your head around it, albeit at the cost of your pride
[12:25:41 CET] <durandal_1707> kurosu: i cant write asm
[12:25:50 CET] <kurosu> you do :p
[12:26:10 CET] <kurosu> but I'm about to leave so can't help
[12:26:40 CET] <jdarnley> So it reverses the words in L and H
[12:26:48 CET] <jdarnley> those words are unpacked bytes
[12:27:01 CET] <jdarnley> does the same operation on all data
[12:27:04 CET] <jdarnley> packs again
[12:27:16 CET] <jdarnley> so yes, a packed bswap
[12:27:42 CET] <jdarnley> not a word swap
[12:28:03 CET] <jdarnley> but just to be sure I will write the test
[12:31:13 CET] <durandal_1707> radare2 is far from complete, dca gives TODO, i cant track functions this way
[13:01:27 CET] <jdarnley> $ ./a.out
[13:01:27 CET] <jdarnley> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
[13:01:27 CET] <jdarnley> 4 3 2 1 8 7 6 5 12 11 10 9 16 15 14 13
[13:01:32 CET] <jdarnley> durandal_1707 ^
[13:21:25 CET] <durandal_1707> switching endianess
[14:24:32 CET] <cone-620> ffmpeg 03Thierry Foucu 07master:eaf566ce0b9f: Add options for spatial layers.
[14:39:21 CET] <durandal_1707> https://0x0.st/zI01.c do we have this IDCT?
[14:48:33 CET] <durandal_1707> this cyclomatic complexity of ghidra should value SIMD instructions higher if it values it at all, here i get value of 10 for idct8
[14:57:58 CET] <durandal_1707> REing C++ classes is not fun, existing tools cant recover everything
[15:02:18 CET] <Lynne> durandal_1707: is that a float idct?
[15:02:31 CET] <Lynne> oh they clamp to ints
[15:04:30 CET] <Lynne> just looks like a standard 8-point, the mpeg2 one should work I think, or the jpeg one
[15:06:14 CET] <durandal_1707> Lynne: they have few variants to decode to different lowres
[15:06:55 CET] <durandal_1707> Lynne: this is from opencl obfuscated strings, same is used by CPU library
[15:07:23 CET] <durandal_1707> still can not find code that unpacks bitstream to dct coefficients
[15:07:36 CET] <Lynne> still looks like a standard dct which internally uses split-radix (hence the 4,2,2 for loops)
[15:07:51 CET] <Lynne> *split-radix fft
[16:38:25 CET] <cone-620> ffmpeg 03Zhong Li 07master:846e26b8c93a: lavc/rav1e: log and doc updated for const quantizer mode
[16:38:26 CET] <cone-620> ffmpeg 03Zhong Li 07master:1b831bc72975: doc/encoder: add the missing qsv encoders
[16:38:27 CET] <cone-620> ffmpeg 03Linjie Fu 07master:df625057af9b: lavc/qsvenc: Fix some code indentations
[18:50:55 CET] <cone-620> ffmpeg 03Limin Wang 07master:3a6ec10d904f: avfilter/vf_colorconstancy: av_frame_free(&in) in case of error or direct flag is false
[18:50:56 CET] <cone-620> ffmpeg 03Zhao Zhili 07master:ed5cdf3d5a7e: avcodec/vp8: fix multiple ff_thread_finish_setup() calls
[18:50:57 CET] <cone-620> ffmpeg 03Andreas Rheinhardt 07master:df912bbc5f9c: avformat/flacenc: Add const to ff_flac_write_header() parameter
[18:50:58 CET] <cone-620> ffmpeg 03Limin Wang 07master:8aa143eaa89c: avfilter/vf_libvmaf: Check for av_frame_alloc failure
[19:23:27 CET] <cone-620> ffmpeg 03Andreas Rheinhardt 07master:163bb9ac0af4: avformat/aviobuf: Avoid allocating buffer when using dynamic buffer
[19:23:28 CET] <cone-620> ffmpeg 03Andreas Rheinhardt 07master:67ce9e0463e1: avformat/apetag: Avoid allocation for small tags
[19:23:29 CET] <cone-620> ffmpeg 03Andreas Rheinhardt 07master:a31f68fb449e: avformat/av1: Avoid allocation for small headers
[19:23:30 CET] <cone-620> ffmpeg 03Andreas Rheinhardt 07master:c36a3df67692: avformat/avc: Avoid allocation for small SPS/PPS arrays
[19:23:31 CET] <cone-620> ffmpeg 03Andreas Rheinhardt 07master:aad82270b60a: avformat/id3v2enc: Avoid allocation for small tags
[19:23:32 CET] <cone-620> ffmpeg 03Andreas Rheinhardt 07master:3a58ec7c7725: avformat/matroskaenc: Avoid allocation for small dynamic buffers
[19:23:33 CET] <cone-620> ffmpeg 03Andreas Rheinhardt 07master:4d97b2ad2fa6: avformat/movenc: Avoid allocation for small dynamic buffers
[19:23:34 CET] <cone-620> ffmpeg 03James Almer 07master:16fa513392ad: avformat/avc: write the missing bits in the AVC Decoder Configuration Box
[00:00:00 CET] --- Fri Nov 29 2019
1
0
[01:23:06 CET] <montana> i am looking for ffmpeg binary with rav1e support
[06:01:29 CET] <montana> what does -b:v 0 do
[06:09:13 CET] <while> Hi, I am trying to get a higher framerate with ffmpeg rawvideo and bmp encoding
[06:09:31 CET] <montana> while what command are you using now
[06:10:55 CET] <while> ffmpeg -y -threads 0 -video_size 800x600 -f x11grab -i :2 -f pulse -ac 2 -i default -vcodec bmp -threads 0 -loglevel verbose -s 800x600 -pix_fmt rgb8 -strict -2 -acodec pcm_s16le -threads 0 -ar 44100 -ac 1 -q:a 32 -f mpegts -movflags faststart -tune zerolatency "udp://224.0.0.1:30000"
[06:11:59 CET] <while> if I use mpeg2video or libx264 vcodec, it seems to work at the native frame rate (30 fps)
[06:12:15 CET] <montana> and what fps do you want
[06:12:18 CET] <while> 30
[06:12:31 CET] <montana> and what fps are you getting
[06:12:38 CET] <while> about 4
[06:12:43 CET] <montana> i see
[06:15:59 CET] <furq> bmp and rawvideo aren't supported in mpegts anyway
[06:16:35 CET] <while> strangely, at least the ffmpeg from the debian repositories, seems to behave as though it is
[06:16:43 CET] <furq> yeah the muxer accepts almost anything
[06:16:51 CET] <furq> but you won't be able to demux it with anything that uses ffmpeg
[06:16:55 CET] <furq> and probably not with anything else either
[06:17:08 CET] <while> I was able to udp multicast said mpegts stream, and create GIFs from it
[06:17:37 CET] <furq> but yeah pal8 800x600 rawvideo will be about 12MB/s
[06:17:47 CET] <furq> so at a guess you're bandwidth limited
[06:18:37 CET] <furq> or 14 at 30fps, rather
[06:19:18 CET] <while> would a localhost multicast address alleviate any bandwidth issues?
[06:19:44 CET] <furq> actually nvm i didn't notice it was multicast
[06:19:47 CET] <while> and I think I tried writing to a file redirected to /dev/null, and it didn't help
[06:19:52 CET] <furq> that shouldn't be an issue then
[06:19:55 CET] <while> the cpu is also not maxed out
[06:21:22 CET] <while> what could ffmpeg be waiting on?
[06:21:26 CET] <furq> shrug
[06:21:44 CET] <furq> i get 60fps writing 800x600 bmp in mpegts to multicast
[06:22:00 CET] <furq> if x264 runs at 30fps then you're not cpu bottlenecked
[06:22:08 CET] <while> what commands did you setup the multicast address with?
[06:22:16 CET] <while> and did you use my same command?
[06:22:18 CET] <furq> ffmpeg -f lavfi -i testsrc=s=800x600:d=60 -c:v bmp -pix_fmt rgb8 -f mpegts udp://224.0.0.1:3000
[06:23:01 CET] <while> I get 18 fps with that
[06:23:23 CET] <furq> what cpu
[06:24:05 CET] <while> Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
[06:24:07 CET] <while> from lscpu
[06:24:32 CET] <furq> yeah i'm only running this on a ryzen 2600 at stock
[06:24:36 CET] <furq> so it shouldn't be that much faster
[06:29:41 CET] <while> I found that with your supplied example, making sure I am multicasting on the loopback device results in getting 100 fps from your example
[06:30:55 CET] <furq> yeah i just tried it on debian and multicast is way slower than null output
[06:31:02 CET] <furq> so i guess it's some kind of multicast throughput issue
[06:31:10 CET] <furq> which would also explain why it was fine with x264, since that's much less bandwidth
[06:31:58 CET] <furq> i have literally no experience with multicast though
[06:32:04 CET] <while> although now my command still has under 10 fps, and 31kbit/s, but your example provided over 100mbit/s, and 100 fps
[06:33:02 CET] <while> how are you doing null output? a symlink to /dev/null is still very slow for me
[06:33:09 CET] <furq> -f null -
[06:41:25 CET] <while> I found running stdout to /dev/null provides my desired 30 fps
[06:41:41 CET] <while> and through a udp multicasting netcat command, I can get 22 fps
[06:42:33 CET] <furq> you don't need to redirect stdout with -f null, it doesn't output anything
[06:42:50 CET] <while> I of course removed that part
[06:43:20 CET] <furq> it would be the same speed either way
[06:43:31 CET] <furq> since we already know the mpegts muxer isn't the bottleneck
[06:46:10 CET] <while> its stuff like this that makes me wonder if there gigabit ethernet 'really' can get a gigabit with the stock hardware you can buy online that claims to
[06:50:08 CET] <furq> fwiw i was getting 60fps on windows on the same box
[06:50:21 CET] <furq> so at a guess it's some kind of os udp buffer thing
[07:00:31 CET] <while> maybe I can multicast with raw sockets to undercut that problem
[10:14:24 CET] <lofo> Hey, any idea to monitor an udp stream i create with ffmpeg ?
[10:15:06 CET] <lofo> audio is laggy, and video almost a black screen with glitchy stuff on the upper left corner
[10:17:04 CET] <cehoyos> Please provide the command line you tested together with its complete, uncut console output.
[10:17:18 CET] <cehoyos> Problems with udp are not unusual, the way you describe them sound unusual
[10:21:35 CET] <lofo> I haven't used ffmpeg directly yet. I used OBS which uses FFmpeg
[10:21:43 CET] <lofo> but im about to try in command line
[11:09:27 CET] <lofo> Here is the command : ffmpeg -re -i output.ts -c copy -f mpegts udp://224.0.0.1:8081
[11:09:41 CET] <lofo> here is the output : https://pastebin.com/bB2YcbMz
[11:10:58 CET] <lofo> could the fact that i use a multicast address be the problem ?
[11:13:35 CET] <cehoyos> Your ffmpeg version is old. Do you see the same A/V desync if you remux to a local file?
[11:17:03 CET] <lofo> wait i got to figure out the command line for that (not fluent yet)
[11:17:21 CET] <cehoyos> Replace "udp..." with "out.ts"
[11:18:56 CET] <lofo> oh thanks. The video is the same after remuxing
[11:19:06 CET] <lofo> no desync
[11:22:42 CET] <lofo> I wonder how to figure out if its my stream emitter, my router or my stream receiver that is causing the issue
[12:36:13 CET] <th3_v0ice> lofo: Maybe your circular buffer is too small. Try increasing it and test again. "udp://224.0.0.1:8081?overrun_nonfatal=1&fifo_size=50000000"
[13:36:56 CET] <igssl> anyone know how to export a specific timeframe into a series of images? i can only find links discussing the opposite (encoding image sequences into video)
[13:41:49 CET] <hero100> igssl: ffmpeg -i foo.mp4 bar-%d.png
[13:54:08 CET] <igssl> hero100 o thx
[15:01:39 CET] <lofo> th3_v0ice, the command as you stated it doesnt seem to end on my machine
[15:01:45 CET] <lofo> never completes
[15:19:58 CET] <DHE> were you careful to escape the '&' so your shell didn't interpret it?
[15:41:48 CET] <Anderssen> Hi, I've noticed that the encoder mpeg2video has an option sc_threshold ("Scene change threshold"): is that what I think it is (i.e. ffmpeg inserts an i-frame automatically when the threshold is met)? Also, is there a way to force this on other encoders, even if the option is not listed under "ffmpeg -h encoder=..."?
[15:42:34 CET] <igssl> https://pastebin.com/ctBM09dU < wot did i do wrong
[15:50:54 CET] <DHE> Anderssen: libx264 has an internal "scenecut" option
[15:51:30 CET] <DHE> igssl: windows doesn't support wildcard syntax due to the OS not offering a glob() function
[15:51:54 CET] <DHE> even if it did, you have to add "-pattern_type glob" to the commandline
[15:52:19 CET] <igssl> i need to list every filename in quotes, then?
[15:52:30 CET] <igssl> or can i just put it in a folder and direct ffmpeg to that somehow
[15:52:55 CET] <DHE> the preferred style is to rename them to "0001.tif", "0002.tif", ... and then use the pattern "%04d.tif" as the filename
[15:53:03 CET] <DHE> correction, start at 0
[15:53:18 CET] <igssl> oh ok
[16:02:29 CET] <lofo> DHE, indeed i didnt escaped it :/
[16:02:50 CET] <lofo> tried it. command completed. But result was comparable
[16:05:35 CET] <DHE> lofo: if you want to transmit a .ts video via multicast, I recommend tsplay, a standalone application that does just that
[16:06:36 CET] <lofo> i do not care about multicast specifically, but the tutorials i was following where using it. I am not aware of the implications of using a multicast address
[16:06:58 CET] <lofo> i want to stream to a single device actually
[16:08:15 CET] <DHE> gotta be careful with streaming over UDP. the bursty nature of the traffic and lack of controls like TCP provides means that packet loss can happen even on a local LAN
[16:08:43 CET] <DHE> tsplay, and when configured correctly ffmpeg, will pace their packet and explicitly delay, say, 2 milliseconds between packets or whatever is appropriate to the bandwidth needs
[16:11:41 CET] <taliho> DHE: lofo: FYI instead of TCP you could use zmq
[16:11:42 CET] <taliho> https://ffmpeg.org/ffmpeg-all.html#zmq
[16:12:18 CET] <DHE> sadly my tv box isn't going to support that
[16:12:30 CET] <DHE> nor does my other-the-air capture box
[16:12:42 CET] <taliho> ah ok :)
[16:25:16 CET] <lofo> i'm gonna investigate what you said DHE and taliho.
[16:25:57 CET] <lofo> What protocol would you recommend me to try as an alternative then ?
[16:26:07 CET] <lofo> a TCP based protocol ?
[16:26:54 CET] <lofo> My final objective is to stream my PC screen session to a VLC running on my phone (or any other tool that reads streams)
[16:26:56 CET] <DHE> what's receiving the stream?
[16:27:12 CET] <DHE> then probably tcp in listen mode
[16:27:30 CET] <lofo> vanilla tcp ? no video-specific protocol ?
[16:27:55 CET] <DHE> -f mpegts takes care of the rest of it
[16:28:42 CET] <lofo> what do you mean by that ? (i'm trying to get the deepest understanding of whats going on)
[16:29:30 CET] <DHE> mpegts over tcp will suffice
[16:30:04 CET] <lofo> ok. gonna try that. Thank you DHE
[16:31:10 CET] <DHE> on the ffmpeg side, tcp://0.0.0.0:12345?listen=1 # I think.... then on the client side: tcp://192.168.1.23:12345 (where 192.168.1.23 is the IP of the ffmpeg server)
[16:31:31 CET] <DHE> I haven't tried this, but I think that's right
[16:32:02 CET] <lofo> ok ok.
[16:43:31 CET] <lofo> damn it worked :D
[16:43:56 CET] <lofo> gotta try with a live feed of my screen now
[16:46:45 CET] <rocktop> Hello, how can I merge two videos ( video1.mp4 and video2.mp4) into one video2.mp4 play after video1.mp4?
[16:46:58 CET] <rocktop> I am not able to achieve this
[16:53:01 CET] <friendofafriend> rocktop: Tried concat? ffmpeg -i "concat:video1.mp4|video2.mp4" -c copy output.mp4
[16:53:26 CET] <furq> that doesn't work with mp4
[16:53:46 CET] <furq> https://www.ffmpeg.org/ffmpeg-formats.html#concat-1
[16:53:48 CET] <furq> this does
[17:11:41 CET] <rocktop> friendofafriend: I already use this but I don't know why doesn't ork
[17:11:51 CET] <rocktop> it use onle the first video
[17:12:06 CET] <rocktop> with no error in output
[17:19:40 CET] <rocktop> anyidea ?
[17:24:16 CET] <friendofafriend> rocktop: furq's link is right. https://www.ffmpeg.org/ffmpeg-formats.html#concat-1
[17:35:40 CET] <rocktop> friendofafriend: I think it is ok now but when I concat this Two video how can I make input audio stream for the second video fade in ?
[17:37:24 CET] <friendofafriend> rocktop: The afade filter.
[17:39:45 CET] <rocktop> friendofafriend: how can I use it here : ffmpeg -f concat -i file.txt -c copy output.mp4
[17:42:23 CET] <rocktop> anyidea please ?
[17:51:30 CET] <friendofafriend> rocktop: Do you want the audio from the first video to fade out? Are you just trying to crossfade?
[17:52:46 CET] <rocktop> how can I use afade filter for the second input stream here : ffmpeg -f concat -i file.txt -c copy output.mp4
[17:53:08 CET] <rocktop> friendofafriend: no just fade in the second
[17:53:20 CET] <rocktop> audio
[17:53:36 CET] <rocktop> audio and video if it possible
[17:54:07 CET] <rocktop> if crossfade possible also will work for me
[18:07:02 CET] <friendofafriend> rocktop: There's an example on StackExchange. You'd have to know the duration of the first video in seconds. https://video.stackexchange.com/questions/19867/how-to-fade-in-out-a-video-…
[18:08:26 CET] <rocktop> friendofafriend: Ok thanks
[18:16:05 CET] <hyperisco> I am trying to convert a single png into a 10 second video. I just want the video to be the static image. How can I do that?
[18:16:15 CET] <hyperisco> I have tried ffmpeg -loop 1 -i background_hr_0d6dab.png -c:v mjpeg -q:v 2 -pix_fmt yuvj444p -r 1/5 -t 10 i1.avi
[18:16:36 CET] <hyperisco> This generates 2 frames, which makes the windows media player happy (1 frame it will not play)
[18:16:40 CET] <hyperisco> But on other video players it does not play
[18:16:48 CET] <hyperisco> I tried more frames and it still won't play
[18:16:54 CET] <hyperisco> I tried ffmpeg -loop 1 -i background_hr_0d6dab.png -c:v libx264 -profile:v high444 -crf 0 -framerate 30 -t 10 i1.mp4
[18:17:23 CET] <hyperisco> This will play in VLC but not other players I've tried
[18:18:46 CET] <stealthii> hi! I'm trying to replace rgb (with a solid color), but preserve alpha in a video file. I can overlay to do this, but overlay doesn't preserve alpha from the first input.
[18:18:51 CET] <stealthii> ffmpeg -i <video_with_alpha>.mov -i <rgb24pngsolid>.png -filter_complex "[0:v][1:v]overlay" output.webm
[18:34:59 CET] <stealthii> I found a solution! taking the alpha from the video, and applying it to a "video" of the solid color png.
[18:35:04 CET] <stealthii> ffmpeg -loop 1 -i solid.png -i vidwithalpha.mov -filter_complex "[1]alphaextract[a];[0][a]alphamerge" -c:v qtrle output.mov
[18:35:38 CET] <Hello71> qtrle?
[18:36:22 CET] <stealthii> it's the Apple QuickTime RLE. there are other formats better for export that support alpha, this was just a test
[18:48:34 CET] <rocktop> I have the problem with audio when I use this : ffmpeg -y -f concat -safe 0 -i 240p/steam.txt -c copy output.mp4
[18:48:41 CET] <rocktop> is there anyway to resolve this issue ?
[18:52:09 CET] <rocktop> anyidea ?
[18:59:39 CET] <friendofafriend> rocktop: Are you still working on afade with concat?
[19:04:00 CET] <rocktop> friendofafriend: I am just trying to fix regular concat
[19:05:13 CET] <rocktop> but doesn't work , I see the audio for final video is playing with high speed
[19:05:30 CET] <rocktop> is not like original video
[19:05:32 CET] <rocktop> how can I fix this ?
[19:10:38 CET] <friendofafriend> rocktop: Do both videos have audio?
[19:10:55 CET] <rocktop> yes
[19:14:26 CET] <friendofafriend> rocktop: It would be helpful to see the output of an ffprobe -v verbose <filename> for each file in your concat list. Maybe to pastebin or http://paste.debian.org ?
[19:20:24 CET] <rocktop> friendofafriend: https://bpaste.net/show/5HG2S
[19:23:49 CET] <rocktop> friendofafriend: do you get it ?
[19:25:14 CET] <klaxa> your audio tracks have different sample rate, i think you have to re-encode audio
[19:25:25 CET] <klaxa> so it has the same sample rate
[19:26:03 CET] <klaxa> it shouldn't be a "big loss" audio encoding is fairly fast and quality can be set to something good enough
[23:46:44 CET] <friendofafriend> I want to grab one window with ffmpeg with x11grab (or anything else). Can it be done?
[23:47:05 CET] <lavalike> I haven't been able to figure this out: if I play a twitch stream in mpv on macOS (via youtube-dl) it goes fine, I go on windows, same machine, and the streams give out ffmpeg decoding errors talking about blocks, they break, I can't find anything close to that by searching, any idea what it could be?
[23:52:24 CET] <Hello71> friendofafriend: -s "$MON_WIDTH"x"$MON_HEIGHT" -i :0.0+"$MON_X","$MON_Y"
[00:00:00 CET] --- Fri Nov 29 2019
1
0
[00:04:47 CET] <cone-357> ffmpeg 03Carl Eugen Hoyos 07master:a2fbdc6898fc: lavc/qsvenc: Fix compilation for some build environments.
[11:37:58 CET] <Dmitri_Ovch> jamrial: "the avctx->refs check should probably be > 0 instead", i checked, in docs "AMF_VIDEO_ENCODER_MAX_NUM_REFRAMES 0..16 Maximum number of reference frames", 0 is also valid value. Default value for encoder is 1. in encoder defaults: { "refs", "-1" }. Looks like "avctx->refs != -1" is correct check.
[11:39:30 CET] <mkver> jamrial isn't online right now.
[11:48:16 CET] <Dmitri_Ovch> mkver:Thank you, not observed. Then I'll send that message again later.
[12:05:32 CET] <cone-432> ffmpeg 03Steven Liu 07master:afee801276d5: avformat/hls: correct grammatical errors of m3u8_hold_counters option
[19:33:19 CET] <j-b> If people needed an extra datapoint about intrinsics vs .S/.asm files: the patch on h_scale gets +34% in .S, while it was 15% in intrinsics :)
[19:42:32 CET] <ubitux> j-b: and it's not even its finale form :))
[19:43:04 CET] <j-b> ubitux: true :)
[19:44:42 CET] <durandal_1707> intrinsics rules, asm sucks
[19:47:49 CET] <j-b> stop trolling
[19:59:33 CET] <durandal_1707> j-b: or?
[20:04:35 CET] <j-b> durandal_1707: or I'll be pissed.
[20:18:40 CET] <durandal_1707> ubitux: gonna apply patches
[21:02:41 CET] <ubitux> durandal_1707: which ones?
[21:14:58 CET] <durandal_1707> ubitux: EVERYTHING
[21:15:26 CET] <durandal_1707> nlmeans
[21:15:43 CET] <durandal_1707> >8 bit
[21:16:28 CET] <ubitux> durandal_1707: do you mind waiting a few days?
[21:16:36 CET] <ubitux> i wasn't aware of these patches
[21:16:51 CET] <ubitux> do not hesitate to ping me on irc, i'm not following the ml these days
[21:30:11 CET] <durandal_1707> if intrinsic is so bad that why everybody still use it?
[21:30:25 CET] <BtbN> Because it's less of a hassle
[21:32:18 CET] <Lynne> everyone uses them because everyone else uses them
[21:32:59 CET] <BtbN> You don't have to deal with an extra tool in your build, you can use more familiar constructs to layout the code, ...
[21:33:45 CET] <JEEB> "you can just stick asm in the middle of C"
[21:33:47 CET] <JEEB> is the primary reason
[21:33:56 CET] <JEEB> s/asm/SIMD/
[21:38:00 CET] <nevcairiel> mostly "because its easier"
[21:56:13 CET] <ubitux> pure asm also usually involves a hassle wrt build, runtime integration, and takes some maturity on the available header helper to not mess up too much
[21:56:38 CET] <ubitux> but all of this have been adressed in ffmpeg for quite some time so there isn't much of a reason to stick with intrinsics
[21:57:20 CET] <ubitux> (also: "everyone does c++ and javascript" is not a good argument)
[21:58:29 CET] <ubitux> JEEB: yeah this is actually the only remaining drawback
[21:58:38 CET] <yzhu132> Hi, I'm looking into contributing in helping with FFmpeg. Preferably with optimization and/or code clean up with the arm/aarch64 build.
[22:00:05 CET] <yzhu132> Could anyone point me in a direction that needs some help?
[22:00:23 CET] <cehoyos> There are both arm and aarch64 asm optimizations, feel free to add more
[22:00:32 CET] <cehoyos> (Don't use intrinsics)
[22:04:23 CET] <yzhu132> Got it, because the compiler already optimizes for that
[22:11:25 CET] <jdarnley> huh
[22:11:59 CET] <jdarnley> we say don't use intrinsics because we prefer assembly
[22:18:54 CET] <durandal_1707> anybody know how to trace executed functions via debugger ? maybe with radare2 ?
[22:31:13 CET] <durandal_1707> braw apparently uses tiles, that's all what i know so far :(
[23:49:12 CET] <durandal_1707> i gonna push 0day code exploits!
[00:00:00 CET] --- Thu Nov 28 2019
1
0
[04:09:15 CET] <hamdan> Hi there... How's everybody going? I'm trying to process long files recorded as raw through chrome/webm... THey just output 60minutes... is there something that I'm missing? I'm not using the -t flag at all
[04:40:05 CET] <hamdan> anyone?
[06:03:47 CET] <julesverne> .bet 10%
[06:04:26 CET] <julesverne> sorry. wrong chat
[06:10:58 CET] <hamdan> all my hopes and dreams... lololol
[12:00:06 CET] <BeerLover> I compiled ffmpeg and it is running 3 time slower than https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz. But that build doesn't have libfdk_aac
[12:00:14 CET] <BeerLover> am i doing somethin wrong?
[12:01:24 CET] <JEEB> did you build with SIMD? did you use the same encoders etc?
[12:01:53 CET] <JEEB> fdk-aac missing shouldn't cause any significant difference; the audio encoders are fast to begin with
[12:06:58 CET] <BeerLover> JEEB https://github.com/zimbatm/ffmpeg-static/blob/master/build.sh
[12:07:04 CET] <BeerLover> this is the script i used
[12:07:16 CET] <BeerLover> I updated the ffmpeg to version n4.2.1
[12:08:08 CET] <BeerLover> on ubuntu 18.04 bionic x64_86
[12:09:04 CET] <JEEB> unfortunately not having time to help you more, sorry :)
[12:09:24 CET] <pagios> any better alternative than the arut rtmp nginx ffmpeg? something more decent?
[12:09:51 CET] <cehoyos> Why did you use a script instead of just using "./configure --enable-gpl --enable-nonfree --enable-libfdk... && make ffmpeg"?
[12:19:38 CET] <th3_v0ice> How can I change framerate of a video using FilterContext and API? My current attempts to set framerate to 18/1, and timebase to 1/18, before opening a filter are not working properly. The muxer is complaining about the non monotonically increasing PTS and DTS. If I incorporate ticks_per_frame into the account (because input it MP4) then its not complaining but the output framerate is the same
[12:19:38 CET] <th3_v0ice> as input. For this particular sequence ticks_per_frame is 2, so I set framerate to 36/2 and timebase to 1/36. What am I doing wrong?
[12:24:57 CET] <BeerLover> @cehoyos errors. Dunno what i need to compile. PKG_BUILD?
[12:29:54 CET] <cehoyos> FFmpeg tries to have no dependencies (except zlib which isn't always needed)
[12:32:03 CET] <bencoh> well, and x264 in case you'd like to encode to h264, and ... :)
[12:40:59 CET] <DHE> yeah, ffmpeg borderline requires only a compiler. everything else is optional, though at your own risk of not including it....
[12:41:12 CET] <Reinhilde> borderline ;-)
[12:43:49 CET] <BeerLover> but it always gives error
[15:02:19 CET] <Alexa> Hello there! I'm looking for a good method to convert a video to the one that's suitable for PS3.
[15:04:01 CET] <Alexa> ffmpeg -i "$1" -s 960x540 -f mp4 -vcodec libx264 -profile:v main -level 31 -preset veryslow -tune film -crf 22 -threads 0 -b 1152k -metadata title="Film" -acodec libvo_aacenc -ab 160k -ac 2 -ar 44100 "$1".soni.mp4
[15:04:29 CET] <Alexa> but I get the error: Please use -b:a or -b:v, -b is ambiguous
[15:04:38 CET] <cehoyos> libvo_aacenc does not exist anymore in FFmpeg...
[15:04:44 CET] <cehoyos> This message is not an error
[15:04:45 CET] <Alexa> What should I use, b:a or b:v?
[15:04:55 CET] <Alexa> Unknown encoder 'libvo_aacenc'
[15:05:01 CET] <Alexa> true, that's the second error
[15:05:08 CET] <cehoyos> It's the only error
[15:05:58 CET] <Alexa> oh
[15:06:00 CET] <Alexa> okay
[15:06:07 CET] <Alexa> than I'll try another way.
[15:06:07 CET] <Alexa> ;)
[15:06:14 CET] <cehoyos> Another way?
[15:06:25 CET] <cehoyos> Just remove "-acodec libvo_aacenc" from your command line.
[15:08:12 CET] <Reinhilde> -codec:a aac or something
[15:08:16 CET] <cehoyos> Just remove "-acodec libvo_aacenc" from your command line.
[15:08:38 CET] <cehoyos> You can also remove "-threads 0" as this is the default
[15:08:42 CET] <Reinhilde> Repeating it doesn't make it any more true.
[15:08:57 CET] Last message repeated 1 time(s).
[15:08:57 CET] <cehoyos> Posting nonsense isn't helpful either.
[15:09:20 CET] <cehoyos> You can also remove "-f mp4" as mp4 is the default for file suffix ".mp4"
[15:10:02 CET] <Reinhilde> i don't know that AAC audio (which is what Alexa wants) is default for that container format though.
[15:10:08 CET] <cehoyos> I know
[15:10:32 CET] <Alexa> It works
[15:10:36 CET] <Alexa> it started converting
[15:10:45 CET] <cehoyos> And I know that FFmpeg will choose a better aac encoder than "aac" if one is available.
[15:10:47 CET] <Alexa> changed to -c:a aac
[15:10:56 CET] <Alexa> and removed -threads 0 (as it's default)
[15:11:29 CET] <cehoyos> It is better not to specify "aac" as you may have a better encoder (you didn't show us your configuration)
[15:11:36 CET] <Reinhilde> my configuration only has aac and aac_latm
[15:11:38 CET] <Alexa> I will report later the results back to you. :D
[15:11:48 CET] <cehoyos> "aac_latm" is not an aac encoder
[15:11:49 CET] <Alexa> Reinhilde, but I did
[15:12:18 CET] <Reinhilde> cehoyos: it's a different type of aac is it not
[15:12:29 CET] <Reinhilde> DEA.L. aac AAC (Advanced Audio Coding) (decoders: aac aac_fixed )
[15:12:30 CET] <Reinhilde> D.A.L. aac_latm AAC LATM (Advanced Audio Coding LATM syntax)
[15:12:32 CET] <Reinhilde> also only decode
[15:12:34 CET] <cehoyos> There is no "aac_latm" encoder in FFmpeg (no matter the specification)
[15:12:37 CET] <Alexa> by configuration, what exactly do you mean? I use ffmpeg on linux, I haven't changed any configs.
[15:12:59 CET] <cehoyos> But it is possible that "aac" is not the best aac encoder available
[15:13:03 CET] <Reinhilde> cehoyos: you're less patient than me when I am having hypoglycemia
[15:13:06 CET] <cehoyos> Then remove "c:a aac"
[15:13:07 CET] <Reinhilde> Alexa: which linux?
[15:13:19 CET] <Alexa> Ubuntu 19.04
[15:13:23 CET] <Reinhilde> cehoyos: and I'm pretty impatient when I'm having hypoglycemia
[15:13:34 CET] <cehoyos> I try my best but I arguably overreact when being attacked as you did
[15:13:49 CET] <Reinhilde> there was no personal attack
[15:13:57 CET] <Reinhilde> you are probably a candidate to be 5150'd.
[15:14:08 CET] <cehoyos> You will have to concede that this lies on the receivers end
[15:14:33 CET] <cehoyos> Whatever that means...
[15:14:35 CET] <Reinhilde> bhosdi ke
[15:15:21 CET] <cehoyos> Ooops
[15:16:10 CET] <cehoyos> Just for the record: [15:15] <Reinhilde> fuck you and fuck your mother also
[15:16:12 CET] <cehoyos> ;-)
[15:21:32 CET] <Alexa> cehoyos, what was that? XD
[15:22:10 CET] <BtbN> A 12 year old.
[15:28:30 CET] <cehoyos> And Reinhilde
[15:34:41 CET] <Alexa> Guys, the Reinhilde dared to contact me to complain. What a child. I told him the chat is not meant for offending others but to help instead.
[15:34:56 CET] <Alexa> He told me to screw myself etc.
[15:34:58 CET] <Alexa> lol
[15:35:02 CET] <Alexa> XD
[15:35:09 CET] <cehoyos> Him?
[15:35:19 CET] <Alexa> He offended me as well.
[15:35:32 CET] <cehoyos> (Reinhilde is an old German name for women.)
[15:35:33 CET] <Alexa> First he contacted me to complain about the ban.
[15:35:52 CET] <cehoyos> I have to leave now, maybe that solves the kick, I don't know...
[15:35:55 CET] <Alexa> Something like, I should keep away from #ffmpeg if I'm to learn about ffmpeg.
[15:36:07 CET] <cehoyos> Good luck!
[15:36:19 CET] <Alexa> cehoyos, why would you leave?
[15:36:23 CET] <Alexa> hahahah
[15:36:44 CET] <Alexa> Kicking him was definitively a good choice ;)
[16:02:27 CET] <BtbN> Reinhilde is a well known troll in various other channels.
[17:11:13 CET] <maniaknl> Hi FFMPEG masters,
[17:11:47 CET] <maniaknl> I'm currently using ffmpeg to record some video, however sometimes when i try to record ffmpeg produces an empty mkv file.
[17:12:14 CET] <maniaknl> I'm using the following command to start ffmpeg:
[17:12:18 CET] <maniaknl> ffmpeg -rtsp_transport tcp -analyzeduration 10M -probesize 10M -i $rtspstream -acodec copy -vcodec copy $filepath </dev/null >/dev/null 2>>$logfile
[17:13:18 CET] <maniaknl> The log of the failed recording can be found here:
[17:13:19 CET] <maniaknl> https://pastebin.com/Lb5Puijx
[17:13:36 CET] <maniaknl> Is there any params i can add to improve stability?
[17:15:00 CET] <maniaknl> I think 1 out of 25 recordings fail
[17:17:19 CET] <cehoyos> Please at least provide an actual command line (no variables for file names) including the complete, uncut console output and please test current FFmpeg git head.
[17:17:32 CET] <cehoyos> I don't even see immediately why the remuxing failed.
[17:29:12 CET] <hamdan> ?
[18:14:08 CET] <capin> hello, yesterday i referenced an issue where i could not record my screen and mic audio at the same time, as a work around i like to launch two seperate ffmpeg processes at the same time and stop the processes at the same time as a work around for the time being. is this something anyone here has dealt with? i know this more shell specific, so please forgive if barking up the wrong tree.
[18:21:58 CET] <maniaknl> @cehoyos
[18:24:09 CET] <maniaknl> The full command is:
[18:24:09 CET] <maniaknl> ffmpeg -rtsp_transport tcp -analyzeduration 10M -probesize 10M -i rtsp://192.168.1.26:8554/unicast -acodec copy -vcodec copy /share/video/camera1/2019/11/27/12-57.mkv </dev/null >/dev/null 2>>/share/logs/camera1-2019-11-27.log
[18:24:24 CET] <maniaknl> For this specific instance
[18:25:09 CET] <maniaknl> I already gave you the full log that has been written to /share/logs/camera1-2019-11-27.log related to this instance. If you need additional information, please tell me on how i expand my logs to include the required information
[18:31:12 CET] <maniaknl> "FFmpeg git head" will not work as i am using the ffmpeg application supplied by Hassio (Home Assistant) it's running in a protected docker instance i can't access
[18:31:24 CET] <cehoyos> Then please ask Hassio for support.
[18:33:00 CET] <maniaknl> So there are no additional flags i can try to improve the stability?
[18:33:59 CET] <maniaknl> I got 2 camera's hooked up to a movement sensor, both start recording for the duration movement is detected
[18:34:43 CET] <maniaknl> The ffmpeg command for the other camera is equal to the one i shared with you, just the ip is different and it's using the camera2 folder instead of camera1
[18:35:11 CET] <maniaknl> For some reason the same video also failed for the 2nd camera at the same time.
[18:36:34 CET] <pink_mist> maybe your security system is being breached by hackers! :P
[18:36:44 CET] <saml> how many hackers?
[18:37:18 CET] <Angela--19> Hey guys. Code noob here. I want to add a small video cut into a bigger video. I need this to be automated, because I want to do it multiple times at the same time. Can any of you plese help me? Let me describe a bit better, I own a company and we do tons of marketing videos, we have a 3 second video of our call-center and I want to insert that
[18:37:18 CET] <Angela--19> small video into every single video that I have. Same time as wel (ten second mark).
[18:38:27 CET] <Angela--19> it would be something like this
[18:38:28 CET] <Angela--19> https://stackoverflow.com/questions/29200105/insert-video-in-video-ffmpeg-a…
[18:38:36 CET] <Angela--19> but Im too much of a noob to understand.
[18:39:56 CET] <kepstin> Angela--19: if you don't need any transitions, the easiest way would probably be to concatenate the three things you want (first part of original video, inserted video, second part of original video)
[18:40:22 CET] <Angela--19> I dont need transitions
[18:40:29 CET] <Angela--19> kepstinthanks for the quick reply
[18:40:38 CET] <Angela--19> How do I go about into making that happen
[18:40:44 CET] <kepstin> something like ffmpeg -t 10 -i original.mp4 -i insert.mp4 -ss 10 -i original.mp4 -filter_complex concat=n=3:v=1:a=1 output.mp4
[18:41:05 CET] <kepstin> but you should also add encoder options (codec selection, quality) to that
[18:41:11 CET] <Angela--19> <3
[18:41:14 CET] <Angela--19> cool
[18:41:18 CET] <Angela--19> gonna try that out, thanks so much
[18:42:05 CET] <kepstin> the -t option means "read only 10 seconds", and the -ss option means "seek to 10 seconds", in this case since they're before inputs, they apply to the input file that's right after them.
[18:42:30 CET] <saml> isn't there a way to cut at keyframes only so that we don't need to re-encode?
[18:42:54 CET] <kepstin> yes, but there's no guarantee that there'll be a keyframe where you want to cut.
[18:43:19 CET] <kepstin> this will always work.
[18:43:38 CET] <saml> yeah
[18:43:57 CET] <Angela--19> I dont need to be super specific on the frame
[18:44:01 CET] <Angela--19> kepstin
[18:44:36 CET] <kepstin> also, it's tricky to deal with cutting audio and video at the right point when doing that, *and* you have to make sure that both videos being combined were encoded with special options to make them concatable
[18:44:59 CET] <saml> ah right audio
[18:45:12 CET] <Angela--19> yeah yeah
[18:45:17 CET] <Angela--19> audio is gonna be hard
[18:45:18 CET] <Angela--19> right?
[18:45:29 CET] <kepstin> the command i gave you will do audio correctly
[18:45:34 CET] <saml> you just need to re-encode
[18:45:37 CET] <saml> yeah
[18:47:11 CET] <Angela--19> cool cool
[18:47:15 CET] <Angela--19> gonna try and get back to you guys
[18:47:25 CET] <Angela--19> saml kepstin u both rock
[18:49:02 CET] <maniaknl> I doubt anyone would want to hack my camera's :P But do you guys have any clue?
[18:49:30 CET] <maniaknl> Perhaps running 2 instances of ffmpeg at the same time might cause problems?
[18:50:38 CET] <maniaknl> I can if needed add a 100ms delay or something before starting the 2nd recording
[18:51:39 CET] <pink_mist> maniaknl: you bought a product from hassia, they have their own version of ffmpeg, you really need to ask them
[18:51:50 CET] <pink_mist> err hassio
[18:53:02 CET] <maniaknl> I think the entire thing is opensource and free, but would't they just use the binaries you guys supply on the ffmpeg website?
[18:54:15 CET] <pink_mist> you'd need to ask them
[18:54:32 CET] <saml_> hi
[18:54:40 CET] <saml_> what happened?
[18:54:49 CET] <maniaknl> Fair enough, so to be able to get support here i actually need to start using the binaries you guys supply on the ffmpeg website?
[18:55:22 CET] <pink_mist> you should compile it from git
[18:55:42 CET] <maniaknl> On the machine i want to run it on?
[18:57:10 CET] <furq> it'll be quicker to cross-compile it but more annoying to get any dependencies installed
[18:57:17 CET] <furq> assuming this is on a rpi
[18:57:23 CET] <maniaknl> rpi 3b+
[18:57:31 CET] <maniaknl> But that is the only Linux machine i have
[18:57:56 CET] <furq> yeah it's not worth the hassle if you're only going to do this once
[18:57:56 CET] <maniaknl> I assume i can't compile is on my windows desktop and just move the ffmpeg file
[18:58:05 CET] <furq> you could do it in a linux vm
[18:58:36 CET] <maniaknl> Because it needs to run on a arm processor right?
[18:58:44 CET] <furq> yeah
[18:59:09 CET] <furq> that command doesn't need any external dependencies so it shouldn't take too long to build on a pi 3
[18:59:50 CET] <pink_mist> maniaknl: even if you do this, it doesn't mean we'll be able to help you. hassio may have messed up other things on their end regardless if you're using an ffmpeg from latest git head or not ... you should really be asking them for support since you've presumably paid them money for their product
[19:00:20 CET] <furq> hassio isn't a commercial product
[19:00:51 CET] <furq> and as far as i can tell it's just using the system ffmpeg
[19:01:16 CET] <maniaknl> I have Hassio running on raspbian, so i have access to the system itself
[19:01:45 CET] <furq> https://www.johnvansickle.com/ffmpeg/
[19:01:53 CET] <furq> if this is raspbian then the armel build on here should work
[19:02:07 CET] <furq> or maybe armhf, i forget how their packaging works
[19:02:17 CET] <maniaknl> So i don't have to compile it myself?
[19:02:40 CET] <furq> you should try that first
[19:02:51 CET] <furq> idk whether six days ago is close enough to git head
[19:03:59 CET] <maniaknl> Let me check the docs
[19:04:24 CET] <maniaknl> I was checking the git how to page but this is more a guide on how to commit your own code on top of the ffmpeg stuff
[19:07:10 CET] <furq> fwiw i suspect your camera is at fault, but maybe a newer ffmpeg will handle it better
[19:13:53 CET] <maniaknl> both camera's having the same issue at the same time, but it could be the camera was not expensive
[19:14:41 CET] <maniaknl> Are there any retry options i can use in these cases?
[20:27:00 CET] <Soni> why does ffmpeg still artifact stills/pengs?
[20:27:33 CET] <Soni> I just wanted to turn a 16x16 peng into a 256x256 peng but ffmpeg went and artifacted everything
[20:27:52 CET] <kepstin> do you mean png?
[20:28:07 CET] <kepstin> and describe the artifacts and what you expected
[20:28:33 CET] <kepstin> by default it should be doing a bicubic upscale, which would make a somewhat blurry result
[20:28:34 CET] <Soni> artifacted: https://media.awoo.space/awoo.space/accounts/avatars/000/101/525/original/d…
[20:29:12 CET] <kepstin> oh, that's a paletted png image, huh
[20:29:32 CET] <Soni> cmd: ffmpeg -i ~/Desktop/Art/NewPic-16.png -filter 'scale=w=256:h=256:flags=neighbor' ~/Desktop/Art/NewPic-256.png
[20:29:58 CET] <kepstin> can you share the original image?
[20:30:03 CET] <saml_> what's original
[20:30:04 CET] <Soni> expected: https://media.awoo.space/awoo.space/accounts/avatars/000/101/525/original/d…
[20:30:24 CET] <Soni> (from magick convert ~/Desktop/Art/NewPic-16.png -scale 256x256 ~/Desktop/Art/NewPic-256.png)
[20:31:47 CET] <saml_> Soni, remove flags=neighbor
[20:32:18 CET] <kepstin> for this sort of pixel scaling, neighbor makes sense, you definitely don't want bicubic scaling with a palette :)
[20:32:36 CET] <Soni> saml_: looks worse
[20:32:57 CET] <Soni> is it paletted?
[20:33:09 CET] <kepstin> Soni: please share the original image.
[20:33:54 CET] <Soni> iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAG1BMVEUAAAD///9AAID/AP8A//8AgP8AAP+AAICAAP9V0V/CAAAAQ0lEQVR4nGNggAMBIGaEsqE0E4JrAFfHyIAdsIS5QhjlQABmFCkpKQFZaelK5UBmGUNouHqRMRAwgIgOIGDogAI4AwAr5RQgCpxcWQAAAABJRU5ErkJggg==
[20:34:04 CET] <saml_> nice
[20:34:14 CET] <saml_> is that ssh key
[20:34:17 CET] <kepstin> but yeah, i'm wondering if there's some rounding errors in the paletted scaling code. assuming the input is paletted, converting to rgb before scaling could work around the issue
[20:34:23 CET] <kepstin> i assume that's a base64 encoded png
[20:34:34 CET] <Soni> data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAG1BMVEUAAAD///9AAID/AP8A//8AgP8AAP+AAICAAP9V0V/CAAAAQ0lEQVR4nGNggAMBIGaEsqE0E4JrAFfHyIAdsIS5QhjlQABmFCkpKQFZaelK5UBmGUNouHqRMRAwgIgOIGDogAI4AwAr5RQgCpxcWQAAAABJRU5ErkJggg==
[20:35:03 CET] <saml_> that is probably web browser url
[20:35:48 CET] <Soni> I love how I can send 16x16 pengs over IRC
[20:36:04 CET] <kepstin> huh, 4-bit palette, that's a pretty unusual png. but yeah, the workaround of "ffmpeg -i img.png -vf format=rgb0,scale=w=256:h=256:flags=neighbor output.png should work, at the expense of generating a 24bit rgb output.
[20:36:06 CET] <saml_> convert -verbose -debug original.png -scale 256x256 a.png
[20:36:06 CET] <saml_> convert: unrecognized event type `original.png' @ error/convert.c/ConvertImageCommand/1226.
[20:36:26 CET] <saml_> nevermind i'm using imagemagick wrong
[20:40:11 CET] <kepstin> i suspect that ffmpeg's scaler simply doesn't have an optimized palette based neighbor scaling mode. It's probably doing something ridiculous like converting the input png to an internal colourspace, scaling, then converting back to the palette with dithering (and there's some rounding errors in the process)
[20:41:22 CET] <Soni> it's nearest neighbor, there should be no need for that
[20:41:51 CET] <kepstin> feel free to provide a patch for an optimized palette based nearest neighbor scaling method :/
[20:42:48 CET] <kepstin> swscale is designed to be a generic "anything to anything" scaler, and then it also has optimized methods for a few specific common conversions that skip the generic stuff
[20:43:00 CET] <kepstin> this doesn't appear to be one of those cases.
[20:44:18 CET] <Soni> for any paletted image with nearest neighbor, there should be no need to convert anything. you shouldn't even look at the palette, just the pixel data.
[20:44:42 CET] <kepstin> yep. patches welcome.
[20:45:04 CET] <Soni> (it's called "nearest neighbor" for a reason. it's not MSAA or w/e.)
[20:45:36 CET] <Soni> (idk what imagemagick uses but it's probably some form of MSAA)
[21:04:27 CET] <faLUCE> Is it possible, with some filter, to "decompress" dynamics which are compressed with drc_scale = 1 ?
[21:04:51 CET] <kepstin> no, it's a lossy / unreversable process.
[21:05:34 CET] <faLUCE> why lossy? it affects volume, not samples...
[21:06:17 CET] <kepstin> lossy because any time volume is reduced, that means reduced precision per sample. not a huge deal in most cases, but still a thing.
[21:06:35 CET] <kepstin> unreversible because there's no way to know what volume change was applied in which parts of the audio.
[21:07:40 CET] <faLUCE> kepstin: there should be a function to apply when there are strong changes of dynamics
[21:08:18 CET] <kepstin> but there's no longer strong changes in dynamics after the drc has been applied
[21:08:39 CET] <faLUCE> kepstin: of course, but there still are changes bigger than others...
[21:09:43 CET] <faLUCE> https://forum.audacityteam.org/viewtopic.php?t=3750
[21:09:51 CET] <kepstin> i mean, there are expander filters, but they're very generic, tricky to tune, and will certainly not reproduce the original audio (it'll probably sound worse than the compressed audio, tbh)
[21:10:27 CET] <faLUCE> kepstin: yeah, I remember that one of these produced distorted audio
[21:10:59 CET] <faLUCE> I don't aim to reproduce the original audio, but at least to improve the compressed one
[21:12:25 CET] <kepstin> honestly, the best you can do is go through with the envelope tool in audacity and go "this bit was supposed to be louder" and "this bit was supposed to be quieter"
[21:12:53 CET] <faLUCE> kepstin: yes, I know, but it's long and hard...
[21:13:05 CET] <faLUCE> in addition, the envelope tool in audacity is terrible
[21:14:05 CET] <kepstin> maybe someone can train a neural net to figure out if something sounds like it should be louder or should be quieter and applies appropriate adjustment. that could be kinda cool :)
[21:14:14 CET] <faLUCE> rotfl
[21:17:42 CET] <faLUCE> another question: if I want to make a wav file from an ac3 one, should I use 16 or 24 bit depth ?
[21:18:43 CET] <kepstin> if you're going to be doing additional editing on it, consider using 24bit int or 32bit float on intermediate files if you have the space. otherwise 16 bit int is fine.
[21:19:35 CET] <faLUCE> kepstin: I don't have to edit it... just put it on the dvd
[21:20:11 CET] <faLUCE> why should I use 24 bit if I edit it?
[21:20:28 CET] <kepstin> note that ffmpeg's ac3 decoder and encoder both natively work on 32bit floating point, so any other format requires additional conversions.
[21:21:02 CET] <faLUCE> kepstin: I just used ffmpeg -i file.ts file.wav
[21:21:13 CET] <faLUCE> should I specify the bit depth ?
[21:21:22 CET] <kepstin> wav uses s16le unless otherwise specified
[21:21:46 CET] <faLUCE> kepstin: ok, but does it loose something from the oiriginal ac3 ?
[21:21:52 CET] <faLUCE> 16 bit
[21:22:02 CET] <kepstin> ac3 is lossy, you've already lost something
[21:22:25 CET] <faLUCE> kepstin: I know, but do I loose something else when transforming it to wav 16 bit ?
[21:22:36 CET] <kepstin> the decoded ac3 is an approximation of the original signal anyways, and so .. ? probably doesn't matter much.
[21:23:19 CET] <faLUCE> ok, but I wonder if the encoded ac3 carries an info about the bit depth for decoding
[21:23:30 CET] <kepstin> in theory since ffmpeg's ac3 decoder outputs 32 bit float, and ffmpeg's ac3 encoder takes 32bit float, then saving 32bit float in the temporary file reduces the number of conversions. in practise, i don't know that it would be possible to tell the difference
[21:23:49 CET] <kepstin> faLUCE: original bit depth is basically irrelevant given the design of lossy codecs
[21:24:02 CET] <kepstin> since they usually use some sort of floating-point-like representation internally.
[21:25:27 CET] <faLUCE> kepstin: then, what this floating point representation causes ?
[21:26:18 CET] <faLUCE> I mean, why is it not relevant for 24 or 16 bit ?
[21:28:11 CET] <kepstin> i don't know what you mean
[21:29:06 CET] <faLUCE> I mean: you told that this codec uses a floatinbg point representation... why it is not relevant for the bit depth ?
[21:30:44 CET] <faLUCE> this thread says that ac-3 is 16 bit only
[21:30:46 CET] <faLUCE> https://forum.videohelp.com/threads/335799-Dolby-Digital-Audio-bit-depth-16…
[21:32:28 CET] <kepstin> lossy codecs generally don't end up representing individual samples using specific numbers of bits internally, so "bit depth" of the decoded output is just a matter of what format the decoder ended up using when rebuilding the signal.
[21:32:53 CET] <kepstin> ffmpeg's ac3 decoder decodes to 32bit per sample floating point, fwiw.
[21:33:14 CET] <kepstin> but it probably doesn't actually use all that precision, of course.
[21:37:50 CET] <kepstin> (lossless codecs of course *do* have specific bit depths, because the whole point is that when decoded, they produce the exact same samples as what they had as input)
[21:41:15 CET] <kepstin> the reason to use a higher bit depth for intermediate editing is that when doing multiple edits on stuff, you in theory can accumulate quantization noise. if you're working in 24bit depth, that quantization noise will end up being <1bit at 16bit depth, so it's basically like there was no added noise.
[21:41:27 CET] <kepstin> not that anyone would really notice 1 bit of noise in 16bit audio :)
[21:45:33 CET] <cousin_luigi> Greetings.
[21:46:47 CET] Action: cousin_luigi has a nice clip with an AAC audio track that's not being recognised. ffprobe returns a "Unsupported codec with id 100359 for input stream 1"
[21:47:03 CET] <cousin_luigi> mediainfo recognises it and vlc can play the clip with audio
[21:47:38 CET] <cousin_luigi> CounterPillow: Is this possibly for -devel ?
[21:48:08 CET] <kepstin> cousin_luigi: ideally you'd pastebin the entire output of ffprobe, please.
[21:48:35 CET] <CounterPillow> no this is not for -devel
[21:48:37 CET] <kepstin> cousin_luigi: but if it doesn't work with the latest ffmpeg from git, it might be helpful for you to file an issue on trac with a sample.
[21:48:45 CET] <CounterPillow> ^-
[21:48:59 CET] <CounterPillow> that's what I've been telling him lol
[21:49:32 CET] <cousin_luigi> kepstin: https://pastebin.com/raw/z7BfG0K5
[21:50:06 CET] <cousin_luigi> kepstin: Not sure how to supply a sample...
[21:50:40 CET] <cousin_luigi> CounterPillow: Was telling me about the -loglevel debug and -report switches.
[21:50:58 CET] <kepstin> those might provide additional helpful information, yeah.
[21:51:25 CET] <kepstin> but for a sample - if you can cut e.g. the first couple mb of the file and you get the same output from ffprobe, then that's a good sample.
[21:52:25 CET] <cousin_luigi> kepstin: cut like with dd ?
[21:52:29 CET] <kepstin> yeah
[21:52:45 CET] <kepstin> (it's possible that won't work on an mp4 file, depending how it was made)
[21:54:19 CET] <cousin_luigi> kepstin: In fact it didn't.
[21:54:30 CET] <cousin_luigi> So, would the log do, you reckon?
[21:54:40 CET] <kepstin> better than nothing :/
[21:54:51 CET] <cehoyos> cousin_luigi: Please provide the input sample
[21:55:26 CET] <cousin_luigi> cehoyos: I'm not sure how. It's 800MB long and non legally distributable.
[21:55:44 CET] <cehoyos> We have never received a sample that was legally distributable
[21:56:40 CET] <cehoyos> Do not provide a cut sample unless you verified that it still plays with vlc
[21:56:56 CET] <cehoyos> (It is likely possible to cut the sample but it may be difficult)
[21:57:12 CET] <kepstin> if the file size is really an issue for you, it's possible that replacing most of the middle of the file with '0's and then compressing it with gzip or whatnot might work around that, but again - verify (the first part of it, at least) plays and that you get the same ffprobe output.
[21:57:33 CET] <cousin_luigi> kepstin: That's an interesting notion. How much of the tail should I keep?
[21:57:34 CET] <cehoyos> See http://0x0.st/
[21:57:56 CET] <cehoyos> I will do that, it will likely take you longer than the uploading
[21:58:17 CET] <cousin_luigi> cehoyos: FYI, I have a shitty connection.
[21:58:30 CET] <cousin_luigi> like 300kbps up.
[21:58:37 CET] <cehoyos> Then please provide the first 10MB, the last 10MB and the exact file size (before cutting)
[21:58:51 CET] <cousin_luigi> ok, will try that
[21:59:03 CET] <cehoyos> Better the first 20 and the last 5
[22:00:46 CET] <faLUCE> do you know anything about the "extrastereo" filter? I'm trying it with smplayer, I thing it's something associated with ffmpeg. It produces great sound, but I don't understand how it works
[22:07:07 CET] <kepstin> faLUCE: there's info in the documentation...
[22:09:03 CET] <faLUCE> how can I obtain the info with the command line?
[22:09:15 CET] <faLUCE> I googled but could not find the info
[22:09:18 CET] <kepstin> "man ffmpeg-filters"
[22:09:43 CET] <faLUCE> sorry, I searched "mpv extrastereo"
[22:09:45 CET] <faLUCE> thnks
[22:24:41 CET] <cousin_luigi> cehoyos: Should I paste the link here or in PM?
[22:24:53 CET] <cehoyos> Here
[22:24:58 CET] <cousin_luigi> cehoyos: http://0x0.st/zIET.xz
[22:41:45 CET] <cousin_luigi> cehoyos: Do you need me to file a trac ticket too?
[22:50:35 CET] <cehoyos> https://trac.ffmpeg.org/ticket/7762
[22:55:07 CET] <rocktop> how can I start stream_loop from certain time ?
[23:00:08 CET] <jcelerier> Hello :)
[23:00:24 CET] <jcelerier> does someone know if there is a way to read WAV chunks from ffmpeg in addition from the sample data ?
[23:00:54 CET] <jcelerier> (arbitrary ones - I am interested in the acid chunk in particular but I doubt that it would be handled directly by ffmpeg)
[23:01:23 CET] <cehoyos> What does the acid chunk do?
[23:04:04 CET] <jcelerier> it has some information useful for music software
[23:04:12 CET] <jcelerier> namely, what is the tempo and time signature of the .wav file
[23:05:21 CET] <rocktop> anyidea?
[23:07:09 CET] <jcelerier> and some other musically-relevant metadata
[23:07:10 CET] <jcelerier> most sample libraries ship .wav files with that chunk
[23:11:33 CET] <furq> doesn't look like it
[23:11:57 CET] <furq> libsndfile supports it
[23:12:34 CET] <kepstin> honestly, riff is such a simple format that you could pretty easily find the chunks yourself. i wrote a wav parser in ruby once in ~15 lines of code :/
[23:12:50 CET] <furq> i mean sndfile supports parsing the acid chunk directly
[23:13:31 CET] <kepstin> (although if you can avoid that it is nice, corner cases and there's rf64 and whatnot to deal with)
[23:13:53 CET] <cousin_luigi> cehoyos: Is the audio problem subtitle-related?
[23:14:25 CET] <cehoyos> No, but there is no audio problem, only a demuxer problem
[23:15:05 CET] <jcelerier> yes, I actually already do it
[23:15:16 CET] <jcelerier> but since I use ffmpeg for other stuff I was looking to decrease my amount of custom code :)
[23:15:26 CET] <cousin_luigi> Ah.
[23:15:39 CET] <jcelerier> the best program is the one I don't have to write ;)
[23:16:08 CET] <jcelerier> (also it sucks a bit to have a path to read .wav file and another to read all the other compressed formats)
[23:17:11 CET] <cousin_luigi> well, I suppose I'm done here.
[23:17:14 CET] <cousin_luigi> Have a good night.
[23:17:20 CET] <cehoyos> Thank you!
[23:18:03 CET] <furq> it looks like wavdec already has support for some nonstandard chunks, so i guess someone could add it
[23:22:03 CET] <jcelerier> but what I haven't found is how to retrieve that information afterwards
[23:22:22 CET] <jcelerier> I understand that this is tricky to do because the ffmpeg api is generic, and this is specific to RIFF-like formats
[23:23:57 CET] <cehoyos> It can be exported via metadata
[23:24:01 CET] <kepstin> depending on what's in the data, it might be appropriate to have it as metadata on the format context, or maybe expose it as a "data" stream.
[23:25:31 CET] <kepstin> (or even side data on a stream, i suppose)
[00:00:00 CET] --- Thu Nov 28 2019
1
0
[04:19:38 CET] <stevenliu> Hello?
[04:32:33 CET] <cone-205> ffmpeg 03Steven Liu 07master:59d264b0a121: avformat/hlsenc: set strict_std_compliance from the parent AVFormatContext
[08:37:15 CET] <Fyr> guys, is there a big trouble to implement +faststart option for Matroska container?
[08:37:31 CET] <Fyr> because, I don't know how to guess the reserved space.
[08:37:47 CET] <Fyr> though, I think, ffmpeg is able to do that.
[08:38:00 CET] <Fyr> even with two passes, like for MP4.
[08:39:11 CET] <nevcairiel> faststart is only a concept for mp4 since it typically has the headers at the end, and faststart moves them to the front. mkv is different.
[08:39:39 CET] <thardin> I was about to say
[08:39:58 CET] <thardin> mkv can be streamed, mov cannot
[08:39:59 CET] <Fyr> nevcairiel, so how is different options -movflags +faststart and -reserve_index_space 50k?
[08:40:31 CET] <thardin> (except for fragmented mp4 of course)
[08:41:30 CET] <nevcairiel> you cant really seek a streaming file anyway, so having the seeking index in the beginning usually doesnt help much, but if you want to reserve space for it for some reason, you can
[08:42:01 CET] <Fyr> both mp4 and mkv have seeking information in the end.
[08:42:24 CET] <thardin> so?
[08:42:25 CET] <nevcairiel> the difference is that mp4 usually has all required playback information at the e nd
[08:42:27 CET] <Fyr> +faststart option moves it to the beginning of the file.
[08:42:33 CET] <nevcairiel> faststart is not about seeking
[08:42:36 CET] <Fyr> why is it so different for Matroska?
[08:42:36 CET] <nevcairiel> its about playback at all
[08:43:11 CET] <nevcairiel> anyhow I don't get your point, we already offer an option to reserve space for the header at the beginning if you want it to be there
[08:43:16 CET] <nevcairiel> set the option and done
[08:43:38 CET] <Fyr> nevcairiel, sometimes 50k is not enough.
[08:43:43 CET] <nevcairiel> then set more
[08:44:07 CET] <Fyr> yes, I had to set more, because I did not know how to guess the size.
[08:44:25 CET] <thardin> https://en.wikipedia.org/wiki/Multimedia_Container_Format TIL
[08:48:11 CET] <thardin> Fyr: some_constant*duration tends to work quite well
[08:48:57 CET] <thardin> btw, does mkv fragment the index if it can't fit? like put as much as possible in the header, the rest in the footer
[08:49:09 CET] <thardin> mxf can do stuff like that
[08:49:40 CET] <nevcairiel> no it'll just error out
[08:49:47 CET] <Fyr> so far, 24 minutes of anime usually requires 40k of reserved space, one episode of the season requires 50k of space.
[08:50:29 CET] <Fyr> Lat den ratte komma in required 1M of reserved space.
[08:50:41 CET] <Fyr> though, it's only 2 hours long.
[08:51:14 CET] <thardin> that sounds like a lot
[08:52:09 CET] <thardin> or not. .mov would use ~700k just for the video track's stco box
[08:52:25 CET] <nevcairiel> it depends how many key frames you have, and how many subtitle streams, as those also get cues
[08:52:42 CET] <thardin> right, with mkv you don't have to index every single packet
[08:53:23 CET] <nevcairiel> every subtile packet gets a cue point since for some uses its important to find the sparse packets, but t hose should usually be much rarer then any other stream
[08:54:07 CET] <mkver> Implementing faststart for Matroska would be more difficult, as it uses variable size integers. Moving the packet data to the end will therefore make the size of the Cues increase, complicating the process of finding out how big the cues will eventually be.
[09:00:11 CET] <Fyr> does SRT require BOM?
[09:03:05 CET] <mkver> No. But it helps to identify the encoding.
[09:03:42 CET] <Fyr> mkver, so FFMPEG guesses the encoding using BOM?
[09:09:11 CET] <nevcairiel> yes it reads the BOM
[09:09:24 CET] <nevcairiel> without BOM it assumes utf-8
[09:09:27 CET] <stevenliu> Hello guys, i have a question, if i want search the protocols' options use API, how should i do? or maybe i need porting the URLProtocols to AVProtiocols?
[09:09:44 CET] <nevcairiel> URLProtocols are intentionally not exposed to the public
[09:09:57 CET] <nevcairiel> changing that just for options seems a bit silly
[09:10:43 CET] <stevenliu> if i'm an API user, how should i search the options?
[09:10:56 CET] <stevenliu> just install an ffmpeg command line?
[09:11:05 CET] <stevenliu> and ffmpeg --help full ?
[09:11:22 CET] <JEEB> if ffmpeg.c can get it, then an API user can get it, too
[09:11:23 CET] <nevcairiel> i dont think api users use the api to read options
[09:11:27 CET] <nevcairiel> they just read docs
[09:11:36 CET] <JEEB> ffmpeg.c should not be using internal APIs
[09:11:42 CET] <stevenliu> yes
[09:13:04 CET] <stevenliu> i think format/muxer/demuxer codecs/encoder/decoder filters can be get option use ffmpeg -h module=name, but the devices and protocol should can do it by the same ways
[09:15:03 CET] <JEEB> right, for a moment I read you there as if it could already :)
[09:15:11 CET] <stevenliu> every times, when i ask the options of http rtmp, i must ffmpeg --help full |less, and search at the text, It doesn't feel uniform to muxer demuxer encoder
[09:16:26 CET] <stevenliu> I can get hlsenc's option use ffmpeg -h muxer=hls but i cannot get http options use ffmpeg -h muxer=http, ffmpeg -h demuxer=http o ffmpeg -h protocol=http
[09:16:45 CET] <stevenliu> should fix this?
[09:17:23 CET] <JEEB> stevenliu: I think the worst parts are when things ignore the lavf context option (*cough* udp wanting "timeout" instead of using the rw_timeout
[09:18:04 CET] <JEEB> stevenliu: I think it's a worthwhile point to rise although I would have to be reminded as to why those things are internally protected :)
[09:18:14 CET] <stevenliu> Agreed, but i have no idea to fix that, just add the timeout into the options into the hls.c?
[09:19:10 CET] <stevenliu> Or passthrough to the child AVFormatContext.
[09:19:39 CET] <JEEB> in your case since you're creating sub-lavf contexts you need to pass through
[09:20:14 CET] <stevenliu> avformatcontext copy?
[09:20:32 CET] <JEEB> although since you're probably doing HTTP you need to check if lavf's http follows rw_timeout or what (because of course people haven't been consistent and that sucks)
[09:20:56 CET] <mkver> Maybe one could somehow get the user a pointer to an URLContext's priv_data_class?
[09:21:36 CET] <JEEB> ok, and since http is on top of tcp
[09:22:38 CET] <JEEB> > av_find_tag for timeout vOv
[09:22:43 CET] <JEEB> so that has an option similar to UDP
[09:22:54 CET] <JEEB> anyways, afk
[09:24:29 CET] <mkver> Or one could relocate said priv_data_class to the front of URLContext and document that the first entry of the opaque used in avio_enum_protocols is a pointer to an AVClass that can be used to get the options.
[09:26:50 CET] <stevenliu> JEEB: i see Tom's link, Rui Zhang has ask one read_header2 like open2, that can get options from parent AVFormatContext, or add the options into AVFormatContext->options? add an options field into AVFormatContext?
[09:27:26 CET] <stevenliu> mkver: Thanks your point, i will try it local.
[09:33:54 CET] <stevenliu> int (*read_header)(struct AVFormatContext *); int (*read_header2)(struct AVFormatContext *, AVDictionary **options); :D
[11:49:37 CET] <durandal_1707> i want to RE BRAW, anybody want to help?
[12:06:35 CET] <durandal_1707> looks like nobody interested, nice and very friendly community this become!
[12:07:10 CET] <Lynne> ac-4 or bust
[12:07:31 CET] <durandal_1707> ENOSAMPLES
[12:09:40 CET] <Lynne> avpriv_request_sample(avctx, "Feature"); return AVERROR_PATCHWELCOME;
[12:11:07 CET] <durandal_1707> avpriv_request_sample(avctx, "AC-4 support is not implemented, contact nearby shrink for more info."); return AVERROR_PATCHWELCOME;
[12:11:40 CET] <Lynne> lgtm
[12:11:47 CET] <durandal_1707> lol
[12:19:27 CET] <BradleyS> BRAW=="Blackmagic RAW" ?
[12:19:59 CET] <BradleyS> i assume there are official-ish samples but i can provide samples from my cam if helpful
[12:24:08 CET] <BradleyS> durandal_1707: do you need any specific content or just a variety of resolution, frame rate, and compression?
[12:36:29 CET] <durandal_1707> BradleyS: variety of fourcc, one that i do not have, I already have brxq and brlt
[12:46:01 CET] <BradleyS> well, you tell me: https://www.dropbox.com/s/paqo8xs4b5szslw/A001_04200309_C001.braw?dl=0
[12:48:50 CET] <BradleyS> that's cbr 8:1
[12:49:05 CET] <BradleyS> cam has cbr 3:1, 5:1, 8:1, 12:1
[12:49:16 CET] <BradleyS> cq q0, q5
[12:49:32 CET] <BradleyS> not sure what is brxq and what is brlt
[12:49:45 CET] <durandal_1707> probably those modes
[12:49:49 CET] <BradleyS> i'll make a shorter sample of each
[12:50:12 CET] <BradleyS> there might not be anything else, at least on my bmpcc 4k
[12:51:56 CET] <durandal_1707> BradleyS: you have uploaded brst
[12:52:03 CET] <durandal_1707> so thats new one
[12:52:12 CET] <BradleyS> cool
[12:54:23 CET] <BradleyS> https://www.dropbox.com/sh/8s7bb7hkylewbtm/AAB8BuW23OyyqE9qtRqzQvlEa?dl=0
[12:54:34 CET] <BradleyS> includes first sample and labeled additional shorter samples
[12:54:42 CET] <BradleyS> 10-15 frames each
[12:56:20 CET] <BradleyS> there are three dynamic range presets on the cam: video, extended video, and film
[12:56:34 CET] <BradleyS> those are film, i'll take a video and ev
[12:56:56 CET] <BradleyS> in case that matters (shouldn't it's essentially the \curve)
[13:01:12 CET] <BradleyS> uploaded four more files there: dci 4k, 1080p, uhd 4k video dr, uhd 4k extended video dr
[13:01:24 CET] <BradleyS> probably all the variety i can make, hope it helps
[13:05:14 CET] <durandal_1707> i think i have all of them, the cq modes are only q0 and q5?
[13:05:24 CET] <BradleyS> yes, only those
[13:05:29 CET] <BradleyS> i will check for firmware update
[13:09:38 CET] <BradleyS> camera firmware 6.2.1, i'm installing 6.6 now
[13:13:09 CET] <BtbN> that... sounds like exactly what happens if you overload your CPU?
[13:22:04 CET] <BradleyS> update added 4K 2.4:1 sensor crop, 2.8K Anamorphic (crop), and 2.6K 16:9 (crop)
[13:22:21 CET] <BradleyS> and broke compatibility with the lens i was using, guess i'll have to call them again
[13:22:45 CET] <BradleyS> cbr/cq modes seem unchanged but i'll shoot the new resolutions
[13:33:51 CET] <BradleyS> added three more files with the new resolutions
[13:34:12 CET] <BradleyS> if they're all new fourcc (doubtful) i can reshoot the others with the new firmware
[13:34:44 CET] <BradleyS> the 2.8K anamorphic is 4:3 when decompressed so there might be a new setting in the stream
[13:35:07 CET] <BradleyS> or perhaps just setting par
[13:38:00 CET] <BradleyS> prores got none of the new resolutions, but it can shoot 1080p from a 2.6K crop now (previously only UHD 4K or 1080p crop)
[13:57:53 CET] <durandal_1707> anyone know any good C deobfuscator? i want to parse couple of obfuscated macros
[13:59:39 CET] <Lynne> run preprocessor then clang-format?
[13:59:46 CET] <thardin> cpp followed by any c formatter?
[14:24:13 CET] <durandal_1707> it seems to remove unused stuff
[14:27:05 CET] <tmatth> Lynne: btw I'm not really sure if this is encoder-side or decoder-side: https://trac.ffmpeg.org/ticket/8401
[14:39:49 CET] <Lynne> tmatth: neither, I think the wavelet depth is too high for such low resolutions
[14:40:43 CET] <tmatth> Lynne: it also happens at high resolutions that have non % 64 widths
[14:42:46 CET] <J_Darnley> I might have something to address that in a private branch.
[14:43:00 CET] <J_Darnley> but that might depends on all the other changes
[14:44:10 CET] <tmatth> hrm actually the % 64 thing may be a red herring, I can't really tell what resolutions this is broken for
[14:49:25 CET] <Lynne> tmatth: not sure what resolutions its broken at but https://0x0.st/zIV5.diff fixes it
[14:51:07 CET] <tmatth> Lynne: nice, that did it
[14:53:24 CET] <Lynne> seems like anything non-mod-32
[15:06:59 CET] <Lynne> technically this shouldn't be needed because deinterleave() shouldn't exist
[15:08:32 CET] <Lynne> actually nevermind, its needed
[15:23:17 CET] <tmatth> Lynne: do you want to send a patch to the ML or did you have another solution in mind?
[15:24:02 CET] <jamrial> http://lists.ffmpeg.org/ looks down
[15:33:18 CET] <BtbN> looks like we can remove all the OSX+CUDA stuff from configure again
[15:33:21 CET] <BtbN> nvidia gave up on it
[15:41:54 CET] <Lynne> tmatth: its good as is, I just need to push it
[15:47:30 CET] <BradleyS> BtbN: still works fine, just not on catalina and going forward
[15:47:46 CET] <BtbN> But no more updates.
[15:48:07 CET] <BradleyS> apple is still putting out security updates for the previous two os, and nvidia drivers are current including cuda
[15:48:33 CET] <BradleyS> remains to be seen whether nvidia puts out any more updates for mojave and earlier but i doubt it
[15:49:07 CET] <BradleyS> so as much as the situation sucks, people will probably still use it for about two more years
[15:50:39 CET] <BradleyS> i would deprecate now and maybe print a warning
[16:33:58 CET] <cone-909> ffmpeg 03Oleg Dobkin 07master:32ba563cfccd: avutil/hwcontext_cuda: allow using primary CUDA device context
[18:50:58 CET] <Dmitri_Ovch> Hi! could you review these 2 patches(https://patchwork.ffmpeg.org/patch/16270/ , https://patchwork.ffmpeg.org/patch/16382/) ? This patches are really small and it should not take much time, but these fixes were requested by our users.
[19:04:31 CET] <cehoyos> Who wrote the profile patch?
[19:05:06 CET] <cehoyos> Please ask Mark Thompson to look at the patches if nobody comments.
[19:07:42 CET] <jamrial> Dmitri_Ovch: the avctx->refs check should probably be > 0 instead
[19:08:07 CET] <jamrial> the level part is good
[19:09:41 CET] <Dmitri_Ovch> !?0A81>! O 8A?@02;N 8 >B?@02;N 70=>2>
[19:10:10 CET] <Dmitri_Ovch> Thanks! I will correct and resend
[19:10:14 CET] <Dmitri_Ovch> sorry
[19:15:28 CET] <Dmitri_Ovch> cehoyos: Profile level patch was proposed by Sitan Liu <nst799610810(a)gmail.com>
[19:15:42 CET] <cehoyos> Who wrote the patch?
[19:25:50 CET] <Dmitri_Ovch> cehoyos: Sitan Liu, He asked me to suggest patch using correct way(instead of the pull-on request he sent earlier)
[19:27:05 CET] <Dmitri_Ovch> I also specified this in the patch description
[19:31:35 CET] <cehoyos> The patch description indicates that you wrote the patch. If you did not write the patch, please fix the commit message
[19:39:44 CET] <Dmitri_Ovch> I'm sorry, it was unintentional. I probably don't understand the meaning of "proposed"correctly. I will send new patch, with corrected description and avctx->refs check.
[23:13:51 CET] <JEEB> interesting
[23:14:15 CET] <JEEB> we have some info on DV profile 5 (which is the custom dolby color space), but if this is an actual test sequence :P
[23:15:39 CET] <JEEB> seems so
[00:00:00 CET] --- Wed Nov 27 2019
1
0
[00:07:25 CET] <faLUCE> hello. If I open an ac3 audio 5.1 (6 tracks) with audacity, and compress it to ac3 again (640kbps) with ffmpeg embedded on audacity, resulting audio sounds a little bit different. It seems to have a lower volume. what can cause that?
[00:12:28 CET] <faLUCE> hwo can I debug?
[00:13:16 CET] <nicolas17> no matter how high you set the bitrate, the result will be a bit different; but ear-noticeable lower volume? that's odd
[00:13:51 CET] <faLUCE> nicolas17: why do you think it will be a bit different ?
[00:13:59 CET] <nicolas17> because it's a lossy codec
[00:14:08 CET] <faLUCE> nicolas17: but 640kbps
[00:14:10 CET] <faLUCE> is high
[00:14:20 CET] <furq> six channels is also high
[00:14:30 CET] <faLUCE> furq: right
[00:14:55 CET] <nicolas17> no matter how high you set the bitrate, the result won't be bit-identical to the source audio
[00:14:57 CET] <nicolas17> but
[00:14:57 CET] <faLUCE> well. Instead of encoding again to 6 channels, which raw format can I use?
[00:15:09 CET] <nicolas17> it shouldn't cause something like lower volume
[00:15:11 CET] <faLUCE> (for 6 channels, I mean)
[00:16:26 CET] <furq> what are you doing that requires reencoding
[00:16:52 CET] <faLUCE> furq: I'm modifying some audio which is ac3
[00:17:06 CET] <faLUCE> then, after modifying I have simply to play it
[00:17:16 CET] <furq> if you're just cutting it up then you don't need to reencode for that
[00:17:40 CET] <faLUCE> well, having huge files is not so good, but anyway... this is not the first problem
[00:18:02 CET] <faLUCE> so: which raw format can I use for 6 channels?
[00:18:25 CET] <furq> flac supports multichannel
[00:18:40 CET] <faLUCE> ok, perfect
[00:18:57 CET] <faLUCE> second question: why ac3 is limited to 640kbps ?
[00:20:01 CET] <furq> that's defined in the atsc spec
[00:20:06 CET] <furq> i couldn't tell you why it's defined that way though
[00:20:16 CET] <furq> dd+/eac3 supports higher bitrates
[00:21:51 CET] <faLUCE> tnx again
[00:23:48 CET] <faLUCE> does ffmpeg support eac3 ?
[00:29:09 CET] <DHE> decoding? I believe so...
[00:30:24 CET] <faLUCE> not encoding?
[00:34:21 CET] <nicolas17> ultra high bitrate audio seems pointless, if you care that much about quality, use a lossless format
[00:35:33 CET] <faLUCE> nicolas17: why pointless? I suppose that with a size that is double of ac3 output I can obtain the same result for my ears
[00:35:42 CET] <faLUCE> with much less space occupied
[00:37:00 CET] <nicolas17> did you test how much space flac uses?
[00:40:12 CET] <faLUCE> nicolas17: you are right... more or less double of ac3
[00:48:30 CET] <faLUCE> anyway, if I open an ac3 file with audacity and save it as flac. when I play it it has a lower volume than the original
[00:48:40 CET] <faLUCE> audacity uses ffmpeg for that
[00:49:16 CET] <nicolas17> could be audacity's fault
[00:49:25 CET] <nicolas17> try saving it as wav, that should be audacity alone without ffmpeg
[00:49:57 CET] <faLUCE> nicolas17: 6 wav tracks ?
[00:58:33 CET] <faLUCE> nicolas17: same result for wav
[01:17:50 CET] <Hello71> I'm still going with replaygain
[01:38:54 CET] <kepstin> i bet the volume reduction (or possibly lack of volume increase) is applied when you open the ac3 in audacity rather than anything else.
[01:44:11 CET] <faLUCE> kepstin: this is what I'm noting right now
[01:45:03 CET] <faLUCE> kepstin: in addition, I don't understand if it's normal that 4 on 6 channels have a much lower volume than the other 2
[01:45:31 CET] <faLUCE> (this is what I see when I open the ac3 file with audacity: 4 channels with very low volume)
[04:18:47 CET] <analogical> what is the highest available quality setting when encoding aac ?
[04:19:25 CET] <analogical> -q what?
[04:34:46 CET] <lain98> i want to generate a video where the r,g,b values is the elapsed time. is that possible ?
[04:35:29 CET] <furq> analogical: there is no maximum, but the wiki suggests anything above 2 isn't worth using
[04:35:33 CET] <furq> lain98: https://ffmpeg.org/ffmpeg-filters.html#geq
[04:35:53 CET] <lain98> thanks furq
[04:37:33 CET] <lain98> also this is just way to test my application that demuxes and decodes videos. i couldnt think of a way to test those things other than encode the frame number/time information in the video itself.
[04:37:45 CET] <lain98> does ffmpeg do any such testing and how ?
[04:39:11 CET] <TheAMM> You can also use drawtext to draw frame numbers and timestamps if it's easier to view the demuxed frames rather than parse rgb/whatnot encoded values
[04:39:59 CET] <lain98> i did do that
[04:40:11 CET] <lain98> but i can automate that testing
[04:40:22 CET] <lain98> maybe ocr but thats too much
[04:40:35 CET] <lain98> *cant
[04:40:50 CET] <lain98> i've manually verified it but would like to automate it
[04:41:49 CET] <analogical> furq, what do I type if I want to encode input.wav to cbr 256kbps output.m4a
[04:41:57 CET] <furq> analogical: -b:a 256k
[04:41:59 CET] <analogical> default seems to be vbr
[04:42:08 CET] <analogical> I want cbr
[04:42:11 CET] <furq> that is cbr
[04:42:19 CET] <analogical> constant bitrate
[04:45:03 CET] <analogical> is there a way to force constant bitrate?
[05:28:49 CET] <debiandebian> Hmm, is anyone familiar with H.264 RTP Payload Format?
[07:37:35 CET] <BeerLover> I want to make a static build with libfdk_aac, which needs to run on Amazon linux. Do I need to compile it on Amazon linux? Or can I do it on my manjaro??
[07:48:02 CET] <BeerLover> Unknown option --disable-shared: https://0x0.st/zIf7.txt
[08:01:01 CET] <furq> just --enable-shared is fine
[08:01:10 CET] <furq> you'll also need --extra-ldflags="-static"
[08:01:22 CET] <furq> and static libs for all the dependencies
[08:01:27 CET] <furq> and probably --pkg-config-flags="--static"
[08:01:56 CET] <furq> also i meant --enable-static not --enable-shared obviously
[08:17:43 CET] <BeerLover> furq --extra-ldflags="-static"
[08:17:51 CET] <BeerLover> Unknown option "-enable-static".
[08:20:34 CET] <furq> the first one of those hyphens is an em dash
[08:21:47 CET] <furq> there's one in that paste in --disable-shared as well so no wonder that wasn't working
[08:33:15 CET] <lain98> i used this command to generate a video. i wanted a video that had 256 frames and each frame had r=g=b=time=frame_number. ffmpeg -f lavfi -i nullsrc=s=512x512:d=256:r=1 -c:v libx264 -pix_fmt yuv420p -vf "geq='r=T:g=T:b=T'" test.mp4
[08:33:22 CET] <montana> which color does best compression for video/picture and which color does worst compression for video/picture?
[08:33:34 CET] <lain98> the first frame doesnt start at zero.
[08:34:28 CET] <furq> N is frame number, not T
[08:34:38 CET] <lain98> yes but i'm using 1 fps
[08:35:14 CET] <lain98> the first frame is 16 r,g,b value not 0
[08:35:28 CET] <lain98> i think it has something to do with bt601
[08:35:34 CET] <lain98> bt709 stuff
[08:35:36 CET] <furq> oh
[08:35:40 CET] <lain98> i want full range yuv
[08:36:10 CET] <furq> -color_range jpeg
[08:36:14 CET] <lain98> i checked ffmpeg -pix_fmts but nothing points to full range
[08:36:23 CET] <lain98> okay furq, thanks let me check that out
[08:36:48 CET] <furq> or -pix_fmt yuvj420p but that's deprecated iirc
[08:38:43 CET] <lain98> still starts from 16
[08:39:15 CET] <lain98> with yuvj420p it does work
[08:39:51 CET] <lain98> is there a way i could maybe avoid this deprecated pix_fmt furq.
[08:39:59 CET] <lain98> color_range didnt give me full range
[08:40:04 CET] <furq> well the replacement is color_range
[08:41:22 CET] <lain98> just to be clear i ran. ffmpeg -f lavfi -i nullsrc=s=256x256 -c:v libx264 -pix_fmt yuv420p -color_range jpeg -vf "geq='r=T:g=T:b=T'" test.mp4
[08:41:43 CET] <furq> maybe colorspace=range=jpeg,geq...
[08:41:47 CET] <furq> and color_range
[08:41:55 CET] <lain98> okay
[08:42:08 CET] <furq> you don't need a separate -vf with lavfi inputs btw
[08:42:15 CET] <furq> you can just do -i nullsrc,colorspace,geq
[08:42:24 CET] <lain98> okay
[08:43:24 CET] <furq> i guess you actually want colorspace=range=jpeg:format=yuv420p and then drop -pix_fmt
[08:43:41 CET] <lain98> No accelerated colorspace conversion found from yuv420p to gbrp
[08:44:51 CET] <Reinhilde> wew
[08:48:20 CET] <furq> huh
[08:48:23 CET] <furq> that just deadlocks here
[08:48:33 CET] <lain98> yeah same
[08:49:34 CET] <lain98> maybe i'll just use yuvj420p since i'm most likely never to generate that video again
[08:49:37 CET] <lain98> thanks furq
[08:54:42 CET] <furq> geq,scale=out_range=full,format=yuv420p
[08:54:44 CET] <furq> that seems to work
[08:55:04 CET] <furq> there's probably a better way
[09:05:25 CET] <BeerLover> on arch I get libfdk_aac not found
[09:05:33 CET] <BeerLover> but i have it installed
[09:05:59 CET] <c_14> When building or with the system binary?
[09:06:16 CET] <BeerLover> ./configure
[09:06:40 CET] <BeerLover> https://0x0.st/zIOu.txt
[09:06:43 CET] <BeerLover> c_14
[09:07:25 CET] <c_14> does your libfdk_aac come with static libraries?
[09:07:26 CET] <furq> tail -100 ffbuild/config.log
[09:07:33 CET] <c_14> ^ and upload to a pastebin service
[09:07:35 CET] <furq> but yeah it's most likely that you don't have the static library
[09:08:02 CET] <furq> if arch has some equivalent of -dev packages then you'll need that
[09:08:13 CET] <BeerLover> https://0x0.st/zIOS.c
[09:08:44 CET] <furq> /usr/bin/ld: cannot find -lfdk-aac
[09:08:47 CET] <furq> yeah there you go
[09:09:06 CET] <furq> maybe the first time that configure error messages has ever been accurate
[09:09:10 CET] <furq> -s
[09:09:45 CET] <BeerLover> furq will static binary created on any linux work fine on other linux??
[09:10:12 CET] <furq> pretty sure it will if it's the same arch
[09:10:37 CET] <c_14> and depending on what you're liking with as long as the glibc version is similar enough (assuming you linked against glibc)
[09:11:08 CET] <BeerLover> I'll build on a VM
[09:11:19 CET] <BeerLover> doon't think arrch has libfdk-acc-dev
[09:11:32 CET] <furq> it's easy enough to build fdk yourself
[09:12:45 CET] <furq> with that said it's probably bad to build on arch because it doubtless has some ultra bleeding edge glibc
[09:13:20 CET] <c_14> building with an old version is usually not a problem
[09:13:26 CET] <c_14> It's building with too new a version that is
[09:13:34 CET] <furq> well yeah he's building on arch and then running on something else
[09:13:55 CET] <c_14> right, misread your comment
[10:24:51 CET] <BeerLover> why am i getting this error? https://0x0.st/zIO9.loog
[10:25:05 CET] <BeerLover> I built the binary successfullyt
[10:33:16 CET] <Reinhilde> 9/= 249
[10:38:53 CET] <BeerLover> Reinhilde ?
[10:39:09 CET] <Reinhilde> typographic
[10:40:57 CET] <BeerLover> https://0x0.st/zIOy.txt
[10:41:03 CET] <BeerLover> why is this wrong?
[10:42:18 CET] <ritsuka> you can't put aac in a .mp3 file
[10:58:15 CET] <BeerLover> what is pcm_s16le
[11:56:45 CET] <another> pcm signed 16 bit little-endian
[11:57:17 CET] <BeerLover> is that codec?
[11:57:39 CET] <BeerLover> i have a .mp3 file with this stream
[11:57:44 CET] <Mavrik> It's raw audio
[11:58:01 CET] <Mavrik> Not encoded at all... so not sure how you ended up having an mp3 with that >(
[11:58:05 CET] <Mavrik> Sounds like misdetection or a broken file
[11:58:21 CET] <another> well, it's encoded as pcm
[11:58:48 CET] <durandal_1707> another: does it sounds ok when played?
[11:59:40 CET] <another> durandal_1707: wrong highlight
[12:00:26 CET] <BeerLover> Mavrik another https://0x0.st/zIVz.txt
[12:00:30 CET] <BeerLover> here's the info
[12:02:14 CET] <another> looks like a wav file
[12:03:43 CET] <Mavrik> That, although ffmpeg tends to interpret anything it doesn't understand as raw
[12:09:22 CET] <durandal_1707> BeerLover: so does file sounds ok when played with ffplay?
[12:13:56 CET] <BeerLover> yeah file is goood
[14:41:36 CET] <faLUCE> Hello. Is there a way to see, with ffmpeg or ffmproge the *real* maximum volume of each of the 6 tracks on an ac3 file? When I open it with audacity it seems to lower the volume of tracks 2-6 because of the downmixing (not sure of that but it seems so, because I see very low volumes on these tracks)
[15:35:37 CET] <funnybunny2> Is ffmpeg.org down right now?
[15:36:56 CET] <DHE> down for me...
[15:39:14 CET] <funnybunny2> Is there a mirror of the API documentation anywhere?
[15:41:24 CET] <funnybunny2> nvm. archive.org has it
[15:48:57 CET] <Reinhilde> cortana is bonzi buddy
[15:49:35 CET] <funnybunny2> Looks like it's back up
[15:50:40 CET] <funnybunny2> I can't seem to find the documentation for avformat_open_input. I only see it in the source code. Is this an API function? I'm trying to find the right function to use which detects the codec I need to use based on file data
[15:52:27 CET] <funnybunny2> I need the right input to avcodec_find_decoder
[15:53:57 CET] <funnybunny2> nvm
[15:53:59 CET] <funnybunny2> Found it
[15:57:08 CET] <DHE> funnybunny2: you can run doxygen locally and have a faster copy
[16:04:34 CET] <funnybunny2> How do I know how big of a buffer to pass to av_make_error_string
[16:04:55 CET] <funnybunny2> There should be like a MAX_ERROR_STRING constant
[16:05:21 CET] <kepstin> it's actually called AV_ERROR_MAX_STRING_SIZE
[16:05:41 CET] <faLUCE> well. this is weird: ffmpeg -i file.ts file.flac <---- the resulting flac file has a lower volume. why ?
[16:06:04 CET] <kepstin> faLUCE: is this still the ac3 stuff?
[16:06:23 CET] <kepstin> there might be some dynamic range metadata in the ac3 which your player is using but ffmpeg discards
[16:07:04 CET] <faLUCE> kepstin: yes
[16:07:10 CET] <faLUCE> kepstin: ffmpeg bug?
[16:07:37 CET] <kepstin> hmm, missing feature maybe. iirc that ac3 feature is considered optional
[16:07:59 CET] <kepstin> it's decoding the audio correctly, and you can manually adjust the volume before re-encoding if you prefer :/
[16:08:22 CET] <faLUCE> kepstin: I'm feared it messes up channels
[16:08:23 CET] <funnybunny2> kepstin: Oh. Sorry. I didn't see it
[16:08:25 CET] <faLUCE> volumes
[16:09:22 CET] <faLUCE> kepstin: I mean: I could set the output volume when producing the file... but what if it messes up all the volumes?
[16:10:08 CET] <kepstin> faLUCE: why are you re-encoding the audio anyways instead of just copying it?
[16:10:23 CET] <faLUCE> kepstin: I need to modify it in some points
[16:10:44 CET] <faLUCE> kepstin: the same problem occurs if I open the file with audacity
[16:10:54 CET] <faLUCE> and even with another audio editor (ocenaudio)
[16:11:08 CET] <faLUCE> it shows the ts file with low volume
[16:11:13 CET] <kepstin> most of those probably use the ffmpeg ac3 decoder, so yeah
[16:11:19 CET] <faLUCE> exactly
[16:11:58 CET] <faLUCE> kepstin: I wonder if is there a version of ffmpeg that fixes this
[16:12:31 CET] <faLUCE> I use 4.1
[16:12:44 CET] <kepstin> nothing's changed regarding the ac3 decoder in years afaik.
[16:12:48 CET] <kepstin> since it works fine
[16:13:03 CET] <faLUCE> damn
[16:13:58 CET] <faLUCE> kepstin: a workaround would be knowing the maximum volume for each track
[16:14:10 CET] <faLUCE> so I can normalize them in the editor
[16:14:12 CET] <kepstin> the relative levels of each track should be correct
[16:14:32 CET] <faLUCE> kepstin: are you sure that the relative levels are correct? It can mess up all
[16:14:46 CET] <faLUCE> I don't thrust on that
[16:15:05 CET] <kepstin> note that in most ac3 tracks, at least for movies and whatnot, the front center channel typically has most of the energy. Also the lfe channel is at a higher gain than the others iirc.
[16:16:34 CET] <faLUCE> kepstin: I don't understand if with ffmpeg -i file.ts file.flac ffmpeg lowers the volume for all the tracks or downmixes them
[16:16:50 CET] <faLUCE> if it downmixes, then the relative volumes are different
[16:17:20 CET] <kepstin> it doesn't lower the gains, it leaves them as-is. I can't tell if it's downmixing or not unless you show more output, but since flac can handle 5.1 it's probably not.
[16:17:59 CET] <faLUCE> what kind of output do you need?
[16:18:07 CET] <kepstin> everything's working fine, don't worry about it, turn up the volume knob in your player (or use the volume filter in ffmpeg) if you want it louder.
[16:19:18 CET] <faLUCE> kepstin: I have to do many modifications. I want to be really sure
[16:24:44 CET] <funnybunny2> Is there a page at https://www.ffmpeg.org/doxygen/trunk/modules.html which just lists all the API functions?
[16:24:56 CET] <funnybunny2> I have to keep guessing which page the function is on
[16:29:47 CET] <cre8radix> Ahoy
[16:29:55 CET] <faLUCE> kepstin: I just verified that it's something more than a volume problem. I played both the files (ac3 and flac) and recorded the waveform with audacity when playing. If I normalize the flac waveform to the same level of the ac3 waveform, they are still very different
[16:30:33 CET] <kepstin> what player are you using, anyways?
[16:30:39 CET] <faLUCE> kepstin: mpv
[16:30:54 CET] <kepstin> huh, that should also be using the ffmpeg ac3 decoder
[16:31:47 CET] <faLUCE> this is bad :-(
[16:33:05 CET] <kepstin> i suspect that by default mpv is downmixing the 5.1, unless you've explicitly configured it to use multi-channel output. But i'd expect it to use the same downmix when playing ac3 or flac, huh.
[16:33:41 CET] <kepstin> i wonder if they just have an automatic volume boost on ac3 to compensate for it usually being quiet
[16:34:44 CET] <cre8radix> Hey kepstin
[16:34:54 CET] <faLUCE> kepstin: wait: if I play both of them with ffplay or mplayer they are the same
[16:35:17 CET] <kepstin> faLUCE: as i said, it's the player that's increasing the volume on the ac3.
[16:35:28 CET] <kepstin> i still have no idea why it's doing that.
[16:35:55 CET] <faLUCE> kepstin: not only it's increasing, but it is changing the relative levels
[16:37:07 CET] <kepstin> i suspect mpv is using a different value for the -drc_scale option to the ac3 decoder
[16:37:23 CET] <kepstin> ffmpeg's default is 1, but i think mpv is using something different
[16:37:36 CET] <kepstin> looks like mpv might be using 0 instead
[16:38:09 CET] <faLUCE> kepstin: file1.ts is not produced by ffmpeg, while file1.flac is made with ffmpeg
[16:38:26 CET] <faLUCE> now: file1.ts is played differently by ffplay and mpv
[16:38:38 CET] <kepstin> I have just explained why.
[16:38:39 CET] <faLUCE> while file1.flac is played the same
[16:39:12 CET] <faLUCE> kepstin: do you mean that -drc_scale is not set in file1.ts ?
[16:39:33 CET] <kepstin> that's a decoder option
[16:39:45 CET] <kepstin> it's set to a different value in mpv vs. in ffmpeg cli tool by default
[16:42:06 CET] <faLUCE> let me try by setting drc_scale in the playback
[16:42:17 CET] <kepstin> alternately, you can use the --ad-lavc-ac3drc=1 option to mpv
[16:42:26 CET] <kepstin> which makes it match ffmpeg
[16:43:35 CET] <kepstin> but yeah, if you want to decode without dynamic range compression applied, then you have to use the `-drc_scale 0` input (decoder) option in ffmpeg.
[16:44:01 CET] <kepstin> you lose the drc metadata when transcoding, of course, so you can't get it back later if you want it.
[16:44:52 CET] <faLUCE> kepstin: you were right. I just verified
[16:44:55 CET] <kepstin> note that the ac3 spec requires that drc is enabled by default, so mpv's behaviour is technically noncompliant.
[16:45:30 CET] <kepstin> but disabling drc may sound better on a high end audio system that can reproduce lots of dynamic range.
[16:46:44 CET] <faLUCE> kepstin: can I set drc_scale to 0 without re-encoding, on ffmpeg ?
[16:47:03 CET] <faLUCE> -acodec copy ?
[16:47:10 CET] <kepstin> that's a decoder setting, it applies to the decoder, when decoding.
[16:47:17 CET] <kepstin> so unless you decode it does nothing
[16:48:18 CET] <kepstin> that said, it's theoretically possible for someone to write a bsf that strips the drc metadata from the ac3, so that the drc option does nothing. but such a bsf doesn't exist in ffmpeg.
[16:48:41 CET] <faLUCE> kepstin: are you sure there's not a flag in the ac3 metadata? If I create an ac3 with audacity, even mpv seems to set drc_scale to 1
[16:48:59 CET] <pink_mist> bsf? *guessing* bitstream filter?
[16:49:09 CET] <kepstin> when you encode a new ac3 file, it doesn't have any drc metadata
[16:49:21 CET] <kepstin> the drc metadata is only added by proprietary encoders
[16:49:27 CET] <kepstin> pink_mist: yes
[16:49:40 CET] <pink_mist> thanks
[16:49:58 CET] <faLUCE> kepstin: in fact the original ac3 file is not made with ffmpeg
[16:50:17 CET] <faLUCE> kepstin: then, in the original ac3 file there should be a drc metadata
[16:50:22 CET] <faLUCE> how can I check it?
[16:50:44 CET] <kepstin> faLUCE: if setting the -drc_scale option to 0 vs 1 makes different output, then the file has drc metadata
[16:50:57 CET] <kepstin> if the output is the same, then there is no drc metadata
[16:51:22 CET] <faLUCE> kepstin: so it's not only a decoder setting
[16:51:46 CET] <kepstin> whether the drc metadata is used is a decoder setting
[16:52:03 CET] <faLUCE> ok, but I have to add to the file
[16:52:08 CET] <faLUCE> ok, but I have to add it to the file
[16:52:10 CET] <kepstin> that's what the -drc_scale option is - if set to 0 it means "do not use drc metadata", other values mean "do use it"
[16:52:28 CET] <faLUCE> ok, now I see
[16:52:42 CET] <faLUCE> so: is it possible to set drc metadata with ffmpeg ?
[16:52:45 CET] <kepstin> no
[16:52:54 CET] <faLUCE> why not?
[16:53:50 CET] <kepstin> well, actually, the answer is "technically yes, if you calculate the values yourself and write a custom tool using ffmpeg apis"
[16:54:08 CET] <kepstin> ffmpeg doesn't contain any code to calculate values to use in the metadata.
[16:54:47 CET] <faLUCE> kepstin: I want to use the same metadata of file-original.ts on file-made-with-ffmpeg.ts
[16:55:11 CET] <faLUCE> is there a program with which I can do that?
[16:55:32 CET] <kepstin> faLUCE: not possible with any tools I know of unless you do the edits without re-encoding (on frame boundaries), which might lead to audio discontinuities :/
[16:56:47 CET] <faLUCE> kepstin: but is this metadata a header at the beginning of the file?
[16:57:38 CET] <kepstin> i'd have to check, but i think it's per-frame.
[16:58:00 CET] <kepstin> since it has to specify for different parts of the audio whether they should be made louder or quieter
[16:59:12 CET] <faLUCE> kepstin: then it could be that mpv enables and disables it depending on the current frame
[16:59:34 CET] <kepstin> no, the decoder option is either "use metadata" or "don't use metadata"
[17:00:00 CET] <kepstin> the metadata then says "adjust the playback level of this frame X louder/quieter"
[17:00:13 CET] <kepstin> or i suppose it can say "don't adjust" too :)
[17:00:17 CET] <cre8radix> your guess from last night& the original was a 21:9 aspect ratio anamorphic widescreen
[17:02:08 CET] <faLUCE> kepstin: then mpv plays the file louder because it ignores all the drc metadata by default, right ?
[17:02:17 CET] <kepstin> hmm, apparently the drc stuff is actually determined based off the dialog level metadata, actually
[17:02:23 CET] <kepstin> interesting
[17:02:31 CET] Action: kepstin found https://www.dolby.com/us/en/technologies/a-guide-to-dolby-metadata.pdf which explains a bit
[17:04:29 CET] <kepstin> dialogue level might actually be a clobal level, but it looks like it can also be set per-frame
[17:04:35 CET] <kepstin> that said, i don't know how to set it
[17:06:05 CET] <faLUCE> kepstin: ffmpeg -i file.ts file2.ts <--- file2.ts sounds at lower volume with mpv too
[17:06:35 CET] <kepstin> faLUCE: and the reason for that is obvious.
[17:06:53 CET] <faLUCE> kepstin: if I add --acodec copy, the volume with mpv is higher
[17:07:06 CET] <kepstin> yes, exactly.
[17:07:53 CET] <faLUCE> kepstin: but you told that mpv uses a default to 0. then, why on the re-encoded file this default is not 0 ?
[17:08:05 CET] <kepstin> because the ffmpeg default is 1
[17:08:17 CET] <kepstin> so when you re-encode with ffmpeg, it decodes with the drc applied
[17:08:50 CET] <faLUCE> kepstin: then it means that mpv is not using a default
[17:08:55 CET] <faLUCE> but it's reading the metadata
[17:09:03 CET] <kepstin> mpv uses a different default from ffmpeg
[17:09:52 CET] <faLUCE> sorry I don't understand. What is the drc metadata of file-original.ts ?
[17:09:55 CET] <kepstin> when you run "ffmpeg -i file.ts file2.ts", ffmpeg decodes the ac3 with drc applied, then encodes a new audio track to mp2 without any drc metadata
[17:10:24 CET] <faLUCE> ah sorry
[17:10:55 CET] <kepstin> when you run "ffmpeg -i file.ts -c copy file2.ts", ffmpeg copies the ac3 from the input to output, preserving drc metadata
[17:12:19 CET] <faLUCE> ok, now I tried ffmpeg -i file.ts -c ac3 file2.ts <---- file2.ts is played by mpv at a lowe volume
[17:12:35 CET] <kepstin> yes, of course
[17:12:51 CET] <kepstin> take my previous chat message and replace "mp2" with "ac3"
[17:13:32 CET] <faLUCE> I'm confused, sorry. you told that mpv uses a default = 0 for drc metadata of file.ts
[17:13:45 CET] <kepstin> that's why it plays back the original file louder
[17:14:02 CET] <kepstin> mpv uses a default of 0 for the -drc_level option on the ac3 decoder
[17:14:03 CET] <faLUCE> now, given that I play file.ts loudly, this means that this file DOESN'T have drc metadata set
[17:14:15 CET] <faLUCE> right?
[17:14:16 CET] <kepstin> no, it means that the drc metadata was not used
[17:15:10 CET] <faLUCE> <kepstin> no, it means that the drc metadata was not used <--- in this case, mpv should play loudly also file2.ts (file encoded with -c ac3)
[17:15:14 CET] <kepstin> if you do "ffmpeg -drc_scale 0 -i file.ts -c ac3 file2.ts" it will be loud, because then ffmpeg decodes the ac3 with drc ignored, then encodes a new audio track to mp2 without any drc metadata
[17:15:31 CET] <kepstin> the drc was applied when *ffmpeg decoded the audio*
[17:15:38 CET] <kepstin> which is why it's quiet
[17:15:46 CET] <pink_mist> faLUCE: no, because that file was encoded from already-metadata-altered decoded audio
[17:16:48 CET] <kepstin> alternately if you do `mpv --ad-lavc-ac3drc=1 file.ts` it will be quieter
[17:19:08 CET] <kepstin> anyways, if you're gonna be editing the audio after decoding, then you need to choose whether or not to apply drc during decoding, since you won't be able to put the required meta info back later.
[17:19:40 CET] <kepstin> with any tools that i know of - it is in theory possible of course.
[17:20:22 CET] <kepstin> (and if you were going to put the meta info back, then you want to make sure you do all editing on the audio *without drc applied*)
[17:20:39 CET] <kepstin> i.e. with the -drc_scale 0 option to ffmpeg
[17:22:27 CET] <faLUCE> sorry, I really don't get it. let's call the files: file-orig.ts, file-copied.ts, file-reencoded.ts .
[17:23:15 CET] <faLUCE> now, when I play file-orig.ts with mpv, does it ignore metadata, right?
[17:23:24 CET] <pink_mist> no difference between file-orig and file-copied. file-reencoded will play lower by mpv than the other two
[17:23:40 CET] <pink_mist> right
[17:24:05 CET] <faLUCE> ok, now: why does it choose to ignore that metadata?
[17:24:33 CET] <pink_mist> because that's how the authors of mpv decided to write their code
[17:25:07 CET] <faLUCE> well, now: if this is true, then it should ignore metadata also for file-reencoded.ts, right?
[17:25:17 CET] <kepstin> no, because the reencoded file has no metadata
[17:25:20 CET] <pink_mist> file-reencoded doesn't have metadata
[17:25:22 CET] <pink_mist> but yes
[17:25:27 CET] <pink_mist> it would ignore it if it had any
[17:25:32 CET] <kepstin> ffmpeg has already applied the metadata when decoding, before re-encoding
[17:27:23 CET] <faLUCE> kepstin: pink_mist: so, "ffmpeg -drc_scale 0 -i file.ts -c ac3 file2.ts" (as kepstin suggested) is the way to produce an encoded file which will sound louder with mpv
[17:27:50 CET] <pink_mist> yes, that makes ffmpeg ignore the metadata too
[17:27:57 CET] <kepstin> yes, but in that file you can't use the `mpv --ad-lavc-ac3drc=1` command to play it back quietly
[17:28:02 CET] <kepstin> because there's no metadata
[17:28:16 CET] <faLUCE> [17:27] <kepstin> yes, but in that file you can't use the `mpv --ad-lavc-ac3drc=1` command to play it back quietly <--- yes, I get this
[17:28:30 CET] <faLUCE> ok, many thanks. now, to be sure for all
[17:28:40 CET] <faLUCE> I should find an ac3 parser
[17:30:58 CET] <faLUCE> well, all is clear, now
[17:33:34 CET] <faLUCE> so, drc_scale is set on the metadata in order to make sure that poor systems can play the file without having bad sounds. But if you have a good system, you can disable it on the decoder, right?
[17:34:20 CET] <pink_mist> sounds right
[17:34:28 CET] <kepstin> "drc_scale" is not the name of any particular metadata, but there is metadata that's used by the drc function
[17:34:52 CET] <kepstin> drc_scale is the name of the ffmpeg decoder option that decides whether to use the metadata, and how strong of an effect to apply
[17:35:54 CET] <kepstin> the dolby document I linked provides more details, apparently the actual metadata used is the dialogue level and a drc profile selection.
[17:36:02 CET] <faLUCE> now, given that, the only
[17:36:22 CET] <faLUCE> ......sorry
[17:37:15 CET] <faLUCE> now, given that, there's no way to re-encode with same metadata on audacity
[17:37:37 CET] <kepstin> no, since after it decodes to pcm, the metadata is lost/forgotten
[17:38:16 CET] <kepstin> audacity also doesn't allow you to configure the -drc_scale option, so it probably defaults to always applying drc.
[17:38:49 CET] <kepstin> (if you don't want that, you should decode with ffmpeg to a different format before importing to audacity)
[17:40:10 CET] <faLUCE> kepstin: yes, right. I only could work-around by importing a file to audacity which has been decoded with drc_scale to 0
[17:40:21 CET] <faLUCE> for example, a raw file
[17:40:41 CET] <kepstin> exactly, although i'd use wav or flac or something :)
[17:41:05 CET] <faLUCE> kepstin: you can't imagine how bad this is for me that. I lost lot of work
[17:43:47 CET] <faLUCE> now, to understand better: does drc_scale = 0 mean "more dynamic variations?" for example, a sound which changes suddenly from quiet to loud ?
[17:45:20 CET] <kepstin> drc_scale = 0 means "don't apply any dynamic range reduction", so in most audio that will be the case, yeah
[17:45:43 CET] <kepstin> in particular, it makes sound that's significantly louder or quieter than the dialogue level closer to the dialogue level
[17:46:05 CET] <kepstin> if drc is applied, it makes sound [...]
[17:47:14 CET] <faLUCE> in classical orchestral music enhancing the dynamic variations (drc_scale = 0) is more important than enhancing soft sounds (drc_scale = 1)
[17:47:33 CET] <faLUCE> for chamber music, instead, is important the opposite
[17:48:11 CET] <kepstin> unless you're listening on terrible speakers or in a noisy environment, in which case you'd probably have to apply drc to make the whole thing audible
[17:48:29 CET] <kepstin> doesn't matter if there's nice dynamics if you can't hear the quiet bits :)
[17:49:14 CET] <kepstin> hmm. apparently the dialogue level is normally manually set rather than calculated, according to that dolby doc. so it *might* actually be a global header thing? huh.
[17:50:23 CET] <faLUCE> kepstin: [17:49] <kepstin> hmm. apparently the dialogue level is normally manually set rather than calculated, according to that dolby doc. <--- does it mean that I could save my work?
[17:50:25 CET] <kepstin> in that case, if you can somehow find out the dialogue level from the original, you might actually be able to set it when re-encoding to ac3
[17:50:42 CET] <kepstin> wouldn't help if you've worked on stuff with drc already applied
[17:50:44 CET] <kepstin> can't undo drc
[17:52:03 CET] <faLUCE> kepstin: when I import with audacity, does it apply drc ?
[17:52:10 CET] <kepstin> yes
[17:52:16 CET] <faLUCE> I see
[17:52:18 CET] <faLUCE> no way
[17:52:26 CET] <faLUCE> I have to redo the work
[17:52:27 CET] <kepstin> (almost certainly, since it uses ffmpeg's ac3 decoder, and that defaults to applying drc)
[17:55:33 CET] <faLUCE> so, other than drc_scale, are there metadata options that can improve the quality for good systems?
[18:08:42 CET] Action: kepstin took a poke into ffmpeg's ac3 encoder, and it doesn't support writing the per-block information about dynamic range used by the drc stuff.
[18:21:18 CET] <capin> hello, i'm having difficulty recording both my screen and mic at the same time, when recording just the screen or mic independentaly there isn't an issue.
[18:21:21 CET] <capin> https://gist.github.com/ipatch/8c7dbbcac37ba07b1f46f662921881a2
[18:23:54 CET] <friendofafriend> capin: Maybe ffprobe -v verbose -i "exp27-stock-settings.mkv" and post to a pastebin?
[18:26:15 CET] <capin> friendofafriend: added output of ffprobe to gist
[18:28:58 CET] <friendofafriend> capin: Cool, that shows an audio and a video stream in the output.
[18:31:54 CET] <BeerLover> Why is this command: https://0x0.st/zI4x.txt wrong? The output: https://0x0.st/zI43.txt
[18:35:27 CET] <kepstin> BeerLover: I'd have to check the specs to confirm either way, but i suspect the issue might be that the names can't start with a digit since they might be confused with indexes.
[18:36:55 CET] <BeerLover> kepstin they can contain name. ffmpeg on mac os does this fine
[18:37:27 CET] <furq> https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/hlsenc.c#L1969
[18:37:57 CET] <furq> it's complaining about "name:320k", not the actual name
[18:37:59 CET] <furq> idk why though
[18:38:14 CET] <furq> in any event that whole -var_stream_map argument needs to be quoted
[18:38:53 CET] <kepstin> huh, that's really weird. are there any special characters snuck in there somewhere that make it fail to parse, maybe?
[18:39:13 CET] <furq> yeah maybe retype it
[18:39:22 CET] <furq> since you were having some kind of formatted text issue earlier with em dashes
[18:41:42 CET] <kepstin> but yeah, the command as shown in your paste obviously isn't the command as-run, since there's no quoting on the argument containing spaces.
[18:42:20 CET] <kepstin> although if you're running it from a script, it's possible that there was quoting that just didn't get preserved when you printed the command line.
[18:43:08 CET] <BeerLover> kepstin this is happening with my compiled version of ffmpeg (with libfdk_aac)
[18:43:29 CET] <BeerLover> even when I just use -c:a aac, it gives that erroorr
[18:44:20 CET] <kepstin> the error is in the -var_stream_map parameter, not the codec selection
[18:44:57 CET] <kepstin> and your command line paste doesn't match your output, so we can't help debug it further :/
[18:45:15 CET] <BeerLover> What can I paste?
[18:45:41 CET] <kepstin> the exact command line as you ran it copy/pasted out of the terminal, preferably.
[18:46:21 CET] <kepstin> along with the output from the same command line
[18:46:40 CET] <BeerLover> https://dpaste.de/1dcv/raw
[18:47:23 CET] <kepstin> BeerLover: ok, put that in your terminal, hit enter to run it, then include both the command line and the output it produces
[18:47:46 CET] <BeerLover> https://0x0.st/zI40.txt Works
[18:48:03 CET] <BeerLover> https://0x0.st/zI4G.txt Doesn't work
[18:48:21 CET] <BeerLover> works is the installed ffmpeg one
[18:48:33 CET] <BeerLover> the static compiled gives errorr
[18:48:35 CET] <furq> ffmpeg version 87201e0 Copyright (c) 2000-2018 the FFmpeg developers
[18:48:41 CET] <furq> why did you build such an old version
[18:49:23 CET] <BeerLover> furq I used this: https://github.com/zimbatm/ffmpeg-static
[18:49:45 CET] <furq> well yeah that option probably doesn't work as documented in a version from a year ago
[18:49:50 CET] <BeerLover> didn't know how to build it
[18:50:26 CET] <BeerLover> i want to build a static binary with all the libs enabled non free as well
[18:51:23 CET] <kepstin> hmm, that scripts hardcoded to use ffmpeg 4.0 downloaded via the tag from github. that's kinda weird, why isn't it at least using a release tarball so it gets the version number right :/
[18:52:58 CET] <kepstin> but yeah, support for "name:" (and a few other things) weren't added until a later release.
[18:54:06 CET] <BeerLover> if i just ./configure with --enable-libfdk-aac
[18:54:17 CET] <BeerLover> will it enable the default flags?
[18:56:11 CET] <kepstin> the default is to have most external libraries disabled, so you'll probably also want to enable libx264, libvpx, and whatever else you might be using.
[18:56:38 CET] <kepstin> you can copy/paste the enable stuff from that build.sh script if you like, it looks mostly ok.
[18:58:23 CET] <BeerLover> ERROR: libass not found using pkg-config
[18:58:26 CET] <BeerLover> kepstin
[18:58:32 CET] <BeerLover> but it is installed
[18:59:04 CET] <BeerLover> https://0x0.st/zI47.txt
[18:59:07 CET] <BeerLover> using this
[18:59:52 CET] <kepstin> you need to make sure the pkgconfig files for the installed libs are in somewhere that pkg-config looks, possibly by setting PKG_CONFIG_PATH if they're in an unusual spot.
[19:11:40 CET] <montana> Psnr or Psychovisual : what is the difference
[19:23:59 CET] <kepstin> psnr is a simple calculation of how much of the "signal" (desired output) there is compared to "noise" (stuff that doesn't match the desired output)
[19:24:51 CET] <kepstin> but that doesn't match how our brains work for video quality, so "psycovisual" refers to any optimizations that try to better match how the human vision system works.
[19:25:10 CET] <kepstin> which might in some cases cause psnr to be worse, even tho the picture looks better to people
[20:05:29 CET] <shibboleth> will i have to run ffmpeg and xorg as the same users for hwaccel?
[20:07:12 CET] <Mavrik> xorg doesn't matter really
[20:11:14 CET] <pink_mist> not even if xorg is hogging the hwaccel? can ffmpeg under a different user coexist in the hwaccel parts?
[20:16:46 CET] <kepstin> for the open-source drivers, most of the hwaccel stuff in ffmpeg access the "render" drm devices directly without any interaction with X, so as long as you have the right permissions on the devices it should be fine. And those devices are world-writable in most distro configs, i think.
[22:08:56 CET] <void09> why would this result in a corrupted video ? mpv does not play it, vlc plays only audio . ffmpeg -i "inputvideo.mkv" -bsf:v h264_metadata=delete_filler=1,extract_extradata=remove=1 -vcodec copy -acodec copy outputvideo.mkv
[22:10:55 CET] <void09> JEEB: ? :P
[22:12:45 CET] <shibboleth> thanks
[22:13:09 CET] <kepstin> void09: you could narrow it down to which one of those two bsfs is responsible
[22:13:25 CET] <kepstin> (or does it only become unplayable if you use both?)
[22:13:29 CET] <void09> kepstin: i ran the same command on the .ts equivalent and it produced a good file
[22:13:44 CET] <void09> reason i do, is cause it's bloated, file is 7.1gb, using that becomes 3.1GB
[22:13:45 CET] <kepstin> different containers work differently
[22:14:06 CET] <void09> but this is a different copy and i do not have the .ts anymore.. and i get this bad file :(
[22:14:15 CET] <void09> ok i will narrow it down i guess
[22:20:46 CET] <void09> how do i run just hte second option kepstin ? -bsf:v h264_metadata=extract_extradata=remove=1
[22:20:58 CET] <void09> 0] Option 'extract_extradata' not found
[22:22:06 CET] <void09> running with just delete_filler strips the junk and produces a working file, it was the extract_extradata that screwed it. but how to run that one by itself ?
[22:22:10 CET] <void09> just to test
[22:25:18 CET] <void09> ffmpeg -i "outputvideo_delete_filler.mkv" -bsf:v h264_metadata=,extract_extradata=remove=1 -vcodec copy -acodec copy outputvideo_final.mkv
[22:25:22 CET] <void09> this worked, accidentally
[22:25:31 CET] <void09> produces unplayable file
[22:26:00 CET] <kepstin> void09: you have two different bsfs, separated by a comma
[22:26:16 CET] <kepstin> remove one of them (and the comma)
[22:26:36 CET] <void09> gnn
[22:27:02 CET] <kepstin> pretty much the same syntax as filters.
[22:27:03 CET] <void09> h264_metadata=delete_filler=1,extract_extradata=remove=1
[22:27:25 CET] <void09> h264_metadata=,extract_extradata=remove=1
[22:27:27 CET] <void09> this worked
[22:27:31 CET] <void09> h264_metadata=extract_extradata=remove=1
[22:27:33 CET] <void09> this didn't
[22:27:55 CET] <void09> does that makes any sense?
[22:27:59 CET] <kepstin> please go and re-read what i just said
[22:28:18 CET] <void09> I just did
[22:28:25 CET] <void09> ohh
[22:28:27 CET] <kepstin> then stop, and think about it for a bit. maybe reference some documentation.
[22:28:49 CET] <void09> i thought they were both h264 metadata options
[22:29:02 CET] <kepstin> options are separated by :
[22:29:06 CET] <kepstin> filters are separated by ,
[22:30:36 CET] <void09> ok but this is still confusing:
[22:30:58 CET] <void09> ffmpeg -i "outputvideo_delete_filler.mkv" -bsf:v h264_metadata=,extract_extradata=remove=1 -vcodec copy -acodec copy outputvideo_final.mkv - this works and produces a file 600k smaller
[22:31:40 CET] <kepstin> so that's running the h264_metadata filter with no options, i dunno what it does then? nothing? and then the extract_extradata filter.
[22:31:55 CET] <void09> ffmpeg -i "outputvideo_delete_filler.mkv" -bsf:v extract_extradata=remove=1 -vcodec copy -acodec copy outputvideo_final.mkv - this works with a ton of errors ([AVBSFContext @ 0x55a41fd8f700] No start code is found.) and produces just audio
[22:34:10 CET] <JEEB> sounds like it cannot find a H.264/HEVC bit stream start code
[22:34:42 CET] <JEEB> not sure those bsfs work with non-annex b
[22:34:46 CET] <JEEB> might want to check up on that
[22:35:03 CET] <void09> I do not have the original .ts to test on, but i always used those options you gave me JEEB, on .ts inputs, and no issues so far
[22:35:07 CET] <JEEB> if they don't, there's a bsf that converts avcC and hevcC to Annex B
[22:35:13 CET] <JEEB> .ts is annex b
[22:35:23 CET] <JEEB> that's why I noted that you should check if that bsf supports non-annex b
[22:35:37 CET] <void09> issue came now with using .mkv as input
[22:35:46 CET] <void09> I have no idea what you're talking about :(
[22:36:28 CET] <JEEB> avcC and hvcC are generally utilized in mp4/mkv
[22:36:30 CET] <JEEB> :P
[22:36:40 CET] <JEEB> it's the way in which H.264 and HEVC packets are packaged
[22:36:56 CET] <JEEB> annex b has either 0x00 00 00 01 or 0x00 00 01 in front and no length
[22:37:07 CET] <void09> which is smaller ?
[22:37:09 CET] <JEEB> avcC/hvcC have <LENGTH><DATA>
[22:37:31 CET] <nicolas17> that can't possibly cause a 50% file size difference o.O
[22:37:41 CET] <JEEB> void09: literally the same size
[22:37:58 CET] <void09> nicolas17: the recording i have has a lot of.. h264 padding I suppose
[22:37:59 CET] <JEEB> since 99% of all cases the size length of a packet is 4 bytes so (Ž4@)
[22:38:53 CET] <kepstin> padding is common in streams for tv broadcast, because broadcast is a fixed bitrate, so if the video is smaller it has to be padded to fill up the space.
[22:39:02 CET] <JEEB> anyways, if the BSF for filtering only works with annex b, use h264_mp4toannexb or hevc_mp4toannexb
[22:39:04 CET] <kepstin> basically not seen anywhere else tho, as far as i know?
[22:39:23 CET] <JEEB> kepstin: generally that's on the container level, although you can fill the video stream with garbage as well indeed
[22:39:39 CET] <JEEB> (x264 can do that too with the nal-hrd cbr mode)
[22:39:42 CET] <void09> this is the only station where I managed to produce this difference
[22:39:47 CET] <montana> Psnr or Psychovisual : what is the difference
[22:40:00 CET] <kepstin> montana: i helpfully explained that for you the last time you asked.
[22:40:04 CET] <void09> the rest just use higher bitrate
[22:40:44 CET] <kepstin> if another station uses container-level padding instead of codec level, it's likely just dropped on remuxing no bsfs needed.
[22:41:13 CET] <void09> yeah i know
[22:41:24 CET] <void09> but I'd rather use that line just to be sure
[22:41:31 CET] <void09> any more slimming down tricks you knwo of ? :)
[22:41:54 CET] <montana> kepstin sorry i missed it: (just scolled up and read it)
[22:42:08 CET] <montana> kepstin why would anybody use psnr then?
[22:45:03 CET] <kepstin> psnr is fast to calculate, i guess.
[22:45:59 CET] <void09> JEEB: so what do you suggest I do, I kind of missed the point
[22:46:40 CET] <montana> kepstin i also see ssim and grain
[22:46:53 CET] <kepstin> montana: ah, you're talking about x264 tune values?
[22:46:58 CET] <JEEB> void09: for non-annex b input (not mpeg-ts, AVI or raw H.264), use those two bsfs (one for h264, one for hevc) to convert the bit stream to annex b first :P
[22:47:02 CET] <JEEB> then use the rest
[22:47:06 CET] <montana> kepstin yes
[22:47:16 CET] <kepstin> montana: unless you have special circumstances where you know a specific tune helps, do not set anything.
[22:47:45 CET] <void09> JEEB: sorry I still don't get it
[22:47:53 CET] <kepstin> montana: the "psnr" and "ssim" tunes are only for if you're doing codec testing using psnr or ssim measurements, and should not be used for normal encodes.
[22:48:16 CET] <void09> h264_mp4toannexb or hevc_mp4toannexb
[22:48:17 CET] <void09> these ?
[22:48:19 CET] <nicolas17> https://trac.ffmpeg.org/wiki/Encode/H.264#Tune
[22:48:37 CET] <nicolas17> they're all very specialized
[22:49:38 CET] <montana> nicolas17 i see, how come i don't see "psychovisual" in that tune list
[22:49:59 CET] <nicolas17> what would that do?
[22:50:15 CET] <montana> use psychovisual
[22:50:22 CET] <kepstin> montana: because that's not the name of a tune, psychovisual optimization is the default and is controlled via other options
[22:50:32 CET] <montana> oh ok
[22:50:43 CET] <kepstin> note that the psnr and ssim tunes *disable* psychovisual optimization.
[22:51:33 CET] <montana> but can an average person even tell the difference between "psnr encodes" vs "ssim encodes" vs "psychovisual encodes"
[22:52:01 CET] <kepstin> if you look at the list of tunes in x264 --fullhelp, some of them are labelled "psy" tunes, those adjust the psychovisual optimization settings. the main reason they're labelled is so you know which ones can't be combined.
[22:52:31 CET] <kepstin> you can only have one "psy" tune active at a time.
[22:52:34 CET] <nicolas17> montana: more likely on lower bitrates I guess
[22:52:55 CET] <montana> nicolas17 you would able to tell the difference on "lower bitrate examples"?
[22:53:45 CET] <nicolas17> well, if the bitrate is high enough, everything looks "identical" to the source to the human eye
[23:02:44 CET] <montana> nicolas17 i see
[23:04:15 CET] <void09> JEEB: h264_mp4toannexb works on mkv input ?
[23:05:35 CET] <JEEB> it should work in general, except for those nonstandard files where someone stuck annex b into mkv/mp4
[23:06:03 CET] <JEEB> matroska and mp4 share the way H.264 and HEVC are packaged into them :P
[23:06:10 CET] <void09> i get a Unknown bitstream filter h264_mp4toannex
[23:06:19 CET] <void09> -codec copy -bsf:v h264_mp4toannex= output.ts
[23:06:23 CET] <void09> without the =
[23:06:34 CET] <JEEB> check the name :P
[23:06:44 CET] <void09> i copied it from the docs
[23:06:59 CET] <void09> oh b
[23:07:00 CET] <JEEB> you just said it correctly on IRC, yet the command you noted has it incorrect
[23:07:26 CET] <void09> man i wish there was a ffmpeg university
[23:07:28 CET] <void09> i'd so sign up
[23:09:35 CET] <void09> yeay that worked JEEB : D
[23:10:21 CET] <void09> can you tldr everything so i make sure i understand.. the original input mkv file had an incorrect .. annex type ?
[23:10:34 CET] <JEEB> it has correct type for that
[23:10:50 CET] <JEEB> the bit stream filter has been made for the other packaging type for the packets
[23:11:00 CET] <void09> so why would i need to conver to annex_b and ts before I can strip it without errors?
[23:11:08 CET] <JEEB> because the bit stream filter requires that
[23:11:26 CET] <JEEB> if you make the bit stream filter work without it, that would make it not need that step :P
[23:11:49 CET] <void09> right.. although I am pretty sure i ran that command on an mkv before and it did not screw it up
[23:11:51 CET] <JEEB> I would guess that it is because the primary use case for such a filter was for raw H.264 (which is annex b)
[23:12:15 CET] <JEEB> (or MPEG-TS, which packages annex b in the streams)
[23:12:18 CET] <nicolas17> I guess mkv can hold either type?
[23:12:28 CET] <JEEB> it is standardized on the mp4 way
[23:12:38 CET] <JEEB> you will find mp4 and mkv files which will contain annex b, though
[23:12:40 CET] <JEEB> because of course
[23:12:52 CET] <nicolas17> if anything can be done two ways, it will be done both ways in the wild
[23:13:02 CET] <JEEB> yes
[23:13:08 CET] <nicolas17> from byte endianness to book spine orientation
[23:13:19 CET] <JEEB> which is why the decoder/parser parts support both
[23:17:17 CET] <void09> how can ic check which type a file has ?
[00:00:00 CET] --- Wed Nov 27 2019
1
0
[01:17:21 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:e21ec54fdf95: tools/target_dec_fuzzer: Adjust threshold for VP9
[01:17:22 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:327a968817a3: avcodec/cngdec: Remove AV_CODEC_CAP_DELAY
[01:17:23 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:6014bcf1b74e: avutil/lfg: Correct index increment type to avoid undefined behavior
[01:17:24 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:5634e2052533: avcodec/rawdec: Check bits_per_coded_sample more pedantically for 16bit cases
[01:17:25 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:cf323f4d38f5: avcodec/wmavoice: Fix integer overflow in synth_frame()
[01:17:26 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:1138cdecbe01: avcodec/nuv: Move comptype check up
[01:17:27 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:75b64e5aa36e: avcodec/mxpegdec: Check for multiple SOF
[01:17:28 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:bf9c4a12750e: avcodec/g729dec: Use 64bit and clip in scalar product
[01:17:29 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:721624c2f675: avcodec/ralf: Fix integer overflows with the filter coefficient in decode_channel()
[01:17:30 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:d82ab96e76bf: avcodec/ffwavesynth: Fix integer overflow with pink_ts_cur/next
[01:17:31 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:3e5a528bbe85: avformat/vividas: Check and require 1 video stream
[01:17:32 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:d83002179fb3: avformat/vividas: Error out on audio packets in the absence of audio streams
[01:17:33 CET] <cone-895> ffmpeg 03Michael Niedermayer 07master:1ca978d6366f: avcodec/nuv: Use ff_set_dimensions()
[04:12:54 CET] <cone-895> ffmpeg 03Steven Liu 07master:d5e3d8e2f7a5: avformat/hls: add option for the m3u8 list load max times
[09:58:11 CET] <cone-963> ffmpeg 03Limin Wang 07master:f0dbeb5eaa41: avcodec/v410dec: add support for frame and slice threading
[09:58:11 CET] <cone-963> ffmpeg 03Limin Wang 07master:d07d1c1dd065: avcodec/v210dec: add support for frame and slice threading
[11:04:05 CET] <captain-bob4> Hi team, I'm working on a new filter based off of https://github.com/nervous-systems/ffmpeg-opengl/ and I'm running into some issues. Basically everything works as long as it's part of a single input only video only filtergraph (-vf). Even if I retain all of those limitation but try to use -lavfi or -filter_complex instead, the process fails without an error.
[11:10:03 CET] <durandal_1707> captain-bob3: do not waste time on such things, proper GPU filters will come with vulkan support
[11:11:34 CET] <captain-bob4> I can't really wait for that to happen, I need this working right now and the render already works
[11:12:28 CET] <captain-bob4> I'm just missing a piece and debugging a cross compiled build on windows is way beyond my comfort zone
[11:12:50 CET] <nevcairiel> so dont cross-compile
[11:13:03 CET] <nevcairiel> i dont get why people always do that, must be the first google hit or something
[11:13:40 CET] <bencoh> or because building on windows is usually slower or sounds even more like a pain, I would say
[11:14:00 CET] <captain-bob4> This is the product requirement, the process is meant to be run on windows and building on windows was a failure
[11:15:48 CET] <nevcairiel> if you just need to compile once and have it running, using cross-compile might be easier IF you already have a cross-compile environment setup. But if you are actually actively developing a feature to run on windows and debugging, then the real pain comes from the cross-compile
[11:17:46 CET] <captain-bob4> I have the cross compliation already figured out and working pretty well, but I don't expect to make any more builds once I figure out the issue with filter_complex
[11:19:00 CET] Last message repeated 1 time(s).
[11:23:06 CET] <BradleyS> sounds like you should run with gdb and generate a backtrace for starters
[11:25:39 CET] <captain-bob4> @BradleyS thanks! I'll look into that
[11:30:03 CET] <BradleyS> should at least give you an idea where it's crashing
[12:51:04 CET] <captain-bob5> One more question if I may, I added a bazilion logs and the only callback that gets called in my filter is init (again, only when running with filter_complex). My init worked fine and returned 0, but after that nothing happens even in verbosity level trace, then almost immediately uninit is called. The process stopping is only after uninit so I figure catching whatever happens there
[12:51:04 CET] <captain-bob5> (SIGSEGV according to gdb) is already too late. Does this raise any directions I can pursure?
[15:19:08 CET] <j-b> GOod morning
[15:24:04 CET] <Lynne> cold and miserable in paris?
[15:26:28 CET] <j-b> Lynne: cold but very happy in Paris, tbh :)
[15:26:34 CET] <j-b> Is Steven on IRC?
[15:26:56 CET] <mkver> stevenliu is online.
[15:30:24 CET] <kurosu> irony
[15:30:52 CET] <kurosu> should be around midnight though, so ...
[15:32:56 CET] <JEEB> he seems to most often pop up and then get disconnected again
[15:33:02 CET] <JEEB> I am not sure if I've seen him actually talk
[15:33:24 CET] <JEEB> ok, he has indeed
[15:34:02 CET] <JEEB> ok, last time he talked was when wm4 was still visiting here
[15:34:46 CET] <JEEB> also I wonder if he just pushed a different patch than he thought in the morning? since the one I LGTM'd didn't seem to go to git?
[22:27:25 CET] <durandal_1707> 2211985
[00:00:00 CET] --- Tue Nov 26 2019
1
0
[00:38:46 CET] <Hello71> last I checked, the status of this conversation is that you were asked for your libaom version, you told us your ffmpeg version, and then you were told that that doesn't help, then you ditched
[00:38:59 CET] <Hello71> and also that "it doesn't work" is useless
[01:40:28 CET] <classsic> Hi, someone really know what mean the "-re" flag ?
[01:40:43 CET] <classsic> I read this: "-re (input)Read input at native frame rate. Mainly used to simulate a grab device, or live input stream (e.g. when reading from a file). Should not be used with actual grab devices or live input streams (where it can cause packet loss). By default ffmpeg attempts to read the input(s) as fast as possible. This option will slow down the
[01:40:43 CET] <classsic> reading of the input(s) to the native frame rate of the input(s). It is useful for real-time output (e.g. live streaming)."
[01:41:59 CET] <classsic> but iŽm not sure what mean, I need to retransmit rtsp ip camera to rtsp server like this : ffmpeg -i rtsp://.....-vcodec copy -f rtsp rtsp://...
[01:42:38 CET] <classsic> If I put the -re flag;i get smooth stream, but have a delay, if not I get choppy playback
[01:51:06 CET] <furq> classsic: don't use -re with live inputs
[01:52:24 CET] <classsic> ok, why?
[02:20:05 CET] <montana> whose fault is this? ffmpeg or libaom-av1
[02:20:09 CET] <montana> [17:02] <montana> ffmpeg -i input.mkv -c:v libaom-av1 -crf 30 -b:v 0 -c:a copy -r 5 -strict experimental output.mkv
[02:20:09 CET] <montana> [17:02] <montana> output.mkv result in 5 second video
[02:25:04 CET] <cehoyos> Your question makes no sense / complete, uncut console output missing
[02:25:26 CET] <classsic> my?
[02:26:15 CET] <montana> cehoyos what part doesn't make sense: output.mkv result in 5 second video
[02:26:29 CET] <montana> cehoyos and input.mkv is not 5 second video
[02:26:39 CET] <cehoyos> You didn't mention that
[02:26:41 CET] <cehoyos> ...
[02:26:45 CET] <montana> sorry, my bad
[02:26:50 CET] <montana> i thought it was obvious
[02:27:03 CET] <cehoyos> Like the missing complete, uncut console output?
[02:27:18 CET] <Hello71> like I said, they were already asked for that
[02:27:52 CET] <cehoyos> True
[02:28:50 CET] <montana> there is no error message
[02:28:56 CET] <montana> it encodes like everything is working
[02:29:06 CET] <cehoyos> All the better if everything is working
[02:29:21 CET] <montana> but output.mkv result in 5 second video
[02:31:06 CET] <montana> cehoyos explain why it's creating 5 second video
[02:31:16 CET] <montana> when input.mkv is 40 seconds
[02:31:43 CET] <cehoyos> Sorry, did you already provide the absolute minimum of required information? (I may have missed it, sorry if I did!)
[02:32:02 CET] <montana> ffmpeg v4.2.1
[02:32:53 CET] <cehoyos> While this version is not supported here, I did not ask for the version: What is needed for every FFmpeg-related (usage) question, is the command line you tested together with its complete, uncut console output. Sorry if I wasn't clear before.
[02:33:21 CET] <montana> no idea what you are asking
[02:33:45 CET] <cehoyos> Sorry, I am not a native speaker, I cannot explain it any better
[02:36:37 CET] <montana> cehoyos try transcoding: https://x0.at/57-.mkv to av1, does it work on your end?
[02:37:04 CET] <cehoyos> Please provide the command line you tested together with the complete, uncut console output if you need support.
[02:37:39 CET] <montana> ffmpeg -i 57-.mkv -c:v libaom-av1 -crf 30 -b:v 0 -c:a copy -r 5 -strict experimental output.mkv
[03:26:08 CET] <nicolas17> montana: what's the OUTPUT of that command
[03:26:10 CET] <nicolas17> pastebin it
[03:26:30 CET] <montana> typical encoding messages. nothing unusual
[03:26:49 CET] <pink_mist> you're not helping us help you
[03:26:51 CET] <nicolas17> sigh
[03:26:59 CET] <nicolas17> then there's nothing unusual in your problem
[03:27:17 CET] <montana> it results in 5 second video output.mkv
[03:28:07 CET] <montana> nicolas17 what happens if you type: ffmpeg -i 57-.mkv -c:v libaom-av1 -crf 30 -b:v 0 -c:a copy -r 5 -strict experimental output.mkv
[03:28:24 CET] <montana> https://x0.at/57-.mkv
[03:29:01 CET] <pink_mist> montana: why can't you just copy/paste the commandline output?
[03:29:42 CET] <montana> Output #0, matroska, to 'output.mkv':
[03:29:43 CET] <montana> Metadata:
[03:29:44 CET] <montana> encoder : Lavf58.29.100
[03:29:46 CET] <montana> Stream #0:0: Video: av1 (libaom-av1) (AV01 / 0x31305641), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 5 fps, 1k tbn, 5 tbc (default)
[03:29:46 CET] <montana> Metadata:
[03:29:47 CET] <montana> DURATION : 00:00:40.607000000
[03:29:48 CET] <montana> encoder : Lavc58.54.100 libaom-av1
[03:29:49 CET] <montana> Side data:
[03:29:50 CET] <montana> cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
[03:29:51 CET] <montana> Stream #0:1: Audio: opus ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, mono, fltp (default)
[03:29:52 CET] <montana> Metadata:
[03:29:53 CET] <montana> title : simple_aac_recording
[03:29:55 CET] <montana> DURATION : 00:00:40.541000000
[03:29:59 CET] <nicolas17> I knew this would happen
[03:31:35 CET] <cehoyos> Allow me to guess: There is no issue;-)
[03:31:54 CET] <montana> cehoyos output.mkv result in 5 second video
[03:32:00 CET] <cehoyos> I don't think so
[03:32:24 CET] <montana> what do you mean?
[03:32:41 CET] <cehoyos> That this is the first time you test the av1 encoder
[03:33:09 CET] <montana> what does that have to with anything, everybody's first should never work?
[03:33:18 CET] <cehoyos> Let
[03:33:29 CET] <cehoyos> Let's make a deal:
[03:33:47 CET] Action: SpiritHorse down
[03:33:51 CET] <montana> first time i used ffmpeg's mp3 encoder, it worked
[03:33:57 CET] <montana> first time i used ffmpeg's x264 encoder, it worked
[03:34:08 CET] <montana> first time i used ffmpeg's aac encoder, it worked
[03:34:08 CET] <cehoyos> Either you show us the complete, uncut console output of your encoding and I try to help you or you stop asking questions: Is that acceptable for you?
[03:34:17 CET] <nicolas17> and use a pastebin
[03:34:19 CET] <nicolas17> like pastebin.com
[03:35:40 CET] <montana> cehoyos i just pasted it
[03:35:44 CET] <cehoyos> No
[03:36:21 CET] <pink_mist> montana: we wanted the COMPLETE and UNCUT commandline output. what you pasted is not that.
[03:36:25 CET] <cehoyos> But as said: There is no problem if you don't want to post it, but in this case please stop asking questions (here)
[03:37:21 CET] <montana> is there way to output a complete log to a text file
[03:37:51 CET] <cehoyos> Yes, but I would slightly prefer if you only copy and paste what is shown on the console
[03:37:58 CET] <cehoyos> the option name is "-report"
[03:38:05 CET] <montana> i see, let me try
[03:42:11 CET] <montana> https://x0.at/1X2.log
[03:42:58 CET] <cehoyos> First: The FFmpeg version you are testing is old, this can make a difference in general and I am quite sure it makes a difference for av1 encoding, which is a recent encoder wrapper
[03:43:18 CET] <montana> https://x0.at/HmM.txt
[03:43:27 CET] <nicolas17> you told me to try the command myself, it has been 15 minutes and it's still running :P
[03:43:45 CET] <montana> nicolas17 wow really?
[03:44:01 CET] <nicolas17> it produced 12 seconds of video
[03:44:03 CET] <nicolas17> frame= 59 fps=0.1 q=-0.0 size= 209kB time=00:00:12.42 bitrate= 138.0kbits/s speed=0.0153x
[03:44:09 CET] <nicolas17> still going
[03:44:27 CET] <montana> did you type the exact command i typed?
[03:44:54 CET] <nicolas17> yes
[03:45:20 CET] <cehoyos> The encoder is expected to be slow (this is what you don't know because you have never tested it before)
[03:45:31 CET] <nicolas17> and your log file seems to show it produced 11.82 seconds of video
[03:45:35 CET] <cehoyos> It runs approximately at 1/100 of realtime for your input video
[03:46:09 CET] <montana> nicolas17 if i play it, it plays only 5 seconds
[03:46:18 CET] <nicolas17> did it finish?
[03:46:29 CET] <montana> finish what?
[03:46:39 CET] <nicolas17> did ffmpeg exit by itself?
[03:46:44 CET] <cehoyos> Encoding takes at least 90 minutes
[03:46:52 CET] <cehoyos> for the given input file
[03:46:58 CET] <montana> https://x0.at/-12.mkv here is output.mkv
[03:47:19 CET] <montana> nicolas17 yes
[03:48:11 CET] <nicolas17> if I try to play my output.mkv it also has like 5 seconds... but that's because ffmpeg is still running, the file is incomplete
[03:48:48 CET] <nicolas17> oh it plays 9 seconds now
[03:49:50 CET] <cehoyos> I am already at 25;-)
[03:49:57 CET] <montana> cehoyos so you are saying in av1 context 4.2.1 is old?
[03:50:20 CET] <montana> what version are you using, may i ask
[03:50:26 CET] <nicolas17> frame= 74 fps=0.1 q=-0.0 size= 297kB time=00:00:15.42 bitrate= 157.7kbits/s speed=0.013x
[03:50:41 CET] <cehoyos> No, I am saying that 4.2.1 is old and in general unsupported, for av1 this may make a bigger difference than for other use cases
[03:51:04 CET] <cehoyos> 95767 which is not completely up-to-date either but newer than your version
[03:51:23 CET] <montana> what is this then? ffmpeg version git-2019-11-23-d65aaf8
[03:51:40 CET] <cehoyos> That looks current
[03:52:52 CET] <montana> so 1 minute video takes 100 minutes to encode?
[03:53:33 CET] <montana> is that what you mean by ? It runs approximately at 1/100 of realtime for your input video
[03:53:35 CET] <Hello71> that's pretty fast
[03:53:42 CET] <Hello71> if your video is under 60 fps
[03:53:57 CET] <montana> Hello71 it's 5fps video
[03:53:57 CET] <nicolas17> this is like 5fps
[03:54:13 CET] <cehoyos> Yes (on my old but reasonably fast computer), for your input file and -r 5 that is, see "speed=0.07" in your console output that tends to go down further
[03:54:35 CET] <Hello71> eh, that's kinda slow, but not that surprising if you're using libaom
[03:54:52 CET] <Hello71> if you use rav1e and have lots of cores and have avx then that would be really slow
[03:54:55 CET] <montana> how much faster is: rav1e encoder
[03:55:08 CET] <cehoyos> Test and find out yourself!
[03:55:19 CET] <cehoyos> Since it takes so long, most people have never tested...
[03:55:38 CET] <montana> what is equivalent command ffmpeg -i 57-.mkv -c:v libaom-av1 -crf 30 -b:v 0 -c:a copy -r 5 -strict experimental output.mkv of rav1e
[03:55:40 CET] <Hello71> so, it only took like five tries to get montana to spill the libaom version
[03:55:47 CET] <cehoyos> (It cannot be ten times faster in case this is not obvious)
[03:55:52 CET] <cehoyos> You mean: Five by me?
[03:56:12 CET] <Hello71> well didn't you ask for the output like three times
[03:56:21 CET] <Hello71> then before it was two or three times
[03:56:28 CET] <Hello71> so I reckon it was at least five tries
[03:56:32 CET] <cehoyos> -c:v librav1e
[03:56:54 CET] <montana> ffmpeg -i input.mkv -c:v librav1e -crf 30 -b:v 0 -c:a copy -r 5 -strict experimental output.mkv
[03:56:57 CET] <montana> would that work?
[03:57:14 CET] <cehoyos> Only if your ffmpeg binary was compiled with librav1e support, yes
[03:57:24 CET] <Hello71> hm, Arch ffmpeg doesn't have rav1e. it should be in 4.2.1, right?
[03:57:30 CET] <cehoyos> no
[03:57:40 CET] <Hello71> oh. well that explains it
[03:58:42 CET] <Hello71> also I'm sure rav1e people do benchmarks. and ffmpeg should have negligible overhead at 5 fps
[03:59:15 CET] <cehoyos> It is expected to be measurably faster
[03:59:56 CET] <Hello71> iirc it's much faster if you have multiple cores. although it's possible I'm thinking of dav1d...
[04:00:06 CET] <nicolas17> it is faster
[04:00:13 CET] <nicolas17> libaom has crap multithreading
[04:00:20 CET] <montana> is libaom-av1 only capable of using 1 core?
[04:00:32 CET] <nicolas17> montana: it tries to use more but it's bad at it, let's say
[04:00:35 CET] <Hello71> iirc, no but it sucks
[04:00:40 CET] <montana> nickster i see
[04:00:42 CET] <montana> Hello71 i see
[04:01:10 CET] <montana> how does youtube encode to av1 so fast then
[04:01:47 CET] <cehoyos> They are likely using a proprietary encoder, but in any case, they throw a lot of cpu on encoding, smaller files mean a lot for them
[04:02:29 CET] <montana> you mean youtube does not use libaom-av1?
[04:02:42 CET] <cehoyos> It would surprise me (but I don't know)
[04:02:58 CET] <cehoyos> I forgot to ask;-)
[04:03:34 CET] <Hello71> I would wager a guess that youtube doesn't use ffmpeg for encoding at all
[04:03:48 CET] <cehoyos> Why do you think so?
[04:04:02 CET] <nicolas17> I thought they used ffmpeg in order to support many input formats
[04:04:05 CET] <cehoyos> (You really shouldn't bet too much)
[04:05:03 CET] <Hello71> decoding maybe
[04:05:10 CET] <SpiritHorse> google (youtube) owns a patent portfolio ffmpeg can only drool over, so it's safe to say they aren't on some github release of ffmpeg
[04:05:18 CET] <SpiritHorse> but there are probably some similarities
[04:05:21 CET] <cehoyos> They aren't
[04:05:33 CET] <cehoyos> Because FFmpeg doesn't use github-releases;-)
[04:05:39 CET] <montana> spirithorse lol, that's funny
[04:05:56 CET] <SpiritHorse> case in point ;)
[04:06:09 CET] <Hello71> I mean, they *could* use a heavily patched ffmpeg for encoding. knowing google though it's probably some proprietary system for maximum parallelism
[04:06:44 CET] <cehoyos> They are using a patched (as opposed to heavily patched) version of FFmpeg, not completely current but (somehow) reasonable
[04:07:13 CET] <SpiritHorse> heavily, heavily patched
[04:07:28 CET] <SpiritHorse> more so by the day, unfortunately
[04:07:40 CET] <nicolas17> how long does it take to process a newly-uploaded youtube video?
[04:08:09 CET] <nicolas17> if it was "heavily parallelized" I would expect it to take the same time regardless of length (one GOP per server? :P)
[04:11:08 CET] <furq> what do you think youtube are patching into their ffmpeg
[04:11:43 CET] <Hello71> well, they definitely have a bunch of filters
[04:11:54 CET] <cehoyos> They definitely have demuxer patches, they also don't like some of our timestamp code
[04:12:19 CET] <cehoyos> I wasn't aware that they are using any of our filters, I thought they don't like them
[04:12:27 CET] <furq> yeah i can't imagine why they would heavily patch it
[04:12:42 CET] <furq> it's not like they're using crazy proprietary encoders
[04:13:34 CET] <Hello71> not parallelized per video, but parallelized for maximum CPU utilization efficiency, with minimal overhead when switching to the next video in the queue
[04:13:49 CET] <Hello71> maybe the ffmpeg api already offers enough flexibility for that though
[04:14:12 CET] <cehoyos> They don't like the api (anymore), they claim to be using the cli now...
[04:14:19 CET] <Hello71> well I'm saying that they have filters, which might be patched into ffmpeg, or might be using the api, or something else
[04:15:02 CET] <cehoyos> They could produce intermediate files with the cli
[04:16:16 CET] <cehoyos> Finished: speed=0.00701x
[04:16:43 CET] <Hello71> the cli probably fits better with their orchestration. running 100000 encoding machines is very different from running 10. idk how many they have, but if they really have "300 hours of video every minute" then surely they must have at least a few tens of thousands
[04:17:08 CET] <montana> cehoyos wow, how long did the encoding last
[04:17:50 CET] <Hello71> speaking of speed, why does the speed usually stall at the start, then jump up, then go down slowly? is it just a choice between "overcount the startup time" and "undercount the codec buffering time"?
[04:19:06 CET] <cehoyos> 40 / 0.007?
[04:20:33 CET] <montana> anybody know how much faster rave1 is compared to libaom ?
[04:20:55 CET] <montana> my build does not include rave1
[04:22:40 CET] <montana> hello71 are you talking for libaom-av1 ?
[04:25:02 CET] <cehoyos> https://www.phoronix.com/scan.php?page=news_item&px=Rav1e-Encoder-8-Titles-…
[04:25:22 CET] <montana> how bad was encoding speed for x265/vp9 when it first came out
[04:26:16 CET] <montana> i should have said libvpx
[05:13:03 CET] <montana> hi, i am looking for ffmpeg build with rav1e
[05:13:14 CET] <montana> anybody have it
[05:16:38 CET] <Jakob6174> I'll check one sec
[05:17:29 CET] <Jakob6174> How do you check what it was built with again?
[05:19:46 CET] <nicolas17> see if it appears in -codecs?
[05:22:29 CET] <montana> Jakob6174 just type ffmpeg -i input.mkv -c:v librav1e -crf 30 -b:v 0 -c:a copy -r 5 -strict experimental output.mkv
[05:22:37 CET] <montana> if that works
[05:26:44 CET] <Jakob6174> Thanks @montana. Sorry @nicolas17 it says unknown encoder
[05:26:58 CET] <montana> okay, that means no
[05:29:49 CET] <Jakob6174> If you want to build ffmpeg easily, I recommend this https://github.com/m-ab-s/media-autobuild_suite
[07:29:11 CET] <montana> hi, i am looking for ffmpeg build with rav1e
[08:27:41 CET] <void09> I want to use a remote file as input for a filter, do you think it's possible somehow ? fmpeg -i "video.mkv" -vf "removelogo=f=https://i.imgur.com/file.png" -f nut -c:v rawvideo - | mpv -
[08:27:50 CET] <void09> this does not work
[10:43:45 CET] <jokoon> how fast is it to extract keyframes of a video?
[10:54:38 CET] <captain-bob4> Hi team, I'm working on a new filter based off of https://github.com/nervous-systems/ffmpeg-opengl/ and I'm running into some issues. Basically everything works as long as it's part of a single input only video only filtergraph (-vf). Even if I retain all of those limitation but try to use -lavfi or -filter_complex instead, the process fails without an error.
[10:55:30 CET] <captain-bob4> Should I ask this question in ffmpeg-devel instaed?
[10:57:16 CET] <kurosu> captain-bob4: I think so, but not sure who to talk to
[10:57:57 CET] <kurosu> (and obviously if they would be available)
[10:58:16 CET] <captain-bob4> Can\should I just ask the channel there?
[11:00:05 CET] <kurosu> I think so, people will pick up the discussion, but that might wait a few hours
[11:01:23 CET] <captain-bob4> Ok, thanks. I didn't want to "break the rules" and I wasn't entirely sure this qualifies for the development of ffmpeg itself
[11:04:20 CET] <kurosu> imo, it may depend if the filter would be then upstreamed, but it's really inside of libav* libs, not just using them, afaik, so should be fine
[11:06:18 CET] <captain-bob4> I'd be more than happy to share it and I think that it could be very relevant to others, after the modifications I made the filter could be used to render videos using external glsl shaders
[13:08:49 CET] <pagios> hello, is it possible to create a playlist m3u8 file as fast as possible? by default it is getting created as soon as the second segment is created and that is slow, as i need to wait for like 15sec or so
[13:09:45 CET] <JEEB> I guess that means as soon as one segment has finished
[13:09:47 CET] <BtbN> You need 3 segments to be able to play it back anyway.
[13:10:02 CET] <JEEB> I don't think you can make valid HLS playlist with a *partial* segment
[13:10:07 CET] <JEEB> since you don't know its duration etc
[13:10:17 CET] <pagios> meansi have to reduce the ssegment sizes?
[13:10:26 CET] <pagios> hls_size 1 ?
[13:11:09 CET] <JEEB> yes, if you want it around quicker, you will have to finish and write segments/fragments more often
[13:11:42 CET] <pagios> can i write first 3 segments quickly then start writing bigger ones to have less impact on disk IO ?
[13:53:56 CET] <pagios> JEEB, BtbN i tried hls_segment_size 1 and -g 1 still ffmpeg doesnt create the playlist.m3u8 quickly, the hls .ts file is big
[13:55:28 CET] <BtbN> It has to put at least one full gop into a segment
[13:56:51 CET] <pagios> BtbN, ok so should i set hls_segment_size to 2?
[13:57:12 CET] <BtbN> you can set it to whatever you like, but the smallest it will be is the length of one GOP
[13:57:38 CET] <pagios> GOP is 1 sec no?
[13:57:46 CET] <BtbN> GOP is whatever it is
[13:57:58 CET] <pagios> keyframe is set to 2 sec
[13:58:04 CET] <BtbN> can be anything from Intra-Only to 10 seconds, 30 seconds, or even infinite
[13:58:36 CET] <pagios> ok, so what would be the ideal arguments to use to generate the playlist the soonest?
[13:58:59 CET] <BtbN> However short you want it to be. But keep in mind that very short GOP hurts the quality quite a bit
[14:00:17 CET] <pagios> BtbN, i used now -g 2 and hls_time 1
[14:00:23 CET] <pagios> it is pretty fast
[14:00:37 CET] <BtbN> -g 2 will create a keyframe every other frame
[14:00:49 CET] <BtbN> that will either blow up the file size tremendously, or look like shit
[14:01:29 CET] <pagios> ill omit it
[14:01:56 CET] <BtbN> HLS just isn't a low-latency format. You will always have a ton of latency just by how it works
[14:33:10 CET] <pagios> BtbN, yea its not a matter of latency for me, more like get a grip on the m3u8
[14:33:20 CET] <BtbN> ?
[14:51:58 CET] <Atlenohen> Hello
[15:07:14 CET] <Atlenohen> Does FFMPEG do VFR by default or does it have to be specified to the encoder?
[15:08:08 CET] <Atlenohen> As frames come, with their pts, they get put in, will it "just work" ?
[15:08:11 CET] <BtbN> Encoders generally don't care about framerate or timestamps.
[15:08:13 CET] <JEEB> I think whether ffmpeg.c attempts to do """vsync""" (duplicating or deduplicating frames) depends on the output container
[15:08:23 CET] <JEEB> FFmpeg as a library generally doesn't care as long as you're going onwards
[15:08:40 CET] <JEEB> unless there is a muxer or something that cares about things like that and will scream
[15:08:45 CET] <Atlenohen> Oh, I'd definitely want to make sure this "vsync" is avoided
[15:09:16 CET] <JEEB> you can see what ffmpeg.c does internally with -debug_ts
[15:09:45 CET] <JEEB> and the relevant options for do not touch my timestamps are -vsync passthrough and -copyts
[15:09:58 CET] <JEEB> you might be OK with just one of them, but both should minimize the attempts that ffmpeg.c might do
[15:10:13 CET] <JEEB> whether ffmpeg.c does something depends on the output container etc etc if I recall correctly
[15:10:15 CET] <Atlenohen> Actually I'm dealing with FFmpeg API, not the command line
[15:10:18 CET] <JEEB> ok
[15:10:25 CET] <JEEB> then there is no vsync per se
[15:10:30 CET] <JEEB> that's why I noted both cases
[15:10:42 CET] <JEEB> ffmpeg.c has various more or less helpful things, API is pretty straightforward
[15:11:05 CET] <Atlenohen> Oh okay
[16:23:17 CET] <realies> what's the difference between peak and RMS normalisation?
[16:38:35 CET] <fling> How do I insert empty samples where I have audio shifted with itsoffset?
[16:38:40 CET] <fling> dumb players are ignoring it
[16:54:02 CET] <faLUCE> hello. I have three audio ac3 files: input1.ts, input2.ts and input3.ts. I would like to put them all into a dvd with three chapters. Do I have to exec ffmpeg -i inputX.ts -target pal-dvd outputX.vob (where X is 1,2,3) for all three files and then put them into an ISO container?
[16:54:52 CET] <pink_mist> I think you should use a real dvd-mastering program for that kind of thing
[16:55:39 CET] <faLUCE> pink_mist: why?
[16:56:19 CET] <pink_mist> I simply don't believe ffmpeg is the right tool for the job
[16:57:08 CET] <faLUCE> but I was able to create the VOB files
[16:57:20 CET] <DHE> ffmpeg might be able to prepare the raw video, but that's it.
[16:58:09 CET] <faLUCE> DHE: do you mean the VOB file?
[17:21:13 CET] <faLUCE> In addition: I executed ffmpeg -i inputX.ts -target pal-dvd -acodec copy outputX.vob but it seems to re-encode audio. what's wrong?
[17:27:27 CET] <fling> How do I set channel count for aevalsrc?
[17:27:30 CET] <fling> I want it to be stereo
[17:29:22 CET] <durandal_1707> fling: use c option
[17:31:17 CET] <fling> durandal_1707: thanks
[17:50:23 CET] <kepstin> fling: you can use the adelay filter to insert silence at the start of an audio track. requires re-encoding, of course.
[17:51:22 CET] <kepstin> faLUCE: the way target interacts with other ffmpeg options is kinda weird
[18:37:30 CET] <realies> durandal_1707, using your code to append a reversed 1 second of an audio stream to the beginning of it (asplit[a][b],[b]atrim=end=1,areverse[b],[b][a]concat=a=1:v=0) and wondering how to make it the same happen for the end of it (last second, reversed, appended to the end) within the same filter chain, would I go with using other variables than a
[18:37:30 CET] <realies> and b as a starter?
[18:38:27 CET] <realies> my idea is to have some contextual audio to be used with the dynaudnorm filter and then trim the extra second of audio from the start/end as the last stage
[18:40:33 CET] <durandal_1707> realies: alt boundary mode does not work for your usecase?
[18:40:57 CET] <realies> unfortunately it boosts the signal too much when audio starts too close to the beginning of the file
[18:42:02 CET] <durandal_1707> realies: for appending reversed signal you need to know length of audio
[18:43:07 CET] <realies> I guess I can do a pass before that to get that value
[18:43:36 CET] <realies> already doing volumedetect to normalise to 0 dB
[18:44:43 CET] <kepstin> that seems unnecessary/redundant if you're doing dynaudnorm or loudnorm
[18:45:55 CET] <realies> kepstin, normalising to 0 dB as an intermediate step to feed into a noise reduction filter
[18:46:12 CET] <realies> (which is outside of ffmpeg)
[18:46:51 CET] <kepstin> hmm, i dunno how useful peak normalization would be for that, but ok.
[18:57:16 CET] <faLUCE> I have a file audio recorded in a bad way, with a resulting waveform heavy normalized, with poor dynamic variations. is there a way to de-normalize it, so to hear crescendos, accents etc. ?
[18:59:50 CET] <nicolas17> I'd prefer to play with it interactively in a program like audacity
[19:12:58 CET] <faLUCE> nicolas17: I was searching for a general algorythm to apply to all the file
[19:20:09 CET] <realies> so, getting "output_i" : "-19.03", from loudnorm which I assume should be around -19 LUFS, running through https://youlean.co/youlean-loudness-meter/ says -16 LUFS though
[19:20:18 CET] <realies> could it be because of the stereo output bus?
[19:28:26 CET] <MarioMey> Hello, there. I use ffmpeg from console in Linux. I can see what is the frame number that ffmpeg is encoding, but I would like also to know how the total frames of the input video. Something like:
[19:28:36 CET] <MarioMey> frame= 5439/10000 fps= 29 q=-1.0 Lsize= 14622kB time=00:03:01.48 bitrate= 660.0kbits/s speed=0.965x
[19:29:15 CET] <MarioMey> Is there any way to do it? Or it is a suggestion to devs to include this value as information?
[19:29:25 CET] <nicolas17> ffmpeg doesn't necessarily know that information
[19:29:45 CET] <kepstin> realies: if you're working on a mono file that you expect to be played back by duplicating to both channels on a stereo system, use the 'dual_mono' option to the loudnorm filter.
[19:30:41 CET] <kepstin> and then of course you have to also make sure any other meters you use are set to the same mode
[19:31:48 CET] <nicolas17> MarioMey: afaik the only reliable way to know the total number of frames is to demux the entire video from start to finish and then do it again for the actual transcoding, that would be slow and in some cases not possible (live stream? pipe from another process?)
[19:32:59 CET] <MarioMey> Ok, I understand. I don't need an exact number. It's for knowing the progress.
[19:33:28 CET] <MarioMey> Also ffmpeg doesn't know the duration of the video?
[19:33:32 CET] <nicolas17> also, the "frame=" in the progress bar is the number of frames encoded so far into the *output*; input and output won't necessarily have the same number of frames, there could be -ss or -t, filters, frame rate changes, etc
[19:34:05 CET] <MarioMey> Yes, you are right.
[19:35:26 CET] <nicolas17> ffmpeg knows the duration of the input video in seconds, but it's not entirely reliable... I don't know in which exact cases it could fail
[19:35:36 CET] <nicolas17> and it's not necessarily constant frame rate, there could be dropped frames
[19:36:18 CET] <fling> kepstin: I used concat, should I switch to adelay?
[19:36:33 CET] <kepstin> adelay would certainly be easier to use
[19:36:39 CET] <fling> ok
[19:37:01 CET] <nicolas17> I once used 'number of bytes read from the input file' as a very rough idea of encoding progress% :)
[19:37:27 CET] <nicolas17> pv -d $(pidof ffmpeg)
[19:37:44 CET] <fling> but should be fine if bitrate is not far from constant
[19:37:45 CET] <MarioMey> What does it do?
[19:37:56 CET] <kepstin> MarioMey: because of how filters work, ffmpeg doesn't know the length of the output until it's reached the end.
[19:38:52 CET] <nicolas17> "pv shows the progress of data through a pipeline by giving information such as time elapsed, percentage completed (with progress bar), current throughput rate, total data transferred, and ETA."
[19:39:08 CET] <nicolas17> "-d PID[:FD]: Instead of transferring data, watch file descriptor FD of process PID, and show its progress."
[19:39:22 CET] <fling> so if your ffmpeg is reading input from a pipe then you could put pv in between
[19:39:31 CET] <fling> can also read the file by pv directly and pipe it to ffmpeg
[19:39:42 CET] <fling> it will be accurately enough for most cases
[19:40:00 CET] <nicolas17> fling: with -d it pokes at /proc/$pid/fdinfo
[19:40:04 CET] <nicolas17> so you can do it on a running ffmpeg
[19:40:09 CET] <fling> sure
[19:40:33 CET] <nicolas17> without interferring with ffmpeg's ability to eg. seek in the input file
[19:41:32 CET] <fling> how can I drop five first frames of one of the inputs?
[19:41:38 CET] <fling> they are coming with negative pts
[19:41:41 CET] <fling> like -5, -4 etc
[19:43:20 CET] <MarioMey> pv -d $(pidof ffmpeg)
[19:43:23 CET] <MarioMey> I LOVE IT
[19:43:25 CET] <MarioMey> :D
[19:43:42 CET] <MarioMey> I don't know how it works... but it is awesome.
[19:45:04 CET] <MarioMey> For the moment, it's ok. In the future, I would like to have a script that mix both commands.
[19:45:11 CET] <nicolas17> fling: -vf 'select=gt(pts\,0)' maybe? if I understand properly it will drop frames with negative pts
[19:45:42 CET] <nicolas17> wait, use gte to get pts=0 too
[19:48:07 CET] <fling> nicolas17: it should happen before the streams are getting synced together
[19:48:24 CET] <fling> should I pipe it from a separate ffmpeg?
[19:53:00 CET] <MarioMey> Thanks, people!
[19:55:33 CET] <montana> hi, i am looking for ffmpeg build with rav1e
[20:09:43 CET] <fling> nicolas17: thanks, I will try this
[20:34:48 CET] <ManiakNL> Hi all :)
[20:35:37 CET] <ManiakNL> I currenly has a .sh file to start recording from a RTSP stream to a mkv file.
[20:35:58 CET] <ManiakNL> In general this works great, but in some occassions it produces a 0b video file and i am not sure why
[20:36:10 CET] <ManiakNL> My ffmpeg command is:
[20:36:14 CET] <ManiakNL> ffmpeg -rtsp_transport tcp -i $rtspstream -acodec copy -vcodec copy $filepath </dev/null >/dev/null 2>>$logfile
[20:37:49 CET] <ManiakNL> A log of a failing recording can be found here:
[20:37:50 CET] <ManiakNL> https://pastebin.com/tjF12y6m
[20:38:50 CET] <ManiakNL> A log for a successfull recording can be found here:
[20:38:53 CET] <ManiakNL> https://pastebin.com/SJEH03Br
[20:39:10 CET] <ManiakNL> Is there anything i can do as a fallback if a recording fails?
[20:40:21 CET] <ManiakNL> I'm calling the ffmpeg application that is supplied with HomeAssistant (Hassio) The way that is set up prohibits me to upgrade to a newer version of ffmpeg i'm afraid.
[20:41:19 CET] <furq> ManiakNL: try increasing analyzeduration/probesize
[20:41:48 CET] <ManiakNL> Good suggestion! Let me check the documentation on how to do that
[20:42:09 CET] <furq> also you can use -nostdin instead of redirecting stdin, and you shouldn't ever need to redirect stdout
[20:42:13 CET] <furq> log output is always on stderr
[20:42:40 CET] <ManiakNL> I'm quite new to linux so i was actually already happy that i managed to log something to a file
[20:42:58 CET] <ManiakNL> I don't actually execute the sh file by hand. It's done using HomeAssistant
[20:43:28 CET] <furq> well yeah -analyzeduration 10M -probesize 10M before -i
[20:43:31 CET] <furq> 5M is the default for both
[20:43:51 CET] <ManiakNL> 10M as in minutes?
[20:43:58 CET] <furq> million
[20:44:14 CET] <furq> µs for analyzeduration, bytes for probesize
[20:44:27 CET] <furq> so 5 seconds and 5MB
[20:44:33 CET] <ManiakNL> Ok i will update the start script!
[20:45:02 CET] <ManiakNL> So the following command would be correct?
[20:45:03 CET] <ManiakNL> ffmpeg -rtsp_transport tcp -analyzeduration 10M -probesize 10M -i $rtspstream -acodec copy -vcodec copy $filepath </dev/null >/dev/null 2>>$logfile
[20:45:11 CET] <furq> it's correct
[20:45:15 CET] <ManiakNL> Thanks
[20:45:16 CET] <furq> not totally sure if it'll fix the problem though
[20:45:22 CET] <ManiakNL> Any other improvements i can make?
[20:45:45 CET] <furq> nothing i can think of but i've never dealt with rtsp much
[20:46:14 CET] <ManiakNL> My first attmept was without the -rtsp_transport tcp but that produces a lot of artifacts
[20:46:20 CET] <ManiakNL> My first attmept was without the -rtsp_transport tcp but that produced a lot of artifacts
[20:46:36 CET] <ManiakNL> Oh sorry, i thought using the up arrow allowed me to EDIT the text
[20:47:27 CET] <ManiakNL> Ok so another problem i rarely see:
[20:47:46 CET] <ManiakNL> Sometimes it start recording fine
[20:47:49 CET] <ManiakNL> But suddenly it stops
[20:48:06 CET] <ManiakNL> But then checking the last line of the log
[20:48:10 CET] <ManiakNL> frame= 906 fps= 10 q=-1.0 Lsize= 22591kB time=00:01:29.97 bitrate=2056.9kbits/s speed=1.02x
[20:48:18 CET] <ManiakNL> It did not contain an error
[20:48:36 CET] <ManiakNL> As if it was still recording eventhough it wasn't recording anymore
[20:49:30 CET] <ManiakNL> So either ffmpeg did not produce an error or i fail to log the error using my command
[20:49:47 CET] <ManiakNL> ffmpeg -rtsp_transport tcp -analyzeduration 10M -probesize 10M -i $rtspstream -acodec copy -vcodec copy $filepath </dev/null >/dev/null 2>>$logfile
[20:56:44 CET] <void09> I want to use a remote file as input for a filter, do you think it's possible somehow ? fmpeg -i "video.mkv" -vf "removelogo=f=https://i.imgur.com/file.png" -f nut -c:v rawvideo - | mpv - <- this does not work
[21:29:08 CET] <kepstin> void09: the reason that doesn't work is that : is a special character in filter commands, so you need to escape it
[21:29:21 CET] <void09> ohh
[21:29:36 CET] <void09> I thought it might be that
[21:29:41 CET] <void09> how to escape ? :)
[21:29:47 CET] <kepstin> backslashes
[21:30:12 CET] <kepstin> i recommend putting filters in single quotes ' '
[21:30:29 CET] <kepstin> otherwise you need multiple backslashes, since double quotes in shell do their own backslash escaping
[21:31:15 CET] <void09> the whole filter in single quote then a backslash for the url ?
[21:31:19 CET] <void09> no, for the ":"
[21:31:33 CET] <kepstin> either -vf 'removelogo=f=http\://example.com/img.png' or -vf "removelogo=f=http\\://example.com/img.png"
[21:31:52 CET] <kepstin> or however else you feel like doing your shell escaping
[21:32:39 CET] <kepstin> (that said, i'm going on the assumption that removelogo uses the standard ffmpeg io stuff here, which seems like a good assumption, but I haven't actually checked that it supports arbitrary urls)
[21:33:52 CET] <kepstin> yeah, should work, it uses the generic load image stuff.
[21:34:07 CET] <void09> mpv --vf 'removelogo=f=https\://i.imgur.com/qfImXkc.png' video.mkv
[21:34:18 CET] <void09> Error parsing option vf (option parameter could not be parsed)
[21:34:18 CET] <void09> Setting commandline option --vf=removelogo=f=https\://i.imgur.com/qfImXkc.png failed.
[21:34:39 CET] <kepstin> mpv is not ffmpeg
[21:34:45 CET] <void09> oh crap :D
[21:35:04 CET] <kepstin> (you can use ffmpeg filters in mpv, but it's a bit convoluted to do so)
[21:35:11 CET] <kepstin> you can use ffplay to test it
[21:35:50 CET] <nicolas17> my version of mpv says "most actual filters are available via the lavfi wrapper"
[21:36:00 CET] <void09> i wanted to use mpv because i can seek the file when opening it that way. if i stream from ffmpeg, i am stuck to present moment
[21:36:15 CET] <nicolas17> so all filters should work
[21:36:18 CET] <nicolas17> but perhaps option parsing is different
[21:36:34 CET] <kepstin> yeah, you can use some thing like --vf lavfi=removelogo=blah in mpv, but you might need to deal with multiple levels of parameter escaping
[21:36:44 CET] <kepstin> and I dunno how that works in mpv
[21:36:50 CET] <nicolas17> just wget the image and use it locally
[21:37:07 CET] <void09> nicolas17: I can already do that, but this is not what i wanted to do
[21:37:55 CET] <void09> I am thinking if there's a way to automatically pick the logo remove image based on file name, from a remote url
[21:38:25 CET] <void09> so one command would work with work on all files, that is the idea here
[21:39:39 CET] <kepstin> sounds like something that could be done fairly reasonably with mpv's lua scripting.
[21:41:27 CET] <void09> but first i have to make it work with an url
[21:42:03 CET] <kepstin> it should work fine with a url, go ahead and test it with ffplay
[21:42:22 CET] <void09> i try it with ffmpeg streaming and it does not work
[21:42:45 CET] <void09> [Parsed_removelogo_0 @ 0x5624cf385d40] No option name near '//i.imgur.com/qfImXkc.png'
[21:42:45 CET] <void09> [AVFilterGraph @ 0x5624cef7e500] Error initializing filter 'removelogo' with args 'f=https://i.imgur.com/qfImXkc.png'
[21:43:13 CET] <void09> I did -vf 'removelogo=f=https\://i.imgur.com/qfImXkc.png' -f nut -c:v rawvideo - | mpc -
[21:43:13 CET] <nicolas17> did you escape the : ?
[21:43:14 CET] <kepstin> you didn't correctly escape the : in one of the ways i told you to do
[21:43:33 CET] <kepstin> hmm. that should be correct...
[21:43:43 CET] <kepstin> I hate ffmpeg filter escaping, it's a pain :)
[21:44:01 CET] <void09> can try it yourself and see :P
[21:44:03 CET] <kepstin> are you sure that's the exact command you ran, copy-pasted? you didn't use double-quotes or something? :)
[21:45:48 CET] <kepstin> hmm, so it is. you need to double-up on the backslashes there
[21:46:09 CET] <kepstin> no idea why that happens, escaping in ffmpeg filter chains is a mess :)
[21:46:52 CET] <void09> that works :)
[21:47:03 CET] <kepstin> if you're using double-quotes you need \\\\
[21:47:04 CET] <void09> ok now, to make it work with seeking, any idea ?
[21:47:27 CET] <kepstin> works with seeking in ffplay, should work in mpv if you figure out what escaping syntax to use there
[21:47:39 CET] <void09> I won't, lol
[21:47:46 CET] <void09> not without spoonfeeding
[21:48:15 CET] <void09> i should ask in mpv maybe
[21:49:39 CET] <void09> yeah simpole forward seeking works in mpv too (slowly), but ffplay does not have a progress bar
[22:04:29 CET] <montana> hi, i am looking zeranoe's freenode name/account
[22:39:07 CET] <cre8radix> Ahoy, how do i fit a 16:9 movie into a 4:3 frame?
[22:39:21 CET] <cre8radix> is this the right place to ask this?
[22:41:10 CET] <nicolas17> cre8radix: you want letterboxing?
[22:41:17 CET] <cre8radix> yep
[22:41:23 CET] <cre8radix> nicolas17: i do
[22:42:05 CET] <nicolas17> the 'pad' video filter
[22:47:46 CET] Action: cre8radix tries
[22:54:34 CET] <cre8radix> nicolas17: i cant figure it out& https://ffmpeg.org/ffmpeg-filters.html#pad-1
[22:54:46 CET] <cre8radix> is that what you meant?
[22:54:50 CET] <nicolas17> yes
[22:55:14 CET] <nicolas17> to apply a video filter, you use -vf 'pad=...'
[22:55:38 CET] <nicolas17> let's see
[22:55:57 CET] <nicolas17> you want original width, and a height modified to be 4:3
[22:56:59 CET] <nicolas17> -vf 'pad=iw:iw*3/4:-1:-1'
[22:57:15 CET] <kepstin> no, that's not what you want.
[22:57:18 CET] <nicolas17> passing -1 as x and y make the filter put the image in the center
[22:57:27 CET] <kepstin> pad doesn't resize the inputs, it only can make videos
[22:57:30 CET] <kepstin> bigger
[22:57:47 CET] <kepstin> er, wait, nvm
[22:57:50 CET] <kepstin> i have it backwards
[22:58:03 CET] <kepstin> thought you wanted 4:3 in a 16:9 frame
[22:59:13 CET] <kepstin> it might be tricky if your input video is anamorphic or otherwise has a sar != 1
[22:59:24 CET] <kepstin> but otherwise that's fine ^^
[22:59:36 CET] <cre8radix> nicolas17: yeah i know&
[23:00:02 CET] <cre8radix> its been killing me
[23:00:49 CET] <nicolas17> sar != 1 should go to hell along with interlacing
[23:02:51 CET] <kepstin> if you have a specific target resolution, you might need to use a combination of the scale and pad filters.
[23:04:51 CET] <cre8radix> nicolas17: it should go from 720x428 to 320x240
[23:06:44 CET] <cre8radix> ehm& 1024x428 to 320x280
[23:11:21 CET] <nicolas17> I don't know what the heck that is but it's not 16:9 or 4:3
[23:11:22 CET] <nicolas17> o_o
[23:13:49 CET] <void09> one more thing.. how do I scan a file for any kind of errors (audio/video/container etc), and display the timestmap or byte count where the error occured in the file ?
[23:15:07 CET] <kepstin> void09: ffmpeg isn't designed to detect "any kind" of errors (although it can detect some). with appropriate settings, ffmpeg will abort on errors, and you can tell the time from the stats output i guess.
[23:15:19 CET] <kepstin> if you want more detail you'd have to make your own tool using ffmpeg libraries.
[23:17:40 CET] <cre8radix> nicolas17: right
[23:21:42 CET] <kepstin> cre8radix: if I had to guess, you have a pal (576-line) standard definition video which was anamorphic 16:9 widescreen, then scaled to 1:1 sar (gives 1024x576) - but which contained a video wider than 16:9 with black bars on top and bottom that have been cropped out.
[23:22:08 CET] <kepstin> but that's a pretty wild guess :)
[23:24:10 CET] <void09> ok, is there a tool that scans for errors and displays details ?
[23:25:00 CET] <void09> ffmpeg -v error -i "outputvideo.mkv" -f null - 2>test.log this is what i use now, to just check for errors, but it does not display time/byte offset
[23:25:00 CET] <kepstin> void09: not that I know of.
[23:26:37 CET] <kepstin> void09: if you change that ffmpeg command to include the stats output, the last update of the stats should be right before the error it aborts on
[23:27:00 CET] <void09> how do i do that ?
[23:27:04 CET] <kepstin> that's about as good as you'll get without custom tools or tools that i'm not aware of
[23:27:46 CET] <kepstin> don't use "-v error", or alternately re-enable stats with the "-stats" option.
[23:29:07 CET] <kepstin> note that you'll probably also want the -xerror option so ffmpeg actually stops on the error rather than attempting to conceal it and continue.
[23:30:07 CET] <void09> attempts to conceal it ?
[23:30:51 CET] <kepstin> ffmpeg is designed in part for players, and the desired behaviour there in case of minor corruptions is to keep going as best as possible.
[23:31:19 CET] <kepstin> particularly since video will be fine after the next keyframe anyways
[23:31:40 CET] <void09> ok i ran it with stats.. and i got a 16.9 mb file :\
[23:31:45 CET] <void09> trying with xerror now
[23:32:18 CET] <void09> ffmpeg -v xerror -stats -i "file.mkv" -f null - 2>outputvideo.log
[23:32:19 CET] <void09> this good?
[23:32:31 CET] <void09> hm no it does not run
[23:32:41 CET] <kepstin> the -stats option just prints continuous updates of file postion, you'd only need the last line. feel free to use tail or something to grab only the last part of the output.
[23:32:49 CET] <kepstin> -xerror is an option
[23:32:57 CET] <kepstin> it's not a value for the -v option
[23:33:03 CET] <void09> ok, doing -xerror now
[23:33:29 CET] <void09> oh so it only stops when there's an error if i use xerror
[23:33:35 CET] <void09> but what if there's multiple errors?
[23:33:52 CET] <kepstin> stop at the first one
[23:37:13 CET] <kepstin> i suppose without -xerror it'll print error log messages mixed in with the stats output, which might let you see multiple errors.
[00:00:00 CET] --- Tue Nov 26 2019
1
0