Ffmpeg-devel-irc
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
May 2018
- 1 participants
- 62 discussions
[00:06:24 CEST] <jamrial> jdarnley: sample?
[00:06:41 CEST] <jamrial> libavformat can't parse it?
[00:08:22 CEST] <jdarnley> No it cannot. It doesn't have "OggS" markers. They seem to have been replaced with 04 86 86 c5 (hex)
[00:08:41 CEST] <jdarnley> I will put a sample somewhere
[00:09:03 CEST] <jamrial> xored file?
[00:09:47 CEST] <jdarnley> I considered that
[00:10:32 CEST] <jdarnley> Not all bytes of the oggs marker get the same result when I try to xor ith oggs
[00:11:27 CEST] <jdarnley> it I would guess it is the same "factor" for each byte because the replacement appears to be the same on the first 2 or 3 pages
[00:12:52 CEST] <jdarnley> https://0x0.st/segq.ogg
[00:15:24 CEST] <jdarnley> yes, vgstream has produced a good decode.
[00:15:33 CEST] <jdarnley> Now I just need to find out how.
[00:19:21 CEST] <jamrial> jdarnley: xor with 0xF0 then bitswap
[00:19:37 CEST] <jamrial> 0xF, sorry
[00:19:49 CEST] <jdarnley> damn, you spoiled it! :)
[00:19:55 CEST] <jamrial> pointless obfuscation
[00:19:56 CEST] <jamrial> haha
[00:20:58 CEST] <jamrial> it was obvious a xor thing seeing all the 0xF0 where zeroes should be
[00:21:36 CEST] <jdarnley> I was thinking maybe a randomised lut.
[00:24:00 CEST] <jdarnley> I found it in the code. xor 0xf0 and a nibble swap
[00:24:48 CEST] <jamrial> xor with 0xf then rot4 each byte is what i did
[00:24:49 CEST] <jdarnley> Up yours NIS America! You spent too long DRMing the music and not enough time on everything else!
[00:26:20 CEST] <jdarnley> Time to write my own.
[00:26:28 CEST] <jdarnley> ... decrypter.
[00:28:19 CEST] <JEEB> :)
[00:28:23 CEST] <JEEB> hacking on games is fun
[00:28:56 CEST] <JEEB> I wish I had the time to poke around bink2 to get these tales of zestiria openings playable without RAD's player
[03:52:08 CEST] <atomnuker> speaking of reverse engineering, I wish someone did directmusic files (and soundbanks)
[03:52:45 CEST] <atomnuker> it was nih-midi and only used for a brief moment in microsoft games before they nih'd midi again with xna but there's some good game music made for it
[04:06:03 CEST] <Compn> atomnuker : upload samples ?
[04:09:28 CEST] <atomnuker> https://pars.ee/temp/mm2_dmusic.zip
[04:09:58 CEST] <atomnuker> there's a simple client in there too which uses directmusic to decode them (windows only ofc)
[04:10:34 CEST] <atomnuker> might still run on modern windows versions, it ran fine on win7 years ago
[04:11:51 CEST] <Compn> should i put in samples.ffmpeg.org ?
[04:14:46 CEST] <atomnuker> nah, there are no midi files there, I don't think they should be there either
[04:15:31 CEST] <Compn> midi files in /karaoke/ actually
[04:19:10 CEST] <atomnuker> yeah, ok, put them up there
[04:19:28 CEST] <atomnuker> seems like the list isn't big but games up to 2010 used them
[04:19:30 CEST] <atomnuker> http://www.vgmpf.com/Wiki/index.php/SGT
[04:19:55 CEST] <atomnuker> and the windows version of ff 8
[04:23:07 CEST] <Compn> any sample is a good sample
[04:23:13 CEST] <Compn> and these game formats are useful for people learning RE
[04:24:04 CEST] <TheAMM> I wish I knew how to extract the images/sprites from Hotel Dusk
[04:26:34 CEST] <atomnuker> I think each game did its own thing
[04:28:06 CEST] <TheAMM> Yep
[04:28:33 CEST] <TheAMM> Some games use the same thing, either because of some library or same developer
[10:48:47 CEST] <kierank> gagandeep: i understand a bit better now, cineform only allows zero runs
[10:48:56 CEST] <kierank> So that is why they memset and skip forward
[10:52:04 CEST] <gagandeep> i guess, but the real working is how they are building fsm while initializing decoder so i haven't been able to see that
[10:53:21 CEST] <gagandeep> i understand the simple idea of entropy coding but in cineform they do that under the radar
[10:53:58 CEST] <gagandeep> kierank: i can use functions both from get_bits and bytestream files right?
[10:54:28 CEST] <gagandeep> and directly accessing GetBitContext is not allowed, right?
[10:54:51 CEST] <kierank> You should need to do that, I think just check peaks for all coefficients
[10:55:04 CEST] <kierank> Should wlrk, you don't need to use thekr fsm
[10:55:42 CEST] <gagandeep> yeah
[11:07:55 CEST] <durandal_1707> huh, we broke abi recently ?
[11:11:06 CEST] <durandal_1707> tmm1: why you commited stuf that broke ABI?
[12:24:47 CEST] <nevcairiel> durandal_1707: the ABI is fine
[12:28:26 CEST] <wm4> APIchanges says "Add program_num, pmt_version, pmt_stream_idx to AVStream" even though they are private fields
[12:28:50 CEST] <nevcairiel> yeah that should probably be cleaned up
[12:28:58 CEST] <nevcairiel> but the ABI changes were all in the private sections regardless
[12:29:10 CEST] <wm4> yes
[12:37:40 CEST] <JEEB> ok, so DVB and ARIB text conversion seems to have been put into a linutv.org fork of gconv
[12:38:04 CEST] <JEEB> those are LGPLv2
[12:39:57 CEST] <JEEB> > gconv people see these as application specific > linuxtv.org people see them as standard-defined charsets
[12:40:01 CEST] <JEEB> such a delicious clusterduck
[12:43:44 CEST] <JEEB> right, https://git.linuxtv.org/v4l-utils.git/tree/contrib/gconv
[12:43:58 CEST] <JEEB> all this makes me one sad two-legged monkey
[13:19:52 CEST] <cone-030> ffmpeg 03Jerome Borsboom 07master:ca878845ae03: avcodec/vc1: DIRECTBIT is only present in inter MBs
[13:19:52 CEST] <cone-030> ffmpeg 03Jerome Borsboom 07master:2b86472a65b7: avcodec/vc1: fix calculation of the last line of a slice
[13:19:52 CEST] <cone-030> ffmpeg 03Michael Niedermayer 07master:60d179277972: avformat/mp3dec: Require probing data to be 50% mp3 frames for low score probing to succeed
[13:19:52 CEST] <cone-030> ffmpeg 03Michael Niedermayer 07master:81b3e7c9c3ad: avformat/mp3dec: Require 50% of the file to be mp3 frames in the maxframes>200 probing test
[13:19:52 CEST] <cone-030> ffmpeg 03Michael Niedermayer 07master:cadf7a7f3901: avformat/mp3dec: require 90% of a file to be mp3 if only 1 mp3 frame is found in sequence
[16:40:55 CEST] <gagandeep> kierank: i have checked that i am pointing to the same place in bytestream for peak table as cineform decoder but my values are not correct
[16:41:00 CEST] <gagandeep> any idea
[16:41:53 CEST] <gagandeep> i am using bytestream2_get_be() for values at the pointed index of bytestream
[16:44:00 CEST] <gagandeep> also i have directly refferenced the bytestream buffer as gb.buffer for current position at the time of reading the peak tag
[16:44:10 CEST] <gagandeep> and then add the offset to point to the table
[16:44:29 CEST] <gagandeep> checked in cineform sdk, that the index pointed in the bytestream is the samme
[16:46:50 CEST] <gagandeep> no, i am using bytestream_get_be() to directly read the buffer at the pointed place
[16:52:11 CEST] <durandal_1707> atomnuker: have you read that paper? i do not understand how it create weight matrix
[17:45:03 CEST] <philipl> BtbN: how's the deinterlacing going?
[17:45:14 CEST] <BtbN> not at all
[17:46:03 CEST] <philipl> heh
[17:46:14 CEST] <kierank> gagandeep: surely it's little endian
[17:46:18 CEST] <kierank> it points directly to the table, no?
[19:13:29 CEST] <klaxa> ok, finally got the commits more or less the way i want, do i send the whole patchset including the other work i already sent as well? it's 13 commits
[19:13:42 CEST] <klaxa> in total i mean
[20:16:57 CEST] <tmm1> if the previous commits didnt change just send the new ones
[20:18:21 CEST] <tmm1> JEEB: i ran into that too trying to decode dvb eit data
[20:18:45 CEST] <JEEB> yea :&
[20:18:59 CEST] <JEEB> the worst thing is that it's merged into the linuxtv.org stuff
[20:19:01 CEST] <JEEB> buuut
[20:19:06 CEST] <JEEB> how are you supposed to use it from there
[20:19:37 CEST] <tmm1> nevcairiel: so abi changes in private sections are okay, so no version bump is required?
[20:20:22 CEST] <JEEB> but yea, since libaribb24 seemingly has licensing issues according to j-b I might just go with 0p1pp1's ARIB caption decoder if I can just put the text decoding into I guess avutil (since both libavcodec and libavformat would be utilizing at least the ARIB text decoding thingamajig)
[20:20:53 CEST] <JEEB> which kind of sucks since libaribb24 is already utilized by VLC and I haven't been able to compare those two implementations yet
[20:33:47 CEST] <durandal_1707> atomnuker: what are you doing?
[20:42:11 CEST] <durandal_1707> atomnuker: hello?
[20:44:32 CEST] <atomnuker> learning french so I can get unstuck off this rock before it sinks?
[20:48:11 CEST] <kierank> atomnuker: you chose nice then?
[20:48:43 CEST] <atomnuker> yep
[20:49:15 CEST] <durandal_1707> atomnuker: aren't you in UK?
[20:49:20 CEST] <atomnuker> yep
[20:53:04 CEST] <durandal_1707> atomnuker: when you gonna finish fft/dct ?
[21:09:01 CEST] <durandal_1707> atomnuker: please, answer
[21:43:13 CEST] <atomnuker> don't know, sometime next week if I can
[21:59:13 CEST] <durandal_1707> atomnuker: you said same thing last week
[22:50:40 CEST] <kierank> durandal_1707: stop being mean
[22:52:17 CEST] <durandal_1707> kierank: then i gonna be very rude
[22:52:59 CEST] <durandal_1707> ubitux: found paper describing patch lifting for nlmeans
[23:55:14 CEST] <durandal_1707> iive: hello!
[23:56:24 CEST] <iive> durandal_1707, hello!!
[00:00:00 CEST] --- Mon May 21 2018
1
0
[03:46:39 CEST] <nicolas17> downscaling a video to 1/8th size, 500fps
[03:46:41 CEST] <nicolas17> tried decoding with vaapi, 400fps
[03:46:57 CEST] <nicolas17> tried decoding *and* downscaling with vaapi, 1500fps <3
[04:13:27 CEST] <Djfe> How can I convert dvb_subtitles to dvd_subtitles and scale them at the same time from 1280x720 to dvd resolution (PAL, 720x576 anamorph)? (I don't want to burn them in)
[04:15:05 CEST] <Djfe> The only thing I found so far was the filter scale2ref, but as far as I can tell this filter only applies when burning subtitles into the video (but I might be wrong)
[04:16:36 CEST] <Djfe> For the conversion itself I use -c:s dvdsub so far.
[04:24:17 CEST] <nicolas17> how do I extract eg. one frame per minute into image files, but keep the original frame numbers in the filenames?
[04:32:19 CEST] <furq> nicolas17: you can't
[04:32:30 CEST] <furq> the closest you can get is -frame_pts 1 which gives the original pts in the filename
[04:32:51 CEST] <nicolas17> I don't see that in the manpage :o
[04:32:59 CEST] <furq> !muxer image2 @nicolas17
[04:32:59 CEST] <nfobot> nicolas17: http://ffmpeg.org/ffmpeg-formats.html#image2-2
[04:33:25 CEST] <nicolas17> oh great, ancient version
[04:33:31 CEST] <furq> Djfe: i'm pretty sure you can just use -vf scale on image subtitle formats
[04:44:45 CEST] <Djfe> @furq Hi, that seems to have worked, thx! :)
[04:45:02 CEST] <Djfe> I'll report back once the encode finished
[04:48:48 CEST] <ariyasu> lots of broadcast sources will also have text based subs in the ts also Djfe
[04:49:03 CEST] <ariyasu> which are easy to demux/remux
[04:51:28 CEST] <Djfe> Thx @ariyasu, the problem I have is of another nature though ^^
[04:51:30 CEST] <Djfe> I'm burning a dvd for my father, source is a tv recording
[04:51:56 CEST] <ariyasu> yeah, it might have 888 subs
[04:52:37 CEST] <Djfe> it actually has both: dvb and teletext subs, only the dvb has color though
[04:52:50 CEST] <Djfe> I actually have an .srt file (created by OCR with tesseract) from the file (with color and everything)
[04:53:19 CEST] <Djfe> and alternative would be creating new idx/sub files from the .srt file, but at least subtitle edit sucks at that
[04:53:45 CEST] <ariyasu> yeah
[04:54:00 CEST] <ariyasu> i like to just demux the teletext subs, then remux into the encode
[04:54:17 CEST] <ariyasu> if no teletext subs exist i will use subtitle edit / ocr
[04:54:23 CEST] <ariyasu> but that's quite a pain to do
[04:54:30 CEST] <Djfe> I need idx/sub anyways for dvd, so my thought was: let's keep the subtitles as original as possibel :)
[04:55:40 CEST] <nicolas17> I need to manually label intervals of a video with a 'scene type'... I'm thinking label one frame per minute or so, and then do binary search (take frames between two adjacent labeled frames with different labels)
[04:56:47 CEST] <Djfe> I use another (commercial) tool for OCR (with tesseract build-in), it works automatically
[04:57:01 CEST] <Djfe> but I'm unsure, whether naming that would be ok here; let's just say creating .srt files is actually no problem for me
[04:57:01 CEST] <ariyasu> tsdoctor?
[04:57:08 CEST] <Djfe> nvm
[04:57:13 CEST] <Djfe> you said it ^^
[04:57:31 CEST] <ariyasu> the problem with it, is it doesn't prompt you when it's unsure of stuff
[04:57:36 CEST] <ariyasu> so you get errors in the output
[04:59:50 CEST] <Djfe> it's not as nice as ffmpeg for advanced users, but it handles DVB Transportstreams better in certain regards, because ffmpeg was never optimised for that, I think
[05:00:17 CEST] <ariyasu> i use it to cut with when vrd has errors
[05:00:31 CEST] <ariyasu> also for hevc broadcasts and 4:2:2 stuff that vrd won't touch
[05:00:43 CEST] <ariyasu> then feed all my cut stuff through ffmpeg
[05:01:04 CEST] <nicolas17> I wonder if there is anything automatic (scene change detection) I can use to make this easier
[05:03:15 CEST] <Djfe> @nicolas17 ah, so you want something like chapters roughly every minute, that start on a frame that have a harsh cut? (black image)
[05:04:53 CEST] <nicolas17> Djfe: I have a gaming video (downloaded from Twitch) and I want to label in game match vs in game lobby vs full screen streamer's camera
[05:05:33 CEST] <Djfe> do you want to burn those labels into the image or create metadata from that info?
[05:05:34 CEST] <nicolas17> the plan is to train machine learning to detect those, but I need a sane way to manually label one video to use as training data
[05:06:00 CEST] <nicolas17> scrolling frame by frame would drive me crazy before I get to the ML part
[05:08:04 CEST] <Djfe> I'm not sure whether ML is the easiest way
[05:08:14 CEST] <TheAMM> Same
[05:08:15 CEST] <Djfe> my suggestion: use OpenCV and Python ;)
[05:08:28 CEST] <nicolas17> with 'scene change detection' I meant dividing the video at points where there's too much difference from one frame to the next
[05:08:42 CEST] <nicolas17> then manually label the resulting sections
[05:08:42 CEST] <Djfe> yeah, you don't need ML for that
[05:08:48 CEST] <TheAMM> It may make it more flexible but last time I did something simular (find transitions in AMV Hell videos), I just looked at a few pixels and compared colors
[05:08:51 CEST] <Djfe> it's actually easier without ML
[05:09:35 CEST] <TheAMM> Pretty sure there's a filter for dumping scene changes, though
[05:10:01 CEST] <Djfe> I once used an approach to find changes in a screen capture: (slide changes); in that case it was enough to load frames and subtract them, but I looked further into it at first
[05:10:05 CEST] <TheAMM> Could be wrong but when I looked at blackframedetect I think I passed something similar
[05:10:27 CEST] <Djfe> I found something, but I'm not sure if it works already: https://pyscenedetect.readthedocs.io/en/latest/
[05:12:14 CEST] <Djfe> https://github.com/Breakthrough/PySceneDetect
[05:16:53 CEST] <Djfe> Feature detection might be worth looking into: https://www.youtube.com/watch?v=kL7WdG90tws
[05:18:00 CEST] <Djfe> You could open a video and find out whether the current frame looks similar enough to the lobby/has elements of the lobby; you can detect several parts of the lobby
[05:18:39 CEST] <Djfe> then save that stuff into a file and load it the next time you want to edit a similar video (same game), so you don't have to do it again
[05:19:25 CEST] <Djfe> After that you only have to figure out what you want to do with the video, if you got the data where the scene changed
[05:19:42 CEST] <Djfe> as you can see in the video: you don't have to do it frame by frame
[05:20:37 CEST] <Djfe> it's heuristics/algorithms; since your game lobby doesn't change they are superior to ML (because you can create them faster with the existing libraries and they are more reliable)
[05:34:12 CEST] <Djfe> @furq I currently use the following command:
[05:34:37 CEST] <Djfe> ffmpeg -i input.ts -vf scale=1024:576,setd ar=4:3,setsar=1:1 -c:v mpeg2video -q:v 5 -target pal-dvd -r 25 -c:a copy -c:s dvdsub output.vob
[05:35:22 CEST] <Djfe> and I'm currently seeing this: https://i.imgur.com/iwhX6nX.png
[05:35:44 CEST] <Djfe> looks to me like vfscale isn't applied to dvd_subtitle
[05:36:15 CEST] <Djfe> the output suggests the correct resolution though: "Stream #0:2(deu): Subtitle: dvd_subtitle (dvdsub), 720x576 (hearing impaired)"
[05:36:38 CEST] <furq> i assume you want something like -filter_complex [0:v]scale=1024:576,setdar=4:3,setsar=1:1[v0];[v0][0:s]scale2ref
[05:36:47 CEST] <furq> except probably with more quotes
[05:37:03 CEST] <Djfe> thx!! :)
[05:37:09 CEST] <furq> actually you probably need explicit mapping there
[05:37:48 CEST] <furq> -filter_complex "[0:v]scale=1024:576,setdar=4:3,setsar=1:1[v0];[v0][0:s]scale2ref[s0]" -map "[v0]" -map "0:a" -map "[s0]"
[05:37:51 CEST] <furq> something like that
[05:53:06 CEST] <Djfe> -filter_complex "[0:v]scale=1024:576,setdar=4:3,setsar=1:1[v0];[v0][0:s]scale2ref[s0][v0]" -map "[v0]" -map "0:a" -map "[s0]"
[05:53:29 CEST] <Djfe> worked, I needed to add [v0] to be able to map it afterwards
[05:53:44 CEST] <Djfe> the problem: this created an mpeg2videostream from my subtitles ^^
[05:54:25 CEST] <Djfe> https://i.imgur.com/gml82g5.png
[06:01:36 CEST] <Djfe> I'm not the only one: https://stackoverflow.com/questions/41818276/in-ffmpeg-how-do-i-scale-dvdsu…
[06:04:13 CEST] <Djfe> but canvas_size 720x576 doesn't work
[06:04:22 CEST] <Djfe> it doesn't change anything
[06:12:08 CEST] <Djfe> I will it leave it like this, ffmpeg only seems to be good at burning in subtitles at the moment. Maybe I'll find another solution for scaling bitmap subtitles at some point
[06:13:26 CEST] <Djfe> @furq again, I'm greatful for your help. Bye
[17:03:24 CEST] <otyugh> I've got a naive question ; why " -movflags faststart" isn't a default ?
[17:03:33 CEST] <otyugh> It doesn't seem to inflate the video or anything
[17:03:55 CEST] <otyugh> is there any backdraw to this ?
[17:04:46 CEST] <furq> the drawback is that it has to write the file twice
[17:06:03 CEST] <otyugh> I'm not sure I understand what you mean
[17:06:41 CEST] <otyugh> the encoding didn't seem slower to me
[17:06:49 CEST] <kepstin> it writes the file, then when it's done it goes back and re-reads the file, copying it to a temp file, with the moov moved to the start.
[17:06:54 CEST] <furq> right
[17:07:02 CEST] <furq> the moov isn't fixed size and its contents aren't known until you're done encoding
[17:07:23 CEST] <kepstin> on small files, unnoticable, but it does only work if you're writing to a filesystem where it can make extra files and rename them
[17:07:36 CEST] <furq> it's very noticeable on large files
[17:07:36 CEST] <kepstin> and on big files, there's a long wait at the end for the io for the rewrite
[17:07:57 CEST] <furq> especially if you have a fancy script that remuxes lots of large files in parallel on a hard disk
[17:09:13 CEST] <otyugh> I'm doing this with small video files. Guess it's adapted to me. As I want to access it throught web. Same deal for audio files ?
[17:11:36 CEST] <otyugh> Mhm. And as I went hastly encoding stuff without fastart, is there a way to apply only the movlfags thing without reencoding ?
[17:12:30 CEST] <otyugh> I don't even know how to know if the flag is up. Gotta watch some doc.
[17:12:52 CEST] <otyugh> thanks anyway :)
[17:36:00 CEST] <kepstin> you can use -c copy with -movflags faststart to do it without re-encoding
[17:38:02 CEST] <BtbN> Or just qt-faststart if that's all you want to do
[18:39:29 CEST] <edgar_> hi there. im new with ffmpeg. i wonder if someone can help me ? i want to stream to youtube. i have suddenly found a snippet, that works good. But i want to change the audio input from microphone to a specified mp3 file. Can someone help me?
[18:39:51 CEST] <edgar_> Thats my code: ffmpeg -ar 44100 -ac 2 -f alsa -i hw:1,0 -f v4l2 -codec:v h264 -framerate 30 -video_size 1920x1080
[18:39:51 CEST] <edgar_> -itsoffset 0.5 -i /dev/video0 -copyinkf -codec:v copy -codec:a aac -ab 128k -g 10 -f
[18:39:51 CEST] <edgar_> flv rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx-xxxx
[18:53:28 CEST] <ladders> im having trouble making a webm from a set of jpegs. they arent in numeric order so i cant use -i foo%02d.jpg. how/can i specify multiple inputs?
[19:14:49 CEST] <klaxa> ladders: cat file1.jpg, file2.jpg filewhatever.jpg | ffmpeg -f image2pipe -i - [...]
[19:15:08 CEST] <klaxa> ah, mind the ',' that's wrong :P
[19:15:26 CEST] <edgar_> ^^ klaxa, do you have a solution for my request? X)
[19:16:16 CEST] <ladders> pretty sure i tried it but i will again
[19:16:24 CEST] <klaxa> just replace "-ar 44100 -ac 2 -f alsa -i hw:1,0" with "-i my_cool.mp3"
[19:18:14 CEST] <edgar_> hmm. something went wrong. it says " Failed to read frame size: Could not seek to 22764"
[19:18:42 CEST] <ladders> klaxa: thanks it's working but i dont get the last jpg/frame in the output webm
[19:19:36 CEST] <klaxa> hmm... "something something frames have no duration" maybe add a black frame after the last image? players usually exit after the last image was rendered and thus it doesn't stay visible for long (or something like that)
[19:20:06 CEST] <klaxa> edgar_: that sounds too generic to make any judgement, pastebin the complete output of ffmpeg (on pastebin or something)
[19:22:27 CEST] <edgar_> https://pastebin.com/jeWA87AG
[19:23:27 CEST] <edgar_> im very beginner to linux and ffmpeg, thanks a lot so far
[19:24:12 CEST] <klaxa> looks like your mp3 is broken? can you play it?
[19:25:02 CEST] <edgar_> mhh ill try it out...
[19:26:33 CEST] <klaxa> brb laundry...
[19:31:10 CEST] <edgar_> klaxa. the audio was broken :/. thank you so much xD i took me 2h to check the audio file....
[19:32:46 CEST] <klaxa> heh
[19:41:51 CEST] <edgar_> is there a method to loop the audio all the time?
[19:43:22 CEST] <otyugh> Ahm. I'm confused. I wanted to compare a online loading of a video encoded without +fastart and with. And they basically do the same : I can jump within the file without it being entirely loaded. I'm confused.
[19:43:46 CEST] <otyugh> +a video
[19:44:02 CEST] <otyugh> I will rephrase that
[19:45:36 CEST] <otyugh> I compared two same video, one with +faststart one without. The two seem seekable without entire downloading. Using mkv/h264.
[19:46:52 CEST] <klaxa> edgar_: try ffmpeg -stream_loop -1 -i input.mp3 [...]
[19:46:56 CEST] <otyugh> maybe modern players are smart enought to request the end of a file first ?
[19:47:32 CEST] <klaxa> mkv just supports that, i think faststart is mostly useful with mp4?
[19:47:57 CEST] <otyugh> Wow. Great then o/
[19:54:02 CEST] <edgar_> klaxa: it plays 1st time but after it the stream close
[19:54:48 CEST] <klaxa> weird, does it throw an error?
[19:55:10 CEST] <edgar_> but i can achieve similar result with something like "ffmpeg -f concat -i list.txt ".. and in the list i list the file multiple times. lol
[19:56:18 CEST] <edgar_> hmm ffmpeg itself doesnt throw an error, but the livestream cancel after the first play off. (youtube stream)
[19:57:44 CEST] <kepstin> otyugh: if you use a player & server that can do http byte range requests, it will generally try to seek in the file and load the MOOV from the end of the file, yeah, but faststart is still a bit better because it avoids the extra request
[20:10:03 CEST] <edgar_> i have one more question ^^ is it possible to change the video output ( from device0 to device1) in real time ?
[20:11:15 CEST] <JEEB> if you make your own thing, yes
[20:11:26 CEST] <JEEB> ffmpeg.c as an API client is very, very static
[20:11:51 CEST] <JEEB> so if you need dynamic, you start building your own from the FFmpeg building blocks (from which ffmpeg.c is made as well)
[20:13:10 CEST] <edgar_> sounds good. i think it 'll take some time to understand how to do this xD
[20:13:26 CEST] <JEEB> there's some examples for various things in the doc/examples directory
[20:13:45 CEST] <JEEB> I think the transcoding example is not perfect, but it does indeed utilize some of the not-ancient APIs
[20:13:53 CEST] <JEEB> also it doesn't try to do file reading manually I think
[20:24:45 CEST] <blayze> hello
[20:25:30 CEST] <blayze> im new to ffmpeg .. does libaom download with ffmpeg or do i have to dl it seperately
[20:25:45 CEST] <JEEB> libaom is a separate project for which there is a wrapper in FFmpeg
[20:25:54 CEST] <JEEB> so you need to download, build and install libaom
[20:26:00 CEST] <JEEB> then FFmpeg with libaom enabled
[20:27:14 CEST] <blayze> thank you jeeb
[20:28:19 CEST] <JEEB> install doesn't mean into your general sysroot of course, you can install into some home directory prefix or so with --prefix and then use PKG_CONFIG_PATH to guide FFmpeg's configure to that location
[20:28:27 CEST] <JEEB> (101 in *nix build systems)
[20:34:38 CEST] <SpeakerToMeat> I'm trying to cut a piece from time X to the end with -ss but I want/need to be more precise than seconds, yet I'm trying from -ss 00:01:33.1 to -ss 00:01:33.9 as an input and it seems to make no difference on the output.... any idea why? and if I can use a more frame-specific format (not easy considering source is 23.976)
[20:35:23 CEST] <kepstin> SpeakerToMeat: are you using -c copy? if so, it can only cut at keyframes
[20:36:38 CEST] <SpeakerToMeat> kepstin: AH! makes sense
[20:36:48 CEST] <SpeakerToMeat> kepstin: Thank you
[00:00:00 CEST] --- Mon May 21 2018
1
0
[00:07:21 CEST] <durandal_1707> michaelni: have you applied your probe patchset?
[00:17:36 CEST] <jkqxz> tmm1: Intending to finish at some point. There is some cleanup to do, and I'm still not sure that I like the overall structure of it.
[00:55:55 CEST] <tmm1> jkqxz: cool
[00:56:04 CEST] <tmm1> anyone know what h264 SEI type 128 is?
[00:58:52 CEST] <jkqxz> An error?
[01:02:31 CEST] <tmm1> hmm yea, i wonder if its a bug in the parser
[01:03:20 CEST] <tmm1> seeing "unknown SEI type 128" on https://tmm1.s3.amazonaws.com/vts.mpg
[01:10:54 CEST] <jkqxz> Coming from what? I only see both timing types and and udr with captions.
[01:20:12 CEST] <tmm1> printed from h264_sei.c, using `ffmpeg -loglevel debug -i vts.mpg -map v -c copy -f null /dev/null`
[01:21:17 CEST] <tmm1> i see the same when using h264_analyze (timing, udr only)
[01:30:24 CEST] <jkqxz> Trailing zeroes on the NAL unit confuse the SEI code in the parser.
[01:30:35 CEST] <jkqxz> It looks for more stuff after the end, that 128 is the rbsp trailing bits.
[01:33:13 CEST] <tmm1> ah ok
[01:40:08 CEST] <tmm1> i guess ff_h264_sei_decode should take the nal's size_bits as an argument and use that to ignore the trailer
[01:41:38 CEST] <nevcairiel> it takes a getbitcontext, that should probably just be initialized with the right amount of bits
[01:42:48 CEST] <jkqxz> Yeah.
[01:43:53 CEST] <jamrial> h264_parser doesn't use ff_h2645_packet_split, which does make sure the nal is valid
[01:44:14 CEST] <jamrial> assuming this call to ff_h264_sei_decode comes from there and not from h264dec
[01:45:28 CEST] <tmm1> yep
[01:45:31 CEST] <tmm1> creating the gb using size_bits fixed it
[01:50:27 CEST] <tmm1> sent patch to the list
[02:14:26 CEST] <tmm1> looks like that's breaking something else
[02:20:16 CEST] <jamrial> tmm1: ff_h2645_extract_rbsp() does not set nal.set_bits
[02:20:30 CEST] <jamrial> err, nal.size_bits
[02:26:20 CEST] <tmm1> oh, well that would explain it
[02:35:09 CEST] <jamrial> one solution is setting that there instead of only in ff_h2645_packet_split()
[02:35:28 CEST] <jamrial> another is to port h264_parser to use the latter
[02:38:59 CEST] <hanna> Simply linking to a libavcodec.so built with opencl enabled does all sorts of weird stuff when loading the process: http://0x0.st/seJ6.txt
[02:39:04 CEST] <hanna> Why is this the case and can it be removed?
[02:39:14 CEST] <hanna> When libavcodec is built without opencl, linking to libavcodec.so does nothing out of the ordinary
[02:40:23 CEST] <hanna> Ah, seems like that happens because of linking to libOpenCL.so, so not an FFmpeg bug
[02:44:52 CEST] <jkqxz> I think you want to link with the ICD loader, not a vendor ICD. The vendor ICDs may do crazy shit.
[02:45:16 CEST] <jkqxz> Which ICD is that?
[03:50:02 CEST] <jamrial> tmm1: https://pastebin.com/H2TKGDK4 this seems to fix the invalid say error
[03:52:08 CEST] <jamrial> s/say/sei
[03:54:20 CEST] <jamrial> still, h264_parser should use nal.size_bits
[03:58:04 CEST] <tmm1> ah interesting
[03:58:18 CEST] <tmm1> yea, i guess its probably worth doing both
[04:04:32 CEST] <cone-189> ffmpeg 03Aman Gupta 07master:2b2f2f65f38c: avformat: add fields to AVProgram/AVStream for PMT change tracking
[04:04:32 CEST] <cone-189> ffmpeg 03Aman Gupta 07master:24579bf53747: avformat/mpegts: keep track of PMT details in AVProgram/AVStream
[04:04:32 CEST] <cone-189> ffmpeg 03Aman Gupta 07master:16b4f97b721d: avformat/mpegts: add merge_pmt_versions option
[04:18:38 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:13d83899df3c: avcodec/videotoolbox: improve logging of decoder errors
[04:18:39 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:ef9478d26463: avcodec/videotoolbox: fix kVTCouldNotFindVideoDecoderErr trying to decode HEVC on iOS
[04:18:40 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:e40922c16c3e: avcodec/videotoolbox: cleanups
[04:18:41 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:e8caf67f56c6: avcodec/videotoolbox: split h264/hevc callbacks
[04:18:42 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:76716518a817: avcodec/hevc: remove videotoolbox hack
[04:18:43 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:2884575d97cb: avcodec/videotoolbox: fix decoding of some HEVC videos
[04:18:44 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:84bf631018e9: avcodec/mediacodecdec: clarify delay_flush specific code
[04:18:45 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:3054e53ddcfa: avcodec/mediacodecdec: use AV_TIME_BASE_Q
[04:18:46 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:33042d632d12: avcodec/mediacodecdec: refactor pts handling
[04:18:47 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:6f55a36be9a2: avcodec/mediacodec_wrapper: add helper to fetch SDK_INT
[04:18:48 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:df2c811b7ce3: avcodec/mediacodecdec: restructure mediacodec_receive_frame
[04:18:49 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:db5631e4087f: avcodec/mediacodecdec: wait on first frame after input buffers are full
[04:18:50 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:bb6a34f237ec: avcodec/mediacodecdec: add workaround for buggy amlogic mpeg2 decoder
[04:18:51 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:97aea63340d1: avformat/mpegts: skip non-PMT tids earlier
[04:18:52 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:ef28571efe23: avformat/mpegts: use MAX_SECTION_SIZE instead of hardcoded value
[04:18:53 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:7ad163c258f2: avformat/mpegts: clean up whitespace
[04:18:54 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:c343eabfb77c: avformat/mpegts: parse sections with multiple tables
[04:18:55 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:852f78443a9d: avformat/mpegts: reindent after last change
[04:18:56 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:d1845e7f1a39: avformat/mpegts: initialize section_buf to fix valgrind test failure
[04:18:57 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:8336a6627045: avformat/mpegts: fix incorrect indentation
[04:18:58 CEST] <cone-189> ffmpeg 03Aman Gupta 07release/4.0:da399903c76d: ffprobe: fix SEGV when new streams are added
[07:20:06 CEST] <Mindless`> I found a bug and Trac registration is broken. ffprobe produces wrong XML; "data_hash" attribute is sometimes in the text -- https://pastebin.mozilla.org/9085828
[07:25:04 CEST] <Mindless`> Nevermind -- I tried a few more times and it finally didn't give me a gateway error.
[11:31:41 CEST] <durandal_1707> atomnuker: instead of doing stylistic changes to source code you should really finish atrac9 and fft/dct :-/
[13:45:18 CEST] <JEEB> -33
[14:30:24 CEST] <durandal_1707> atomnuker: which algo is best for audio noise reduction ?
[14:56:20 CEST] <cone-096> ffmpeg 03Martin Vignali 07master:644130bcaa22: avdevice/sdl2output : fix setting window_size
[14:56:20 CEST] <cone-096> ffmpeg 03Martin Vignali 07master:411f7141a3c3: avdevice/sdl2 : add option to define if the window quit action is available
[15:39:58 CEST] <gagandeep> kierank: i am looking at get_bits.h, i need to obtain values from bitstream, so i am using get_bits
[15:40:19 CEST] <kierank> Ok
[15:40:25 CEST] <kierank> What values
[15:40:41 CEST] <gagandeep> but get_bits is not running, do i need to initialize the api
[15:41:11 CEST] <gagandeep> can you give me pointers to using the api
[15:41:16 CEST] <kierank> Yes but what do you need exactly
[15:41:37 CEST] <kierank> What tag are you looking at
[15:42:27 CEST] <gagandeep> i have got the tag, and now the table is in the bitstream buffer, since size hasn't been provided for the table i need to use values directly from the bitstream
[15:42:45 CEST] <gagandeep> table = peak value table
[15:43:08 CEST] <kierank> gagandeep: can you link me in cineform decoder
[15:44:20 CEST] <gagandeep> kierank: https://github.com/gopro/cineform-sdk/blob/master/Codec/decoder.c#L23658
[15:45:07 CEST] <gagandeep> i have all the tags and other stuff, they are using base to hold the pointer for table in stream for later use but can i also do that
[15:47:12 CEST] <kierank> what does peak value table do
[15:47:52 CEST] <gagandeep> there are some values in subband that are overwritten by this table which combined with difference coding produces the desired result
[15:48:00 CEST] <gagandeep> only that part is left for interlaced
[15:48:22 CEST] <gagandeep> if subband value > level, then it is replaced by peak table value
[15:48:26 CEST] <kierank> interesting
[15:49:24 CEST] <kierank> I don't see in the code where you need to get bits
[15:49:31 CEST] <kierank> I think I did all the bitstream work
[15:50:33 CEST] <gagandeep> that code is in the dequantisation routine somewhere else in decoder.c
[15:50:39 CEST] <kierank> looks like there's a table in the binary
[15:50:44 CEST] <kierank> and it gives an x,y position
[15:52:11 CEST] <gagandeep> i will see what i can do with bitstream then
[15:52:24 CEST] <kierank> you shouldn't need bitstream code to do this
[15:53:20 CEST] <kierank> I can see why you think that
[15:53:27 CEST] <kierank> but you don't actually need get_bits code for this
[15:53:46 CEST] <kierank> basically it seems like there is a lookup table in the file itself
[15:54:26 CEST] <kierank> for each subband
[15:55:53 CEST] <kierank> gagandeep: do you want me to explain what the tag code does?
[15:56:23 CEST] <gagandeep> sure why not
[15:57:15 CEST] <kierank> do you see how it creates a lookup table in the frame data itself?
[15:57:40 CEST] <kierank> and then for each coefficient it checks the value in the lookup table
[15:57:42 CEST] <kierank> https://github.com/gopro/cineform-sdk/blob/master/Codec/decoder.c#L19676
[15:59:25 CEST] <gagandeep> yeah, i also said that it replace values from the table
[15:59:28 CEST] <gagandeep> so
[16:00:02 CEST] <kierank> they way they do run/level is a bit odd
[16:00:25 CEST] <kierank> it's super hand optimised
[16:00:36 CEST] <gagandeep> yeah
[16:00:54 CEST] <gagandeep> hand optimised without documentation
[16:01:03 CEST] <gagandeep> super tough to see
[16:01:14 CEST] <kierank> yeah
[16:02:23 CEST] <gagandeep> this is what i am aslo doing just need to get the peak value using get_bits
[16:02:27 CEST] <gagandeep> is my approach
[16:02:58 CEST] <kierank> not sure about that
[16:03:18 CEST] <gagandeep> or can i also get the pointer to the table like they did during updating the header
[16:03:19 CEST] <kierank> their FSM is equivalent to our get_vlc ode
[16:03:26 CEST] <gagandeep> yeah
[16:03:49 CEST] <kierank> but they seem to have some kind of special subband type where they zero everything out
[16:04:11 CEST] <kierank> and then start reading vlcs but then runs they don't seem to care about
[16:04:28 CEST] <gagandeep> no, that subband is the same one,
[16:04:35 CEST] <gagandeep> they just use fsm to fill it
[16:04:52 CEST] <gagandeep> they dequantize the fsm before hand and decompand before hand
[16:05:04 CEST] <kierank> but where do they handle the runs?
[16:07:19 CEST] <gagandeep> by runs you me entropy code?
[16:07:25 CEST] <gagandeep> *mean
[16:07:58 CEST] <kierank> yes, it uses run level coding
[16:08:08 CEST] <kierank> so it says I have a level of 52 or whatever, some number
[16:08:12 CEST] <kierank> repeat this for n runs
[16:08:22 CEST] <kierank> but I don't see where they handle the run part in the code
[16:10:04 CEST] <gagandeep> kierank: search 'dequantfsm' i think there is something of that function with fsm
[16:10:14 CEST] <gagandeep> in the same file
[16:10:29 CEST] <kierank> oh so they do something like: level1, 0, 0, 0, level2, 0, 0 ,0 , 0
[16:10:34 CEST] <kierank> then in dequant they fill the holes
[16:10:55 CEST] <gagandeep> yeah initialize whole subband with zero and skip
[16:11:03 CEST] <gagandeep> that was in the peaks function
[16:11:12 CEST] <kierank> ok I understand half of it now
[16:11:16 CEST] <kierank> but I don't understand rowptr[1]
[16:11:19 CEST] <kierank> what's that?
[16:12:09 CEST] <gagandeep> they are using only 4 bits out of 8bits of stream to refference to fsm and other 4bits to refference for the next index
[16:13:01 CEST] <gagandeep> rowptr[0] and rowptr[1] are just two elements in band next to each other
[16:14:53 CEST] <gagandeep> also they are first running the code leaving out the last 1000 or so elements and then finally complete it by writing the same code again
[16:15:00 CEST] <gagandeep> a mess really
[16:16:48 CEST] <kierank> gagandeep: so the peak detection only happens on the first level out of the run as far as I can tell?
[16:17:55 CEST] <gagandeep> it can theoretically happen on others as well, but i have the sample with level 1 peak detection currently
[16:18:25 CEST] <kierank> I still don't see where they handle the runs
[16:18:48 CEST] <kierank> durandal_1707: cineformsdk is messy code
[16:20:35 CEST] <gagandeep> kierank: the threaded part was handling it above
[16:20:49 CEST] <gagandeep> i can only say it must happen in 'dequantfsm' function
[16:20:52 CEST] <gagandeep> check that one
[16:21:54 CEST] <gagandeep> kierank:https://github.com/gopro/cineform-sdk/blob/master/Codec/decoder.c#L…
[16:28:16 CEST] <kierank> I still don't understand why they don't do peak detection on rowptr[1]
[16:31:22 CEST] <gagandeep> maybe they don't need to, they are just doing peak detection to reduce the very large values which result after transform
[16:31:35 CEST] <gagandeep> and since they are doing difference coding later
[16:31:42 CEST] <kierank> ah unless rowptr[1] is the run
[16:31:50 CEST] <kierank> and rowptr[0] is level
[16:33:30 CEST] <gagandeep> no i dont think so
[16:33:40 CEST] <gagandeep> they are using rowptr for difference coding later
[16:34:15 CEST] <kierank> I guess then you can just integrate peak detection into existing loop
[16:35:35 CEST] <gagandeep> https://github.com/gopro/cineform-sdk/blob/master/Codec/decoder.c#L20493
[16:35:42 CEST] <gagandeep> yeah, i have done that
[16:36:54 CEST] <kierank> I understand what they are doing (working with a compressed buffer in a sense)
[16:36:57 CEST] <kierank> but it's bloody confusing
[16:37:25 CEST] <gagandeep> kierank: https://imgur.com/a/iLriA6N
[16:37:32 CEST] <gagandeep> this is the troublesome sample
[16:37:44 CEST] <kierank> hmm looks close
[16:37:55 CEST] <gagandeep> the white rows are due to difference coding which kept the value persisting
[16:38:21 CEST] <kierank> ah it also has difference coding?
[16:38:55 CEST] <gagandeep> when decompanding is not done, difference coding is done
[16:39:15 CEST] <gagandeep> really a mess, it was written somewhere in codeset structs
[16:41:38 CEST] <gagandeep> kierank: i will study the bitstream part and hopefully i should be done with this by tomorrow
[16:41:45 CEST] <gagandeep> afk
[16:41:51 CEST] <kierank> ok
[16:45:58 CEST] <JEEB> so there's a question about getting the QP data from an AVFrame (side data currently I think). our APchanges' most recent thing was "Add AV_FRAME_DATA_QP_TABLE_PROPERTIES and AV_FRAME_DATA_QP_TABLE_DATA.", where the documentation instructs to use "av_frame_get_qp_table", which in turn is already deprecated
[16:46:06 CEST] <JEEB> can someone remind me what I tell a user in this case?
[16:46:22 CEST] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=doc/APIchanges#l60
[16:46:46 CEST] <JEEB> https://ffmpeg.org/doxygen/trunk/group__lavu__frame.html#ggae01fa7e42727429…
[16:47:33 CEST] <JEEB> so the side data structure is internal, and the docs say to go for the function. the function is already by itself deprecated :D
[17:04:24 CEST] <atomnuker> durandal_1707: I'm glad at least someone other than me noticed the changes
[17:51:39 CEST] <kierank> "only zero values are run length coded."
[17:51:41 CEST] <kierank> explains a lot
[18:07:57 CEST] <jamrial> tmm1: your latest mpegts change has a memory leak
[18:38:35 CEST] <durandal_1707> atomnuker: you havent answered my other question, aren't you the audio expert?
[18:52:51 CEST] <atomnuker> durandal_1707: right, I forgot, for voice its the neural network thing in libopus, for anything else, I'd try what audacity is doing (capturing a sample and using it as a signature)
[19:15:31 CEST] <kierank> durandal_1707: do you understand cineform fsm?
[19:20:56 CEST] <durandal_1707> kierank: nope
[19:21:09 CEST] <kierank> https://github.com/gopro/cineform-sdk/blob/master/Codec/decoder.c#L19699
[19:21:19 CEST] <kierank> I don't understand why it only does peak detection on one coefficient
[19:24:36 CEST] <durandal_1707> atomnuker: spectral subtraction is interactive and bad quality
[19:47:16 CEST] <durandal_1707> ubitux: you probably never heard of av_always_inline?
[19:52:09 CEST] <atomnuker> durandal_1707: maybe audacity does something different with the noise signature? last time I used it it was okay
[19:53:51 CEST] <ubitux> durandal_1707: i did, why?
[19:55:17 CEST] <ubitux> it just makes sure the inline is honored with non-optimized flags, iirc
[19:55:44 CEST] <ubitux> (but the compiler is still free to ignore it afaik)
[19:56:21 CEST] <ubitux> always being "please try to do it with -O0 too", never "i order you to inline the function"
[20:00:19 CEST] <iive> ubitux, huh?
[20:00:30 CEST] <ubitux> i'm wrong?
[20:06:13 CEST] <iive> if you find a case where always inline does not inline, you can report it as bug.
[20:09:56 CEST] <nevcairiel> inline is just a hint, not a commandment, thats what forceinline is for
[20:23:05 CEST] <durandal_1707> why vc1 patches are still not reviewed?
[20:23:27 CEST] <wm4> because
[20:23:30 CEST] <JEEB> I think at least one of them got comments on creating artifacts on some sample
[20:24:17 CEST] <tmm1> jamrial: did a test fail?
[20:24:42 CEST] <jamrial> yes, fate-mpegts-probe-pmt-merge
[20:24:53 CEST] <jamrial> under valgrind
[20:25:37 CEST] <tmm1> thanks i will check it out
[20:26:31 CEST] <durandal_1707> why mbedtls is not applied?
[20:26:49 CEST] <tmm1> can i run valgrind tests locally somehow?
[20:28:46 CEST] <JEEB> yea
[20:29:10 CEST] <JEEB> http://fate.ffmpeg.org/report.cgi?time=20180519085700&slot=x86_64-archlinux…
[20:29:23 CEST] <JEEB> --target-exec='valgrind --error-exitcode=1 --malloc-fill=0xa2 --leak-check=full --gen-suppressions=all --suppressions=/home/fate/ffmpeg/tests/fate-valgrind.supp --undef-value-errors=no'
[20:29:27 CEST] <JEEB> is the key
[20:29:42 CEST] <JEEB> it tells the runners to prepend that to the FATE processes
[20:30:18 CEST] <JEEB> if you look at the stderr it will actually also list the command used
[20:30:27 CEST] <JEEB> ffprobe -show_entries stream=codec_name -print_format default -bitexact -v 0 -merge_pmt_versions 1 -i /home/fate/fate-suite/mpegts/pmtchange.ts
[20:30:36 CEST] <JEEB> and that run under valgrind
[20:33:04 CEST] <tmm1> gotcha thanks
[20:37:05 CEST] <jamrial> wow, ticket 7219, what a crappy memcpy implementation
[20:38:43 CEST] <BtbN> why does it even break?
[20:38:51 CEST] <jamrial> badly made macro
[20:38:51 CEST] <BtbN> Does it not properly put () around its arguments
[20:38:55 CEST] <jamrial> not wrapping arguments
[20:39:15 CEST] <BtbN> Well, blame OSX I'd say
[20:39:23 CEST] <jamrial> so the second argument being full of commas makes it trip
[20:43:28 CEST] <jamrial> we could i guess change these memcpy calls, assuming apple is not going to bother fixing this "secure" header in 10.11
[20:44:33 CEST] <jamrial> michaelni: ^ you added these recently. what do you think?
[20:45:52 CEST] <durandal_1707> atomnuker: i generate noise with anoisesrc and mix it with music, audacity ouput sounds bad
[20:52:26 CEST] <durandal_1707> atomnuker: what do you think about non-local means denoising for audio ?
[21:25:31 CEST] <JEEB> jamrial: I thought 10.11 was going out of support soon'ish?
[21:25:32 CEST] <atomnuker> durandal_1707: someone wrote a paper, you could certainly give it a try
[21:25:57 CEST] <atomnuker> ftp://ftp.math.ucla.edu/pub/camreport/cam08-56.pdf
[21:28:49 CEST] <atomnuker> hmm, I wonder if using an s-transform for spectral subtraction would be better than just an fft-based one
[21:31:01 CEST] <durandal_1707> atomnuker: what is s-transform?
[21:44:02 CEST] <atomnuker> its a pseudo frequency/time one, its used in seismology to filter out noise
[23:55:35 CEST] <jdarnley> Does anyone have any tips about "de-obfuscating" media files in video games?
[23:55:43 CEST] <jdarnley> I want to be able to decode the ogg files shipped with this one, Ys 8.
[23:56:34 CEST] <durandal_1707> jdarnley: tried vgmstream?
[23:56:46 CEST] <jdarnley> No. I am not familiar with that.
[23:58:03 CEST] <jdarnley> Holy shit! I remember Halley's Comet Software.
[00:00:00 CEST] --- Sun May 20 2018
1
0
[02:43:33 CEST] <akaizen> hi, im trying to get a keyframe count for a video
[02:43:44 CEST] <akaizen> I've tried this but it takes forever : "ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 input.mp4" and only counts the number of frames
[02:43:47 CEST] <akaizen> from: https://stackoverflow.com/questions/2017843/fetch-frame-count-with-ffmpeg
[03:03:07 CEST] <furq> akaizen: -skip_frame nokey
[03:04:00 CEST] <akaizen> @furq ty - is there a way to make it faster? i jsut need a count of the keyframe no decode all of them (thats second round when I need to evenly take screenshots)
[06:42:57 CEST] <deanylev> Anyone know where I can download Linux static builds?
[06:43:06 CEST] <deanylev> The listed download site has been taken down due to lack of Patreon donations https://johnvansickle.com/ffmpeg/
[06:58:28 CEST] <akaizen> should probs get cloudflare to support mirrors
[08:27:44 CEST] <d-safinaskar> hi. i captured hundreds of hours of video using "ffmpeg -f x11grab -i :0 -c:v libx264 -preset ultrafast -qp 0 out.mkv"
[08:27:51 CEST] <d-safinaskar> are this video lossless?
[08:27:56 CEST] <d-safinaskar> i hope they are lossless
[08:55:26 CEST] <durandal_1707> d-safinaskar: it should be
[09:03:43 CEST] <d-safinaskar> durandal_1707: thanks
[10:02:06 CEST] <halfgaar> here (http://www.ffis.de/Verein/spi-en.html) it states that I should e-mail 'donation (at) ffis.de' when one makes a donation. I did so in March, and I sent an e-mail, but it bounced. I then e-mailed 'vorstand(a)ffis.de', but never heard anything. How do I know it arrived?
[10:23:22 CEST] <QuHno> Does someone know how to create MP4 files _exactly_ like this one? https://v.redd.it/3kia291zqagz/DASH_600_K <- I need to create a bunch of similar files for regression tests. It looks like the bitrate is fixed to exactly 600kbps and I have absolutely no clue how to achieve that.
[12:26:48 CEST] <boobie> What does the 0-1 target RMS value in dynaudnorm equate to in db?
[12:52:11 CEST] <reujea0> how can i compile for android doies arch arm64 exist in the config?
[13:03:16 CEST] <durandal_1707> boobie: take sqrt of it
[16:38:00 CEST] <fritsch> it seems: https://ffmpeg.org/doxygen/4.0/group__lavu__frame.html#gad08c37260c53f8587f… got deprecated, but when looking at the documentation to get qp_table from side_data it says: use av_frame_get_qp_table instead? Which one should be used after deprecation?
[16:40:58 CEST] <JEEB> fritsch: well APIchanges has Add AV_FRAME_DATA_QP_TABLE_PROPERTIES and AV_FRAME_DATA_QP_TABLE_DATA.
[16:41:01 CEST] <JEEB> from March
[16:41:03 CEST] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=doc/APIchanges
[16:41:18 CEST] <JEEB> so I would guess that is the latest QP-related thing
[16:41:31 CEST] <JEEB> I'm actually really not sure how many decoders export this data, fyi
[16:42:52 CEST] <fritsch> JEEB: problem is the documentation, it tells otherwise: don't use the side_data
[16:43:09 CEST] <fritsch> https://ffmpeg.org/doxygen/4.0/group__lavu__frame.html#ggae01fa7e427274293a…
[16:43:12 CEST] <fritsch> see
[16:43:52 CEST] <JEEB> that's quite interesting indeed
[16:44:12 CEST] <JEEB> I mean, I can understand the construct of the side data being internal and then using helper functions to get it
[16:44:21 CEST] <JEEB> but if they're both deprecated then that gets pretty funky
[16:44:29 CEST] <JEEB> also generally utilize the "trunk" documentation for latest
[16:44:44 CEST] <JEEB> although I bet this particular point has no difference in either
[16:46:25 CEST] <fritsch> we use it in kodi to fill pp_postprocess
[16:46:41 CEST] <fritsch> to properly apply the filters - for nothing else really
[16:47:12 CEST] <JEEB> I poked the -devel channel to remind me of anything related to this
[16:47:37 CEST] <fritsch> it's not a biggy, just wanted to be sure I change it correctly to not run into the next deprecation
[16:47:40 CEST] <fritsch> thx much
[22:48:46 CEST] <arinov> hi guys
[22:48:57 CEST] <arinov> how to convert wav 24 -> wav 16?
[22:51:15 CEST] <furq> -i foo.wav -c:a pcm_s16le bar.wav
[22:51:35 CEST] <arinov> ah, its a pcm format
[22:51:37 CEST] <arinov> ok thanks
[22:51:42 CEST] <arinov> furq be well
[00:00:00 CEST] --- Sun May 20 2018
1
0
[00:53:33 CEST] <tmm1> JEEB: ok sent a new patch with the AVProgram change flag you wanted
[01:23:03 CEST] <JEEB> tmm1: holy carp. will have to check after I have my sleep finally
[01:23:16 CEST] Action: JEEB was giving a few minutes to the ARIB stuff he was poking at
[02:06:02 CEST] <klaxa> ok this far i'm done with reading a lua config and parsing it into C structs, i'm almost done with running servers according to the configuration, still buggy, but in general sending data and not crashing a lot
[02:08:23 CEST] <klaxa> or so i thought...
[03:35:53 CEST] <tmm1> jkqxz: whats the state of that userdata/metadata cbs patchset?
[03:40:54 CEST] <cone-188> ffmpeg 03Rostislav Pehlivanov 07master:ce943dd6acbf: configure: error out on unsupported MSVC versions
[03:40:54 CEST] <cone-188> ffmpeg 03Rostislav Pehlivanov 07master:62a7a70484f7: doc/developer: update style guidelines to include for loops with declarations
[03:40:54 CEST] <cone-188> ffmpeg 03Rostislav Pehlivanov 07master:8e7b13b971be: opusenc: use for loops with declarations
[03:42:02 CEST] <atomnuker> its now a modern C99 project
[03:47:51 CEST] <tmm1> maybe in another 19 years we can allow mixed code and declarations
[03:49:06 CEST] <klaxa> there's apparently good reasons to forbid that like poor variable visibility
[04:00:06 CEST] <atomnuker> yeah, mostly, though in some places it helps
[13:21:27 CEST] <cone-471> ffmpeg 03Paul B Mahol 07master:e9dd5b4f5eed: avfilter/vf_waveform: add slice threading
[14:04:23 CEST] <gagandeep> kierank: i am almost done with interlacing with the samples on tracker
[14:04:36 CEST] <gagandeep> the error was in codebook
[14:05:24 CEST] <gagandeep> there are 3 codebooks in cineform and on using a flag in tag, decompanding was not to be used
[14:05:24 CEST] <kierank> oh really
[14:05:29 CEST] <kierank> ah
[14:05:45 CEST] <gagandeep> just that peak table implementation is left
[14:06:41 CEST] <gagandeep> codebook 17(flag = 1) is same as codebook 18(flag = 2) but with flag 2 no decompand
[14:07:12 CEST] <gagandeep> i might need some help with reading the bitstream for constructing the peak table
[14:07:27 CEST] <gagandeep> two samples out of 3 are giving correct results now
[14:08:49 CEST] <gagandeep> i dont know why they made same codesets with different name and used different flags for refferencing
[14:09:17 CEST] <kierank> good work
[14:10:19 CEST] <gagandeep> thanks
[14:39:21 CEST] <durandal_1707> gagandeep: where are patches?
[14:39:53 CEST] <JEEB> he's working on it, you know
[15:43:44 CEST] <cone-471> ffmpeg 03Tobias Rapp 07master:eb28b5ec8a21: avfilter/vsrc_testsrc: add pal75bars and pal100bars video filter sources
[19:16:40 CEST] <cone-471> ffmpeg 03Clément BSsch 07master:2940af9389e5: tests/checkasm/nlmeans: fix invalid read/write on ii buffer
[20:58:27 CEST] <BtbN> Does the null format not discard frames?
[21:02:33 CEST] <nevcairiel> it just does nothing with them, not sure what you mean?
[21:03:33 CEST] <BtbN> If I do -hwaccel nvdec -hwaccel_output_format cuda -i something_hevc.mp4 -f null - the decoder runs out of output surfaces
[21:03:40 CEST] <BtbN> doing a transcode with nvenc works fine
[21:03:58 CEST] <jkqxz> BtbN: -an
[21:04:28 CEST] <jkqxz> You end up with funny effects from it trying to synchronise audio and video into the null muxer, for reasons I've never cared to pursue.
[21:04:45 CEST] <BtbN> it works fine for a h264 video for some reason
[21:04:48 CEST] <nevcairiel> it uses wrapper avframe, which is a huge ugly hack that should never exist, so maybe that messes up with hw frames, not sure i ever used that combination
[21:05:05 CEST] <BtbN> Just wanted to know raw hwdec speed
[21:05:09 CEST] <BtbN> so it seemed like the obvious choice
[21:05:20 CEST] <jkqxz> You definitely want -an then :P
[21:05:33 CEST] <BtbN> Yeah, -an -sn fixed it
[21:05:35 CEST] <BtbN> weird
[21:06:36 CEST] <cone-471> ffmpeg 03Aman Gupta 07master:e24d768a76b1: avformat/mpegts: add skip_unknown_pmt option
[21:11:26 CEST] <tmm1> is AVFrame.hw_frames_ctx used for anything internally in lavc, or just there for the API user?
[21:14:24 CEST] <wm4> in videotoolbox it's pretty much only to make the API happy
[21:14:49 CEST] <wm4> though it could be used to negotiate the sw_pix_fmt I guess
[21:15:09 CEST] <wm4> in general, it keeps the hardware frame pool alive
[21:15:15 CEST] <wm4> for normal hwaccels
[21:15:58 CEST] <BtbN> nvenc uses it to get the actual frame dimensions with padding and stuff
[21:16:08 CEST] <BtbN> cause AVCodecContext does not carry that
[21:16:38 CEST] <tmm1> ok cool, i'm going to commit http://ffmpeg.org/pipermail/ffmpeg-devel/2018-May/230224.html then
[21:16:39 CEST] <BtbN> And it's also the only documented way to pass in the sw_pix_fmt
[21:18:01 CEST] <BtbN> That sounds more like something else is really really broken, and this just masks it
[21:18:20 CEST] <nevcairiel> its probably caused by the madness that is vt
[21:18:38 CEST] <BtbN> Probably just a missing av_buffer_ref somewhere when taking the hw_frames_ctx
[21:21:35 CEST] <nevcairiel> the problem is likely that the hwaccel tries to manage the hw_frames_ctx instead of letting generic code handle it like its done for proper hwaccels
[21:24:56 CEST] <tmm1> where is the generic code that would set the hw_frames_ctx on a frame?
[21:25:45 CEST] <BtbN> the hw_frames_ctx code itself set it, when allocating the frame.
[21:26:03 CEST] <nevcairiel> yeah in default_get_buffer2 -> av_hwframe_get_buffer
[21:26:15 CEST] <nevcairiel> that way every frame has that always set
[21:28:21 CEST] <nevcairiel> to get a similar result you should probably do it in ff_videotoolbox_alloc_frame
[21:28:30 CEST] <nevcairiel> since thats called about at the same time
[21:29:57 CEST] <nevcairiel> but apparently thats incompatible with the design of the vt decoder
[21:30:01 CEST] <nevcairiel> ie. you're fucked :p
[21:30:03 CEST] <tmm1> yea ugh
[21:30:23 CEST] <tmm1> i don't think that would solve the issue anyway, because somehow the value is disappearing after its been set
[21:30:38 CEST] <nevcairiel> its not disappearing, its probably just ad ifferent frame that never had it set
[21:30:49 CEST] <nevcairiel> because the main frame allocation function does not set it in your case
[21:31:12 CEST] <nevcairiel> my guess is that it moves the frame data into another frame somewhere
[21:36:31 CEST] <tmm1> yea i think that's what is happening
[21:38:03 CEST] <tmm1> so since i don't have the hw_frames_ctx until the vt decoder gives me back the frame, storing it separately and attaching to the AVFrame later seems like an okay workaround?
[21:38:18 CEST] <tmm1> considering how hacked up this is in the first place
[21:55:24 CEST] <cone-471> ffmpeg 03Aman Gupta 07master:8f146b526ff8: avcodec/videotoolbox: fix decoding of some HEVC videos
[21:56:00 CEST] <tmm1> rewrote the commit message to more accurately describe whats happening
[22:04:20 CEST] <JEEB> anyone on mac to check if they get this https://pastebin.com/mLrBTS2Q ?
[22:04:35 CEST] <JEEB> (yes, memcpy, macro)
[22:05:03 CEST] <wm4> seems to be OSX' fault
[22:05:10 CEST] <wm4> from a first look
[22:05:22 CEST] <JEEB> too bad they renamed it, so now you call it "macos" again
[22:05:25 CEST] <JEEB> (Ž4@)
[22:05:32 CEST] <JEEB> *are supposed to call it
[22:09:30 CEST] <tmm1> JEEB: i've been building master on macos and haven't seen that
[22:31:15 CEST] <klaxa> hmmm wtf, i can define multiple servers no problem, but multiple streams per server still giving me trouble...
[22:43:41 CEST] <cone-471> ffmpeg 03James Almer 07master:79126ce80e21: avfilter/vsrc_testsrc: fix a preprocessor check
[22:58:58 CEST] <tmm1> jkqxz: are you still working on the a53 cbs patchset?
[23:28:08 CEST] <klaxa> ok figured it out, race conditions are hard to track :/
[00:00:00 CEST] --- Sat May 19 2018
1
0
[00:00:09 CEST] <atomnuker> device derivation for vaapi is messed up and doesn't work
[00:00:20 CEST] <atomnuker> so you need to do it manually like I described
[00:01:14 CEST] <atomnuker> so the command line would be ffmpeg -init_hw_device "vaapi=vap:/dev/dri/renderD128" -f kmsgrab -i /dev/null -filter_hw_device vap -vf hwmap,hwdownload,format=nv12 -f null -
[00:01:31 CEST] <atomnuker> this will map, convert and download to nv12
[00:03:27 CEST] <f-safinaskar> atomnuker: wow, this works!
[00:06:47 CEST] <f-safinaskar> atomnuker: thanks a lot
[00:06:58 CEST] <f-safinaskar> atomnuker: even switching into tty1 works!!
[00:07:10 CEST] <f-safinaskar> atomnuker: please describe every option. i want to understand how this works
[00:08:34 CEST] <f-safinaskar> atomnuker: also, is this possible to generate frames as fast as the screen actually changes?
[00:08:50 CEST] <f-safinaskar> atomnuker: and to attach timestamp info into every frame?
[00:08:52 CEST] <f-safinaskar> :)
[00:09:28 CEST] <atomnuker> as fast as the screen changes?
[00:09:34 CEST] <f-safinaskar> atomnuker: yes
[00:09:52 CEST] <f-safinaskar> atomnuker: i. e. every time screen changes, i. e. some new letter appears, i want to write new frame
[00:10:41 CEST] <atomnuker> add a decimate filter for that to remove identical frames
[00:10:56 CEST] <atomnuker> for timestamp, look at the drawtext filter
[00:11:26 CEST] <f-safinaskar> atomnuker: i don't mean actually draw a text on a frame
[00:11:36 CEST] <f-safinaskar> atomnuker: i mean I want to store metainfo somehow
[00:11:48 CEST] <f-safinaskar> atomnuker: for example as a subtitle or something like that
[00:13:54 CEST] <atomnuker> its already in the metadata
[00:14:18 CEST] <atomnuker> you can't not have a timestamp
[00:15:17 CEST] <kepstin> hmm, but depending how you use ffmpeg, you'll probably get the timestamps reset so the first frame is 0. There's way to avoid that tho (assuming your container's ok with it)
[00:15:29 CEST] <kepstin> but all you really need to know is the time that the video starts.
[00:15:36 CEST] <kepstin> and then relative times in the video
[00:16:24 CEST] <atomnuker> pretty much all containers except a few will have a timestamp rollover times of around the age of the universe
[00:16:50 CEST] <f-safinaskar> first of all, i often use suspending
[00:16:53 CEST] <f-safinaskar> and hibernation
[00:17:06 CEST] <f-safinaskar> so, if I write a video using 4 frames per second
[00:17:19 CEST] <f-safinaskar> then actual time between two frames may be 3 hours
[00:17:29 CEST] <f-safinaskar> because my computer was suspended during this time
[00:17:50 CEST] <kepstin> whatever you do, this is definitely going to cut severely into your batter life, if this is a mobile system :)
[00:18:08 CEST] <f-safinaskar> and I want to store real timestamp info. So, timestamps for this two frames should differ 3 hours
[00:18:12 CEST] <kepstin> (it would be interesting to see if kmsgrab actually does survive suspend properly)
[00:18:34 CEST] <f-safinaskar> kepstin: wow, thanks for idea!
[00:18:51 CEST] <f-safinaskar> kepstin: i thought kmsgrab will survive it without problems
[00:19:04 CEST] <f-safinaskar> kepstin: now i understand i should test it firsy
[00:19:10 CEST] <f-safinaskar> kepstin: *first
[00:19:27 CEST] <f-safinaskar> afk
[00:19:58 CEST] <kepstin> f-safinaskar: kmsgrab does timestamps using the realtime clock, so if there's a 3h gap, it'll put 3h between frames
[00:20:09 CEST] <kepstin> that will work as you expect.
[00:20:44 CEST] <f-safinaskar_> i am here again
[00:21:20 CEST] <kepstin> f-safinaskar: i guess you might have missed my last message, since it doesn't seem like you're using an irc bounder :)
[00:21:28 CEST] <kepstin> <kepstin> f-safinaskar: kmsgrab does timestamps using the realtime clock, so if there's a 3h gap, it'll put 3h between frames
[00:21:40 CEST] <kepstin> bouncer*
[00:22:00 CEST] <f-safinaskar_> kepstin: haha, i just tested suspend with kmsgrab and it survived!
[00:24:15 CEST] <f-safinaskar_> atomnuker: please, describe me all options in that huge command
[00:28:07 CEST] <atomnuker> -init_hw_device inits the vaapi device (with a label vap, can be anything, its just an id)
[00:28:29 CEST] <atomnuker> -filter_hw_device looks up the label and uses the hw device specified
[00:28:37 CEST] <atomnuker> hwmap maps to vaapi
[00:28:50 CEST] <atomnuker> hwdownload downloads the hwframe to a software one
[00:29:11 CEST] <atomnuker> -crtc_id is only needed if you have more than 1 display
[00:32:11 CEST] <gnarface> this doesn't quite do what i thought it would: ffmpeg -f video4linux2 -pix_fmt yuyv422 -s 1280x960 -i /dev/video0 -c:v rawvideo -f rawvideo -vf fps=fps=1/60 timelapse_test%d.raw
[00:32:31 CEST] <gnarface> i intended them to be separate files
[00:32:48 CEST] <gnarface> would i use a different value for "-f" then?
[00:33:45 CEST] <gnarface> they'll all be encoded into a video later but the machine this is running on isn't fast enough for that
[00:36:16 CEST] <gnarface> (and i can't just run ffmpeg every 60 seconds using "-vframes 1" either, because there's about a 0.3% chance the camera will freeze due to insufficient power to the USB ports. lol raspberry pi... you so craaaazy)
[00:36:23 CEST] <f-safinaskar_> atomnuker: thanks a lot!
[00:36:58 CEST] <f-safinaskar_> atomnuker: also i want to store with every frame this info: which vt is active
[00:37:13 CEST] <gnarface> (actually it's somewhere between 0.3% and 0.4%, maybe closer to 0.4%)
[00:37:25 CEST] <f-safinaskar_> f-safinaskar_: i want to draw this text on a frame or to store it to subtitle or to some metainfo into container
[00:37:39 CEST] <f-safinaskar_> atomnuker: i want to draw this text on a frame or to store it to subtitle or to some metainfo into container
[00:37:54 CEST] <f-safinaskar_> atomnuker: let's assume container is powerful enough, say, it is .mkv
[00:38:14 CEST] <atomnuker> you can't, this taps into the gpu directly, it has no idea about VTs
[00:39:11 CEST] <f-safinaskar> atomnuker: is this an option to run specified shell command for every frame and then to store output of this command written on a frame or using some metainfo?
[00:41:10 CEST] <atomnuker> no idea, you'd need to write a script yourself
[00:42:54 CEST] <f-safinaskar> atomnuker: it seems you don't understand me. Let's assume I already have shell script which, say, determines current VT and writes its number to stdout. How to call ffmpeg such that ffmpeg will run my (already written and working!) script for every frame and write output of this script on the frame or to metainfo?
[00:43:56 CEST] <f-safinaskar> Alina-malina: >B;8G=K9 =8: :)
[01:00:27 CEST] <gnarface> nevermind, i figured it out.
[02:58:11 CEST] <aszlig> good morning
[02:59:54 CEST] <aszlig> i'm trying to find a right input codec to use for ffmpeg for encoding uncompressed image deltas with timing information and different frame sizes and i'm quite confused on what's the right choice here...
[03:03:15 CEST] <aszlig> basically what i have is the current monotonic timestamp of the current frame, the changed region and the overall size of the frame, the application that i'm patching is QEMU (if that information is relevant)
[03:05:08 CEST] <aszlig> so the idea is to write uncompressed frames to a file as quickly as possible during runtime of the VM and use ffmpeg later to encode it into a proper video
[03:09:49 CEST] <aszlig> the patched VM is used for automated testing so multiple reboots can occur with different screen sizes and in the end the resulting video should scale every frame to the biggest screen size that has occured
[03:11:34 CEST] <aszlig> the scaling part is not the problem here, because i can simply use two ints to pass the maximum size back to the parent process (or maybe even write it to the same file afterwards)
[03:13:19 CEST] <aszlig> however what i'm looking for is a format that i can use for that, because as far as i could see from the ffmpeg source, a certain width and height seems to be expected for all the frames
[03:14:23 CEST] <furq> h264 can do that but i don't think ffmpeg supports it
[03:14:38 CEST] <furq> ffmpeg the cli tool, not the libs
[03:15:29 CEST] <aszlig> oh, forgot to mention: it should be an open format
[03:19:04 CEST] <aszlig> furq: from looking into the libavcodec source it looks like h264 is way too complicated even to parse
[03:19:47 CEST] <aszlig> so ideally the frames would be encoded like this:
[03:21:05 CEST] <aszlig> <timedelta> <cx> <cy> <cw> <ch> <width> <height> <pixformat> <size> <frame_data>
[03:21:50 CEST] <aszlig> where cx and cy are the start offset of the changed region and cw and ch is the width and height of the changed region
[03:24:11 CEST] <aszlig> (forget about the <size>, because that can be implied by <width>, <height> and <pixformat>)
[03:27:19 CEST] <aszlig> i've also stumbled on FITS, which seems to roughly do what i want but without timing information as far as i can see
[03:28:10 CEST] <aszlig> (also it looks more like an image format)
[03:28:49 CEST] <furq> apparently vp9 supports on-the-fly resolution changing
[03:28:55 CEST] <furq> i have no idea how you'd do it with lavc though
[03:30:58 CEST] <furq> i don't really know what you'd use for an intermediate format though
[03:36:10 CEST] <furq> you could just store raw video frames in nut, but idk if there's any value to that
[03:36:59 CEST] <furq> i don't think ffmpeg would actually keep the resolution changes intact so there's probably not much value in using a real container for this
[03:38:59 CEST] <aszlig> hm, didn't know about nut yet, that sounds promising
[03:41:45 CEST] <furq> i guess ffv1 in nut will work if you want to compress the intermediate files a bit
[03:42:35 CEST] <furq> rawvideo in nut should definitely work
[03:55:47 CEST] <aszlig> hm... i just realized i made things more complicated than they are...
[03:56:46 CEST] <aszlig> i just could write the data out in the format specified before and use ffmpeg libraries directly
[03:57:05 CEST] <furq> yeah that's what i was clumsily hinting at
[03:57:23 CEST] <furq> i don't know of any tool that encodes vp9 and handles input resolution changes
[03:57:32 CEST] <furq> although vp9 definitely has to support it for vp9
[03:57:34 CEST] <furq> er
[03:57:35 CEST] <furq> for webrtc
[03:57:55 CEST] <furq> so you'd need to write your own tool anyway, in which case the input format is irrelevant
[04:00:25 CEST] <aszlig> for write_frame there is even time_base, so it should be even easier
[04:03:46 CEST] <aszlig> furq: thanks a lot :-) even though nut is not what i wanted it might definitely come in handy someday[TM] :-)
[04:04:58 CEST] <aszlig> at least while looking at the code/format spec of nut i came to the realization that what i was attempting was a bad idea, so thanks again :-)
[05:08:26 CEST] <tomoko> Guys, could someone tell me how to capture audio from an application (like a running video), instead of mic?
[05:13:00 CEST] Last message repeated 1 time(s).
[05:46:22 CEST] <aszlig> tomoko: depends on your operating system, but have a look at https://trac.ffmpeg.org/wiki/Capture/Desktop
[05:49:18 CEST] <tomoko> Oh, right, I'm on Arch. Thanks, I'll take a look.
[06:07:06 CEST] <tomoko> clear
[06:15:09 CEST] <Etrigan63> when will ffmpeg 4 get loaded into the ubuntu repos? Is there a repo I can use now?
[06:20:21 CEST] <kepstin> ubuntu doesn't typically switch to newer ffmpeg releases within the same ubuntu version, for binary compat. reasons.
[06:20:35 CEST] <kepstin> probably easiest to build it yourself, really.
[06:20:43 CEST] <aszlig> Etrigan63: no idea (not using ubuntu), but a quick web search resulted in https://launchpad.net/~jonathonf/+archive/ubuntu/ffmpeg-4
[06:21:22 CEST] <furq> i would normally recommend relaxed's builds but they're offline right now
[06:21:36 CEST] <Etrigan63> I searched and that did not turn up. Your Google Fu is better than mine, obviously.
[07:33:05 CEST] <nshire> looks like I have to reencode some of my flac library to mp3(probably v0). Are there any good scripts that will preserve the metadata?
[09:09:09 CEST] <akaizen> hello - how do I get the number of frame and number of keyframes for a video?
[09:09:52 CEST] <akaizen> I've tried this but it takes forever : "ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 input.mp4"
[09:09:59 CEST] <akaizen> from: https://stackoverflow.com/questions/2017843/fetch-frame-count-with-ffmpeg
[09:56:27 CEST] <d-safinaskar> hi. i am here again
[09:56:42 CEST] <d-safinaskar> and i still trying to capture video using "ffmpeg -f kmsgrab"
[09:57:28 CEST] <d-safinaskar> how to store absolute timestamps? i. e. i want to store timestamp, say, "2018-05-18 7:57:00.00 UTC" instead of just "0:00:05.00"
[09:57:48 CEST] <d-safinaskar> of course, i mean timestamp metadata. i don't mean "drawtext"
[15:06:11 CEST] <zerodefect> I have a .mov file (which I don't have the rights to share :( ). It contains a Dolby-E track. ffprobe seems to believe it's pcm_s24le according to ffprobe (that's a separate issue for now). When I put the stream/track through the pcm decoder, and view the hex data, I can see the header bytes for Dolby-E: https://imgur.com/a/ShziuQA
[15:07:23 CEST] <zerodefect> So image is before and after the data goes through pcm decoder. Going by the Dolby E header bytes, I know it's 24-bit.
[15:08:59 CEST] <zerodefect> Now, I think I'm having an issue with endianness because when I instantiate a Dolby E decoder instance and push the raw pkt through Dolby E decoder, it says 'Invalid Frame Header' when I point it to the start header of the pkt.
[15:10:19 CEST] <zerodefect> On my LE system, I read '0xe08807' but I believe decoder is looking for '0x788e0'. Am I missing something?
[15:18:33 CEST] <blaze> you have to swap starting and ending byte, right?
[15:20:18 CEST] <zerodefect> @blaze, are you suggesting I'm getting my endianness confused?
[15:20:26 CEST] <zerodefect> ...which could be the case :)
[15:21:05 CEST] <blaze> looks very much so
[15:27:50 CEST] <furq> idk about this decoder but normally the decoder takes care of that for you
[15:30:29 CEST] <zerodefect> Do you think I have found the header byte blaze? Just working my way through this step by step
[15:31:05 CEST] <JEEB> furq: yea but he doesn't have a demuxer before him to take all things care for him. and if it's marketed as PCM and not Dolby-E ;)
[15:31:16 CEST] <JEEB> there might be a need for parser, not really sure about Dolby-E
[15:31:21 CEST] <zerodefect> ...as in found it meaning that I've highlighted the correct bytes in the img.
[15:54:26 CEST] <kepstin> zerodefect: if you know the name of the decoder for that codec, it might be sufficient to override the decoder by using -c:a as an input option (before -i)
[16:00:14 CEST] <zerodefect> @kepstin, I should have mentioned that I'm using C-API. I ask so many question these days, that I now forget to mention it :)
[16:00:50 CEST] <zerodefect> I could do that in code, but there is nothing in the file to indicate that the file contains Dolby
[16:01:05 CEST] <zerodefect> *Dolby-E
[16:01:52 CEST] <kepstin> well, if the file's broken, there's not much you can do except provide the user ability to override stuff :/
[16:03:07 CEST] <zerodefect> Yeah, I can't quite see anything online if there is a special tag for Dolby E in MOVs. The atom for the track just says 'soun' which is generic. MediaInfo seems to be aware that the file contains Dolby-E, but I'm not sure if it physically sniffing the first few bytes?
[16:35:56 CEST] <user01> hi is there a way to repair video copied with mtp that shows moov atom not found
[16:36:42 CEST] <JEEB> not automatically, no
[16:36:55 CEST] <JEEB> it lacks the index with the decoding initialization data
[16:39:31 CEST] <kepstin> in particular, it's missing some initialization data that tells the decoder information needed to decode the stream.
[16:40:02 CEST] <JEEB> I thought what I said meant that ^^; but OK, at least it's now more specific
[16:40:08 CEST] <kepstin> there are tools out there that can repair it in some cases, for example if you have another working video from the same device or encoder with same settings, this data can often be copied from that video
[16:40:20 CEST] <JEEB> yea, that's possible
[16:49:42 CEST] <user01> what if i have a lower quality video of the same video? Google backup
[16:50:29 CEST] <kepstin> user01: that would be a re-encode with different settings, so probably not helpful.
[16:51:27 CEST] <user01> i guess i dont see the point of repairing a file with the exact same video . .. seems like you would just copy the good one :p
[16:52:29 CEST] <kepstin> doesn't have to be exact same video, a different video made using the same device/encoder could work.
[16:53:00 CEST] <user01> oh i see
[16:53:36 CEST] <kepstin> like, if it was done on a phone, just make a new video with the same settings - quality, resolution, and you might be able to use that to repair your other file.
[16:56:19 CEST] <kepstin> user01: https://github.com/ponchio/untrunc is a tool I've seen people use to fix this.
[16:57:33 CEST] <user01> ok fix.me seemed to have repaired it . . . but now they ask for my paypal account :P
[16:57:44 CEST] <user01> fix.video i mean
[16:58:18 CEST] <user01> when i gave it a reference video
[16:58:19 CEST] <JEEB> they most likely have a database of things, what sort of parameters they're using
[16:58:22 CEST] <JEEB> ah yes
[16:58:32 CEST] <JEEB> then something like untrunc might be able to help
[16:59:22 CEST] <durandal_1707> while at it, send me some money too
[17:55:08 CEST] <jonan> i have this weird flickering issue when i record with ffmpeg, i suspect it's my compositor. is there any special parameters i could pass in so that i wouldn't need to reboot without the compositor to record video?
[18:29:58 CEST] <zerodefect> Got to the problem of my DolbyE decode. If I feed the undecoded AVPacket out of file into s337m demuxer, it will then decode via dolbye decoder. The s337m demuxer internally does a byte swap to rectify differences in byte order before it is handed off to DolbyE decoder. In an ideal world, the mov file would indicate dolbye track, but I don't think it supports it.
[19:01:23 CEST] <JEEB> zerodefect: if you need s337m it feels like it's PCM-with-DolbyE
[19:01:34 CEST] <JEEB> and yes, it's a mess how you signal that
[19:01:45 CEST] <JEEB> I've been thinking about it as well since I have some capture files with AAC in PCM
[19:01:47 CEST] <JEEB> (yes, really)
[19:02:50 CEST] <JEEB> so we'd need some common compressed-in-PCM header look-up for formats where you might find it
[19:02:57 CEST] <JEEB> and/or per-stream flags or something
[19:03:25 CEST] <JEEB> but then you open your path to misdetection if you start automatizing it
[19:39:08 CEST] <Cracki> I just tested dxva2/cuvid decode speed of some fullhd ~24 Mbit/s footage. got ~80-120 fps on some nvidia GTX5xx/6xx thingies... it's a fraction of what ffmpeg's h264 decoder can do cpu-only (300+ fps on my 2012er intel E3). that's disappointing. does anyone have some data points for me on more recent hardware? I'd really like to see ~300 fps hw-accelerated
[19:48:58 CEST] <atomnuker> for low res video its more common than not for hardware decoding to be slower (but it'll always have less cpu load)
[19:55:52 CEST] <Cracki> found some numbers... 400-700 fps for less cruddy hardware https://www.reddit.com/r/nvidia/comments/6w9gua/how_many_h265_streams_could…
[19:56:01 CEST] <Cracki> (and that's hevc)
[19:59:01 CEST] <JEEB> if you look at the VP9 decoding speed with AVX2+64bit, you can bet your ass HEVC could also be fast in libavcodec if anyone just cared
[19:59:12 CEST] <JEEB> unfortunately, nobody cared or cares
[19:59:15 CEST] <JEEB> so we have what we have
[19:59:33 CEST] <Cracki> heh
[19:59:44 CEST] <Cracki> good to know there's room for improvement
[20:00:42 CEST] <JEEB> yea I think VP9 might actually be faster than AVC at this point?
[20:00:45 CEST] <JEEB> haven't benchamrk'd
[20:12:37 CEST] <Mavrik> interesting
[20:12:46 CEST] <Mavrik> I'd expect more efforts to be put into HEVC
[20:15:12 CEST] <Cracki> industry puts their effort into encoding, and hw decoding
[20:17:13 CEST] <atomnuker> for very high res video vp9 will be faster (8k and up, maybe 4k)
[20:17:37 CEST] <atomnuker> 4x4 or 8x8 blocks can't measure up to 32x32 blocks
[20:17:46 CEST] <Cracki> that's for sure
[20:20:34 CEST] <JEEB> Mavrik: back when the decoder was made there was barely any content and the encoders really weren't there to make mass adoption a thing. and now I'm still not sure about the encoders (although the fact that 10bit is only supported in VP9/HEVC by devices I'm seeing encoding as a more or less having its use cases separate from decoding), most content is DRM'd requiring full-hw pipe line and the few ultra HD
[20:20:40 CEST] <JEEB> blu-rays and possibly not so well done encodes aren't enough for people to want to work on it for fun
[20:24:46 CEST] <Mavrik> Ah, I didn't consider the DRM angle, makes sense.
[20:46:39 CEST] <Cracki> I suppose this isn't the time to talk about digitally restricted culture and the people who liberate it
[20:50:51 CEST] <BtbN> 120fps fpr 1080p decoding seems awfully low
[20:51:00 CEST] <BtbN> I remember getting easily 1k fps out of my Pascal chip
[20:53:42 CEST] <lomancer> does ffmpeg have support for hardware accellerated yuv => rgb conversion or just encoding/decoding?
[20:55:38 CEST] <BtbN> If someone were to write a filter
[20:58:25 CEST] <JEEB> lomancer: you either use a proper player, or something like libplacebo
[20:59:20 CEST] <BtbN> Cracki, I get ~700fps for 1080p here on a 1060
[20:59:37 CEST] <Cracki> that's what I figured ;_;
[20:59:59 CEST] <jkqxz> Some of the hardware scale filters support YUV -> RGB conversion, but it's generally inadvisable to use it because you end up at the mercy of whatever interpretation the hardware decides for "RGB" and "YUV". (E.g. expect something like the BT.(601 + 108 * (frame.height < 600)) colourspace and parameters.)
[21:00:04 CEST] <BtbN> swdecode is only like 50fps faster, while using 16 threads at 100%
[21:00:23 CEST] <Cracki> funny expression there ;)
[21:00:51 CEST] <Cracki> yeah I could definitely use 300-900 fps hwdec *and* have the cpu free for important stuff
[21:01:53 CEST] <jkqxz> Consider that most hardware decoders are implemented for playback only, so they may be targetted to achieve 60fps with some headroom but no more. It's only if the implementer wants it to be used for offline uses (like transcoding) that they bother making it more capable than that.
[21:02:39 CEST] <BtbN> nvidia definitely makes them with transcoding in mind
[21:02:39 CEST] <jkqxz> So I don't think it's surprising that you get 60-100fps decode speed on older desktop implementations, or mobile implementations today.
[21:03:39 CEST] <jkqxz> BtbN: They didn't until relatively recently, though. A GTX5xx was stated earlier, which is before NVENC existed.
[21:04:16 CEST] <BtbN> yeah, a gtx500 won't be much faster than realtime playback
[21:26:44 CEST] <Cracki> indeed my cruddy card has no nvenc :)
[22:05:44 CEST] <kerio> what about accelerated yuv->y conversion
[22:24:18 CEST] Action: Cracki is very interested in that too
[22:24:48 CEST] <Cracki> tho i'd expect that to be bandwidth-bound no matter what
[22:41:52 CEST] <havoc> hi
[22:42:31 CEST] <havoc> I have a debian apache perl CGI which calls a bash script to start ffmpeg reading an RTSP stream
[22:43:01 CEST] <havoc> I save/have the PID, but it will not respond to anything but SIGKILL (which it can't block/ignore)
[22:43:19 CEST] <havoc> it does not respond to SIGINT or SIGTERM
[22:43:55 CEST] <havoc> the bash script starts it with: > /dev/null 2>&1 &
[22:44:13 CEST] <havoc> googling is not revealing anything useful yet :(
[22:44:54 CEST] <c_14> the ffmpeg?
[22:45:05 CEST] <c_14> It should respond to INT and TERM
[22:45:08 CEST] <JEEB> generally if you have a use case specific thing you want to make your own API client for the APIs that FFmpeg provides (which ffmpeg.c also utilizes); if you though want to go through with ffmpeg.c, then looking at its code is the simplest :P
[22:45:33 CEST] <JEEB> and yes, it will of course respond to 9 and then normal ctrl+c
[22:45:44 CEST] <havoc> c_14: it does not respond to INT or TERM, as either root or OWNER
[22:45:51 CEST] <JEEB> although the latter will not necessarily be ASAP
[22:46:00 CEST] <JEEB> it will finish its buffers and then finish
[22:46:12 CEST] <havoc> JEEB: that would be ideal
[22:46:12 CEST] <JEEB> but yes, look at ffmpeg.c's code instead of trusting any of us
[22:46:14 CEST] <JEEB> :)
[22:46:27 CEST] <c_14> also try logging to a file instead of dev/null
[22:46:29 CEST] <JEEB> it's under fftools/ in the FFmpeg repo
[22:46:33 CEST] <havoc> JEEB: I've seen much mention of the same thing in my googling
[22:46:38 CEST] <havoc> I still got nothing :(
[22:47:06 CEST] <JEEB> just look at fftools/*.c
[22:47:10 CEST] <havoc> I've even tried echoing ctrl-c to /proc/PID/fd/0
[22:55:44 CEST] <havoc> took out the redirection, left the backgrounding, still nothing :(
[22:56:29 CEST] <havoc> so the /dev/null has no effect, as without redirection it goes to apache's error log
[23:48:52 CEST] <alec500oo> Hello I am looking to add some video decoding to a project I am working on. Are there any resources out there for getting started with the libav* libraries on windows?
[23:50:33 CEST] <JEEB> same as elsewhere. use pkg-config if only possible. test out the examples under doc/examples
[23:50:57 CEST] <JEEB> note, various pesky things those examples do have simpler ways of doing them in the framework
[23:51:21 CEST] <JEEB> so double-check with "site:ffmpeg.org doxygen KEYWORD" first
[23:51:27 CEST] <JEEB> together with git grep -i "keyword"
[23:51:50 CEST] <alec500oo> Okay, Thank You.
[23:51:54 CEST] <JEEB> and for that google thing, also add "trunk" as a keyword, since that is the latest generated documentation
[00:00:00 CEST] --- Sat May 19 2018
1
0
[00:20:25 CEST] <klaxa> hrm
[00:20:48 CEST] <klaxa> for some reason i have the feeling lua's stack made interfacing with it somewhat easier than using json
[01:55:49 CEST] <Gramner> jamrial: wider vectors results better performance/watt, at least in theory, so it could be useful even on low-power cpus. it just that the throttling has been way to course grained in existing hardware, hopefully they'll improve that
[01:56:52 CEST] <jamrial> that's what i mean, unless they solved the throttling and heat issues, i don't see it being too useful in such a cpu
[01:59:10 CEST] <Gramner> heat isn't really an issue - just downclock it. they just need to figure out how to do that more gracefully than a binary on/off frequency offset
[02:03:26 CEST] <atomnuker> I wonder if using the opmasks and 128/256bit regs would result in less downclocking
[02:04:17 CEST] <Gramner> intel's 10nm being a complete disaster has resulted in nothing new being released so I don't even know what they have internally. ICL has been sitting on a shelf for a year because they can't manufacture it
[02:04:31 CEST] <Gramner> yes, that'd be the same as using sse/avx
[02:05:58 CEST] <atomnuker> they announced they won't be shipping 10nm server chips next year
[02:06:25 CEST] <Gramner> probably nothing else of value either
[02:07:07 CEST] <Gramner> at this rate it'll probably slip to 2020
[02:09:28 CEST] <Gramner> I know some high-ranking intel engineers wanted to backport ICL to 14nm years ago but got shot down by management, so now we have nothing but skylake re-re-re-releases
[02:11:20 CEST] <atomnuker> with different sockets
[02:13:20 CEST] <atomnuker> amd seem to be skipping 10nm and going for 7nm
[02:26:10 CEST] <Gramner> well, "everyone elses" 7nm is comparable to intels 10nm, but tsmc, gf, and samsung will probably all have volume shipments of 7nm before intel 10nm
[02:26:21 CEST] <cone-255> ffmpeg 03Michael Niedermayer 07master:4dd2c8b9ea46: avcodec/g2meet: Check RGB upper limit
[02:26:21 CEST] <cone-255> ffmpeg 03Michael Niedermayer 07master:ab834b8f36c8: avcodec/g2meet: ask for sample with overflowing RGB
[02:26:21 CEST] <cone-255> ffmpeg 03Michael Niedermayer 07master:9f73ae31e075: avcodec/mpeg4videode: Eliminate out of loop VOP startcode reading for studio profile
[02:26:21 CEST] <cone-255> ffmpeg 03Michael Niedermayer 07master:9e5d0860c043: avcodec/mpeg4videodec: Do not corrupt bits_per_raw_sample
[02:26:21 CEST] <cone-255> ffmpeg 03Michael Niedermayer 07master:b3a18511cc93: avcodec/mpeg4videodec: Check bps (VOL header) before VOP for studio profile
[02:26:21 CEST] <cone-255> ffmpeg 03Michael Niedermayer 07master:ba97d75ac625: avcodec/mpeg4video: Detect reference studio streams as studio streams
[02:26:22 CEST] <cone-255> ffmpeg 03Michael Niedermayer 07master:c6a11714c4b1: avcodec/fic: Avoid some magic numbers related to cursors
[02:26:22 CEST] <cone-255> ffmpeg 03Michael Niedermayer 07master:cb2f7ea96b4f: avcodec/fic: Check available input space for cursor
[02:26:23 CEST] <cone-255> ffmpeg 03Michael Niedermayer 07master:cb944fc7f132: avcodec/dirac_dwt: Fix integer overflow in COMPOSE_DD97iH0 / COMPOSE_DD137iL0
[04:37:35 CEST] <FishPencil> Where would I find the official spec for a Blu-ray mpls playlist file?
[12:20:15 CEST] <cone-609> ffmpeg 03Carl Eugen Hoyos 07master:380ca1bc0ce8: lavc/v210dec: Skip Canopus C210 extradata.
[14:10:23 CEST] <kierank> gagandeep: hi, do you have patch
[14:11:26 CEST] <gagandeep> kierank: i have seen one more function that is used for a different file with another variable so will implement it first as well
[14:11:34 CEST] <gagandeep> difference coding is done
[14:11:37 CEST] <kierank> ok
[14:12:03 CEST] <gagandeep> but a 'peaklevel' variable is also used in dequantization with other sample
[14:12:30 CEST] <gagandeep> also since they have implemented whole entropy and dequantization in fsm it is tough to go through the code
[14:12:53 CEST] <gagandeep> they are not doing it like you did, where you have dequantized seperately
[14:13:40 CEST] <gagandeep> they first build fsm based on the quantization and then decode the bytestream
[14:15:08 CEST] <kierank> did you start getting those avi files to decode using ffmpeg version of cineformsdk
[14:17:48 CEST] <gagandeep> haven't started that but was going through the ip progressive sample i have acquired
[14:17:59 CEST] <gagandeep> tracking the functions in testcfhd
[14:18:06 CEST] <gagandeep> like i did with interlaced
[14:19:29 CEST] <gagandeep> kierank: although the mountain sample was giving the same error in ffmpeg as the ip progressive sample so i guess if i implement ip frame, it will begin to work
[14:19:42 CEST] <kierank> ok
[14:20:00 CEST] <gagandeep> aka transform type = 2 not implemented, it is the ip transform
[14:20:05 CEST] <kierank> with IP frame you probably need to disable threading
[14:20:11 CEST] <kierank> threading is frame threads, each frame is decoded by a thread
[14:20:14 CEST] <kierank> you can't do that with ip
[14:21:02 CEST] <gagandeep> kierank: there was a macro for enabling debugging in cineformsdk, which helps to reduce thread dependence of code
[14:21:40 CEST] <kierank> I mean in ffmpeg you need to disable
[14:21:43 CEST] <kierank> when you start work
[14:21:53 CEST] <kierank> otherwise you will have many problems
[14:22:36 CEST] <gagandeep> ok, will see
[17:59:05 CEST] <jamrial> nevcairiel: https://gitlab.com/mbunkus/mkvtoolnix/commit/42b5f13c6b60e0cbd65c0f89584cbd… since you were wondering about it
[18:00:42 CEST] <nevcairiel> yeah i know, its slightly unfortunate that he had a release before that, but what can you do
[19:31:44 CEST] <jamrial> durandal_1707: can't you use float_dsp anywhere in these filters?
[19:35:01 CEST] <durandal_1707> jamrial: nope, they are doing very special matrix operations that take 85% of whole time, LDL factorization
[20:33:46 CEST] <cone-609> ffmpeg 03Aman Gupta 07master:2734f8d63a38: avformat: add skip_estimate_duration_from_pts
[20:38:29 CEST] <tmm1> how do i decide between minor and micro bump
[20:38:38 CEST] <tmm1> just added AV_DISPOSITION_STILL_IMAGE to avformat.h
[20:42:23 CEST] <JEEB> isn't it bugfixes=micro, new things=minor?
[20:42:33 CEST] <JEEB> and backwards incompatible is ajor
[20:46:29 CEST] <tmm1> ok that makes sense
[20:47:56 CEST] <tmm1> rcombs: if you get a chance to poke at http://ffmpeg.org/pipermail/ffmpeg-devel/2018-May/229483.html it could use a set of fresh eyes
[21:05:59 CEST] <cone-609> ffmpeg 03Aman Gupta 07master:5dfeb7f0811c: avformat/mpegts: tag video streams with still images
[22:21:09 CEST] <tmm1> rcombs: ok i took another stab and sent a cleaner version of the patch to the ML
[22:43:09 CEST] <JEEB> funky, someone implementing MVC? https://gitlab.websupport.sk/peter.kovar/ffmpeg-mvc
[22:46:39 CEST] <nevcairiel> Anton worked on that as well before he vanished
[22:47:18 CEST] <JEEB> which hwdecs supported MVC btw?
[22:47:38 CEST] <JEEB> d3d11va or dxva2? or is it just the intel stuff
[22:48:03 CEST] <JEEB> and of course there's the question of the muxing that a lot of those things have the stuff in (not in a single stream)
[22:48:10 CEST] <nevcairiel> dxva can do it theoretically, if you had a software decoder to do all the other stuff
[22:49:04 CEST] <wm4> did anyone manage to make this gitlab thing show a diff for the mvc changes?
[22:51:02 CEST] <JEEB> nevcairiel: I guess you're just using the libbluray demuxer as well as reader?
[22:51:09 CEST] <JEEB> and then you get both things in a single stream
[22:51:16 CEST] <JEEB> => feed to something?
[23:08:55 CEST] <nevcairiel> JEEB: yeah i properly interleave the two streams to feed them to the decoder
[23:11:00 CEST] <JEEB> ah, so using full libbluray input doesn't do that automagically for you
[23:11:08 CEST] <JEEB> ok, then there's some extra interleaving needed, yes :)
[23:11:13 CEST] <nevcairiel> interleaving is currently timestamp based so its a bit fragile, but the blu-ray s pec is pretty strict about that
[23:11:25 CEST] <JEEB> yea
[23:11:55 CEST] <nevcairiel> libbluray doesnt really do any 3D stuff
[23:12:31 CEST] <nevcairiel> so i get the main stream t hrough it, and the mvc stream i parse directly through avformat, then interleave afterwards
[23:12:47 CEST] <JEEB> :)
[23:12:48 CEST] <nevcairiel> doesnt help that main and mvc stream are in separate files =p
[23:13:10 CEST] <JEEB> isn't there another one where they're in the same?
[23:13:21 CEST] <JEEB> since they do some UDF packet-based hackery
[23:13:25 CEST] <nevcairiel> sort of, but its not interleaved frame-by-frame but interleaved in blocks
[23:13:25 CEST] <JEEB> the SS-something
[23:13:31 CEST] <nevcairiel> so its odd to use
[23:13:35 CEST] <JEEB> ah, right
[23:13:38 CEST] <nevcairiel> not sure w hat exactly the use-case for those combined files is
[23:13:51 CEST] <nevcairiel> maybe to ensure IO is done a lways sequentally
[23:13:54 CEST] <nevcairiel> but i dont use those
[23:24:20 CEST] <tmm1> JEEB: AVProgram has a flags field but I can't tell if it is used for anything
[23:25:36 CEST] <tmm1> maybe AV_PROGRAM_RUNNING was meant to be a flag, but it was never used for anything
[00:00:00 CEST] --- Fri May 18 2018
1
0
[03:58:29 CEST] <Mrx> why this windows build not contain ffserver?
[04:00:11 CEST] <Mrx> this ain't zeranoe channel?
[04:01:20 CEST] <Mrx> ffmpeg for windows provided by zeranoe and no ffserver.exe in bin folder!
[04:02:22 CEST] <Mrx> is this the end of ffmpeg for windows?
[04:02:39 CEST] <Mrx> should i look for another software?
[04:04:25 CEST] <furq> bye
[04:07:28 CEST] <cutvideo> Hello I need to cut a video without re-encoding and preserving all the audio tracks. The input file has 3 audio tracks but only preserves the 1st one. I'm using this: ffmpeg -ss 00:54:28 -i "input.ts" -vcodec copy -acodec copy output.ts, thank you
[04:08:27 CEST] <cutvideo> I mean when using ffmpeg the output video has only the 1st audio track and I need all 3 of them
[04:09:53 CEST] <furq> cutvideo: add -map 0
[04:12:50 CEST] <cutvideo> oh, how could i forget it, thank you furq
[05:17:45 CEST] <memo1> hi, now that ffserver is out, what options i have to set remote video server?
[05:24:00 CEST] Last message repeated 1 time(s).
[13:15:50 CEST] <jk^> hi all
[13:15:55 CEST] <jk^> i have a problem
[13:16:06 CEST] <jk^> pls hel pme
[13:16:07 CEST] <jk^> help me
[13:16:30 CEST] <jk^> "FFmpeg cannot find audio codec 0x12000"
[13:16:37 CEST] <jk^> in audacity, how to resolve?
[13:26:44 CEST] <iive> this seems to be AMR_NB codec
[13:30:13 CEST] <iive> it seems that there is native decoder and one that could be used through libopencore
[13:30:28 CEST] <iive> do you compile your own ffmpeg, or you are using distro supplied one.
[14:05:13 CEST] <Kam_> Hi, is there a lossless audio codec that I can put into a .mp4 container?
[14:14:22 CEST] <c_14> Kam_: als though I don't think ffmpeg has an encoder
[14:14:26 CEST] <c_14> you can put alac in mov though
[14:23:38 CEST] <brm> Hi :)
[14:24:50 CEST] <brm> I am working on animation video using ffmpeg, do someone know how can I avoid staircase effect?
[14:25:40 CEST] <brm> I have problem when moving image overlay animation doesn't look smooth
[14:29:40 CEST] <durandal_1707> brm: use yuv444 ?
[14:29:41 CEST] <brm> here is my cli command: ffmpeg -i bg.mp4 -i fg.mkv -filter_complex \ "[0:v][1:v]overlay=enable='between=(t,10,20)':x=720+t*28:y=t*10[out]" \ -map "[out]" output.mkv
[14:29:55 CEST] <brm> thanks for response :)
[14:30:31 CEST] <brm> so, using yuv444 will help?
[14:41:10 CEST] <brm> I've modified my command to ffmpeg -f lavfi -i testsrc=duration=10:size=1280x720:rate=30 -t 10 -vf "movie=1.png[inner];[in][inner]overlay=x='t*70':y='t*20'" -pix_fmt yuv444p -r 30 -s 1280:720 testsrc1.mp4, there is set pix_fmt to yum444p but video doesn't work after this fix
[15:02:47 CEST] <durandal_1707> brm: you need to look at overlay documentation
[15:03:00 CEST] <durandal_1707> and set overlay format to yuv444
[15:03:12 CEST] <brm> thanks, I will try
[15:26:44 CEST] <brm> @durandal_1707 thanks! it's much better than before
[16:00:52 CEST] <tuna_> Is it not legal to call av_buffer_unref() with a AVHWFramesContext ? ...I get a segfault when I do.
[16:04:02 CEST] <BtbN> "with a AVHWFramsContext"?
[16:08:03 CEST] <tuna_> Oh I figured it out....since I was avcodec_free_context-ing the AVCodecContext then unref-ing my frame and device context...the avcodec_free was mucking up the frame and device...so now I do it in reverse order and it works
[16:08:25 CEST] <tuna_> frame, then device, then remove reference from the avcodec_context then free it.
[16:08:34 CEST] <tuna_> references*
[16:12:33 CEST] <BtbN> What case exactly crashes? If it crashes, you didn't take a ref somewhere you were supposed to take one.
[16:13:47 CEST] <tuna_> The case where I free the codec THEN unref the frame/device....the freeing of the codec causes the frame and device pts to have a non-zero, odd, debugging filler like address....so it segfaults trying to free something that doesnt exist.
[16:14:10 CEST] <tuna_> pts -> ptr
[16:14:31 CEST] <BtbN> that sounds wrong
[16:16:47 CEST] <tuna_> Well, thats what I saw
[16:26:31 CEST] <Guest94244> Hello, is it possible to concatenate two videos with a fading to black transition between them with no re-encoding? Thank you
[16:27:10 CEST] <BtbN> no
[16:27:26 CEST] <BtbN> unless the fade-to-black is a whole other third video you put in the middle
[16:28:24 CEST] <Guest94244> Can I create that 3rd video with ffmpeg?
[16:56:30 CEST] <Kam_> how can I specify two inputs (-i) with -ss and -to parameters for each input? ffmpeg -i v1.avi -ss 10 -to 20 -i v2.avi -ss 50 -to 60 ... out.mp4 seems to hang after the duration of the first input. also: how would ffmpeg distinguish between -ss being a parameter before the second -i vs. the first -i ?
[16:57:47 CEST] <kepstin> Kam_: "-ss" is an input option, which means it goes before -i and applies to the next input specified with -i
[16:58:06 CEST] <kepstin> Kam_: "-to" is an output option, it applies to the next output (it is not input-specific)
[16:58:57 CEST] <kepstin> Kam_: in particular, the way -to works is it looks at the timestamps on the *output* video, and cuts the video when those reach the desired time.
[16:59:15 CEST] <Kam_> huh, I want to use it like described on this page: https://trac.ffmpeg.org/wiki/Seeking (cut the beginning and end of my input video)
[17:00:14 CEST] <kepstin> Kam_: on that page, they have only one video in the command :)
[17:00:46 CEST] <kepstin> Kam_: what are you doing with the two input videos? If you're using filters on them, you should probably use the "trim" filter to cut them rather than ffmpeg options.
[17:00:47 CEST] <Kam_> yes.. I meant to write, that page describes that I can use -ss and -to after -i
[17:01:04 CEST] <kepstin> ah, -ss after -i is weird, and not needed with modern ffmpeg in most cases.
[17:01:24 CEST] <furq> if you use them after -i then they're output options
[17:01:41 CEST] <kepstin> in that case it's treated as an output option - it has to be after *all* the -i options, and before an output filename
[17:01:45 CEST] <furq> right
[17:02:04 CEST] <furq> they have subtly different behaviour as input or output options
[17:02:22 CEST] <furq> but yeah chances are you want to use trim and setpts
[17:02:57 CEST] <kepstin> in most videos, you'll notice that -ss after -i is significantly slower, and the way it handles timestamps is quite different (which means that -to and -t do different things).
[17:03:08 CEST] <Kam_> I tried to use two inputs because I want to cut a certain section out of my video
[17:03:18 CEST] <Kam_> and then proceed with the concat filter
[17:03:27 CEST] <furq> yeah you can just do that with trim and setpts
[17:03:45 CEST] <kepstin> Kam_: ok, for that use case you should use -ss before -i, and a trim filter in your filter chain to cut the end of each clip.
[17:04:10 CEST] <kepstin> (no need for setpts in this simple case)
[17:04:22 CEST] <furq> if you want to join two clips together then you need setpts
[17:04:44 CEST] <kepstin> hmm? No, in this case both clips will start with pts=0, and concat filter handles that properly
[17:04:50 CEST] <furq> oh
[17:04:54 CEST] <furq> yeah i meant without using the concat filter
[17:05:38 CEST] <furq> but it's two separate inputs so nvm
[17:07:16 CEST] <Kam_> thank you, I'll try that!
[17:08:11 CEST] <kepstin> Kam_: this filter invocation might get a bit complicated if you have video+audio, unfortunately.
[17:08:25 CEST] <Kam_> I do have video+audio
[17:08:52 CEST] <kepstin> because in the filter chain, you'll have to separately trim the video and atrim the audio before handing them to the concat filter.
[17:14:05 CEST] <Kam_> I'm trying 'ffmpeg -i v1.avi -vf trim=00:00:30.000:00:00:40.000 -af atrim=00:00:30.000:00:00:40.000 -i v1.avi -vf trim=00:00:30.000:00:00:40.000 -af atrim=00:00:30.000:00:00:40.000 -filter_complex ....' and it complains: "you are trying to apply an input option to an output file or vice versa."
[17:32:31 CEST] <kepstin> Kam_: you need to put all the filters into a single -filter_complex invocation
[17:32:51 CEST] <kepstin> (and -vf/-af are output options, so have to go after *all* the -i options)
[17:32:53 CEST] <Kam_> ah, thanks, didn't know that!
[17:34:03 CEST] <kepstin> the arguments to your trim functions look wrong too. : is the option separator. If you use "-ss 30" before the -i, you'll want something like "trim=end=10" in the filter chain
[17:34:23 CEST] <kepstin> that'll grab 10 seconds starting at the seek point
[17:35:03 CEST] <kepstin> i'm not really sure what you're doing there, why do you have the same input listed twice?
[17:40:40 CEST] <shfil> hi, has ffmpeg 4.0 changed C's api for decoding mp3?
[17:41:56 CEST] <kepstin> shfil: there's been some api changes, but I don't think there's anything that should affect a simple decoder appliction. You should get a compile error if something you use changed, of course.
[17:42:17 CEST] <kepstin> (it's not abi compatible - you will have to recompile your stuff)
[17:42:31 CEST] <Kam_> kepstin, I'm using the time syntax like described here https://ffmpeg.org/ffmpeg-utils.html#time-duration-syntax HH:MM:SS.ms
[17:43:01 CEST] <kepstin> Kam_: don't use that in the trim filter, because : is a special character there. (I mean, you technically can, but it's hard because you have to escape stuff)
[17:43:50 CEST] <Kam_> kepstin, the same input twice because I want to glue two parts of the same video together (and cut off the beginning and end of the whole source video). think of a recorded tv programme with 1x advertisement inbetween
[17:45:06 CEST] <kepstin> Kam_: ah, right. It might actually be easier to avoid the concat filter here, and do two separate ffmpeg commands to cut out each video piece, then a third command to combine them together
[17:45:19 CEST] <shfil> there's no compile error or meanwhile decoding. but with 4.0 we (in openrw) lost music in cutscenes. https://www.youtube.com/watch?v=m87bJxE9hnU (music at beginning of video)
[17:47:22 CEST] <shfil> snippet of code https://github.com/rwengine/openrw/blob/master/rwengine/src/engine/GameWorl…
[17:47:23 CEST] <Kam_> kepstin, this is what I'm trying now (although probably not very elegant): cutting both pieces and saving them to a lossless format (ffv1) and then concat the two new videos together (source video is lossless, too)
[17:47:25 CEST] <kepstin> this is the relevant code? https://github.com/rwengine/openrw/blob/master/rwengine/src/audio/SoundMana…
[17:48:01 CEST] <shfil> yeah
[17:48:28 CEST] <kepstin> Kam_: after you generate the two separate videos, you probably want to use the concat demuxer to combine them, see https://trac.ffmpeg.org/wiki/Concatenate#demuxer
[17:49:08 CEST] <Kam_> kepstin, I'm using the concat filter, that worked in a test run
[17:49:34 CEST] <shfil> There are some deprecated methods, but other branch the same.
[17:51:35 CEST] <shfil> I've been trying to debug, container with raw data isn't empty.
[17:52:01 CEST] <kepstin> shfil: check the sample format you're getting back - I think the default mp3 decoder nowadays is the floating point one.
[17:52:21 CEST] <shfil> thx, I'll check
[17:54:19 CEST] <kepstin> (you might consider using libswresample to take "whatever the codec gives you" and turning that into your desired format/layout, to be a bit more future-proof)
[17:56:12 CEST] <shfil> something like that? https://github.com/rwengine/openrw/pull/420/files#diff-e9cc6b7c0e9b40ae49ea…
[17:58:56 CEST] <shfil> (or am I missing point?)
[17:59:07 CEST] <kepstin> shfil: that's a switch to the new style (rather than deprecated) decoding api, which is probably a good thing, but it wouldn't help if your problem is sample format.
[17:59:26 CEST] <kepstin> also that code isn't checking the sample format at all, it's just assuming it's s16p :/
[17:59:43 CEST] <shfil> ah, I understand.
[17:59:45 CEST] <kepstin> (unlike the code that i linked to which at least gives an error if it's not the expected format)
[18:00:18 CEST] <kepstin> that said, i'd expect noise rather than silence if that was wrong.
[18:02:03 CEST] <shfil> when nothing is parallel played - silence, when anything else together (like in this pull) - noise.
[18:16:01 CEST] <shfil> sample_fmt contains AV_SAMPLE_FMT_FLTP (0x0008)
[18:16:34 CEST] <shfil> or do I need to check different var?
[18:30:24 CEST] <shfil> dumped everything: https://gist.github.com/ShFil119/6d4d1ec228491910676fd2bb3c0eb6b2
[19:18:54 CEST] <pies_> I imagine it's been asked and asked again, but does anyone have a replacement for https://johnvansickle.com/ffmpeg/ ?
[19:19:46 CEST] <pies_> or maybe just the latest ffmpeg-release-64bit-static.tar.xz ?
[19:19:53 CEST] <pies_> pretty please? :)
[20:12:35 CEST] <f-safinaskar> hi
[20:12:51 CEST] <f-safinaskar> i want to capture my screen for purposes of backup
[20:13:00 CEST] <f-safinaskar> linux
[20:13:18 CEST] <f-safinaskar> but i want to capture both x server and virtual terminals (VT), i. e. tty1, tty2 etc
[20:13:41 CEST] <f-safinaskar> more precisioly: i want to automatically switch to input which is currently active
[20:14:20 CEST] <f-safinaskar> i. e. i want some capturing program. this program should generate frames taken from X server if X server is active and should generate frames from VT (tty1, tty2 etc) if VT is active
[20:14:49 CEST] <f-safinaskar> how to do this?
[20:14:56 CEST] <f-safinaskar> i think about writing my own program
[20:15:04 CEST] <BtbN> I'm not even sure if you can capture a VT
[20:15:10 CEST] <BtbN> and definitely can't switch automatically
[20:15:18 CEST] <f-safinaskar> BtbN: i can :)
[20:15:34 CEST] <f-safinaskar> BtbN: type "man ffmpeg-all" and search for "framebuffer"
[20:15:43 CEST] <f-safinaskar> BtbN: i CAN capture VT
[20:15:53 CEST] <f-safinaskar> BtbN: the question is how to switch automatically
[20:15:56 CEST] <BtbN> I guess your best bet if kmsgrab
[20:16:12 CEST] <BtbN> either it follows along with what's on screen, or you're out of luck
[20:17:06 CEST] <f-safinaskar> my own program will read X screenshots directly using, say, libxcb and read VT (i. e. framebuffer) directly by reading /dev/fb0. And it will determine which is active using..., well, i don't know, but i hope some /dev/tty1 ioctl's will go
[20:17:15 CEST] <f-safinaskar> the question is: is there some simpler way?
[20:17:36 CEST] <f-safinaskar> i don't want to write another pile of code without searching for ready-to-use solutions
[20:18:03 CEST] <BtbN> Just use X terminals instead? Makes the whole recording thing trivial.
[20:18:22 CEST] <f-safinaskar> and then my program will send this frames to ffmpeg via pipe and ffmpeg will convert frames to some format
[20:52:14 CEST] <kerio> i'm gonna go cosmic brain on this and suggest recording the remote kvm via intel ME
[20:53:00 CEST] <kerio> f-safinaskar: i mean, how are you going to handle resolution changes?
[20:53:20 CEST] <kerio> actually even more woke: solder a capture card to the lcd panel
[20:58:39 CEST] <BtbN> Or just get an actual capture card and put a splitter
[21:01:44 CEST] <f-safinaskar> BtbN: "Just use X terminals instead?" - I capture video for backup. I should capture everything. Yes, I use X terminals nearly always. Unfortunately one day I ocassionally logged into VT, typed some important data and then my computer crashed and data was lost. So, I need to capture VT
[21:02:24 CEST] <f-safinaskar> kerio: i don't change resolution :)
[21:02:30 CEST] <BtbN> uhm, so if your PC dies, what you video-capture would be equally lost
[21:03:23 CEST] <BtbN> also, if your PC crashing is a regular thing, I'd fix that PC
[21:03:29 CEST] <f-safinaskar> BtbN: It seems kmsgrab is what i need. Thank you
[21:05:42 CEST] <f-safinaskar> BtbN: "what you video-capture would be equally lost" - no. I already capture video for several years. And during this time my computer often crashes. But captured files always persist, and after crash I can successfully read them
[21:06:06 CEST] <f-safinaskar> BtbN: PC crashes for various reasons
[21:06:48 CEST] <BtbN> so your shell history file does not survive though?
[21:07:33 CEST] <f-safinaskar> BtbN: the last time I ocassionally turned off lamp in toilet and then discovered that power plug takes its power from lamp. So, battery of my laptop became empty and PC turned off
[21:09:59 CEST] <kerio> lmao
[21:11:04 CEST] <f-safinaskar> BtbN: shell history for _opened_ shells does not survive. Yes, I can set special evironment variables to store command right after entering them. But this is not the point. In fact I need not only commands, but their output, too. And I want not-entered-yet-commands, too. I. e. command which typed, but not entered ("Enter" is not pressed)
[21:12:02 CEST] <BtbN> If that's such a frequent problem you run into, record a script...
[21:12:13 CEST] <BtbN> Or get a UPS or anything
[21:16:02 CEST] <kerio> solder a capture card to the lcd panel :3
[22:07:32 CEST] <f-safinaskar> BtbN: I capture X anyway. So, I anyway should capture both X and VT. So, KMS seems to be perfect solution
[22:07:55 CEST] <f-safinaskar> my "ffmpeg -devices" doesn't contain kms
[23:50:54 CEST] <f-safinaskar> I installed recent version of ffmpeg. It has "kmsgrab" support
[23:51:07 CEST] <f-safinaskar> But it records garrbagge
[23:51:18 CEST] <f-safinaskar> And when I switch into tty1, ffmpeg fails
[23:51:33 CEST] <f-safinaskar> So, I have to write my own C program using libdrm or libxcb
[23:51:41 CEST] <f-safinaskar> Or there is other options???????!
[23:52:01 CEST] <durandal_1707> f-safinaskar: read manual is always an option
[23:52:33 CEST] <f-safinaskar> durandal_1707: i have read
[23:52:50 CEST] <f-safinaskar> durandal_1707: I tried options from the manual
[23:53:08 CEST] <f-safinaskar> durandal_1707: x11grab is not for me, because I need virtual terminals, too
[23:53:26 CEST] <atomnuker> f-safinaskar: you need to map drm frames from kmsgrab to either opencl or vaapi in order to not get garbage
[23:56:30 CEST] <f-safinaskar> atomnuker: wow, thanks! but i tried vaapi example from manual
[23:56:36 CEST] <f-safinaskar> atomnuker: ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4
[23:56:59 CEST] <f-safinaskar> atomnuker: and I got "No usable planes found on CRTC 42."
[23:57:08 CEST] <f-safinaskar> atomnuker: then i removed "-crtc_id 42"
[23:57:09 CEST] <kerio> atomnuker: but what if i just wanted an array of pixels instead
[23:58:06 CEST] <f-safinaskar> atomnuker: and then i got "libva: va_getDriverName() failed with operation failed,driver_name=i965"
[23:58:18 CEST] <atomnuker> map to opencl and hwdownload,format=bgra/bgr0
[23:58:26 CEST] <f-safinaskar> kerio: atomnuker: yes, I want just array of pixels
[23:58:33 CEST] <atomnuker> or map to vaapi and hwdownload,format=yuv420p
[23:58:50 CEST] <f-safinaskar> kerio: atomnuker: but some compressed form will be OK, because I can decompress the video later
[23:59:47 CEST] <f-safinaskar> atomnuker: how to do this?
[23:59:52 CEST] <atomnuker> f-safinaskar: you need to do -init_hw_device "vaapi=vap:/dev/dri/renderD128" before the -i and you need to add -filter_hw_device vap before -vf and to map you need to remove the derive device part, so its just hwmap
[00:00:00 CEST] --- Fri May 18 2018
1
0
[00:04:23 CEST] <atomnuker> BBB: nowhere, I'm losing motivation to get it past Mt. Lv_Map and without it its nowhere
[00:04:28 CEST] <atomnuker> all this damn contexts
[00:13:58 CEST] <TD-Linux> you mean "optimization opportunities" :)
[00:45:34 CEST] <cone-174> ffmpeg 03Zhao Zhili 07master:84d4af4ea8aa: examples/filtering_video: drop an always true condition
[00:45:35 CEST] <cone-174> ffmpeg 03Zhao Zhili 07master:c0a845f9481d: examples/filtering_video: add missing headers
[00:45:36 CEST] <cone-174> ffmpeg 03Zhao Zhili 07master:f24b2e64b0f3: examples/filtering_video: fix memory leak
[00:45:37 CEST] <cone-174> ffmpeg 03Zhao Zhili 07master:d0b5952325c9: doc/examples: add missing ignore files
[00:45:38 CEST] <cone-174> ffmpeg 03Michael Niedermayer 07master:64f59a21b39b: avcodec: Disable new iterate API for ossfuzz
[02:08:19 CEST] <BBB> atomnuker: hmk...
[03:08:21 CEST] <atomnuker> ffs, when can we use the new api in decoders?
[03:08:54 CEST] <atomnuker> that new libopus fec patch could do things correctly if it could output multiple frames per packet
[03:09:30 CEST] <atomnuker> as well as atrac9 and a whole bunch of voice codecs, and who knows how many other stuff in lavc
[03:11:36 CEST] <atomnuker> the old API can't use the new API in AVCodec to emulate old behaviour of 1 packet in -> N frames out, can it?
[03:54:39 CEST] <tmm1> is there any way to access AVFormatContext from an AVStream?
[04:02:19 CEST] <jamrial> tmm1: don't think so
[04:02:42 CEST] <jamrial> if this is an internal function, just change it to also take an AVFormatContext
[04:04:18 CEST] <tmm1> i need it from wrap_timestamp(), but one of the callers is av_add_index_entry() which is public
[04:05:26 CEST] <tmm1> it seems i would need to add AVFormatContext pointer into AVStreamInternal
[04:24:16 CEST] <jamrial> tmm1: av_add_index_entry() could always just call wrap_timestamp() with NULL as argument for the new avformatcontext param, assuming the changes you'll make don't make it an obligatory param
[04:25:50 CEST] <tmm1> i'm storing a new index (for timestamp discontinuities) in the format context, so i need access to it
[04:26:50 CEST] <tmm1> adding to AVStreamInternal worked for now, can revisit and maybe the index can be moved elsewhere for easier access
[08:59:52 CEST] <JEEB> atomnuker: i thought that was all handled by some wrapper? unless we're talking sbout more internal things?
[09:49:09 CEST] <atomnuker> wm4: ping? you implemented the wrapper, right?
[11:19:46 CEST] <nevcairiel> its audio, cant you just concat the packets into one buffer
[12:50:03 CEST] <cone-432> ffmpeg 03Paul B Mahol 07master:4e816b549142: avfilter: add aderivative and aintegral filter
[14:32:05 CEST] <eric-> Hey all, does anyone know why the some of the DNxHD bitrates listed in libavcodec/dnxhddata.c, do not match the VC3 standard ? For example the 1259 profile array lists 63,84,100,100, but the standard lists 80,85,100
[14:34:30 CEST] <cone-432> ffmpeg 03Jun Zhao 07master:48c5ac8b0f66: lavc/h2645_parse: log more HEVC NAL type.
[14:34:30 CEST] <cone-432> ffmpeg 03Jun Zhao 07master:7582a907e40e: lavc/h2645_parse: rename the nal_unit_name to hevc_nal_unit_name.
[14:34:32 CEST] <cone-432> ffmpeg 03Jun Zhao 07master:b7cd2ab22e21: lavc/h2645_parse: add h264_nal_unit_name for h264 NAL type.
[15:26:30 CEST] <gagandeep> kierank: there was difference coding flag in codec state that decides which subband will be difference coded
[15:26:58 CEST] <kierank> ok let me know if you have a patch
[15:27:07 CEST] <wm4> atomnuker: no, elenril did
[15:27:18 CEST] <wm4> or rather, rewrote it into its current form
[15:30:19 CEST] <kierank> eric-: guessing here but probably what works in the real world
[16:15:05 CEST] <eric-> kierank: possibly, but the array numbers don't make sense, as the 63mbit number imples an approx frame-rate of 19fps
[16:45:50 CEST] <gagandeep> kierank: interlacing fixed
[16:46:05 CEST] <gagandeep> subband 8 was only difference coded not quantized
[16:46:23 CEST] <gagandeep> so remove dequantization for those bands with difference coding
[16:47:49 CEST] <kierank> gagandeep: nice, send patch to ffmpeg-devel
[16:48:52 CEST] <gagandeep> kierank: i will after properly formatting and updating codec states in header
[16:51:45 CEST] <ubitux> durandal_1707: give me time to read & understand the paper
[17:40:37 CEST] <durandal_1707> ubitux: all serious implementations i checked use local max patch weight (except handbrake which use global custom one), but if you can do better than that it would be great (from paper, local stein improves small details)
[17:42:33 CEST] <ubitux> ok that's good to know
[17:43:06 CEST] <ubitux> maybe we should introduce different modes but i guess the max version will be good enough
[17:43:15 CEST] <ubitux> i just want to read it before, if you can wait
[17:43:54 CEST] <ubitux> i'm still uncomfortable about the strength vs amount thing, i don't think it's a good idea to have both, but maybe there is no official way around it
[19:21:00 CEST] <cone-432> ffmpeg 03Aman Gupta 07master:673d8cfd5188: avformat/hls: fix seeking around EVENT playlist after media sequence changes
[20:33:45 CEST] <durandal_1707> can LDLT cholesky decomposition be parallized?
[20:44:17 CEST] <atomnuker> daddesio^^
[20:44:48 CEST] <daddesio> I've never checked...
[20:48:51 CEST] <daddesio> I've really never implemented any parallel matrix algos before.
[22:04:42 CEST] <akravchenko188> hi guys. is there way to print filter graph?
[22:05:22 CEST] <akravchenko188> I am trying to figure out what filters added automaticaly
[22:08:55 CEST] <durandal_1707> akravchenko188: -dumpgraph ?
[22:11:22 CEST] <akravchenko188> Option dumpgraph not found.
[22:11:33 CEST] <JEEB> yea, not sure if the cli had that
[22:11:42 CEST] <JEEB> there was an API function to do an ASCII dump of the filter chain
[22:22:22 CEST] <akravchenko188> oh, I found the issue. hw decoder transfer data to system memory by default. I thought filter like vf_hwdownload does this and tried to find who adds it :)
[22:29:44 CEST] <atomnuker> yes, you need to use -hwaccel_output_format if you don't want to download them (or you want a different dl format)
[22:34:47 CEST] <akravchenko188> thanks, I was just curious why it transfers to system memory by default.
[22:35:00 CEST] <akravchenko188> it is additional operation
[22:35:44 CEST] <nevcairiel> it does that by default because it requires careful setup of the entire chain to support zero-copy hardware processing
[22:38:25 CEST] <wm4> amazon? nice
[22:39:29 CEST] <akravchenko188> ok,I see, thanks
[22:39:47 CEST] <wm4> why did fpga on PC never take off
[22:40:04 CEST] <kierank> mostly useless
[22:45:30 CEST] <atomnuker> expensive
[22:45:46 CEST] <atomnuker> those with enough gates to be useful cost quite a lot
[22:46:21 CEST] <nevcairiel> yeah its really only useful for enterprise use due to the cost
[22:47:25 CEST] <akravchenko188> is there any negotiation mechanism about formats during build graph/pipeline?
[22:47:37 CEST] <nevcairiel> sort of, but its pretty rigid
[22:48:10 CEST] <rcombs> what are FPGAs even useful for that you would be doing on a PC anyway
[22:48:20 CEST] <klaxa> ok, after reading a lot i'm finally picking up some pace with the config file stuff, atomnuker, should i change this structure? a "downside" of this format i found is that you cannot have a stream called "bind_address" or "port", i'm not sure how important that is? https://gist.github.com/klaxa/30080590752ba738bc23b381314d5e52
[22:48:21 CEST] <wm4> nevcairiel: i.e., no
[22:48:55 CEST] <wm4> rcombs: DSP stuff?
[22:49:05 CEST] <rcombs> like what?
[22:49:35 CEST] <wm4> such as video decoding
[22:49:59 CEST] <cone-432> ffmpeg 03Marton Balint 07master:50d6b7bd830e: avcodec/xwddec: fix palette alpha
[22:50:01 CEST] <jkqxz> Being able to do all the video transforms in one cycle would be nice.
[22:50:15 CEST] <atomnuker> klaxa: weird, does the socket namespace somehow get initialized and used
[22:50:25 CEST] <rcombs> might as well just sell an ASIC for that
[22:50:39 CEST] <rcombs> lower-power too, I'd imagine
[22:50:42 CEST] <rcombs> (oh hey they do)
[22:50:44 CEST] <wm4> now ASICs are expensive
[22:50:45 CEST] <klaxa> ah, no i mean just from the format, those keys are used for, well the address and the port, so you can't reuse those keys for stream-names
[22:51:01 CEST] <klaxa> a stream is just a named object in a server
[22:51:05 CEST] <wm4> unless you design them with great effort and then sell them at very high volumes
[22:51:12 CEST] <atomnuker> klaxa: its not important at all then
[22:51:19 CEST] <klaxa> ok
[22:51:33 CEST] <rcombs> which they do
[22:51:38 CEST] <jkqxz> If Intel get their act together with Altera and make some sort of closely-coupled FPGA thing in their processors then maybe there is significant use there for video.
[22:51:45 CEST] <atomnuker> or they cut corners (which they do, in the case of vp9)
[22:51:59 CEST] <jkqxz> (Like, special magic instructions which invoke a load of FPGA logic.)
[22:52:21 CEST] <jkqxz> But anything further apart than that probably isn't going to be very useful, because the fixed elements of it mean you might as well make ASICs instead.
[22:52:52 CEST] <rcombs> plus if it's on FPGA then you don't get to sell new chips every time there's a new codec
[22:52:58 CEST] <atomnuker> did you know that that decoding/encoding/transform instructions is how GPUs decode video?
[22:53:13 CEST] <atomnuker> apparently you can use them from shaders too, if the drivers exposed them
[22:53:21 CEST] <atomnuker> nvidia has an extension to do that
[22:54:02 CEST] <wm4> which one
[22:54:36 CEST] <kierank> atomnuker: there are closed shaders for vp9 in quicksync
[22:55:02 CEST] <nevcairiel> those are for the crappy hybrid mode tho
[22:56:14 CEST] <rcombs> there are closed shaders for every supported codec, even without hybrid mode
[22:58:40 CEST] <atomnuker> wm4: NV_gpu_program5
[22:58:58 CEST] <jkqxz> VP9 on Nvidia is just Google's IP block dumped in. Are other codecs more integrated, or is that shader logic actually entirely separate from the codec hardware?
[22:59:27 CEST] <nevcairiel> nvidia generally doesnt use shaders for decoding at all
[23:00:07 CEST] <wm4> jkqxz: is that goog IP closed?
[23:02:01 CEST] <jkqxz> Yes, but it's available for no charge if you sign up to put it in a product. <https://www.webmproject.org/hardware/vp9/>
[23:02:29 CEST] <cone-432> ffmpeg 03Marton Balint 07release/4.0:61fed89ad425: avcodec/xwddec: fix palette alpha
[23:04:47 CEST] <nevcairiel> jkqxz: since Pascal, NVIDIA supports 8192x8192 VP9 decode, the google block does not seem to support that (while in Maxwell, NVIDIAs limit matched the google limit), so either they extended it or replaced it, or there is a newer one not mentioned there
[23:12:29 CEST] <jkqxz> I would be unsurprised if there were a better version.
[23:16:12 CEST] <atomnuker> my mobile maxwell doesn't even support vp9 or vp8
[23:30:17 CEST] <jkqxz> Hmm, you can now (or soon?) buy a Cannonlake with AVX-512.
[23:30:45 CEST] <nevcairiel> well low power mobile CPUs anyway
[23:30:53 CEST] <nevcairiel> if you want a dual core with avx512=p
[23:31:07 CEST] <jkqxz> Stuck inside a shitty laptop.
[23:31:27 CEST] <jkqxz> So not really usable for testing anyway.
[23:33:55 CEST] <jkqxz> nevcairiel: Are you happy with how that test now makes a separate fate-hw target?
[23:37:09 CEST] <nevcairiel> that was my suggestions, so its fine
[23:38:05 CEST] <nevcairiel> (if it works like that)
[23:39:36 CEST] <jkqxz> Yeah.
[23:41:49 CEST] <jamrial> jkqxz: does it really have avx512?
[23:41:57 CEST] <jamrial> this one i3 in ark.intel doesn't mention that
[23:42:20 CEST] <jamrial> oh, they updated the entry
[23:42:22 CEST] <jamrial> now it does
[23:42:45 CEST] <jamrial> yesterday it didn't. copy paste placeholder info?
[23:42:54 CEST] <nevcairiel> ARK is often inaccurate
[23:43:12 CEST] <nevcairiel> because its not managed by tech people directly
[23:43:58 CEST] <jamrial> but yeah, lowpower mobile, so i can't see avx512 being useful (or able to run decently) at all
[23:48:37 CEST] <jkqxz> Well, you can probably test the new instructions... But you'll get nuked by the power and thermal limits if you actually try to benchmark anything.
[23:51:16 CEST] <jamrial> https://aomedia.googlesource.com/aom/+/21f4825469610deb8a22fe2c3adcc694381e… :D
[00:00:00 CEST] --- Thu May 17 2018
1
0
[02:22:59 CEST] <Bagel> Hi! I just installed FFMPEG v.4 and when I try to execute ffmpeg it just flickers command prompt for a fraction of a second and nothing occurs afterwards
[02:32:56 CEST] <klaxa> it's not a gui program, you use it from the command line
[02:33:10 CEST] <klaxa> ok
[02:54:12 CEST] <dl2s4> :)
[09:08:38 CEST] <bartsimps0n> Hi. I have a high resolution, very low bitrate video (because of the content; there's very little movement). I am dealing with a third party transcoding system that refuses to create high bitrate renditions of low bitrate source.
[09:09:02 CEST] <bartsimps0n> So I'm trying to pre-transcode a forced high bitrate version of the source video. Yes, I know that's silly.
[09:11:14 CEST] <bartsimps0n> I can't get -minrate or -b:v to force a high bitrate. (using e.g. -minrate 8M -b:v 8100000 etc.). Is what I"m trying to do possible?
[09:12:17 CEST] <bartsimps0n> (actually, the 3rd party system refuses to create a high resolution rendition of a low bitrate source. I misspoke the first time)
[09:15:34 CEST] <hero100__> bartsimps0n, if the video container is mpegts, you can set muxrate. Not sure if it's a good idea.
[09:17:33 CEST] <bartsimps0n> hero100__: urgh.
[09:17:39 CEST] <bartsimps0n> hero100__: thanks
[09:19:52 CEST] <bartsimps0n> hero100__: hm. that might have worked actually. :) let me see what this broken system does with it
[10:15:53 CEST] <bartsimps0n> hero100__: it worked. thanks again.
[10:16:15 CEST] <hero100__> nope
[14:08:08 CEST] <mort> What unit is AVCodecContext's bitrate in? bits/sec or kbit/sec or something else?
[14:16:42 CEST] <BtbN> should be bits
[15:19:48 CEST] <Zgrokl> hello I try to open a udp stream but ffmpeg hang on when i put -f rtp
[15:20:47 CEST] <Zgrokl> but i need to put the -f because if I don't i get a green screen
[15:38:05 CEST] <Zgrokl> how do you -i udp://rtp// ?
[15:44:59 CEST] <mort> So, the video frames created by h264_v4l2m2m are green (as if only the Y-bytes are used and the U and V bytes are set to 0). That doesn't seem quite right
[15:45:18 CEST] <mort> this isn't a problem with my code, because it also happens when using the ffmpeg CLI tool
[15:45:54 CEST] <BtbN> What even uses that stuff?
[15:46:06 CEST] <mort> well, the hardware I'm working with at the moment for one
[15:46:58 CEST] <mort> the theory is that it's a common API for a bunch of hardware ecnoders and decoders to use, so I imagine it'll be used by more stuff in the future too
[15:47:49 CEST] <BtbN> I'd expect more vendor specific APIs instead
[15:49:06 CEST] <mort> I sure hope not, because having to write encoder and decoder wrappers for each weird hardware API kinda sucks
[15:50:22 CEST] <mort> anyways, I'm trying to compile ffmpeg 3.2 (the version which creates green frames is 3.4). Maybe that solves it.
[15:54:02 CEST] <BtbN> So you are trying two outdated versions only?
[15:54:08 CEST] <mort> BtbN: by the way, in ffmpeg 4.0, I get the error "The encoder timebase is not set." from avcodec_open2 from https://www.ffmpeg.org/doxygen/4.0/libavcodec_2utils_8c_source.html#l00538 line 758, even when the time_base field is set in the AVCodecContext. Any idea what could cause that?
[15:54:40 CEST] <mort> https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/encode_video.c that has that issue even when compiling with my system ffmpeg libraries (from arch linux), and you can clearly see it sets time_base
[15:55:16 CEST] <BtbN> That error is printed when AVCodecContext.time_base is invalid.
[15:55:59 CEST] <mort> so https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/encode_video.c#L1… sets time_base incorrectly?
[15:56:29 CEST] <BtbN> the check is num <= 0 || den <= 0
[15:56:59 CEST] <mort> yeah, I've read it, but that makes no sense, because (1 <= 0) is false and (25 <= 0) is false
[15:57:37 CEST] <BtbN> well, the check is pretty straight forward. Something else must be setting it.
[15:58:48 CEST] <mort> Oh, my bad. I was linking to old versions of the headers. I was sure I had removed that -I flag.
[16:20:36 CEST] <Zgrokl> i finaly resolved my issue using 2 input faking the multicast request like this the second input of ffmpeg can get the incoming rtp
[16:20:38 CEST] <Zgrokl> nvm
[16:20:58 CEST] <Zgrokl> but now i get RTP: missed 3-10 packets, any idea why ?
[16:26:51 CEST] <mort> well, h264_v4l2m2m produces green frames with ffmpeg 4.0 too :(
[16:29:40 CEST] <jkqxz> mort: What hardware? The support varies a lot between vendors, and each one has their own quirks which can make the common code not work.
[16:31:26 CEST] <jkqxz> I think it was mainly written and tested on qualcomm, with some testing on imx and exynos. If you're using something else then I would not have bet on it working.
[16:36:40 CEST] <mort> jkqxz: it's a qualcomm venus encoder in the dart sd410, I know the encoder works properly because when using my own encoder wrapper based on https://git.linaro.org/people/stanimir.varbanov/v4l2-encode.git it works
[17:03:53 CEST] <zevarito> Does anyone know why deprecation warnings on OSX are treated as warnings and compiling the same code on Ubuntu those become errors?
[17:05:14 CEST] <kepstin> zevarito: what errors specifically, can you provide a link to the build output?
[17:06:04 CEST] <zevarito> sure, hold on a second
[17:08:34 CEST] <zevarito> warning: 'avcodec_decode_video2' is deprecated [-Wdeprecated-declarations] vs error: 'int avcodec_decode_video2(AVCodecContext*, AVFrame*, int*, const AVPacket*)' is deprecated [-Werror=deprecated-declarations]
[17:08:47 CEST] <zevarito> first is osx, second ubuntu
[17:09:46 CEST] <zevarito> ffmpeg 3.4.2
[17:10:16 CEST] <zevarito> does make sense for Ubuntu since that function was removed, but why it compile in OSX is what doesnt make sense
[17:10:32 CEST] <furq> is that clang on osx
[17:10:38 CEST] <mort> zevarito: the Ubuntu version is apparently compiled with --Werror
[17:10:41 CEST] <mort> -Werror*
[17:10:50 CEST] <zevarito> hmmm you right
[17:11:01 CEST] <zevarito> it is clang
[17:11:20 CEST] <mort> that flag tells the compiler to interpret warnings as errors; I don't know if you're not giving Clang -Werror on macOS or if Clang ignores -Werror
[17:12:23 CEST] <zevarito> the flag is there so maybe you right and clang is ignoring it
[17:12:27 CEST] <furq> do you have a default CFLAGS in your env or something
[17:12:39 CEST] <furq> Werror definitely isn't enabled by default on linux
[17:13:13 CEST] <zevarito> nope
[17:13:15 CEST] <mort> zevarito: is this compiling your code which uses ffmpeg or are you compiling ffmpeg itself?
[17:13:28 CEST] <zevarito> mort: my code
[17:14:04 CEST] <zevarito> but Ive checked configure and compile of the library and it is the same for both platforms, however you guys give me a good hint to lookup for
[17:14:36 CEST] <mort> the solution is to either stop using deprecated functions, or remove -Werror from your makefile :)
[17:15:54 CEST] <zevarito> mort: hehe, well, I am working on remove depreacted functions, but wonder why that happen, also, Ive checked wrong, the flag isnt there :/
[17:16:18 CEST] <mort> could you pastebin your makefile?
[17:16:30 CEST] <zevarito> project uses cmake btw
[17:16:51 CEST] <mort> oh, the cmakelists.txt then
[17:17:31 CEST] <zevarito> sure, hold on
[17:19:14 CEST] <zevarito> mort: https://pastebin.com/hw4FWrwk
[17:21:14 CEST] <mort> run `env | grep error` and see if anything looks relevant
[17:21:56 CEST] <zevarito> nothing in both platforms
[17:22:48 CEST] <furq> you don't need to worry about your env if it's cmake
[17:22:52 CEST] <furq> cmake completely ignores that
[17:23:09 CEST] <furq> which for once is useful and not annoying
[17:23:30 CEST] <mort> I didn't know that, intresting
[17:24:17 CEST] <mort> zevarito: what file is it warning about?
[17:24:57 CEST] <mort> as in, which contains the deprecated function calls
[17:25:45 CEST] <zevarito> well, there are severals, I am migrating the project from the shi*** libav ;)
[17:26:57 CEST] <zevarito> perhaps shouldnt say that, apologies
[17:27:04 CEST] <furq> nah it's fine
[17:27:26 CEST] <furq> you can probably just add -Wno-deprecated-declarations to cmake
[17:27:47 CEST] <furq> it's more of a bandaid than a solution though
[17:28:21 CEST] <mort> it's possible that one of the included cmake files add -Werror
[17:28:47 CEST] <zevarito> furq: yep, I could try that
[17:28:51 CEST] <mort> I know Google stuff loves -Werror, which is really nice when you're using a different version of the compiler than what Google has standardized on and your compiler generated a warning they didn't anticipate
[17:28:57 CEST] <zevarito> mort: that happend for sure
[17:29:03 CEST] <zevarito> so it inherits the flag ?
[17:29:20 CEST] <mort> I don't know, I've used cmake very little
[17:29:49 CEST] <zevarito> maybe gcc and clang differ on that, one inherit the flag if a dep is using it and the other not
[17:29:50 CEST] <furq> fwiw you probably want to migrate to the new api anyway
[17:30:03 CEST] <furq> so you might as well just add -Wno-deprecated-declarations for now
[17:30:08 CEST] <furq> https://ffmpeg.org/doxygen/3.4/group__lavc__encdec.html
[17:30:10 CEST] <zevarito> furq: yup, I am on that, you mean av_send_frame etc ?
[17:30:13 CEST] <furq> yeah
[17:30:19 CEST] <zevarito> yup, I am on that
[17:30:36 CEST] <mort> but if "include" is the C-style include where it basically just copy/pastes one file into another, and cmake has a way to add a flag to a global cflag and webrtc is doing that, that would affect later stuff too
[17:31:12 CEST] <zevarito> mort: do you think it is cmake and not gcc ?
[17:31:32 CEST] <zevarito> if it is cmake should be consistent across platforms ?
[17:31:35 CEST] <mort> yes, GCC and Clang have no say in what they're called with, it's cmake that's deciding to add -Werror to your compiler on linux but not on macOS
[17:31:46 CEST] <zevarito> alright
[17:32:32 CEST] <mort> cmake itself isn't inconsistent across platforms I think, but I assume one can do different stuff for different platforms using it
[17:33:22 CEST] <zevarito> Ive checked that versions differ, osx cmake is 3.11.1 while ubuntu has 2.8.12.2
[17:33:27 CEST] <zevarito> perhaps that is the trick
[17:34:49 CEST] <mort> https://cmake.org/cmake/help/v3.0/command/include.html " and run CMake code from the file given. Variable reads and writes access the scope of the caller (dynamic scoping)." - It sounds like if webrtc's cmake file adds -Werror to CMAKE_CXX_FLAGS, that would affect your stuff too
[17:35:43 CEST] <zevarito> mort: yup that make sense
[19:00:34 CEST] <memo1> hi, now that ffserver is out, what options i have to set remote video server?
[19:00:51 CEST] <kepstin> what's your target player?
[19:22:34 CEST] <f-safinaskar> hi
[19:53:37 CEST] <FishPencil> Is there any crf value > 0 that would retain visual quality of the source though 1000s of reencodes?
[19:55:49 CEST] <kepstin> no, although you might be able to find a value that has acceptable quality for certain video sources and numbers of re-encodes.
[19:56:17 CEST] <kepstin> but really, you should be spending less time re-encoding videos :)
[19:58:08 CEST] <FishPencil> I'm looking to save some blu-rays, but it's going to really annoy me if the quality isn't the "same". Trying to decide what crf value to use
[19:58:28 CEST] <kepstin> use -c copy
[19:58:43 CEST] <kepstin> there's no reason to bother re-encoding at all if you have the space for it
[20:00:30 CEST] <FishPencil> Maybe I should just buy a couple TB HDD and put them all on there
[20:01:07 CEST] <FishPencil> Should be about 40 blu-rays for a 2TB drive
[20:01:18 CEST] <kepstin> if you're re-encoding, it's up to you to decide how much quality loss you're ok with, trading off vs. how big of file size you're ok with.
[20:01:58 CEST] <kepstin> a quality level high enough to have minimal effect over many re-encodes is probably not gonna give you much file size savings over simply copying the video as-is (although you'd really have to test this to be sure)
[20:02:01 CEST] <furq> remuxes usually aren't that much bigger than transparent encodes
[20:02:10 CEST] <FishPencil> I'm fine rencoding, but it needs to look and sound the same
[20:02:23 CEST] <furq> emphasis on remuxes because you will save a ton of space just by doing that
[20:02:42 CEST] <FishPencil> You mean -c copy furq?
[20:02:53 CEST] <furq> sure if you want to do it with ffmpeg
[20:03:06 CEST] <furq> m2ts is typically about 15% overhead
[20:03:10 CEST] <FishPencil> How do I save any space simply be remuxing it
[20:03:14 CEST] <furq> ^
[20:03:15 CEST] <kepstin> you might want to consider using blu-ray specific tools if you want to keep chapters and stuff
[20:03:17 CEST] <FishPencil> oh dang
[20:03:23 CEST] <furq> yeah use makemkv or something
[20:03:31 CEST] <furq> especially if you have actual discs and you need to break the encryption
[20:03:39 CEST] <FishPencil> already have that done
[20:03:54 CEST] <FishPencil> Just have a bunch of m2ts now
[20:03:56 CEST] <kepstin> but even if you don't, makemkv will, uh, make mkvs from your m2ts files
[20:05:00 CEST] <FishPencil> The playlist .mpls files really only have helpful chapter marks right?
[20:05:17 CEST] <FishPencil> There's not really anything else I'd want to retain?
[20:05:36 CEST] <furq> i think track metadata is stored outside the m2ts as well
[20:05:39 CEST] <furq> like language and such
[20:06:17 CEST] <furq> if you already have it decrypted then you can just use bdinfo
[20:06:26 CEST] <furq> that does the remuxing with ffmpeg
[20:07:48 CEST] <furq> https://github.com/schnusch/bdinfo
[20:10:31 CEST] <FishPencil> mkv has fairly low overhead right?
[20:14:32 CEST] <FishPencil> m2ts -> mkv was about 6.4% smaller
[20:24:33 CEST] <furq> mkv is about as low as anything else
[20:28:11 CEST] <kerio> mpegts is especially overheady
[20:29:50 CEST] <furq> 15% is probably on the high side tbh
[20:39:52 CEST] <FishPencil> So if I can expect a 5% savings my remuxing, that's two extra blurays for 2TB, or roughly 42 BD's. Pretty rough estimates though
[20:40:09 CEST] <FishPencil> s/my/by
[20:42:22 CEST] <FishPencil> Assuming a 2TB drive is roughly $60, that's like $1.4 per BD. Not bad considering the original prob cost $20+
[20:43:33 CEST] <FishPencil> All of that is to say I don't think I'll be reencoding them. The cost savings doesn't really make sense to me
[20:43:41 CEST] <furq> you can generally save a lot more by removing audio tracks you don't want
[20:44:19 CEST] <furq> or if it's dtshd/dtsma audio you can losslessly strip the extensions out
[20:45:02 CEST] <furq> -bsf:a dca_core if you're using ffmpeg
[20:45:10 CEST] <furq> i imagine there's some way to coerce bdinfo into using that
[20:46:29 CEST] <furq> you can also obviously just get rid of the features you don't want
[20:46:42 CEST] <FishPencil> I'll probably end up using mkvtoolnix along with a small program I wrote that uses libbluray to extract the chapter marks from the mpls.
[20:46:45 CEST] <furq> it's not uncommon to get a 50% reduction after doing all that
[20:48:18 CEST] <furq> if your playback chain doesn't support dtshd then it's a massive saving to get rid of it
[20:49:19 CEST] <kerio> can't you extract the lossless track and encode that with opus or something
[20:49:38 CEST] <furq> well he wants no degradation
[20:49:46 CEST] <kerio> flac
[20:49:49 CEST] <FishPencil> I use mpv so I assume it can do dtshd.
[20:49:59 CEST] <furq> flac would probably end up bigger
[20:50:11 CEST] <FishPencil> Do you know if all blurays also ship with a lossy option if they include dtshd
[20:50:42 CEST] <furq> yes
[20:50:46 CEST] <furq> that's how dtshd works
[20:51:06 CEST] <furq> it's a regular dca core stream and then the extensions on top
[20:51:14 CEST] <furq> so it'll degrade to core if your player doesn't support the extensions
[20:52:04 CEST] <zevarito> furq: mort: thanks for your help, Ive ended adding -Wall -Werror with add_definitions before add_directory to replicate ubuntu behavior in osx, couldnt find the exact cause of the problem and must go on.
[20:52:42 CEST] <FishPencil> does mpv support it? Is the quality actually any better? I'm not really an audio guy
[20:52:55 CEST] <furq> apparently it does
[20:53:04 CEST] <furq> you used to need libdcadec but that got folded into ffmpeg a while ago iirc
[20:53:17 CEST] <furq> as to the quality, it probably makes no difference
[20:59:31 CEST] <kerio> 64kbps/channel opus is perceptually lossless
[21:00:40 CEST] <FishPencil> If I go down the "perceptually lossless" trail I'm going to end up encoding the video too
[21:00:49 CEST] <kerio> but that takes time and effort
[21:01:06 CEST] <kerio> and introduces generation loss
[21:01:26 CEST] <kerio> just keep the audio i guess
[21:01:35 CEST] <kerio> it's not gonna mean much when you're keeping 40gb of video
[21:02:13 CEST] <kerio> hm where would one hypothetically obtain a bit-exact dump of a dvd or bluray?
[21:02:18 CEST] <kerio> like what should one search for
[21:02:19 CEST] <kerio> hypothetically
[21:02:51 CEST] <FishPencil> the hash?
[21:03:04 CEST] <kerio> no like
[21:03:12 CEST] <kerio> bdrip is a reencoding
[21:03:25 CEST] <FishPencil> oh
[21:03:42 CEST] <furq> kerio: dtshd goes up to like 25mbit
[21:03:47 CEST] <furq> so it's a significant saving if you drop it
[21:04:04 CEST] <kerio> i should get some radiohead in dtshd
[21:04:09 CEST] <kerio> 🤔
[21:04:10 CEST] <FishPencil> I wrote my own program that uses libaacs. It's an exact byte for byte decrypted dump.
[21:04:51 CEST] <FishPencil> libbluray also has some "example" tools that can do a similar thing
[21:07:10 CEST] <furq> i guess you could probably try converting dtshd to flac
[21:07:17 CEST] <furq> it won't be a huge saving though
[21:08:13 CEST] <furq> unless you downmix to stereo or something
[21:08:13 CEST] <FishPencil> furq: so for some of my blurays I only have AC-3
[21:08:19 CEST] <kepstin> if it's higher than 48kHz/16bit you could downsample it when saving it to flac, might help.
[21:08:30 CEST] <furq> that's another good point
[21:08:42 CEST] <furq> this is assuming you have any dtshd in the first place
[21:08:58 CEST] <FishPencil> I have "TrueHD" is another
[21:09:12 CEST] <FishPencil> s/is/in
[21:09:18 CEST] <furq> there's at least two different dts-hd codecs
[21:09:24 CEST] <furq> one of them is lossy and only 3-6mbps
[21:09:39 CEST] <furq> dts-hd high resolution is the lossy one, dts-hd master audio is the lossless one
[21:10:04 CEST] <furq> high resolution is just for 7.1 support iirc
[21:10:37 CEST] <FishPencil> ffprobe shows: Audio: truehd (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), s32 (24 bit)
[21:11:00 CEST] <furq> not sure why it's flagging that as ac3
[21:11:54 CEST] <furq> it's probably only worth converting dts-hd ma or truehd to flac if you're going to downmix and/or downsample it
[21:12:23 CEST] <furq> and also doing that will ruin any chance of spdif passthrough if that matters to you
[21:12:59 CEST] <furq> and then any other audio format is small enough that you might as well just keep it
[23:12:36 CEST] <zerodefect> Is it plausible to change the channel count in an AC3 stream on the fly? Secondly, does FFmpeg support it? Using the C-API for the record.
[23:20:49 CEST] <JEEB> zerodefect: the decoder at least can switch normally
[23:21:07 CEST] <JEEB> so if you feed it AC3 that is first 5.1, and then switches to stereo and vice versa, it will do that
[23:21:58 CEST] <zerodefect> Awesome thanks! On the encoder front, is it not supported or do you not know?
[23:24:27 CEST] <zerodefect> Searched using my favourite search engine (on the encoding front) and there were some posts that were quite old describing problems.
[23:24:34 CEST] <JEEB> no idea, would have to look at ac3enc's encode_frame
[23:24:35 CEST] <zerodefect> I need to brush up on using cmdline!
[23:24:56 CEST] <JEEB> I only know on the decoding front because broadcast can switch between stereo and 5.1 in the same track
[23:28:13 CEST] <zerodefect> Ah ok. I did a simple code search through the github mirror. Noticed that firstly there was a fixed/float version and I think quite a bit is written in assembler. Not search friendly
[23:28:34 CEST] <zerodefect> Of course, not blaming FFmpeg for that!
[23:29:19 CEST] <JEEB> libavcodec/ac3enc_template.c
[23:29:22 CEST] <JEEB> seems to be the relevant file
[23:29:52 CEST] <JEEB> found with `git -B2 grep AVFrame -- libavcodec/ac3*`
[23:30:06 CEST] <JEEB> since encoding a frame function takes an AVFrame
[23:30:54 CEST] <zerodefect> Ah, nice. Thanks.
[23:31:23 CEST] <JEEB> also that -B2 goes after the grep, copypasta fail
[23:31:39 CEST] <JEEB> (yes, I first failed and wrote it like that and got told that -B2 is not a valid git parameter)
[23:33:39 CEST] <zerodefect> :)
[23:35:34 CEST] <zerodefect> Is your line of work involved in broadcast @JEEB?
[23:35:50 CEST] <JEEB> more or less
[23:36:09 CEST] <JEEB> at least I deal plenty with various broadcast multiplexes :)
[23:37:40 CEST] <zerodefect> I've noticed your name in the libass channel too
[23:37:55 CEST] <JEEB> I poke a lot of stuff with my fingers :)
[23:38:45 CEST] <JEEB> (I am unfortunately not able to always give random stuff the amount of time I'd like to, though)
[23:39:27 CEST] <zerodefect> Yes, I know that feeling.
[23:44:37 CEST] <zerodefect> I think by mentioning multiplexer I could give a good guess the company you work for.
[00:00:00 CEST] --- Thu May 17 2018
1
0