Ffmpeg-devel-irc
Threads by month
- ----- 2026 -----
- October
- September
- August
- 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
January 2018
- 1 participants
- 62 discussions
[04:51:23 CET] <atomnuker> what's the difference between map to/from and derive to/from?
[04:51:51 CET] <atomnuker> map_to and derive_to seem to do the same thing in opencl
[05:02:54 CET] <philipl> BtbN: I won't be able to. Just curious.
[12:02:42 CET] <wm4> why would a format flagged with AVFMT_NOTIMESTAMPS actually have timestamps on its packets
[12:04:33 CET] <wm4> utils.c must be making them up again
[12:04:39 CET] <wm4> what the fuck
[12:05:03 CET] <wm4> this of course ends up with totally unexpected behavior
[12:13:26 CET] <wm4> libavformat/utils.c is one of those parts of ffmpeg that would be improved by deleting almost everything of it
[14:05:08 CET] <mypopydev> @jkqxz Hi
[14:05:34 CET] <mypopydev> Submitted V4 for VPP part, please help to review, thanks a lot
[15:42:28 CET] <cone-573> ffmpeg 03Carl Eugen Hoyos 07master:7652af9df06d: lavf/swfdec: Reduce score when auto-detecting swf files.
[16:21:08 CET] <wm4> jamrial: looked at my git history, apparently this file was said to require parsing: http://www.cccp-project.net/beta/test_files/mzero_truehd_sample.mkv
[16:21:18 CET] <wm4> seems to work without parsing, though (at least today)
[16:30:36 CET] <jamrial> wm4: without full frame reconstruction, it emits several warnings for the first frame (or frames), but ultimately it decodes the same
[16:34:13 CET] <wm4> yeah
[16:34:36 CET] <wm4> the commit message seems to indicate the problem was worse, dunno how that makes sense
[16:37:41 CET] <JEEB> well there was some reason why that sample was posted to me back in ye olden days - could check some really old logs
[16:39:03 CET] <wm4> it was a largish change to mpv's mkv demuxer in 2013, so there was probably a reason indeed
[16:39:24 CET] <wm4> but retrying it with parsing disabled now appears to work
[16:39:31 CET] <wm4> maybe the truehd decoder got more tolerant?
[16:41:23 CET] <atomnuker> yeah, I forget if it doesn't emit the warning on seeks
[16:41:36 CET] <atomnuker> but it shouldn't
[17:58:38 CET] <atomnuker> that's a bit of a curveball but you never know, lots of university students sit around and do things like that rather than study
[18:15:08 CET] <cone-573> ffmpeg 03Marton Balint 07master:e3acba0d5d7b: avfilter/formats: remove support for deprecated channel count specification
[18:38:09 CET] <jamrial> atomnuker: "godlike familiarity" isn't exactly encouraging
[18:39:35 CET] <wm4> would be something for hanna?
[18:39:54 CET] <raytiley_> trying to submit my first patch... is there a delay in how fast it shows up in patchwork? just wanna make sure I'm doing this right
[18:40:03 CET] <wm4> also why does it say GLSL - Vulkan doesn't support GLSL
[18:40:03 CET] <JEEB> patchwork might take a while
[18:40:13 CET] <JEEB> wm4: glsl extension IIRC
[18:40:24 CET] <wm4> JEEB: only nvidia, and it's broken
[18:40:24 CET] <jamrial> raytiley_: it already showed up in the mailing list, so it went through just fine
[18:40:40 CET] <raytiley_> jamrial: thanks
[18:40:42 CET] <JEEB> wm4: why am I not surprised, although it seems like mesa also implemented it?
[18:40:44 CET] <wm4> you can use any language that can be compiled to spir-v so you're technically free to pick the shader language
[18:40:57 CET] <wm4> JEEB: maybe they added it then
[18:51:08 CET] <atomnuker> I'd rather not have spriv binaries in the repo, so glsl's the only option
[18:51:53 CET] <wm4> do you want to rely on the GLSL extension?
[18:51:56 CET] <atomnuker> nope
[18:52:09 CET] <JEEB> so some glsl-spirv compiler?
[18:52:12 CET] <wm4> so you'd need to link a shader compiler anyway
[18:52:27 CET] <atomnuker> no, we don't need runtime shader compilation
[18:52:37 CET] <atomnuker> most distros ship glslang so that's nice
[18:55:42 CET] <wm4> so you do want spirv binaries in the repo?
[18:55:59 CET] <cone-573> ffmpeg 03Vishwanath Dixit 07master:7c27bbd590e6: avdevice/decklink: addition of copyts option
[18:56:01 CET] <cone-573> ffmpeg 03Vishwanath Dixit 07master:dfa2523bdd82: avdevice/decklink: addition of PTS_SRC_NB in enum DecklinkPtsSource
[18:56:01 CET] <cone-573> ffmpeg 03Vishwanath Dixit 07master:fc93eca126aa: avdevice/decklink: addition of absolute wallclock option for pts source
[18:56:02 CET] <cone-573> ffmpeg 03Devin Heitmueller 07master:5409f065f2c4: avdevice/decklink: Suppress warning about misuse of struct instead of class
[18:56:03 CET] <cone-573> ffmpeg 03Devin Heitmueller 07master:b5b48685043e: avdevice/decklink: Fix compilation of module on OSX
[18:56:26 CET] <atomnuker> no, glsl shaders which get converted to binaries and are included in whatever's going to use them as tables
[18:56:49 CET] <atomnuker> so not in the repo, but in the compiled library
[18:57:27 CET] <wm4> kind of bothersome, but ok
[19:02:33 CET] <c3-Win> If I can point to how Steam does it: You get the code with an option to have Steam deliver pre-compiled binaries.
[19:03:06 CET] <c3-Win> In this case the code=FFMPEG and the pre-compiled binaries are the various distros/hosts that provide the pro-compiled FFMPEGs that are installed.
[19:03:19 CET] <c3-Win> *pro=pre
[19:04:26 CET] <atomnuker> so steam games don't ship vulkan shader binaries but give some hl syntax to valve so it can distribute them separately?
[19:13:57 CET] <c3-Win> I'm guessing that's what happens.
[19:14:36 CET] <c3-Win> In Settings->Shader Pre-Caching it reads as follows:
[19:15:08 CET] <c3-Win> Shader Pre-Caching allows Steam to download pre-compiled GPU shaders matching your system configuration. This allows Vulkan
[19:15:25 CET] <c3-Win> and OpenGL games to load faster and improves framerate stability during gameplay.
[19:15:55 CET] <c3-Win> If enabled, Steam will collect shaders from your system when needed. Enabling this feature may slightly increase disk and bandwidth usage.
[19:16:51 CET] <c3-Win> and with over 2 TBs of games installed (not a lot of them are OpenGL or Vulkan though) 11MB of disk space is being used on the pre-cached shaders.
[19:18:28 CET] <atomnuker> I thought it used the layers subsystem to somehow get the compiled shaders and provide them to the drivers if they match
[19:30:25 CET] <cone-573> ffmpeg 03Henrik Gramner 07master:3a02cbe3facc: x86inc: Enable AVX emulation for floating-point pseudo-instructions
[19:30:26 CET] <cone-573> ffmpeg 03Henrik Gramner 07master:9e4b3675f226: x86inc: Use .rdata instead of .rodata on Windows
[19:30:27 CET] <cone-573> ffmpeg 03Henrik Gramner 07master:6b6edd121699: x86inc: Support creating global symbols from local labels
[19:30:28 CET] <cone-573> ffmpeg 03Henrik Gramner 07master:eb5f063e7ccc: x86inc: Correctly set mmreg variables
[19:30:29 CET] <cone-573> ffmpeg 03Henrik Gramner 07master:6f62b0bd4ff2: x86inc: Drop cpuflags_slowctz
[20:56:55 CET] <SortaCore> is there a reason the metadata is stripped if it's set before av_write_header?
[20:57:15 CET] <SortaCore> I get it's written in av_write_footer, but why is it stripped if it's early?
[21:35:26 CET] <cone-573> ffmpeg 03Nikolas Bowe 07master:ef5994e09d07: avformat/lrcdec: Fix memory leak in lrc_read_header()
[21:35:27 CET] <cone-573> ffmpeg 03Michael Niedermayer 07master:725353525e73: avcodec/ulti: Check number of blocks at init
[21:35:28 CET] <cone-573> ffmpeg 03Michael Niedermayer 07master:2eecf3cf8eea: avcodec/snowdec: Fix integer overflow before htaps check
[22:40:25 CET] <atomnuker> jkqxz: could you test my latest vulkan hwaccel on your amd card again?
[22:41:42 CET] <atomnuker> use -vf "format=rgb24,hwupload,hwdownload,format=rgb24" since radv doesn't support ycbcr formats yet, thought it should soon
[22:43:16 CET] <atomnuker> you can now specify an index as a device, so -init_hw_device "vulkan=sl:0,extensions=VK_EXT_debug_report" will work, though you can still pass a device name
[22:43:53 CET] <atomnuker> if it crashes make sure to add the debug extension like above and -loglevel trace so I can see what goes wrong
[00:00:00 CET] --- Sun Jan 21 2018
1
0
[00:21:05 CET] <AeroNotix> I just compiled master ffmpeg (along with ffplay) and -autoexit behaves properly.
[00:21:26 CET] <alexpigment> AeroNotix: good to hear
[00:21:37 CET] <alexpigment> no explanation for what was going on, but a fix is a fix ;)
[00:21:54 CET] <AeroNotix> Interesting for sure
[00:22:12 CET] <AeroNotix> I'll try compiling the exact same version once I figure out how you're tagging releases and try again
[00:22:30 CET] <AeroNotix> also, love the fact that `make -j N` works :) Sometimes you find projects where it messes things up :)
[01:42:26 CET] <JASTON> Hey gang, does anyone know of a way to use the hls muxer in conjunction with var_stream_map to create different resolution renditions? The documentation examples only show how to change up bitrates, but I'm sure I'm missing something: https://ffmpeg.org/ffmpeg-formats.html#hls
[03:48:25 CET] <friki> Hi, is tere an equivalent command of "mplayer -cache 100 - " for ffplay?
[03:49:40 CET] <friki> I've tested -probesze and -analyzeduration without luck
[03:52:09 CET] <DHE> that's not a cache. it's to tell if how much effort to put into guessing the input type
[03:54:39 CET] <friki> i'm piping an audio stream to ffplay and it ffplay takes several minutes to start playing
[03:55:19 CET] <friki> the audio stream comes from FM radio station (with tzap)
[05:51:42 CET] <illuminated> I'm using vlc player to play a playlist and output an http mpegts stream that I'm inputting into ffmpeg running on another box that's outputting hls segments. When the file in vlc changes to the next in the playlist ffmpeg recognizes there's a new file, says so, and then stops outputting new m3u8 and .ts files.
[05:51:56 CET] <illuminated> How can I stream hls through vlc's file changes?
[11:35:46 CET] <czarek> Hello I've been trying to compile FFMPEG against DEVKITPRO (armv6k architecture) it generally compiles well but no matter what switches I try network support is always disabled... I take it that something in DEVKITPRO libraries is missing. What are the prerequisites to get network support in such configuration?
[11:36:44 CET] <czarek> (just for the records cross compiling to x86 architecture works with no problem)
[11:37:27 CET] <sfan5> these: https://github.com/ffmpeg/ffmpeg/blob/master/configure#L5573
[11:44:40 CET] <czarek> yeah thank you so much... it looks like netinet/sctp.h is missing
[11:44:55 CET] <czarek> but most of the headers are present
[11:45:37 CET] <czarek> i'll see about the presence of the structs within the headers and missing header
[11:45:45 CET] <czarek> thank you sfan5
[15:58:15 CET] <SortaCore> does anyone have the list of metadata supported by mp4?
[16:37:00 CET] Last message repeated 1 time(s).
[16:52:30 CET] <relaxed> https://news.ycombinator.com/item?id=16192813
[17:33:50 CET] <pepijndevos> How can I extract a frame for a list of timestamps? Basically I want to export a picture for every subtitle line.
[17:34:39 CET] <pepijndevos> I extraced the subtitles to text format and grepped the timestamps.
[17:34:57 CET] <pepijndevos> I got this far: ffmpeg -y -i input.mkv -vf subtitles=input.mkv -ss 00:02:01 -frames:v 1 out1.jpg
[17:50:35 CET] <pepijndevos> My problem is if I do a normal loop, it'll take ages, and if I do -ss as an input, the timestamps are wrong for the subtitles
[17:55:40 CET] <c_14> -copyts with -ss as input should work
[17:55:50 CET] <c_14> otherwise an insane select filter might work
[17:55:57 CET] <c_14> or you'd have to use the libav* libraries
[18:28:42 CET] <pepijndevos> c_14, THANK YOU!
[18:29:43 CET] <pepijndevos> Working pretty well https://imgur.com/a/P11QF
[18:53:13 CET] <Fyr> guys, I set -metadata:s:0:31 title=Turkish and FFMPEG sets "Turkish" title to a video (0:0).
[18:53:18 CET] <Fyr> why does it happen?
[18:53:44 CET] <Fyr> I would have shown the complete muxing log, but it's really long.
[18:54:01 CET] <Fyr> 26 subtitles and 5 audio tracks.
[18:54:47 CET] <Fyr> FFMPEG somehow converts 0:31 to 0:0.
[18:56:49 CET] <relaxed> Fyr: which audio track are you targeting?
[18:57:03 CET] <Fyr> it's a subtitle track.
[18:57:27 CET] <relaxed> which one?
[18:57:40 CET] <Fyr> ffprobe says it's 0:31 track.
[18:57:58 CET] <Fyr> when I set metadata to 0:31, it sets it to the video track.
[18:57:59 CET] <c_14> Fyr: just s:31
[18:58:05 CET] <c_14> because it matches to output track and not input
[18:58:24 CET] <c_14> and there's never more than one output file to match
[18:58:27 CET] <Fyr> c_14, could you write here the -metadata option?
[18:58:36 CET] <JEEB> -metadata:s:31 I would guess then
[18:58:41 CET] <c_14> yeah
[18:58:41 CET] <Fyr> thanks!
[18:58:45 CET] <Fyr> now I got it.
[19:07:57 CET] <Fyr> what option is right: "-disposition:16 hearing_impaired" or "-disposition:s:16 hearing_impaired"?
[19:08:33 CET] <JEEB> I would guess the first applies to the 16th track in general
[19:08:46 CET] <JEEB> (well, 17th I guess since zero is first)
[19:09:01 CET] <JEEB> and the second limits it to subtitle tracks?
[19:09:06 CET] <c_14> yeah
[19:09:16 CET] <Fyr> thanks
[20:00:00 CET] <SilenceDogood> How do audio filters work when you have multiple input streams? Can I apply them to some input streams but not others?
[20:00:15 CET] <SilenceDogood> Also how do I select a default audio track when there are multiple audio tracks in an mkv?
[20:01:16 CET] <JEEB> by default ffmpeg.c has some logic related to streams that it selects (and it by default selects the """best""" or so stream
[20:01:38 CET] <JEEB> but if you want to control the selection fully there's the mapping commands for that
[20:01:55 CET] <JEEB> and with -filter_complex you can create the full filter chain yourself explicitly marking the inputs and outputs
[20:02:03 CET] <DHE> and there's -filter_complex which allows you to select which streams to filter or even combine streams with filters that accept multiple inputs
[20:02:36 CET] <SilenceDogood> can I get it to auto-copy all subtitle streams from all available input files or do I need to specify each individual subtitle stream?
[20:03:07 CET] <JEEB> -map 0:s selects all subtitle streams from the first (0th) input file
[20:03:30 CET] <JEEB> (and as soon as you put a -map command in, all automagic selection gets disabled)
[20:03:35 CET] <SilenceDogood> oh great
[20:05:25 CET] <SilenceDogood> So if I say, "-map 0:v -map 1:0 map 0:a map 0:s" that should get video from 0, then add the first stream from 1, then add everything else from 0, right?
[20:06:13 CET] <JEEB> with a bit more -s there, yes
[20:06:25 CET] <SilenceDogood> JEEB what do you mean?
[20:06:30 CET] <SilenceDogood> ohhh
[20:06:32 CET] <SilenceDogood> i'm missing a dash
[20:06:48 CET] <JEEB> "pick video streams from input 0, pick all streams from input 1, pick all audio from input 0, pick all subtitles from input 0"
[20:06:48 CET] <SilenceDogood> -map 0:v -map 1:0 -map 0:a -map 0:s
[20:06:51 CET] <JEEB> is what that does
[20:07:07 CET] <SilenceDogood> wait, why would it pick all streams from input 1
[20:07:12 CET] <JEEB> yes, I mistook that one
[20:07:13 CET] <JEEB> sorry
[20:07:14 CET] <JEEB> :P
[20:07:17 CET] <SilenceDogood> OK
[20:07:22 CET] <SilenceDogood> Now here's the complicated part
[20:07:32 CET] <SilenceDogood> I have a filter that I only want to apply to the stream from input 1
[20:07:57 CET] <SilenceDogood> All other streams should be exact copy, no changes.
[20:08:04 CET] <DHE> -filter_complex "[1:id] filter=options [filterout]" -map [filterout] -map [0:v] ...
[20:08:08 CET] <JEEB> in that case you would be using filter_complex and then mapping the named output
[20:08:13 CET] <JEEB> yup
[20:08:37 CET] <DHE> oops, no [] on the map for 0:v
[20:08:39 CET] <JEEB> yea
[20:08:41 CET] <DHE> but you get the idea
[20:08:49 CET] <SilenceDogood> uhhhhh not quite, sorry
[20:08:51 CET] <JEEB> ffmpeg.c uses "[thing]" for filter inputs/outputs
[20:08:58 CET] <JEEB> and map can use those
[20:09:10 CET] <SilenceDogood> maybe I should do this in an intermediate step
[20:09:29 CET] <furq> you can just do -af "[0:a]astats"
[20:09:37 CET] <furq> and not have to map the output
[20:09:39 CET] <manuelg> Hi all, got a dumb question
[20:09:59 CET] <JEEB> SilenceDogood: -filter_complex can utilize any tracks from any input, in this case it takes "[1:0]filter[filter_output]" and then you can -map "[filter_output]"
[20:10:20 CET] <JEEB> and yes, there's the implicit filter output which I've never personally liked - but it is there
[20:11:08 CET] <manuelg> i'm trying to stream an image file from local disk, to an ffmpeg server at 1fps, but every time I run it it runs at 1000+ fps. I've tried both -r 1 and -framerate 1 before and after the input option, but to no avail. can anyone help?
[20:11:28 CET] <sfan5> try -re
[20:11:37 CET] <JEEB> if your input is not streaming then you have to utilize the hack in ffmpeg.c which is -re before -i
[20:11:50 CET] <JEEB> do note that it is a hack and with non-simple inputs it will lead to disturbing effects
[20:12:03 CET] <JEEB> such as if your input's timestamps go 8 hours into the future the thing /will/ stall for 8 hours
[20:12:37 CET] <manuelg> Amazing, worked first time, thanks!
[20:12:49 CET] <manuelg> All it is is an image that's refreshed by wget so hopefully won't run into any issues like that
[20:16:13 CET] <SilenceDogood> JEEB, hmmmmmm actually it turns out I'm needing to do more than that
[20:16:36 CET] <JEEB> well you might want to note what you actually want to do first :)
[20:17:01 CET] <SilenceDogood> JEEB, I need to take input 1, add 5.666 seconds of silence and encode it to aac
[20:17:29 CET] <SilenceDogood> make it stream 1 (the first and default audio stream) and copy all other streams from input 0
[20:18:06 CET] <SilenceDogood> the silence goes at the beginning, which I was thinking of doing with -af "adelay=5666|5666|5666|5666|5666|5666"
[20:18:28 CET] <SilenceDogood> But I want to make sure ffmpeg does not attempt to re-encode anything else. Everything from stream 0 must be direct copied with no changes
[20:18:43 CET] <JEEB> well filter_complex lets you specify which input gets filtered and all
[20:18:56 CET] <JEEB> (and how the output is called)
[20:18:58 CET] <SilenceDogood> JEEB but does it let you specify encoding options
[20:19:02 CET] <JEEB> yes?
[20:19:10 CET] <JEEB> filtering is what happens before encoding anyways
[20:19:15 CET] <JEEB> you map the output of the filter chain
[20:19:24 CET] <JEEB> (as opposed to the input stream)
[20:19:36 CET] <SilenceDogood> oh, so I'd say -c:'[out]' aac then ?
[20:20:10 CET] <JEEB> no, you -map it first with the "[name_of_output]" and then that becomes whatever Nth stream to encode
[20:20:40 CET] <JEEB> so if it's the first audio mapping you added
[20:20:59 CET] <JEEB> -map "[afilter_out]" -c:a:0 aac -b:a:0 192k
[20:21:11 CET] <furq> -c:a:0 is the first output audio stream, not input
[20:21:25 CET] <JEEB> where you defined "[afilter_out]" in the filter_complex chain as the output
[20:21:35 CET] <SilenceDogood> JEEB, OK ... I'm going to try to make the right command for this, but I thought I'd also let you know what I'm actually working on just cause you might be interested
[20:21:36 CET] <furq> so if you did -map 0:a:1 -map 0:a:0 then they'll be swapped round in the output
[20:21:44 CET] <SilenceDogood> I'm trying to make Dark Side of the Rainbow in 3D
[20:22:13 CET] <SilenceDogood> using the Wizard of Oz 3D blu ray and the Pink Floyd Dark Side of the Moon 2011 surround sound mix
[20:26:26 CET] <SilenceDogood> JEEB does this look reasonable? ffmpeg -i oz.mkv -f concat -i floyd-loop.txt -filter_complex '[1:a]adelay=5666|5666|5666|5666|5666|5666[floyd]' -map 0:v -map '[floyd]' -map 0:a -map 0:s -c:v copy -c:a:0 aac -c:a:1 copy -c:s copy -c:a aac -metadata:s:v:0 stereo_mode=1 -shortest floyd.mkv
[20:26:50 CET] <JEEB> I have no idea how adelay works but if that's correct then yes
[20:27:15 CET] <SilenceDogood> wait no it's not
[20:27:20 CET] <SilenceDogood> it said -c:a aac
[20:27:45 CET] <SilenceDogood> that's wrong. i only want c:a:0 (the first audio stream) to be aac
[20:28:07 CET] <SilenceDogood> so hopefully like this: ffmpeg -i oz.mkv -f concat -i floyd-loop.txt -filter_complex '[1:a]adelay=5666|5666|5666|5666|5666|5666[floyd]' -map 0:v -map '[floyd]' -map 0:a -map 0:s -c:v copy -c:a:0 aac -c:a:1 copy -c:s copy -metadata:s:v:0 stereo_mode=1 -shortest floyd.mkv
[20:28:20 CET] <JEEB> I just checked that your map name was the same as the output of the filter chain :D
[20:28:44 CET] <furq> if you just want to delay the audio stream then you could potentially just use -itsoffset and avoid reencoding
[20:28:52 CET] <SilenceDogood> JEEB oh well what I want to make sure of is that it's only the Pink Floyd getting re-encoded, while everything else is getting copied
[20:28:56 CET] <JEEB> yea, that depends on a lot of stuff if that works correctly
[20:28:57 CET] <furq> but iirc you said you want this to work on phones so adelay is probably smarter
[20:29:03 CET] <SilenceDogood> furq, no, want to re-encode. The original is FLAC, need AAC.
[20:29:09 CET] <furq> ok
[20:29:11 CET] <furq> what's audio stream 1
[20:29:21 CET] <JEEB> furq: I've found itsoffset to just be nullified often unless you add -copyts
[20:29:21 CET] <SilenceDogood> wizard of oz audio
[20:29:29 CET] <furq> i mean what codec
[20:29:30 CET] <JEEB> and copyts can be "fun" with formats where timestamps can go wee-wee
[20:29:31 CET] <furq> the one that you're copying
[20:29:35 CET] <SilenceDogood> furq aac
[20:29:38 CET] <furq> oh ok
[20:29:41 CET] <furq> nvm then
[20:30:35 CET] <SilenceDogood> Result of running that command: '5666' is not recognized as an internal or external command, operable program or batch file.
[20:30:52 CET] <JEEB> then you haven't quoted the filter chain well enough
[20:31:02 CET] <furq> you might need doublequotes in the windows shell
[20:31:06 CET] <SilenceDogood> The filter works when I said -af "adelay=5666|5666|5666|5666|5666|5666"
[20:31:24 CET] <furq> it's probably breaking on the []s
[20:31:56 CET] <furq> actually nvm it's obviously breaking on the pipe isn't it
[20:32:00 CET] <furq> use double quotes then
[20:32:26 CET] <SilenceDogood> OK, I switched to double quotes on everything
[20:32:35 CET] <SilenceDogood> what does "Starting new cluster due to timestamp" mean
[20:32:37 CET] <SilenceDogood> is it bad
[20:32:52 CET] <furq> probably not
[20:36:52 CET] <SilenceDogood> thanks for your help DHE, JEEB and furq
[20:37:28 CET] <SilenceDogood> furq I think i mentioned to you last week that I'd be working straight from the disc instead of using pirated Wizard of Oz when my blu ray arrives. Well it arrived last night, which is why I'm working on it today. :)
[20:40:56 CET] <SilenceDogood> OK after running that command, the resulting file has some problems:
[20:41:25 CET] <SilenceDogood> 1. The Wizard of Oz audio track is selected by default when I open VLC Media Player
[20:41:40 CET] <SilenceDogood> It should select Pink Floyd by default
[20:42:18 CET] <SilenceDogood> 2. When I switch over to the Pink Floyd track and skip around to different parts of the film, large sections seem to result in no audio playing.
[20:42:44 CET] <SilenceDogood> However, audio does play in a few spots
[20:42:49 CET] <SilenceDogood> What's up with that
[20:42:57 CET] <JEEB> I would recommend testing with mpv as well
[20:43:03 CET] <SilenceDogood> what's mpv
[20:43:09 CET] <JEEB> windows binaries can be found @ https://mpv.srsfckn.biz/
[20:43:20 CET] <SilenceDogood> I'm trying to open the audio stream in Audacity to see if it's got errors
[20:43:43 CET] <JEEB> (you don't need to install, just drag and drop the file on top of mpv.exe)
[20:45:08 CET] <SilenceDogood> is mpv better
[20:45:34 CET] <SilenceDogood> There have always been things I strongly dislike about VLC but I've kept using it because nothing else seems to be able to handle such a wide variety of formats
[20:45:42 CET] <__jack__> yes, mpv is the best player
[20:45:50 CET] <JEEB> in some ways, in other ways it's not yet as good. the main thing is not to limit oneself to a single thing
[20:46:00 CET] <SilenceDogood> although I use foobar2000 for audio because lack of gapless playback is a dealbreaker on any audio player for me
[20:46:18 CET] <JEEB> also at this point if I were to test with vlc I would be using vlc 3
[20:46:23 CET] <JEEB> which is in release candidate state
[20:46:37 CET] <SilenceDogood> oh i'm getting it thanks
[20:46:41 CET] <SilenceDogood> getting both
[20:48:11 CET] <JEEB> did they finally add proper download pages for vlc 3.0 release candidates?
[20:48:23 CET] <JEEB> I had real issues trying to find the official RC builds some time ago
[20:48:32 CET] <JEEB> so I just went for the 3.0 branch nightlies instead
[20:51:01 CET] <SilenceDogood> Same issues occur in MPV as in VLC
[20:52:14 CET] <SilenceDogood> What's the deal here guys
[20:52:23 CET] <JEEB> can't say without seeing specifics :P
[20:53:43 CET] <SilenceDogood> Also the Wizard of Oz audio is listed as English Dolby surround sound, while Pink Floyd is just "Track 1"
[20:55:37 CET] <SilenceDogood> JEEB what specifics can I investigate?
[20:55:58 CET] <SilenceDogood> Wait maybe there's an easier way that'll bypass this whole complex filter thing
[20:56:20 CET] <SilenceDogood> I could stick Pink Floyd in a file by itself
[20:56:41 CET] <SilenceDogood> what's a good container format for surround sound aac ?
[20:56:52 CET] <JEEB> mp4 I'd say
[20:57:02 CET] <JEEB> exact timestamps and supports timestamp offsetting
[20:57:43 CET] <SilenceDogood> JEEB so if I encode to mp4, then copy the stream, I should get same results right?
[20:57:52 CET] <SilenceDogood> no quality loss ?
[20:57:57 CET] <JEEB> yes
[20:58:06 CET] <SilenceDogood> OK I'm gonna give that a shot
[20:58:17 CET] <JEEB> well encoding to AAC will of course be lossy
[20:58:21 CET] <JEEB> because AAC is a lossy format
[20:59:08 CET] <SilenceDogood> JEEB, right, but the step of copying the stream doesn't introduce any additional quality loss right?
[20:59:20 CET] <JEEB> no
[20:59:34 CET] <SilenceDogood> No meaning that's incorrect?
[20:59:51 CET] <JEEB> no, it doesn't introduce any additional quality loss
[20:59:57 CET] <SilenceDogood> OK good
[21:01:30 CET] <SortaCore> copying AAC isn't encoding (converting to) AAC, hence no quality loss
[21:02:19 CET] <SilenceDogood> JEEB, wait shouldn't I use m4a if this file is just audio?
[21:02:33 CET] <JEEB> the extension really doesn't matter
[21:03:59 CET] <lorenz> Are there any developers here that can explain how ffmpeg is migrating from inline asm to linked NASM code without sacrificing performance?
[21:04:24 CET] <lorenz> From all the function calls
[21:04:48 CET] <JEEB> FFmpeg never used inline asm generally
[21:04:58 CET] <JEEB> it was always manual assembly that was assembled into functions
[21:05:17 CET] <JEEB> then you have function pointers that point either to the optimized version, or to a general C version
[21:06:03 CET] <SilenceDogood> Does this look reasonable? ffmpeg -f concat -i floyd-loop.txt -af "adelay=5666|5666|5666|5666|5666|5666" --enable-libfdk-aac -c:a libfdk_aac -b:a 320kbps -ar 48000 -t 1:41:45 floyd.m4a
[21:06:19 CET] <SilenceDogood> that was based on following the wiki
[21:06:23 CET] <JEEB> also I don't think function calls are that expensive to begin with unless you do something really stupid
[21:06:39 CET] <lorenz> so the optimized AVX2 code, for instance, would contain its own looping structure? or are the loops handled in C with a function call
[21:06:57 CET] <JEEB> really tight loops are generally in the SIMD itself
[21:07:11 CET] <JEEB> if it's not a tight loop then it might be in a C for loop
[21:07:21 CET] <Martchus> SilenceDogood: --enable-libfdk-aac looks wrong. It is used at build time to enable support for the coded and not at runtime.
[21:07:29 CET] <SilenceDogood> I said 320 kbps because that's what good mp3s use, but I got no idea if that's normal for surround sound music
[21:07:38 CET] <SilenceDogood> Martchus, oh. the wiki didn't explain that very well
[21:07:43 CET] <JEEB> SilenceDogood: it might be better than 192k since I thought you had stereo :P
[21:08:17 CET] <SilenceDogood> JEEB no, everything in this project is surround sound.
[21:08:28 CET] <JEEB> lorenz: the stuff I wrote for example (never finished, though) I handled the whole video frame in a single function and I looped over the amount of lines in the SIMD code
[21:08:46 CET] <JEEB> just like the C code did more or less
[21:09:21 CET] <SilenceDogood> I got "Unknown encoder 'libfdk_aac'"
[21:09:35 CET] <JEEB> of course since with GPL components enabled it becomes non-distributable
[21:09:45 CET] <JEEB> due to fdk-aac's license not being compatible
[21:10:01 CET] <JEEB> the internal aac encoder is just fine now
[21:10:02 CET] <lorenz> JEEB: it just seems cumbersome to me if you had to write AVX/AVX2/AVX512 optimized versions of the same code each with their own loop structure and peeling
[21:10:09 CET] <Martchus> SilenceDogood: In gerneral, you can assume that --enable-... is some configure flag used at build time. So likely this seemed obvious to the wiki writers. To find out whether your ffmpeg build was build using a certain flag, just invoke ffmpeg without args.
[21:10:47 CET] <SilenceDogood> OK
[21:10:49 CET] <JEEB> lorenz: you can of course macro things, although often since you're using different instructions you would have to write most of that anyways
[21:11:19 CET] <lorenz> right
[21:12:01 CET] <JEEB> also even with inline asm or just intrinsics the general design is the same
[21:12:12 CET] <SilenceDogood> OK so I went with ffmpeg -f concat -i floyd-loop.txt -af "adelay=5666|5666|5666|5666|5666|5666" -c:a aac -b:a 320k -ar 48000 -t 1:41:45 floyd.m4a
[21:12:30 CET] <JEEB> duplicated stuff can be macro'd, and otherwise the actual data processing part ends up being different for each instruction set
[21:13:25 CET] <SilenceDogood> the original FLACs are 24-bit surround sound, straight from the blu ray
[21:13:28 CET] <JEEB> also the compiler often cannot generate optimal/simple code for many things when you use inline stuff
[21:13:38 CET] <lorenz> right
[21:13:46 CET] <SilenceDogood> so when the output says, "Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1(side), fltp (24 bit), 320 kb/s" I am confused
[21:14:18 CET] <JEEB> so when you're comparing inline stuff to straight SIMD code the in-line stuff tends to have an inherent speed loss (although many people recently write intrinsics because it's just that simple and probaly gives you at least half of the speed boost
[21:14:22 CET] <SilenceDogood> I thought the term "24 bit" referred to something to do with quality but I deliberately dropped the quality to something more manageable here, so why does it still say 24-bit ?
[21:14:45 CET] <JEEB> lossy formats don't really have a bit depth
[21:14:54 CET] <JEEB> the (24bit) is probably just some metadata of what it originally was
[21:15:27 CET] <JEEB> with most lossy formats you get a floating point reconstruction of the signal, which you can then convert down to whatever bit depth you want really :P
[21:15:36 CET] <SilenceDogood> JEEB how do I change metadata like that? I think the metadata is why VLC was selecting the Wizard of Oz audio instead of the Pink Floyd audio by default.
[21:22:15 CET] <SilenceDogood> would it be normal for the surround sound mix of a concert that's 1 hour and 41 minutes long to be 233 MB ?
[21:22:27 CET] <SilenceDogood> That seems low to me.
[21:23:56 CET] <SilenceDogood> I would've expected about twice that
[21:25:08 CET] <sfan5> you used 320k bitrate, which is exactly 236 MB at 1h41m
[21:28:25 CET] <SilenceDogood> Oh I see. I'm switching to DTS I think, just cause that's what the Wizard of Oz uses
[21:28:58 CET] <JEEB> DTS is quite a crappy format
[21:29:19 CET] <JEEB> so unless you need it specifically I would just either keep it lossless or use AAC for lossy use cases
[21:31:05 CET] <SilenceDogood> JEEB well using AAC is causing the audio to go silent half the time throughout the movie.
[21:32:10 CET] <JEEB> try re-encoding without any parameters first then :P
[21:32:28 CET] <SilenceDogood> JEEB OK
[21:32:34 CET] <JEEB> and if it still borks then just report a bug with a sample if possible
[21:32:42 CET] <JEEB> (as much of the input as required for it to happen)
[21:33:27 CET] <JEEB> the AAC encoder did get fuzz testing so in theory I'd be surprised if it was the encoder
[21:34:06 CET] <furq> is 5.1 well tested
[21:34:47 CET] <JEEB> I don't have the details on how many different setups got tested but I wouldn't be surprised if it was something else
[21:35:15 CET] <JEEB> which is why I'd like a poke with a simple ffmpeg -i input.flac -c:a aac -b:a 320k out.mp4 kind of thing
[21:35:29 CET] <SilenceDogood> I'm looking at https://www.ffmpeg.org/ffmpeg-all.html#Main-options for how to add metadata
[21:35:40 CET] <SilenceDogood> it explains how to set one language, but not how to add multiple key/value pairs
[21:35:48 CET] <JEEB> you can add metadata after you get things working :P
[21:35:51 CET] <SilenceDogood> does that need multiple -metadata ?
[21:36:07 CET] <SilenceDogood> JEEB well one of the problems was the default audio stream being wrong
[21:36:28 CET] <JEEB> yes but if your audio is getting borked I think that gets priority :P
[21:36:45 CET] <SilenceDogood> I'm trying to put the audio stream in it's own file, and that file should also have the audio metadata
[21:37:16 CET] <furq> maybe it's breaking because of 24-bit input
[21:37:45 CET] <SilenceDogood> quite possibly
[21:37:49 CET] <SilenceDogood> how to fix?
[21:37:53 CET] <JEEB> quite unlikely since it actually will get converted to float anyways, and the whole thing isn't without sound
[21:38:09 CET] <JEEB> so please let's just start simple and just goddamn take just that audio stream and just re-encode it without any filtering
[21:38:17 CET] <JEEB> then check that result
[21:38:23 CET] <SilenceDogood> all the audio appears to be there when I open it in audacity
[21:38:50 CET] <SilenceDogood> I'm doing this here: ffmpeg -f concat -i floyd-loop.txt -af "adelay=5666|5666|5666|5666|5666|5666" -c:a aac -metadata:s:a:0 language=eng -metadata:s:a:0 description="Pink Floyd" -t 1:41:45 floyd.m4a
[21:39:00 CET] <furq> how come it says fltp (24 bit) and not just fltp
[21:39:03 CET] <JEEB> furq: have fun with this case then, I'm off to have something more fun :P
[21:39:07 CET] <furq> i assume there's some kind of distinction there
[21:39:16 CET] <SilenceDogood> no idea
[21:39:18 CET] <JEEB> furq: it probably shows the coded_bits value if it's passed through
[21:39:33 CET] <JEEB> since 24bit is passed as 32bit and then there's a value which says "only 24 bits are actually utilized"
[21:39:41 CET] <JEEB> completely unrelated to teh encoding
[21:39:55 CET] <furq> oh
[21:39:58 CET] <furq> yeah that looks likely
[21:40:17 CET] <furq> i guess opus is out of the question anyway
[21:40:42 CET] <SilenceDogood> the video needs to play on VR players like Oculus Video and Skybox
[21:41:14 CET] <JEEB> furq: just for reference try to get to re-encode it in as simple way as possible to count everything else out :P
[21:41:26 CET] <JEEB> we haven't even decided ifi t's the goddamn encoder or something else he's doing
[21:41:37 CET] <JEEB> but yea, I'm off since i can be doing more fun stuff with my Saturday
[21:48:08 CET] <SilenceDogood> My guess is that the audio is messing up every time it says "Starting a new cluster due to timestamp"
[21:49:08 CET] <SilenceDogood> like this guy https://lists.ffmpeg.org/pipermail/ffmpeg-user/2017-April/035902.html
[21:50:27 CET] <realies> vlc plays rtsp://192.168.0.42 fine while ffmpeg complains about [rtsp @ 0x7fd5bd800000] method SETUP failed: 503 ServerUnavailable
[21:50:52 CET] <realies> does it matter that i have a few network interfaces?
[22:01:24 CET] <SilenceDogood> I may have figured out a work around
[22:01:37 CET] <SilenceDogood> instead of using filters, just repeat the first 5.666 seconds
[22:08:55 CET] <ddubya> when I use ffmpeg ac3 codec, the audio is timeshifted +256 samples ahead of the original wav file. Is this expected behavior or did I find a bug?
[22:09:45 CET] <atomnuker> yes, its expected behaviour, though its a bug that ought to be fixed
[22:09:54 CET] <JEEB> isn't that just encoder delay?
[22:10:01 CET] <JEEB> which should be marked in the container if available
[22:10:14 CET] <atomnuker> no, ffmpeg.c doesn't respect the delay at the start
[22:10:25 CET] <JEEB> when decoding back to wav? yes
[22:10:27 CET] <atomnuker> which can be arbitrary and more than a frame
[22:10:31 CET] <JEEB> yup
[22:10:33 CET] <atomnuker> yes, when decoding to wav
[22:10:46 CET] <JEEB> because wav doesn't have negative timestamp support or whatever, so ffmpeg.c pads it to zero->
[22:10:50 CET] <JEEB> right?
[22:10:55 CET] <JEEB> at least that's how I remember that stuff
[22:12:40 CET] <ddubya> atomnuker, If I wanted to work around the bug myself (I have a transcoder with the same problem) could I do it by setting the first pts to -256 or should I drop the first 256 samples?
[22:14:10 CET] <atomnuker> no, if you're using the API you're supposed to solve it yourself by ignoring the first N samples the encoder reports
[22:14:28 CET] <atomnuker> dunno how you'd solve it via the cli
[22:15:08 CET] <ddubya> does the codec publish the value of N somewhere? I have similar problem with other codecs is why
[22:15:41 CET] <JEEB> generally no, the negative timestamp from the encoder is generally a hint of something like that but I'm not even sure how many fields you need to check if the negative timestamp is due to encoder delay or not
[22:15:49 CET] <JEEB> or does the timeline just happen to start at negative
[22:16:28 CET] <ddubya> ok
[22:16:53 CET] <ddubya> well the m4a codec has a delay and doesn't have the timeshift problem. So I couldn't go by that alone
[22:27:17 CET] <atomnuker> JEEB: it does
[22:30:21 CET] <SilenceDogood> ITS THE SUBTITLES
[22:30:40 CET] <atomnuker> no, its avctx->delay for decoding
[22:30:43 CET] <SilenceDogood> JEEB, furq, copying the subtitles causes the "Starting a new cluster due to timestamp" error.
[22:31:06 CET] <SilenceDogood> sorry atomnuker, not talking about your problem
[22:31:48 CET] <JEEB> SilenceDogood: yea there's been a lot of matroska files with derp'd subtitle timings which might explain it (or there's a bug somewhere)
[22:31:57 CET] <JEEB> which is why I wanted you to try just the audio without any filters first :P
[22:32:29 CET] <JEEB> after checking that it's not the audio it should have been obvious to start looking for other reasons, one of which would have been to start removing streams :P
[22:35:43 CET] <SilenceDogood> JEEB, OK .... so basically FFMPEG's bugged so I can't use the subtitles?
[22:36:08 CET] <JEEB> not necessarily FFmpeg's fault, I just listed it as one of the alternatives
[22:36:11 CET] <SilenceDogood> Before I had a -c:s copy in there
[22:36:19 CET] <SilenceDogood> When I got rid of that, I got error: Only SUBTITLE_ASS type supported.6 bitrate=1343.4kbits/s speed=0.0189x Subtitle encoding failed
[22:36:36 CET] <SilenceDogood> I didn't know a subtitle could have an ass
[22:36:41 CET] <SilenceDogood> Shows what I know about anatomy
[22:37:54 CET] <JEEB> there was first a format called SSA (substation alpha), and then it was improved into ASS
[22:38:08 CET] <JEEB> yes, teenage humour was related
[22:39:35 CET] <SilenceDogood> a guy on stack overflow also ran into this: https://stackoverflow.com/questions/19200790/converting-dvd-image-with-subt…
[22:39:48 CET] <SilenceDogood> It would work for me to have the subtitles come out as separate files
[22:41:05 CET] <SilenceDogood> but it needs to have subtitles, i mean come on
[22:44:10 CET] <SilenceDogood> wait I know. if I can just extract the Wizard of Oz 3D subtitles to a srt or sub file then I can just rename them to associate with my new file
[22:44:24 CET] <SilenceDogood> should work, right?
[22:47:58 CET] <ddubya> atomnuker, are you saying the extra samples at the start come from encoder or decoder?
[22:49:54 CET] <JEEB> they are encoded by the encoder in the bit stream
[22:50:07 CET] <JEEB> priming/whatever samples
[22:50:15 CET] <JEEB> different encoders utilize different amounts of that
[22:50:51 CET] <JEEB> some decoders just hardcode "most encoders probably generate this much of them", other decoders like FFmpeg's give you all of those samples and then you can in the container note the timestamp difference
[22:51:47 CET] <ddubya> oic so best if I adjust the output pts then
[23:00:57 CET] <ddubya> arg that has no effect
[23:02:17 CET] <JEEB> when decoding you have to handle it; an encoder/muxer can only do as much as note the amount of samples in the time line if possible
[23:03:12 CET] <JEEB> ffmpeg.c doesn't do that so when you take your encode it will most likely show the delay somehow, but will just output all samples into a WAV :P
[23:04:30 CET] <ddubya> yeah the samples are already encoded & packetized, i can't disassemble the packet and remove them. But why can't I put in a negative PTS? Then decoder should do the right thing I hope
[23:05:02 CET] <JEEB> various muxers support negative timestamps just fine I think? and if you're encoding with an audio encoder that sets the encoder delay properly it should JustWork?
[23:05:17 CET] <JEEB> (as the timestamps output by the encoder should be already set with the delay in that case)
[23:07:10 CET] <ddubya> doh, I put -512 as the first PTS and it ends up as 0 in the file
[23:07:49 CET] <JEEB> which container is that?
[23:09:51 CET] <ddubya> well there is no cnainter its raw ac3
[23:10:00 CET] <ddubya> hrm
[23:10:01 CET] <JEEB> yea
[23:10:19 CET] <JEEB> most raw audio formats have absolutely no way of pushing that info forwards
[23:10:53 CET] <JEEB> in mp4 you have edit lists which is probably the most used feature to enable this stuff
[23:11:54 CET] <ddubya> so I see, most of these raw codecs can't represet a negative PTS
[23:12:49 CET] <ddubya> have to annotate the file if its possible
[23:14:00 CET] <JEEB> some muxers read the delay from the file name but I don't think FFmpeg does that
[23:27:34 CET] <realies> how can i send rtsp stream to a rtmp server?
[23:28:00 CET] <realies> ffmpeg -i rtsp://192.168.0.42 -f flv output.flv => [rtsp @ 0x7fe174801200] method SETUP failed: 503 ServerUnavailable; rtsp://192.168.0.42: Server returned 5XX Server Error reply
[23:28:06 CET] <realies> playing through vlc works fine
[23:28:08 CET] <realies> not sure what's wrong
[23:30:04 CET] <realies> odd as gstreamer gives me Error (503): Service Unavailable as well
[23:30:18 CET] <manuelg> hi all, is anyone able to help me with a mosaic problem?
[23:30:37 CET] <ddubya> huh, I exported to mkv container and still the +256 offset. First packet got a negative timestamp too
[23:31:09 CET] <JEEB> well negative offset means there's an offset no?
[23:31:47 CET] <ddubya> Well I was hoping it would be negative in the file, but when I imported it wasn't shifted corectly
[23:31:47 CET] <realies> maybe my routes arent right?
[23:31:51 CET] <realies> but how does vlc knows them?
[23:31:58 CET] <ddubya> could be broken importer
[23:33:41 CET] <realies> https://dpaste.de/6iaa/raw
[23:37:03 CET] <realies> no one?
[23:37:07 CET] <manuelg> I'm trying to put 3 mjpeg streams from ffserver into a single stream, then send it back to the server as a different feed, but ffmpeg keeps failing with "broken pipe"
[23:56:10 CET] <manuelg> anyone around?
[23:57:41 CET] <SilenceDogood> yeah i am
[23:57:54 CET] <SilenceDogood> I can't figure out what the hell makes vlc choose the second audio stream to play by default
[23:58:21 CET] <SilenceDogood> oh wait i think i got it
[23:58:34 CET] <SilenceDogood> -disposition:a:1 doesn't set to the second AUDIO stream, but just to the second stream
[23:59:40 CET] <manuelg> able to help with my multi-mjpeg problem? :-)
[00:00:00 CET] --- Sun Jan 21 2018
1
0
[01:00:19 CET] <jamrial> BBB: https://github.com/jamrial/FFmpeg/commit/e13b3615a69d3b2f104566fdda5862958a…
[02:02:05 CET] <mypopydev> @jkqxz
[02:02:08 CET] <mypopydev> hi
[02:02:12 CET] <rcombs> jkqxz: wanna LGTM this? http://ffmpeg.org/pipermail/ffmpeg-devel/2018-January/223978.html
[02:05:19 CET] <mypopydev> @jkqxz if we put VAAPIVPPContext as the first element of the FooVAAPIContext , how to find a way to get VAAPIVPPContext bypass FooVAAPIContext from AVFilterContext *avctx ?
[02:07:45 CET] <jkqxz> mypopydev: It's avctx->priv as well.
[02:08:54 CET] <jkqxz> (A pointer to a structure is also a pointer to the first element.)
[02:09:14 CET] <mypopydev> @jkqxz Then use (VAAPIVPPContext *) to exe cast ?
[02:10:54 CET] <jkqxz> It's a void*, so you don't need to cast. Just use VAAPIVPPContext *ctx = avctx->priv; inside vaapi_vpp.c and FooVAAPIContext *ctx = avctx->priv; in the individual filters.
[02:11:41 CET] <jkqxz> rcombs: Seems fine? I assume that multiplication does the right thing...
[02:11:49 CET] <rcombs> jkqxz: also, a concept I've been thinking about: moving the generic code from vf_scale that decides on the output res (the eval and such) to lavfi/scale_generic.c
[02:12:07 CET] <rcombs> and the relevant AVOption definitions to a macro in lavfi/scale_generic.h
[02:12:14 CET] <rcombs> similar to tls.c/h
[02:12:26 CET] <rcombs> and then having vf_scale_vaapi and vf_scale both use that
[02:13:07 CET] <jkqxz> There is already scale.c which does that for '', vaapi, cuda and npp.
[02:13:55 CET] <jkqxz> Well, the options could be moved too.
[02:15:48 CET] <rcombs> oh so there is
[02:15:50 CET] <rcombs> when did that show up
[02:16:10 CET] <jkqxz> A year ago? :P
[02:16:11 CET] <rcombs> february, wew
[02:16:27 CET] <rcombs> thanks tmm1, implementing my ideas a year before I have them
[02:17:28 CET] <rcombs> so I guess I just want to refactor the aspect ratio handling into that
[02:18:03 CET] <rcombs> and yeah that multiplication is from vf_scale and seems to work fine here so
[02:18:41 CET] <jkqxz> I just tried it and replied.
[02:18:48 CET] <mypopydev> @jkqxz the other thing, now we want to support multiple reference frame for h264/h265 vaapi enc,and I have send a early version as RFC, do you have any comments or suggestion ?
[02:22:26 CET] <mypopydev> Now vaapi 264/265 encoder only support max 2 reference frames (1 forward reference frame/ 1 backup reference frame )
[02:24:21 CET] <jkqxz> Have you got any figures for how much that last-few-frames method helps? As I noted before, I'm sceptical that you will achieve anything without actually looking at the frames to try to work out which ones will be useful as references.
[02:24:36 CET] <jkqxz> Also, I don't think it's reasonable to triplicate a lot of the setup code like that.
[02:25:09 CET] <cone-095> ffmpeg 03Rodger Combs 07master:381a4820c64b: lavfi/vf_scale_vaapi: set output SAR
[02:25:51 CET] <mypopydev> Yes, so I think we need a common DPB management API for multiple reference frame
[02:29:42 CET] <mypopydev> @jkqxz for i965 driver, I think multiple reference frame can't get more income, but for media-driver (iHD), we can get better compression ratio as my test result
[02:31:21 CET] <jkqxz> Even when the frames offered to it as references are just the most recent few frames of the stream? The problem I have with it is that those frames don't look useful for anything unless your stream has done something quite strange like a very short cut away and back.
[02:37:22 CET] <mypopydev> @jkqxz at least not worse in this case :)
[02:38:10 CET] <jkqxz> It will be slower, and the requirements on the decoder will be greater.
[02:39:29 CET] <mypopydev> For HW encoder, as my test result, maybe 5% - 15 % fps reduce when enable multiple reference frame
[02:40:02 CET] <mypopydev> And I think gst-vaapi/MediaSDK both support this feature :)
[04:35:44 CET] <BBB> jamrial: yeah that looks reasonable
[04:40:31 CET] <jamrial> BBB: should i send it to the ml, or just push?
[04:40:46 CET] <BBB> Id send to ml just because thats what we normally do
[04:41:14 CET] <BBB> the order of operations is also a little weird, you seem to do things depending on colorspace, whereas the specific vp9 definition seems to do it based on profile (and then colorspace)
[04:41:23 CET] <BBB> I dont think it makes an actual difference, both work fine
[04:41:37 CET] <BBB> I just noticed its different
[04:41:49 CET] <BBB> (its an ordering/indentation difference, not a functional difference afaict)
[04:41:57 CET] <jamrial> I basically copied it from vp9.c
[04:42:38 CET] <BBB> its fine :)
[04:42:49 CET] <BBB> Im gonna sleep in a little bit, but feel free to push if you think its finished
[04:43:05 CET] <BBB> Id normally send to ml and let it sit for 24hrs but I have no strong opinions on this sort of stuff
[04:43:45 CET] <jamrial> i did however have to set avctx->profile after validating it was a vp9 frame (with VP9_SYNCCODE) since otherwise most samples would show up as profile 0
[04:44:30 CET] <BBB> yes that wouldnt be good
[04:44:31 CET] <jamrial> fate samples i mean. apparently because of the last packet
[04:44:34 CET] <BBB> I dont think we have rgb samples btw
[04:45:50 CET] <jamrial> if they are available as part of the conformance suit we could add a couple
[04:46:11 CET] <BBB> I dont think they are :(
[04:46:23 CET] <BBB> its one of these features that was never really used
[07:27:03 CET] <Madsfoto> durandal_1707 and sfan5> I can happily report that changing the `#define FF_BUFQUEUE_SIZE 129` to something larger (I chose 1000) and adding atadenoise=0a=0:0b=0:1a=0:1b=0:2a=0:2b=0:s=599 gives perfect results. Thank you very much for your assistance!
[10:03:42 CET] <cone-459> ffmpeg 03Karthick Jeyapal 07master:0afa171f25bc: avformat/hlsenc: Add CODECS attribute to master playlist
[11:39:44 CET] <Madsfoto> durandal_1707 and sfan5> And it is considerably faster than Imagemagick: In IM it took 6 seconds per averaged image, in ffmpeg it takes 2.3 seconds.
[13:28:08 CET] <Chloe> why are static mutexes all macro'd to pthread_* but then we have ff_thread_ stuff?
[13:30:06 CET] <wm4> Chloe: what do you mean?
[13:32:00 CET] <Chloe> wm4: you said I should use ff_thread_once instead of pthread_once, but the os/2 compat layer is for pthread_mutex instead of ff_mutex
[13:32:24 CET] <Chloe> I guess my question is: what's the point of the ff_thread/ff_mutex stuff, can't we just use pthread_
[13:32:47 CET] <Chloe> and if it's single threaded, without threads, then just define pthread_ stuff to whatever we're doing for ff_ stuff
[13:33:11 CET] <Chloe> also does http://sprunge.us/HfEU look adequate for a static mutex lock (though I guess I'll have to use ff_mutex)
[13:34:12 CET] <wm4> Chloe: the only reason is because we allow building with threads, in which case we don't define pthread_* for some reason, but the ff_thread ones
[13:34:34 CET] <BtbN> you mean without threads?
[13:34:36 CET] <wm4> also yes I guess
[13:34:41 CET] <wm4> BtbN: yeah
[13:36:26 CET] <Chloe> wm4: yeah but cant we just define pthread_* instead
[13:37:17 CET] <wm4> *shrug*
[13:37:43 CET] <wm4> I think there were some concerns about overriding standard names
[13:38:03 CET] <wm4> which isn't a problem on win32/os2 because pthread is not a standard thing there
[13:38:15 CET] <wm4> but then some ASSERT_LEVEL crap redefines pthread functions anyway
[16:15:37 CET] <thardin> is it just me or does dashdec seem particularly awful?
[16:15:55 CET] <atomnuker> blame dash
[16:16:41 CET] <thardin> I'm sure the format is awful too, just all these string manipulations one doesn't really have much business doing in C
[16:17:09 CET] <thardin> or at least not doing oneself
[20:07:18 CET] <durandal_1707> atomnuker: you managed to finish soon something?
[20:43:01 CET] <atomnuker> no, started writing the vulkan thing and decided to do something no one else had done before again by using the ycbcr formats
[20:43:56 CET] <atomnuker> it works now, but I still need to write the filter's command buffer code and I want to abstract it properly so other filters may use it and it'll be able to deal with multiple sources
[20:44:12 CET] <atomnuker> (oh and the buffer description code)
[20:44:48 CET] <atomnuker> I'll probably work on atrac9 this weekend though, I'd like to decode at least the simplest form of coefficients
[20:45:54 CET] <atomnuker> and on vulkan throughout the week, I'm taking some time off to go to barcelona and nice
[21:27:33 CET] <atomnuker> jkqxz: is there a limit to how many vaapi instances the hardware can handle? I tried 40 at once and it still worked with barely 30% gpu usage
[21:33:41 CET] <jkqxz> No. It's like any other GPU-using process, so you can have arbitrarily many just as you can with OpenGL. (There isn't any special state.)
[21:47:27 CET] <atomnuker> wow, impressive
[21:47:57 CET] <nevcairiel> once you run out of resources like memory, it slows down to a crawl tho
[21:50:03 CET] <atomnuker> its better than just having completely dedicated fixed decoders which can only handle a few streams at a time, despite each block having enough throughput for more
[21:50:50 CET] <nevcairiel> those are basically that, except that its not a fixed stream limit, just macroblock throughput
[21:52:31 CET] <atomnuker> I thought they handled things like quantization/transforms/prediction separately but that works too
[23:09:53 CET] <BtbN> philipl, no, I haven't. And most likely won't this weekend as well, as my flatmate is preparing and holding his birthday party.
[23:10:04 CET] <BtbN> So if you want to jump on it in the meantime, feel free
[23:28:41 CET] <cone-840> ffmpeg 03Nikolas Bowe 07master:e07649e618ca: avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks()
[23:32:46 CET] <cone-840> ffmpeg 03Yogender Gupta 07master:07a96b6251f0: avcodec/cuviddec: set key frame for decoded frames
[00:00:00 CET] --- Sat Jan 20 2018
1
0
[00:11:16 CET] <b0bby__> kepstin: You still there?
[00:50:54 CET] <b0bby__> How does this filter work [0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]
[00:51:05 CET] <b0bby__> ?
[01:12:33 CET] <b0bby__> hello
[01:12:40 CET] <b0bby__> is anyone online?
[01:13:57 CET] <dakar> i am
[01:15:54 CET] <b0bby__> dakar: cool
[01:16:37 CET] <b0bby__> dakar: do you know how to use the concat filter on three videos(one with no audio stream)?
[01:16:50 CET] <dakar> i dont know jack tbh, i'm here to ask some very basic question
[01:19:08 CET] <DHE> b0bby__: you'll either need to make a video with no audio or built a fake audio stream for the ones without audio
[01:19:47 CET] <b0bby__> DHE: cool to know that there is a way. How would I go about this
[01:20:13 CET] <b0bby__> here is what I have so far:
[01:20:15 CET] <b0bby__> ffmpeg -i 1.webm -i 2.webm -i 3.webm -c:v libx264 -c:a aac -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' out.mp4
[01:21:21 CET] <b0bby__> this script is meant for automation so ffmpeg will need to detect which videos don't have audio
[01:22:32 CET] <b0bby__> you still there DHE
[01:22:35 CET] <b0bby__> ?
[01:23:05 CET] <DHE> sorry, I don't think that can be done in pure ffmpeg. you'd need some app to build a commandline. ffmpeg and/or ffprobe can help
[01:25:27 CET] <b0bby__> DHE: ok
[01:25:44 CET] <b0bby__> DHE: lets say I know which video does not have audio
[01:26:02 CET] <b0bby__> DHE: in my above command how would I add the audio
[01:28:19 CET] <DHE> you'll need a file containing a short burst of silence (like a 0.01 second WAV file) to insert as the audio where it's missing
[01:29:06 CET] <b0bby__> DHE: go on
[01:31:45 CET] <DHE> that's it for explanation. put that into the filter where you need it
[01:32:38 CET] <b0bby__> Got it
[01:33:08 CET] <b0bby__> DHE: trying ffmpeg -i 1.webm -i 2.webm -i 3.webm -c:v libx264 -c:a aac -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' out.mp4
[01:33:19 CET] <b0bby__> with 3 videos with audio streams
[01:33:49 CET] <b0bby__> nvm
[01:34:03 CET] <b0bby__> forgot to apply my resize filters
[01:35:57 CET] <b0bby__> DHE: sorry to keep bothering you but I'm having some more trouble
[01:36:37 CET] <b0bby__> I need to combine a filter the resizes the videos like : scale=w=1280:h=720:force_original_aspect_ratio=1,pad=1280:720:(ow-iw)/2:(oh-ih)/2
[01:36:43 CET] <b0bby__> to my original command
[01:36:49 CET] <b0bby__> how would I do that
[01:39:23 CET] <mix123> Hi, after building, can i delete the ffmpeg_sources folder, or is that needed?
[01:41:23 CET] <DHE> mix123: if you have your binaries installed and they work, you can delete the sources. the risk is if you want to add a feature later it'll be a bit more of a hassle
[01:42:48 CET] <mix123> DHE: ok, thanks
[01:49:25 CET] <b0bby__> DHE: what do semicolons mean vs commas
[01:51:24 CET] <DHE> b0bby__: semicolons can be used for arbitrary connections with labels. commas are good for making a simple chain where labels are not necessary
[01:51:44 CET] <b0bby__> DHE: got it
[01:54:17 CET] <b0bby__> DHE: can you check my command https://pastebin.com/rmXrqbkb
[01:54:28 CET] <b0bby__> I don't know whats wrong with it
[01:54:40 CET] <b0bby__> it gives No such filter: ' concat=n=3:v=1:a=1 [v] [a]'
[01:55:56 CET] <b0bby__> found the dangling quote but now I get Stream specifier ':1' in filtergraph description [0:1]scale=w=1280:h=720:force_original_aspect_ratio=1,pad=1280:720:(ow-iw)/2:(oh-ih)/2;[1:1]scale=w=1280:h=720:force_original_aspect_ratio=1,pad=1280:720:(ow-iw)/2:(oh-ih)/2;[2:1]scale=w=1280:h=720:force_original_aspect_ratio=1,pad=1280:720:(ow-iw)/2:(oh-ih)/2;[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a] matches no streams.
[01:58:28 CET] <b0bby__> nvm
[01:59:58 CET] <b0bby__> DHE: what does SAR mean?
[02:14:04 CET] <DHE> b0bby__: sample aspect ratio. the radio of a pixel. 1:1 means square pixels
[02:14:41 CET] <b0bby__> DHE: thanks, fixed it by setting the dar
[02:14:55 CET] <b0bby__> DHE: got the script working
[02:15:06 CET] <b0bby__> DHE: thanks for all the help :)
[03:52:46 CET] <siix> hey folks - using ffmpeg 3.4 on arch - trying to get rid of black bars around a video i used cropdetect. ffmpeg -s 90 -i filename.mp4 -vframes 10 -vf cropdetect -f null - it gave the error "Option video_size not found". help please :)
[03:54:56 CET] <furq> you probably meant -ss 90
[03:56:05 CET] <siix> yeah sorry -ss
[07:02:42 CET] <M6HZ> Hello, I encounter an issue since several days when playing http audio streams with ffmpeg based programs. After many hours of playing (more than 24 hours), the audio begins to jolt for few hours before letting place to silence ("rdft" flat with ffplay).
[07:03:41 CET] <M6HZ> This happens at least with mpv, ffplay, mplayer
[07:06:44 CET] <M6HZ> I don't know if it's a problem related to ISP, which would be weird because the stream are carried over TCP, or if it's a policy from the streamers, but this problem happens for at least three different Media servers owned by different organizations.
[07:07:25 CET] <M6HZ> Or maybe is there something to dig into about ffmpeg ?
[11:11:25 CET] <diverdude> Hi, is it possible to share a frame from a video read by ffmpeg with a linear algebra library like eigen or any other data container?
[11:48:32 CET] <JEEB> diverdude: if you are using the API you would get the decoded data from the AVFrames returned by the decoding API and you could do whatever you wanted with it
[13:20:14 CET] <mifritscher1> hi
[13:20:59 CET] <mifritscher1> intel quick sync is not working for me on Windows 64 bit on Skylake: "40 [h264_qsv @ 00000000219bbde0] Initialized an internal MFX session using hardware accelerated implementation", and then "Could not open codec: Internal bug, should not have happened"
[13:21:51 CET] <mifritscher1> both for mpeg2_qsv and h264_qsv
[13:25:28 CET] <JEEB> the QSV stuff is notoriously unstable it seems
[13:25:48 CET] <JEEB> which generally has been the intel stuff as oppsed to the FFmpeg stuff, although you should always test with the latest
[13:32:05 CET] <mifritscher1> it is the ffmpeg 3.4.1 + most current driver I get for my dell laptop (middle of 2017)
[13:33:28 CET] <JEEB> try a build based on the current git master's HEAD, but I do not recall if there were changes in that part of things since 3.4.1
[13:34:00 CET] <JEEB> but in unfortunately many cases issues with QSV end up with "well, tough luck. the driver's doing something derpy"
[13:35:47 CET] <mifritscher1> ok, I'll try it
[14:55:10 CET] <Fyr> guys, when muxing an audio track from an MKV to an MP4, FFMPEG adds:
[14:55:11 CET] <Fyr> Stream #0:1(eng): Data: bin_data (text / 0x74786574) Metadata: handler_name : SubtitleHandler
[14:55:36 CET] <Fyr> MediaInfo cannot retrieve any information from the MP4 file.
[14:55:43 CET] <therage3> what command did you use to mux the mkv to mp4?
[14:56:08 CET] <Fyr> ffmpeg -i "in.mkv" -map 0:2 -c copy -vn -sn out.mp4
[14:57:35 CET] <Fyr> when muxing, FFMPEG shows one stream, the output MP4 file contains two streams, 0:0 - the audio and 0:1 - the unknown shit.
[14:57:48 CET] <therage3> what c_14 said
[14:59:40 CET] <Fyr> chcp 65001
[14:59:56 CET] <Fyr> sorry, wrong window.
[15:04:35 CET] <Fyr> c_14,
[15:04:35 CET] <Fyr> https://pastebin.com/4kLXeXk8
[15:04:35 CET] <Fyr> https://pastebin.com/Qa1DhwVd
[15:07:11 CET] <ritsuka> Fyr: it's the chapters track
[15:07:29 CET] <c_14> I'd assume so too
[15:07:37 CET] <Fyr> 0:1 (eng) bin_data?
[15:07:38 CET] <c_14> you can see if -map_chapters -1 gets rid of it
[15:08:40 CET] <Fyr> ffprobe says: "Unsupported codec id."
[15:09:16 CET] <Fyr> yes, -map_chapters got rid of it.
[15:09:18 CET] <Fyr> thanks
[15:09:42 CET] <Fyr> though, it's strange that FFPROBE can't handle it.
[15:18:23 CET] <CaimAstraea> Hello :) If anyone can chime in not sure if this is possible :D I'm using ffmpeg on linux to capture screen from a chrome window. Like so ffmpeg -f x11grab -s 1024x768 -r 30 -i $DISPLAY -f alsa -ac 2 -i pulse -acodec libmp3lame -ab 128k -vcodec libx264 myvideo.mpg
[15:19:12 CET] <CaimAstraea> Was wondering if it's possible to launch multiple chrome windows on different Xvfb screens ? and record from each one but than wouldn't the output have the same sound source ?
[15:19:57 CET] <CaimAstraea> So I would hear the sound from both chrome windows.. is it possible to specify the sound "source" for each window ? My instinct says no
[15:21:19 CET] <CaimAstraea> In the guide here https://trac.ffmpeg.org/wiki/Capture/Desktop though i saw somethng like i hw:0 so maybe that's a start no idea what that means since there is only 1 hw source for the sound even if it's virtual
[15:30:57 CET] <CaimAstraea> i ran pactl list sources and it says i only have source #0
[15:31:03 CET] <CaimAstraea> auto_null monitor
[15:41:33 CET] <c_14> you should be able to use pulse to record the monitor output for every individual sound source
[15:41:40 CET] <c_14> that only works if chrome opens a sound source per window though
[15:46:52 CET] <c_14> or sound output rather
[15:47:12 CET] <c_14> whatever the terminology is for this shi^wwonderful stuff
[15:49:13 CET] <klaxa> systemd-ffmpegd when?
[15:50:06 CET] Action: DHE <img src="killicon-backstab.png"> systemd
[15:56:13 CET] <CaimAstraea> Ah yes i found pacmd I need to create some new audio sink and something called pavucontrol will try it out when I get home can't wait https://askubuntu.com/questions/60837/record-a-programs-output-with-pulseau… :) worst case scenario i wreck the VM but can easily spin another one
[16:26:38 CET] <lyncher> hi all. does anyone knows if livav* has a generic list/queue?
[16:29:57 CET] <DHE> there is a fifo type. see libavutil/fifo.h
[16:30:16 CET] <DHE> there's also a thread-safe queue system built on it
[16:30:35 CET] <lyncher> thanks!
[16:56:26 CET] <mifritscher> hi
[17:19:06 CET] <norayr> how does ffmpeg support gifs? i use gentoo, there's no gif USE flag, but ffmpeg -format gives me 'gif'.
[17:19:17 CET] <norayr> i guess gif is supported in one of the dependencies. which?
[17:19:32 CET] <c_14> there's an internal demuxer/decoder
[17:19:49 CET] <c_14> as with most codecs/formats that ffmpeg supports
[17:20:00 CET] <norayr> oh.
[17:20:09 CET] <norayr> and is it a configure option?
[17:20:18 CET] <c_14> I mean, you _can_ disable it
[17:20:19 CET] <norayr> i mean, may it be gentoo folks disabled it?
[17:20:24 CET] <c_14> nah
[17:20:31 CET] <c_14> don't think they enable/disable individual codecs
[17:20:44 CET] <c_14> why?
[17:22:23 CET] <norayr> i have 'Unrecognized option 'crf'. Error splitting the argument list: Option not found' error, when ffmpeg gets called from ruby software.
[17:23:04 CET] <norayr> yes that's a different issue, not related to the gif support.
[17:25:09 CET] <c_14> build with x264 support
[17:25:23 CET] <c_14> that or libvpx probably
[17:25:38 CET] <c_14> or x265
[17:25:57 CET] <c_14> in any case, it's trying to use an encoder that wasn't built into ffmpeg
[17:25:59 CET] <DHE> or make sure you put the option in the right place
[17:26:04 CET] <c_14> or that
[17:27:18 CET] <norayr> http://pasted.co/6bd1c327
[17:27:24 CET] <DHE> generally ffmpeg's commandline is ordered "ffmpeg [options for file1] [file1] [options for file2] [file2] ..." where input files are written as "-i inputfile" and outputs are just "outputfile"
[17:27:28 CET] <norayr> DHE: it's not me.
[17:27:32 CET] <norayr> it's ruby software i use.
[17:27:41 CET] <norayr> i need to communicate with developers as well.
[17:27:53 CET] <c_14> what's the command it's trying to execute?
[17:27:54 CET] <norayr> but i think may be i need to compile ffmpeg with other use flags.
[17:27:56 CET] <DHE> you never set a video codec
[17:28:06 CET] <c_14> oh, didn't see the paste
[17:28:18 CET] <norayr> i don't even understand, sometimes they call ffmpeg on gif files, sometimes they don't. it depends on gif file.
[17:28:51 CET] <c_14> rebuild with x264 support
[17:28:56 CET] <DHE> other issues include requesting an audio codec when the input has no audio
[17:29:20 CET] <DHE> yeah the configure build of ffmpeg includes --disable-libx264
[17:29:29 CET] <c_14> If you don't set a video codec and you link against libx264 that's the default, otherwise it's the internel mpeg4 encoder. The mpeg4 encoder doesn't have a crf option
[17:29:31 CET] <c_14> that's why it fails
[17:29:33 CET] <DHE> and I doublechecked, mp4 does default to h264 output
[17:29:50 CET] <c_14> the ruby program is incorretly assuming that libx264 will always be the default and not requesting it explicitly
[17:29:56 CET] <c_14> but then using options that only work for it
[17:30:05 CET] <norayr> okay, i'll rebuild ffmpeg with x264 support.
[17:30:07 CET] <norayr> thank you!
[17:32:19 CET] <CaimAstraea> Anyone knows where the ngxing rtmp plugin thingie comes in ? I'm currently creating an HLS stream using the ffmpeg HLS muxer but in some tutorials they said to install some plugin for nginx https://github.com/arut/nginx-rtmp-module ? What's the point of that ? Is the performance better than ffmpeg ?
[17:32:38 CET] <DHE> it's a third party module you have to add to nginx at build time
[17:33:05 CET] <DHE> but if you're using ffmpeg's HLS muxer, you don't need it. just nginx (or any other HTTP server) in static content mode is fine
[17:33:35 CET] <CaimAstraea> oh i see yes that's what i'm doing. Was thinking of adding a s3 fuse bucket and write the m3u8 there
[17:33:42 CET] <CaimAstraea> and then hooking up cloudfront to it ?
[17:34:03 CET] <CaimAstraea> the stream is a bit laggy on an amazon t2 micro instance
[17:34:04 CET] <DHE> seems messy, but it could work...
[18:23:24 CET] <RingoTheDog> Does anyone know how to solve "non monotonically increasing dts to muxer in stream" errors...resulting in audio sych issues?
[18:23:48 CET] <RingoTheDog> (I just posted to the pastebin...)
[18:24:01 CET] <RingoTheDog> https://pastebin.com/iGySyxdN
[18:56:00 CET] <alexpigment> RingoTheDog: I can't recall the exact reason for this message, but i've certainly run into it before
[18:56:40 CET] <alexpigment> what I do is run the source file through Tsmuxer (free application), and it inserts sps/pps, and generally kinda fixes formatting problems
[18:56:52 CET] <alexpigment> i've just confirmed that this works on your source file too
[18:59:48 CET] <Fyr> guys, what is vc-1 codec?
[19:00:01 CET] <alexpigment> Fyr: it's an extension of windows media video 9
[19:00:09 CET] <alexpigment> it's a bit more advanced
[19:00:10 CET] <Fyr> I thought the video file is H264, however, FFPROBE shows VC-1.
[19:00:16 CET] <alexpigment> and it's one of the 3 blu-ray video standards
[19:00:24 CET] <Fyr> thanks
[19:00:35 CET] <alexpigment> if i recall, vc-1 is often used for interlaced content on blu-ray
[19:00:49 CET] <alexpigment> if that's the case, i remember hearing that a lot of players had problems with interlaced vc-1
[19:00:56 CET] <alexpigment> software players, that is
[19:03:32 CET] <Fyr> alexpigment, does MP4 sufficiently support VC-1?
[19:03:46 CET] <alexpigment> i don't think so
[19:04:07 CET] <alexpigment> vc-1 should probably either be in MKV, WMV, or TS
[19:04:16 CET] <alexpigment> i'm just speaking off the cuff here
[19:04:17 CET] <RingoTheDog> thanks...is there a CL version of TSMUXER?
[19:04:25 CET] <alexpigment> RingoTheDog: yes
[19:04:27 CET] <Fyr> I remuxed it into MP4, MediaInfo doesn't show shit about it, though, FFPROBE reports, PotPlayer plays it.
[19:04:42 CET] <alexpigment> RingoTheDog: it's included in the download (a zip file, if I recall)
[19:05:01 CET] <RingoTheDog> dope...you are correct
[19:05:30 CET] <alexpigment> Fyr: i'd try MKV or TS
[19:07:05 CET] <Fyr> FFMPEG muxes VC-1 into MP4 without a glitch.
[19:07:54 CET] <alexpigment> right, but I was under the assumption that you were asking about compatibility when you said "does MP4 sufficiently support VC-1"
[19:08:15 CET] <Fyr> ok
[19:08:31 CET] <alexpigment> because ffmpeg can mux codecs into formats when it's not very well supported by other applications
[19:08:59 CET] <Fyr> ok
[19:11:42 CET] <RingoTheDog> Alex...thank you very much! Yes that tsmuxer appears to be a work around. Just wondering is this an FFMPEG issue or is the way the source file was created?
[19:12:57 CET] <alexpigment> RingoTheDog: I really have no clue. I just random run into that from time to time. There are bugs logged on trac.ffmpeg.org that have been fixed about it, but I still see it
[19:13:24 CET] <alexpigment> my guess is that the original file has some sort of non-standard situation going on, and tsmuxer kinda just makes the file more compliant
[19:13:39 CET] <RingoTheDog> yes...I read that it was fixed 6 years ago...but seems there may still be an issue
[19:13:56 CET] <RingoTheDog> I have found a few files recently that cause this....most are from twitter videos I believe
[19:17:32 CET] <systemfreq> I'm having an issue with loading a png from file into an AVFrame and then writing the raw image data to file. The written file starts off with garbage. Looks like the AVFrame is saying the image data is starting at an earlier address than it should. Anyone have thoughts?
[19:17:37 CET] <alexpigment> RingoTheDog: it may be worth logging a new issue on trac with your sample
[19:18:36 CET] <systemfreq> Will do. in a time crunch to get this out, i'll have to switch libraries then for now.
[19:19:16 CET] <alexpigment> systemfreq: sorry, i was talking to another user ;)
[19:22:09 CET] <RingoTheDog> here is another example http://s000.tinyupload.com/?file_id=93500756624945791830
[19:22:10 CET] <M6HZ> Hello, I encounter an issue since several days when playing http audio streams with ffmpeg based programs. After many hours of playing (more than 24 hours), the audio begins to jolt for few hours before letting place to silence ("rdft" flat with ffplay). This happens at least with mpv, ffplay, mplayer
[19:22:11 CET] <M6HZ> I don't know if it's a problem related to my ISP, which would be weird because the streams are carried over TCP, or if it's a policy from the streamers, but this problem happens for at least three different Media servers owned by different organizations.
[19:22:11 CET] <M6HZ> Or maybe is there something to dig into about ffmpeg ?
[19:22:14 CET] <RingoTheDog> also from twitter video
[19:31:31 CET] <c_14> M6HZ: can you download the stream and reproduce with a file?
[19:38:52 CET] <M6HZ> c_14, I can try
[19:51:55 CET] <saml> ffmpeg -i a.mp4 -i b.mp4 how can I scale a.mp4 to the size of b.mp4? they have same aspect ratio but b.mp4 is smaller
[19:52:03 CET] <saml> this is so that i can calculate psnr
[19:52:46 CET] <saml> ffmpeg -i a.mp4 -i b.mp4 -filter_complex '[0]scale=640:480[a];[a][1]psnr'
[20:04:41 CET] <alexpigment> saml: presumably you want to make them the same height?
[20:04:59 CET] <alexpigment> if so scale=-2:480
[20:05:43 CET] <alexpigment> (-2 means that the width will be scaled to be an even number. it's probably not important here, but x264 will fail if you try to encode something with an odd numbered resolution)
[20:15:23 CET] <kepstin> saml: in this case, you'd probably just want to use the scale2ref filter. assuming you want to scale the first video to match the second, something like "-filter_complex scale2ref,psnr" would probably be enough.
[20:25:35 CET] <saml> alexpigment, wow thanks. didn't know about -2
[20:25:55 CET] <saml> wow thanks kepstin
[20:26:15 CET] <saml> we need automated assistant for ffmpeg
[20:26:24 CET] <saml> ok google, how do I do this and that with ffmpeg?
[20:30:54 CET] <AeroNotix> trying to play an mp3 file with ffplay but it doesn't exit. Even with -autoexit and -t $n. It exits when playing mp4 files.
[20:32:56 CET] <saml> what's exact command you're running? and do you have the file somewhere i can download?
[20:42:36 CET] <M6HZ> c_14, I will use: curl -L '[URL]' | tee >(ffplay -) > "$(date --rfc-3339=seconds -u | sed 's/ /_/g')"_-_radio-record.mp3
[20:42:53 CET] <AeroNotix> saml: ffplay -autoexit $mp3file
[20:43:08 CET] <M6HZ> c_14, If you have a better idea or recommandations please let me know.
[20:43:44 CET] <c_14> should be fine
[20:44:24 CET] <M6HZ> great
[20:44:28 CET] <c_14> that way there's at least a reproducer (hopefully)
[20:44:35 CET] <M6HZ> Yes
[20:45:25 CET] <prelude2004c> hey everyone.. i am trying to update my ffmpeg to latest release 3.4.1 but i am having an issue... -hwaccel cuvid -hwaccel_device 1 used to work but now does not. I did compile it again with cuvid and everything else and no errors. Only the hwaccess_device does not use 2nd GPU .. and also hwaccel cuvid does not use GPU to decode anymore. Using old version works fine. Something change ?
[20:46:04 CET] <saml> AeroNotix, i think you need both -autoexit -t 5 ?
[20:46:19 CET] <AeroNotix> saml: with -t it stops the audio but doesn't exit
[20:46:32 CET] <saml> hrm
[20:47:41 CET] <c_14> prelude2004c: from what release did you update?
[20:49:19 CET] <alexpigment> AeroNotix: it works over here for what it's worth
[20:49:28 CET] <AeroNotix> alexpigment: interesting.
[20:49:37 CET] <alexpigment> do you have another mp3 to test with?
[20:49:43 CET] <alexpigment> like one that comes from a different source?
[20:50:03 CET] <AeroNotix> alexpigment: I've actually only got a few mp3s on my system. Will find one online
[20:50:49 CET] <alexpigment> not that i think you necessarily have a bad mp3, but given that your command seems to be correct, and it works with other files (your mp4 files), it's good to rule out the possibility that it's content-specific
[20:50:51 CET] <AeroNotix> http://www.sample-videos.com/download-sample-audio.php using the mp3s from here
[20:50:58 CET] <AeroNotix> it still doesn't exit
[20:51:09 CET] <AeroNotix> using `ffplay -autoexit -t 5 $file`
[20:52:44 CET] <AeroNotix> alexpigment: does that file work for you?
[20:52:52 CET] <AeroNotix> ffplay version 3.4.1 here
[20:53:13 CET] <alexpigment> checking now...
[20:53:39 CET] <AeroNotix> with -t 5 the audio stops but ffplay doesn't exit
[20:54:13 CET] <alexpigment> yep, ffplay stops over here
[20:54:19 CET] <AeroNotix> which version of ffplay?
[20:54:37 CET] <alexpigment> well, i just built it yesterday, so it's a nightly
[20:54:41 CET] <AeroNotix> ok
[20:54:52 CET] <AeroNotix> 3.4.1 doesn't work here at least
[20:55:03 CET] <c_14> I have a relatively old git snapshot and it works here
[20:55:08 CET] <alexpigment> out of curiosity, have you tried taking your variable out of the equation?
[20:55:16 CET] <alexpigment> you're doing $file
[20:55:26 CET] <alexpigment> but just try the actual filename itself via command line
[20:55:26 CET] <AeroNotix> I'm not using a variable, I just did that to make it clear what I'm running for you
[20:55:32 CET] <alexpigment> ok, just checking
[20:56:19 CET] <c_14> AeroNotix: where did you get your ffmpeg build from?
[20:56:24 CET] <AeroNotix> c_14: arch repos
[20:56:42 CET] <AeroNotix> another user in #archlinux is complaining of the same behaviour. I thought I'd ask here
[20:56:52 CET] <AeroNotix> it might be related to the build we're using, but seems a strange feature to break
[20:56:59 CET] <c_14> yeah
[20:57:00 CET] <AeroNotix> since it looks like -autoexit was added in 2010
[20:57:03 CET] <c_14> going to try with a 3.4.1 here
[20:57:06 CET] <AeroNotix> thanks!
[20:57:23 CET] <alexpigment> 32-bit or 64-bit?
[20:57:25 CET] <AeroNotix> 64
[20:57:28 CET] <alexpigment> i'm downloading a version for windows right now
[20:57:47 CET] <AeroNotix> ~ uname -a
[20:57:49 CET] <AeroNotix> Linux xenocorp 4.14.13-1-ARCH #1 SMP PREEMPT Wed Jan 10 11:14:50 UTC 2018 x86_64 GNU/Linux
[20:58:31 CET] <saml> mplayer -endpos 1 SampleAudio_0.4mb.mp3 ends. ffplay -autoexit -t 1 SampleAudio_0.4mb.mp3 ends as well
[20:58:32 CET] <alexpigment> oh weird. i get some WASAPI initialization error when i try the 3.4.1 static build from Zeranoe
[20:58:44 CET] <saml> ffplay -t 1 SampleAudio_0.4mb.mp3 stops audio but never exits
[20:58:57 CET] <c_14> yeah, you need the autoexit flag
[20:58:59 CET] <AeroNotix> saml: 3.4.1?
[20:59:14 CET] <saml> 3.3.6
[20:59:24 CET] <AeroNotix> I guess I can try that
[20:59:36 CET] <AeroNotix> but need to go afk. Thanks for helping so far people :)
[20:59:41 CET] <c_14> 3.4.1 autoexits here
[20:59:46 CET] <c_14> just built it
[21:00:57 CET] <alexpigment> well, i don't know what they borked in 3.4.1 for windows, but ther's an audio driver initialization error. works fine in the build i made yesterday...
[21:01:09 CET] <alexpigment> anyway, unrelated to the issue at hand
[21:09:54 CET] <AeroNotix> I'll be back in a couple of hours, I will try building 3.4.1 locally and see
[21:11:45 CET] <prelude2004c> c_14 , i went to the lates version
[21:12:04 CET] <prelude2004c> the old version was ffmpeg version N-83514-g27a49a2
[21:12:06 CET] <prelude2004c> that was working fine
[21:13:06 CET] <c_14> that doesn't seem like a valid commit hash?
[21:13:44 CET] <c_14> But there were a few relatively recent changes to cuvid stuff
[21:13:47 CET] <c_14> not sure if there's any docs
[21:14:29 CET] <c_14> there's the new nvdec hwacell for one
[21:21:48 CET] <prelude2004c> ok cool... nvdec
[21:21:54 CET] <prelude2004c> so maybe i have to use nvdec to decode
[21:22:07 CET] <prelude2004c> do i have to compile with it you think?
[21:22:24 CET] <c_14> yeah, I think it's a separate configure option
[21:23:25 CET] <saml> similar to scale2ref, is there a filter to match framerate of two files?
[21:24:02 CET] <saml> and also match pixel format
[21:25:06 CET] <prelude2004c> Unknown option "--enable-nvdec".
[21:29:05 CET] <prelude2004c> so that's one thing.. another thing is... i can't choose the second GPU
[21:29:05 CET] <c_14> it's listed here
[21:29:12 CET] <c_14> maybe it's not in 3.4.1
[21:29:53 CET] <prelude2004c> its not in 3.3.6 iether
[21:29:56 CET] <prelude2004c> i checked there too
[21:30:18 CET] <alexpigment> prelude2004c: not that i have any idea what's going, but just to make sure, do you have a monitor plugged into the second gpu (if it's a desktop)?
[21:30:24 CET] <prelude2004c> so the two items are ... i can't chose 2nd GPU and it wont use nv decoder
[21:30:44 CET] <alexpigment> i know hardware *encoding* will fail if there's not a monitor plugged into it
[21:30:47 CET] <prelude2004c> alex, no these system are basic shells just for transcoding
[21:31:03 CET] <prelude2004c> hardware encoding is fine
[21:31:18 CET] <prelude2004c> its the decoding and only on latest release .. the old version i been playing with seems to be fine
[21:31:19 CET] <alexpigment> ok, just wanted to mention it in case it was relevant
[21:31:47 CET] <alexpigment> prelude2004c: understandable. i wasn't implying that it wasn't new behavior :)
[21:32:03 CET] <prelude2004c> the problem i have with the old version is im getting random " ffmpeg non-monotonous dts in output stream "
[21:32:11 CET] <prelude2004c> i'm hoping new versions have been able to addres this
[21:34:26 CET] <SortaCore> if you guys want to test with NVIDIA, I have an Intel QSV motherboard + NVIDIA external, and a screen plugged into both
[21:34:47 CET] <SortaCore> windows 10 x64, NVIDIA GTX 970
[21:36:15 CET] <alexpigment> Sorta: yep, that's the same setup i've got over here ;)
[21:36:37 CET] <alexpigment> once the AMF encoding gets further along (if/when), i'll have an AMD card in here too
[21:36:59 CET] <alexpigment> and i will enjoy those lovely BSODs that come with it
[21:41:38 CET] <SortaCore> but less Spectre problems right
[21:42:42 CET] <alexpigment> well, the cpu will still be intel, so no :)
[21:42:59 CET] <alexpigment> actually, i run win 7
[21:43:13 CET] <alexpigment> and all of my systems are haswell or earlier
[21:43:43 CET] <alexpigment> and apparently the slowdowns from the patches affect pre-win10 and pre-skylake the most :(
[22:00:40 CET] <SortaCore> today fixing DTS/PTS, tomorrow the world
[22:09:55 CET] <prelude2004c> c_14 , so any other idea ?
[22:09:59 CET] <ddubya> I'm trying to fix a bug in a transcoder. They are encoding audio, and ignoring any PTS values set in the packet (by the encoder). The result is that an empt space is created at the start of the exported file, because the first PTS is 0 when it should be negative
[22:10:04 CET] <c_14> prelude2004c: not really, sorry
[22:10:27 CET] <ddubya> my question is then, if the encoder provides no pts what should I be setting it to (for audio encoding)
[22:12:33 CET] <ddubya> more specifically, avcodec_encode_audio2() provides no pts, what pts do I set before av_interleaved_write_frame()
[22:15:28 CET] <DHE> ddubya: are you decoding a file, or generating the bitstream directly?
[22:15:41 CET] <DHE> even reading a .wav file should produce AVFrames with some pts value you could leverage
[22:15:47 CET] <ddubya> source audio is generated
[22:16:23 CET] <ddubya> the source audio starts at 0 PTS always. But the output PTS sometimes has to be negative at the start, eample m4a format
[22:17:09 CET] <ddubya> but wav format it doesn't have to be
[22:23:28 CET] <saml> filtergraph, how do I do this? its syntax is crazy
[22:24:58 CET] <DHE> -filter_complex "[inputtag] filtername=option1=value1:option2=value2 [outputtag] ; [anotherinput] filtername=... [anotheroutput]"
[22:25:44 CET] <DHE> where an input could be [0:v] for the video of the first input, or a label that is an output for another filter. outputs could go into other filter inputs, or delivered to an output file with "-map [outputtag]"
[22:33:16 CET] <saml> if i'm dealing with two inputs, how do I apply framerate to both and continue on with the chain?
[22:34:13 CET] <alexpigment> do they have different frame rates?
[22:34:17 CET] <saml> scale2ref,[0]framerate[0];[1]framerate[1],format=pix_fmts=yuv420p,psnr=stats_file=-
[22:34:36 CET] <alexpigment> oh right, the psnr thing :)
[22:35:42 CET] <kepstin> saml: if the two inputs have different framerates, I don't think you can usefully do anything with psnr
[22:35:50 CET] <kepstin> you really need the videos to match frame-for-frame
[22:36:03 CET] <saml> that's why i'm trying to force framerate and pix_fmts to some constant
[22:37:03 CET] <alexpigment> can we reasonably assume that the framerates are evenly divisible by one another?
[22:37:13 CET] <alexpigment> like, for instance, 29.97 and 59.94
[22:38:02 CET] <saml> current example videos are: 59.94 vs 60
[22:38:39 CET] <saml> there should be a cli called psnr that takes any two videos with different resolution, framerate, ... etc and works
[22:42:50 CET] <alexpigment> saml: how would that work, exactly?
[22:43:20 CET] <alexpigment> it's going to compare pixels that don't exist, frames that don't exist, etc
[22:44:07 CET] <saml> 1. scale the larger video (Reference video) down to match main video. 2. adjust framerate of both videos to gcd ? 3. psnr
[22:44:12 CET] <alexpigment> psnr is a very strict, cold, and robotic way of measuring quality. it's not a good approximation for a human's visual perception of quality
[22:44:28 CET] <saml> what other options do i have?
[22:44:37 CET] <alexpigment> saml: start with explaining your overall goal
[22:44:42 CET] <alexpigment> maybe you're going about this wrong
[22:44:51 CET] <saml> yeah i'm just given a ticket :P
[22:45:06 CET] <alexpigment> does the ticket explain the goal?
[22:45:30 CET] <saml> i want to start recording some kind of quality metrics. so that as I introduce different ffmpeg parameters, I can observe how it affects this "quality metrics"
[22:45:46 CET] <alexpigment> for example, is it like "figure out the visual quality lost by downscaling to 480p and dropping frames"?
[22:46:10 CET] <furq> !filter libvmaf @saml
[22:46:10 CET] <nfobot> saml: http://ffmpeg.org/ffmpeg-filters.html#libvmaf
[22:46:15 CET] <saml> i think it's mostly about video codec. if i switch to vp9, will customer complain due to visual artifacts.. etc
[22:46:20 CET] <kepstin> hmm, as far as I know, there's no automatic metrics that cover motion perception due to framerate changes
[22:46:27 CET] <alexpigment> saml: that's fine
[22:46:28 CET] <furq> you probably want to look at that if you want quality metrics that aren't useless
[22:46:34 CET] <furq> i have no idea if it works with different framerates etc though
[22:46:36 CET] <furq> probably not
[22:46:42 CET] <kepstin> but if you avoid that, and have frame-per-frame video matches, then vmaf is a good start, yeah
[22:46:46 CET] <alexpigment> different codecs, different bitrates, etc are fine for comparing psnr
[22:48:14 CET] <saml> man we don't build ffmpeg with vmf
[22:48:22 CET] <alexpigment> saml: but if you want to know how much quality is lost by, say, downscaling from 1080p to 480p, then the answer is 4.5x
[22:49:02 CET] <alexpigment> or by dropping frames, from 59.94 to 29.97, the answer is 2x
[22:49:03 CET] <saml> x264 vs vp9 this kind of stuff doesn't change the "metric"?
[22:49:15 CET] <alexpigment> although obviously halving the framerate is much more distracting than dropping the resolution (within reason)
[22:49:19 CET] <furq> it'll mess with psnr/ssim because both of those use psy optimisations
[22:49:32 CET] <furq> you'll still get the "correct" result but it won't of much value
[22:49:35 CET] <furq> be
[22:49:36 CET] <saml> yeah, i think that's why we want to start with psnr
[22:49:38 CET] <alexpigment> but at least the principle will work
[22:49:49 CET] <saml> i thought psnr would be the simplest.. but looks real difficult
[22:50:03 CET] <kepstin> psnr is the simplest, which is why it's not really all that useful
[22:50:20 CET] <saml> so for all comparisons, i need to match framerate and resolution
[22:50:26 CET] <kepstin> turns out that "simple" is not accurately representative of how people see :)
[22:50:34 CET] <saml> yeah
[22:50:46 CET] <saml> i just want something simple to start. and can iterate
[22:50:50 CET] <furq> yeah it's not really suitable for modern codecs
[22:51:07 CET] <saml> but what i'm gathering is that getting two videos match resolution and framerate is a hard problem?
[22:51:36 CET] <furq> resolution is easy-ish although the scaling may introduce artifacts which aren't present in the other video
[22:51:47 CET] <saml> that's true
[22:51:49 CET] <alexpigment> saml: it's easy. but comparing quality between two videos when the basic elements of those videos aren't the same is a bit more difficult
[22:51:58 CET] <furq> or may hide artifacts if you scale and then pass straight to psnr without reencoding it first
[22:52:06 CET] <saml> i see
[22:52:19 CET] <furq> and yeah fps is more difficult because the frames kept in the comparison clip might be different
[22:52:27 CET] <kepstin> saml: these metrics are intended to compare two different encodings of the same original signal, so the underlying signal in both cases is assumed to match.
[22:52:46 CET] <saml> that's a good way to put it kepstin
[22:52:54 CET] <AndrewPRS> Hi there! is there any tool in ffmpeg that I can use to analyze the audio tracks in dvd?
[22:53:07 CET] <kepstin> AndrewPRS: analyze them to find out what?
[22:53:10 CET] <furq> ffmpeg's handling of dvd is pretty poor
[22:53:29 CET] <furq> you should usually just be able to ffprobe a vob to find the audio tracks
[22:53:42 CET] <AndrewPRS> I have a music album that I bought and it has also a DVD with extra high quality tracks
[22:53:56 CET] <AndrewPRS> I wanna get the tracks from my DVD to flac
[22:54:11 CET] <furq> oh, dvd audio
[22:54:13 CET] <AndrewPRS> I was considering using handbrake, but it is specially designed for video, not audio
[22:54:17 CET] <furq> i'm not really sure how that worls on account of i've never seen one
[22:54:29 CET] <alexpigment> AndrewPRS: are you on windows?
[22:54:33 CET] <AndrewPRS> nope
[22:54:34 CET] <AndrewPRS> debian
[22:54:39 CET] <alexpigment> hmmm
[22:54:52 CET] <alexpigment> linux + these types of projects = not the best solution usually
[22:55:01 CET] <furq> that's annoying because they removed transcode from debian for some unknown reason
[22:55:02 CET] <alexpigment> anyway, maybe dvd decrypter exists for linux
[22:55:20 CET] <furq> i forget if i use dvdbackup or dvdunauthor on *nix
[22:55:32 CET] <kepstin> I'd probably use dvdbackup to pull the individual chapters to vobs, then ffmpeg can transcode to flac
[22:55:55 CET] <alexpigment> but basically you will probably want to find something that rips vobs by title or chapter. then you can use ffmpeg to encode the audio from PCM/whatever to FLAC
[22:55:57 CET] <AndrewPRS> kepstin, I have AOB and VOB files on my dvd
[22:56:09 CET] <kepstin> dvdbackup lets you select by title/chapter, yeah
[22:56:10 CET] <AndrewPRS> but I think the info of their layout is in the NFO files
[22:56:14 CET] <AndrewPRS> which is not plain text
[22:56:32 CET] <furq> i don't know if either of those handle audio_ts though
[22:56:42 CET] <kepstin> hmm, it's probably not actually an audio dvd?
[22:56:42 CET] <alexpigment> what if you just take an AOB file and do ffmpeg -i [file] -c:a flac output.flac
[22:56:59 CET] <furq> if it's anything like video dvd then the track splits will be in the IFO
[22:57:05 CET] <AndrewPRS> alexpigment, then it contains several tracks all mixed in a single flac file
[22:57:07 CET] <furq> right
[22:57:10 CET] <kepstin> AndrewPRS: when you look at the dvd files, do you have an 'audio_ts' and/or 'video_ts' directory? does one of them have files?
[22:57:14 CET] <AndrewPRS> and I don't know how the tracks map
[22:57:19 CET] <furq> there are windows tools that do this but idk anything on *nix
[22:57:31 CET] <AndrewPRS> kepstin, I have audio_ts and video ts
[22:57:35 CET] <furq> AndrewPRS: http://avisynth.nl/index.php/DVDAGuide
[22:57:35 CET] <AndrewPRS> and both have VOB files
[22:57:41 CET] <AndrewPRS> also audio_ts has AOB file
[22:57:46 CET] <kepstin> both have files, eh? so it probably is dvd-audio then :/
[22:57:47 CET] <AndrewPRS> and both have NFO
[22:58:01 CET] <furq> yeah if you have AOBs then it's DVDA
[22:58:06 CET] <AndrewPRS> kepstin, it is a dvd that includes audio and also a live performance from a concert
[22:58:29 CET] <AndrewPRS> I am stunned that no one has made a simple gui tool for this :/
[22:58:34 CET] <kepstin> yeah, I don't know of any linux software that correctly handles stuff like chapters for dvd-audio
[22:58:35 CET] <furq> http://dvd-audio.sourceforge.net/
[22:58:36 CET] <furq> maybe this?
[22:58:37 CET] <AndrewPRS> I mean, I'm a c++ dev so I could :P
[22:58:37 CET] <alexpigment> AndrewPRS: does dvdbackup allow you to choose streams?
[22:58:43 CET] <furq> this is the only foss tool i can find that does it
[22:58:53 CET] <kepstin> alexpigment: dvdbackup is video only i think :/
[22:58:56 CET] <AndrewPRS> furq, looks like that's for authoring
[22:58:57 CET] <alexpigment> ahh
[22:59:34 CET] <furq> oh
[22:59:36 CET] <furq> yeah maybe
[22:59:40 CET] <alexpigment> AndrewPRS: this is a complete non-answer and isn't even particularly helpful, but you really want to have a Windows box around for this stuff
[22:59:44 CET] <ddubya> any ideas why my transcoder produces a file with first pts/dts = 0 and ffmpeg cmdline is -1024/-1024 (which is the size of one audio frame in samples)
[23:00:03 CET] <furq> apparently dvd audio explorer works in wine
[23:00:18 CET] <kepstin> ddubya: what codec/container?
[23:00:25 CET] <furq> i'd probably just do that, honestly
[23:00:30 CET] <furq> much as i dislike having to use wine
[23:00:38 CET] <AndrewPRS> I could also develop a tool to extract audio :P !
[23:00:39 CET] <ddubya> kepstin, container is aac/mp4
[23:00:52 CET] <AndrewPRS> there must be some library ...
[23:01:12 CET] <furq> there's libdvdread and libdvdnav but i have no idea if they deal with dvda
[23:01:30 CET] <kepstin> ddubya: hmm. aac has approximately 1 frame of preroll, so the actual audio start is in the second frame. so that kinda makes sense.
[23:01:39 CET] <furq> oh
[23:01:43 CET] <furq> AndrewPRS: https://github.com/jdeblese/dvda-decode
[23:01:45 CET] <furq> this looks promising
[23:02:02 CET] <ddubya> kepstin, is there a way to get the codec preroll or know it based on some flag
[23:02:57 CET] <kepstin> ddubya: you're writing your own transcoding software using the libavcodec apis?
[23:03:07 CET] <ddubya> kepstin, yes
[23:03:50 CET] <furq> AndrewPRS: you will probably need to have libdvdcss installed, which you normally need to build yourself
[23:04:03 CET] <furq> but dvdread/dvdnav will dlopen it if it's present so you don't need to build those
[23:04:17 CET] <furq> obviously if the disc's not encrypted then you don't need to bother
[23:04:42 CET] <AndrewPRS> well I hope that they aren0t
[23:04:49 CET] <AndrewPRS> I'm not sure though :/
[23:05:15 CET] <kepstin> encrypted dvd stuff isn't really a problem, libdvdcss will crack it in a few seconds on a modern box.
[23:05:19 CET] <furq> yeah
[23:05:41 CET] <furq> i should "acquire" an audio dvd and see if the regular dvd tools will do anything useful with it
[23:05:56 CET] <AndrewPRS> I have three on my desktop T_T
[23:06:56 CET] <alexpigment> i think i technically have one somewhere, but i think i bought it on accident thinking it was a dvd with music videos on it ;)
[23:07:13 CET] <alexpigment> no clue where it is or even what it is
[23:07:28 CET] <AndrewPRS> I wonder why no library supports DVDA
[23:07:30 CET] <AndrewPRS> :/ !
[23:07:35 CET] <furq> it's relatively uncommon
[23:07:40 CET] <alexpigment> yeah, it was a niche format
[23:07:45 CET] <alexpigment> post sacd
[23:07:49 CET] <AndrewPRS> I guess it can't be vert different from DVDvideo
[23:07:50 CET] <AndrewPRS> *very
[23:08:10 CET] <AndrewPRS> I may have some sacd's too
[23:08:11 CET] <furq> i assume it's just IFO chapters, so yeah
[23:08:33 CET] <kepstin> now sacd is actually something different :/
[23:08:33 CET] <furq> i'm guessing regular dvd tools just haven't bothered supporting all the extra audio formats
[23:09:12 CET] <saml> what's difference between , and ; in filtergraph? both seems to be sequence
[23:09:16 CET] <furq> oh lol
[23:09:22 CET] <furq> DVD-Audio streams can be encrypted. The encryption is called Content Protection for Prerecorded Media (CPPM), which uses a media key block (MKB) to authenticate DVD-Audio players.
[23:09:22 CET] <saml> http://ffmpeg.org/ffmpeg-filters.html#Filtering-Introduction
[23:09:26 CET] <furq> is this different encryption
[23:09:41 CET] <kepstin> saml: "," sends the output of the filter before the , to the input of the filter after the ,
[23:09:41 CET] <furq> if it is then that's a lot of fun
[23:09:43 CET] <saml> not sure why it's split;crop,vflip;overlay why comman between crop and vflip
[23:10:03 CET] <kepstin> saml: ";" separates unrelated portions of the filtergraph with independent inputs and outputs
[23:10:23 CET] <furq> right
[23:10:33 CET] <furq> , needs one output on the left and one input on the right
[23:10:36 CET] <saml> so, instead of , I can just use ; and specify input and output sequentially?
[23:10:42 CET] <furq> you can if you want
[23:10:48 CET] <saml> ah thanks
[23:11:01 CET] <kepstin> saml: yes. "filtera[pad];[pad]filterb" is similar to "filtera,filterb"
[23:11:10 CET] <kepstin> except for the case where there's multiple outputs and inputs
[23:12:06 CET] <alexpigment> i'm trying to find that DVD Audio dvd i have
[23:12:17 CET] <saml> ffmpeg -i "$video" -i "$reference" -filter_complex "scale2ref [vid][ref]; [vid] framerate [vid]; [ref] framerate [ref]; [vid][ref] psnr=stats_file=-" -f null -
[23:12:38 CET] <alexpigment> and i found one that *isn't* dvda but has high res audio on it... what is the point of dvda? just not having to make any video stream?
[23:12:39 CET] <saml> now i can produce garbage psnr
[23:12:52 CET] <furq> vobs need to have a dummy video stream, yeah
[23:12:57 CET] <furq> also i think dvda supports additional codecs
[23:13:00 CET] <furq> such as the ever-popular mlp
[23:13:01 CET] <kepstin> saml: that makes no sense, you can't output to the [vid] from multiple fitlers, you need to use different names for each pad
[23:13:06 CET] <alexpigment> furq: ahh
[23:13:20 CET] <alexpigment> the one i'm looking at is dts 24/96
[23:13:28 CET] <saml> ah i see. i thought names would be overwritten
[23:13:28 CET] <saml> thanks
[23:13:31 CET] <alexpigment> but it just has a picture of the album that sits there
[23:13:36 CET] <kepstin> saml: how is the psnr filter suppose to know whether to read from the output of scale2ref or framerate? :)
[23:13:54 CET] <AndrewPRS> alexpigment, how are you looking at it ?
[23:14:00 CET] <AndrewPRS> what software are you using?
[23:14:06 CET] <furq> AndrewPRS: it's a video dvd
[23:14:12 CET] <alexpigment> it's a video dvd, yes ;)
[23:14:15 CET] <alexpigment> it's playing in VLC
[23:14:17 CET] <AndrewPRS> oh
[23:14:25 CET] <alexpigment> not that i like VLC, but it's quicker than mounting the ISO :)
[23:14:42 CET] <furq> yeah it looks like dvda has a different encryption system than dvd video
[23:14:54 CET] <furq> so presumably libdvdcss doesn't work there
[23:15:01 CET] <furq> you're probably just going to have to use dvd audio explorer in wine
[23:15:01 CET] <AndrewPRS> cra'
[23:15:03 CET] <AndrewPRS> crap!
[23:15:11 CET] <saml> PSNR y:inf u:inf v:inf average:inf min:inf max:inf hahah same input and reference.
[23:15:28 CET] <kepstin> you can throw 48kHz 16-bit LCPM on dvd-video, and I suspect they're easier/cheaper to author, which is presumably why most of the music i've seen is actually on dvd-video.
[23:15:55 CET] <alexpigment> kepstin: you can even do 24bit
[23:16:11 CET] <alexpigment> somewhat rare, but i've definitely got quite a few like that
[23:16:15 CET] <furq> there is a cli tool that does it but it appears to be windows-only
[23:16:17 CET] <alexpigment> just music video dvds
[23:18:09 CET] <alexpigment> so i think i've just kinda realized how pointless DVDA discs are :)
[23:18:30 CET] <alexpigment> i have a feeling the only reason for their existence is to allow standalone DVDA players
[23:22:02 CET] <alexpigment> well, i guess MLP allow you to do 6-channel...
[23:23:02 CET] <AndrewPRS> looks like I can open it with DVDExplorer
[23:23:06 CET] <AndrewPRS> :D
[23:24:39 CET] <AndrewPRS> thank you guys! furq alexpigment Kei_N
[23:24:41 CET] <AndrewPRS> kepstin,
[23:26:24 CET] <furq> alexpigment: you can have 192k lpcm on dvda as well
[23:26:44 CET] <furq> obviously that doesn't make it any less pointless, but it is a difference
[23:27:09 CET] <furq> and yeah mlp will save quite a bit on size so you can pack more data in
[23:27:14 CET] <furq> without having to resort to dts
[23:27:17 CET] <AndrewPRS> after extracting the mlp files, can I convert them with ffmpeg?
[23:27:42 CET] <furq> yeah ffmpeg has an mlp decoder
[23:27:47 CET] <AndrewPRS> ahh ok great
[23:27:48 CET] <AndrewPRS> furq
[23:28:06 CET] <AndrewPRS> do you also think that over 16/48kHz is pointless?
[23:28:12 CET] <furq> it is for playback
[23:28:22 CET] <AndrewPRS> that's what I've read
[23:28:30 CET] <AndrewPRS> do you have a portable player?
[23:28:37 CET] <furq> i do but i don't use it often
[23:28:48 CET] <AndrewPRS> what kind of equipment do you use to listen to music?
[23:28:57 CET] <AndrewPRS> I'm just curious
[23:29:05 CET] <furq> usually just my pc, headphones and an amp
[23:29:11 CET] <furq> nothing particularly fancy
[23:29:21 CET] <AndrewPRS> favourite band?
[23:29:23 CET] <AndrewPRS> :P !
[23:30:21 CET] <furq> https://www.youtube.com/watch?v=aowa2mBRGec
[23:30:35 CET] <alexpigment> furq: yeah, the difference is apparently that you have a maximum bitrate for audio, which requires that you use MLP when you want to use high sampling rate + 6 channels
[23:31:05 CET] <alexpigment> so while you can have 24/96 on both, you can't do 6-channels of PCM
[23:31:33 CET] <alexpigment> and it looks like the max bitrate for the audio portion of dvd video is lower, although i have a feeling most players don't care
[23:33:13 CET] <furq> https://en.wikipedia.org/wiki/DVD-Audio#Sound_quality
[23:33:14 CET] <furq> lol
[23:33:24 CET] <furq> those parens are doing a lot of work
[23:34:04 CET] <alexpigment> AndrewPRS: the bit depth thing is about the noise floor, which isn't particularly important on a digital medium once something has been mixed and mastered. it's really important when you're recording and you may need to boost your signals and compress that same track without destroying dynamics
[23:34:54 CET] <alexpigment> as for the 96khz thing... i'd like to think i have good ears. i've done a lot of work in the music realm, including recording and mixing bands
[23:34:58 CET] <alexpigment> i really can't tell the difference
[23:35:15 CET] <alexpigment> but you use it because you might as well ;)
[23:35:42 CET] <alexpigment> having said that, there is some validity to having your sampling frequency being an even multiple of your delivery frequency
[23:35:48 CET] <alexpigment> and that usually means 44.1
[23:36:12 CET] <AndrewPRS> and what is the frequency of love?
[23:36:13 CET] <alexpigment> your primary delivery format is rarely 48khz or 96khz
[23:36:27 CET] <alexpigment> the frequency of love is only 32khz, oddly enough ;)
[23:36:28 CET] <furq> it's not that uncommon for it to be 48k these days
[23:36:35 CET] <alexpigment> furq: delivery though
[23:36:42 CET] <alexpigment> CD, itunes, spotify, etc
[23:36:52 CET] <furq> itunes supports 48k doesn't it
[23:36:59 CET] <alexpigment> of course
[23:37:01 CET] <furq> if you're a digital only label then there's no need to go near 44.1
[23:37:05 CET] <furq> and there's plenty of those around
[23:37:06 CET] <alexpigment> but if buy from the itunes store, it's 44.1
[23:37:13 CET] <utack> at this point probably not evne apple knows what itunes does or does not do or support
[23:37:15 CET] <furq> yeah i meant the store
[23:38:04 CET] <alexpigment> utack: well, they *did* cannibalize their own store with their streaming service ;)
[23:38:04 CET] <furq> then again itunes store is still 100% aac isn't it
[23:38:11 CET] <alexpigment> pretty sure
[23:38:14 CET] <furq> so downsampling losses are the least of your worries
[23:38:22 CET] <alexpigment> last i recall it was 256kbpc aac at 44.1
[23:39:02 CET] <utack> so where does alac come from? apple must sell that somewhere?
[23:39:07 CET] <furq> apparently spotify uses whatever sample rate they get sent
[23:39:08 CET] <utack> why else make their own lossless format?
[23:39:18 CET] <furq> i expect other streaming services do the same
[23:39:24 CET] <alexpigment> furq: well, i'd assume that means up to 48k
[23:39:30 CET] <alexpigment> but i have no way to tell what they do
[23:39:31 CET] <furq> and obviously if you're distributing on bandcamp or whatever then you can use whatever you want
[23:39:36 CET] <furq> and yeah i meant between 44.1 and 48
[23:39:55 CET] <alexpigment> still though, i haven't seen much evidence of people moving past 44.1 for delivery
[23:40:09 CET] <furq> as long as cd exists then most people won't
[23:40:12 CET] <alexpigment> unless you go to a source that specializes in flac
[23:40:15 CET] <furq> i have plenty of 16/48 though
[23:40:42 CET] <furq> a lot of electronic labels are either just web or web/vinyl
[23:40:59 CET] <alexpigment> i have a ton of download cards from vinyl
[23:41:09 CET] <alexpigment> i've never really looked to see if any of that is 48khz
[23:41:56 CET] <alexpigment> well, my Baroness album is 48khz/320kbps mp3 with the vinyl download code
[23:42:26 CET] <alexpigment> which, admittedly, makes sense for audio that was pressed onto new vinyl
[23:42:45 CET] <alexpigment> Manchester Orchestra was 44.1
[23:44:32 CET] <alexpigment> yeah, most of these are just 44.1khz 320kbps mp3s
[23:46:40 CET] <alexpigment> granted, i haven't redeemed most of them in the past 2 years because of spotify. just makes the whole point of a local music library kinda blurry
[00:00:00 CET] --- Sat Jan 20 2018
1
0
[04:52:05 CET] <Compn> a wild ffm user appears
[09:05:58 CET] <wm4> can someone with access edit the issue tracker in there: https://github.com/FFmpeg/FFmpeg/pull/153
[09:06:16 CET] <wm4> since some people appear to be trying to open PRs to make bug reports
[09:07:18 CET] <wm4> actually looking again I'm not so sure, but should be a good idea anyway
[09:10:08 CET] <mateo`> some comments are pretty hilarious: "show your respect to the community" !
[10:03:42 CET] <KGB> [13FFV1] 15JeromeMartinez opened pull request #101: Add sample_difference description (06master...06sample_difference) 02https://git.io/vNRiS
[10:11:00 CET] <bogdanc> after going through all the cfhd_filters in cfhd.c is the output modified anywhere else?
[10:15:13 CET] <bogdanc> i'm trying to fix the distortion of the last 8 bottom pixels on cineform videos and i've tried to modify the formulas on the filter when it affects only the last 8 pixels but i'm starting to think that it gets distorted somewhere else
[11:42:52 CET] <kierank> bogdanc: have you actually confirmed the distortion happens in a player
[11:43:36 CET] <bogdanc> yes
[11:43:56 CET] <bogdanc> i'm using the "Sample with the most obvious distortions uploaded:"
[11:44:06 CET] <bogdanc> and playing it in sony vegas
[11:44:32 CET] <kierank> Huh
[11:44:53 CET] <bogdanc> i mean, it's not really a distortion, it's messed up colors
[11:45:10 CET] <bogdanc> and i tried many things with the current used filters
[11:46:27 CET] <bogdanc> but i just achieved different types of distortions, some closer to how it's supposed to look
[11:47:59 CET] <bogdanc> but when i don't even let the output to change those pixels i still get some distortions, so that's why i'm starting to think that it's some kind of a post decoding but i haven't found it yet
[11:50:17 CET] <kierank> what has sony vegas got to do with playing that file
[11:50:28 CET] <kierank> unless you're making it use ffmpeg
[11:51:35 CET] <bogdanc> it's just easy for me to analyze different outputs
[11:51:59 CET] <bogdanc> i create the outputfile using the ffmpeg in ubuntu, then i place that output in sony vegas
[11:52:01 CET] <bogdanc> https://imgur.com/ZjWLtLc
[11:52:38 CET] <bogdanc> here you can see how the bottom pixels react when i dont apply the vert_filter
[11:52:38 CET] <kierank> that's a very odd way to do things since you're actually recompressing the video
[11:54:11 CET] <bogdanc> well, what do you recommend to use?
[11:57:24 CET] <kierank> personally make ffmpeg output to yuv and use pyuv viewer
[11:57:27 CET] <kierank> but some people use mpv
[11:57:46 CET] <kierank> but anything that can show the video untouched without conversions is the most important
[11:59:19 CET] <bogdanc> how to make it to yuv?
[11:59:30 CET] <kierank> ./ffmpeg -i file.mov -y out.yuv
[12:00:44 CET] <bogdanc> ok, i'm going to use this from now on
[13:00:23 CET] <kierank> Gramner: not ffmpeg related but would you be interested in reviewing this guy's avx2 gather implementation
[13:00:24 CET] <kierank> https://github.com/glenvt18/libdvbcsa/pull/4
[15:51:47 CET] <wm4> does anyone know what AVProgram.flags contains
[15:53:01 CET] <wm4> as far as I can tell it's unused, maybe
[15:54:25 CET] <wm4> yeah commenting it and rebuilding ffmpeg works
[16:27:51 CET] <cone-321> ffmpeg 03Paul B Mahol 07master:8088b5d69c51: avfilter/af_afade: acrossfade: switch to activate
[16:38:31 CET] <jamrial> https://www.ffmpeg.org/doxygen/trunk/structAVStream.html
[16:38:36 CET] <jamrial> apparently doxygen chokes on struct fields that are wrapped in FF_API_ preprocessor checks
[16:39:31 CET] <jamrial> they are missing
[16:44:16 CET] <nevcairiel> That's ok, you shouldn't use them anymore :D
[16:46:16 CET] <jamrial> heh
[17:02:23 CET] <cone-321> ffmpeg 03James Almer 07master:4f6b34f1f803: avformat: small AVFormatContext doxy cosmetics
[17:08:51 CET] <wm4> I'm a fan of not removing documentation for deprecated fields, but those who look at the doxygen output are asking for trouble anyway
[17:12:35 CET] <nevcairiel> yeah i find doxygen mostly un-navigatable anyway
[17:12:38 CET] <nevcairiel> rather look at the headers
[17:14:04 CET] <atomnuker> I use it occasionally
[17:16:16 CET] <wm4> http://ffmpeg.org/pipermail/ffmpeg-devel/2018-January/224164.html
[17:16:22 CET] <wm4> can we penalize CE already?
[17:16:30 CET] <wm4> I'm tired of his uncalled for bullshit
[17:30:14 CET] <RiCON> unless i'm missing some message in there, i can't tell what provoked him now
[17:31:39 CET] <philipl> Looks like a passive aggressive cheap shot
[17:31:45 CET] <RiCON> i'd assume he just mistyped Nicolas, since he's clearly not quoting you
[17:32:57 CET] <kierank> he's saying they should unite against the enemy that is wm4 (yes, wtf)
[17:35:57 CET] <RiCON> i definitely didn't read that much into it, but the "common goal" line is certainly missing some context
[18:23:52 CET] <Madsfoto> Good evening. Is this a good place to ask about extending the Atadenoise filter past 129 frames? If not, where would the appropriate place be?
[18:29:19 CET] <durandal_1707> Madsfoto: why?
[18:31:05 CET] <durandal_1707> 129 size is big enough imho
[18:34:24 CET] <Madsfoto> durandal_1707> For noise reduction, I agree with you, however I do dissimilar images averaged together to create a flowing motion through the images and that requires a lot of images averaged together. Currently I use Imagemagick to get the ~600 image averaged I need but it's much slower (even in 129 pictures vs atadenoise) than ffmpeg
[18:35:29 CET] <Madsfoto> as an example, (not mine) https://vimeo.com/81126520
[18:36:36 CET] <durandal_1707> Madsfoto: but atadenoise never was designed for that in mind, if you want general mix, wait for tmix filter.
[18:38:09 CET] <durandal_1707> main issue is that one needs to keep all pictures in memory for atadenoise
[18:38:45 CET] <durandal_1707> 600 frames of what size takes how much memory?
[18:39:30 CET] <Madsfoto> durandal_1707> 1920x1080 ~3 GB in Imagemagick (got 32 GB so it's not a problem)
[18:39:57 CET] <Madsfoto> also, I was unable to get any information about tmix filter off google :(
[18:42:47 CET] <durandal_1707> Madsfoto: tmix is just temporal version of mix filter, not yet in codebase
[18:43:37 CET] <Madsfoto> That sounds amazing!
[18:43:56 CET] <sfan5> wouldn't you just need to increase `#define FF_BUFQUEUE_SIZE 129` ?
[18:44:23 CET] <sfan5> or is there any other problem other than RAM usage with that
[18:44:36 CET] <Madsfoto> I have no idea, I'm not a programmer
[18:45:28 CET] <durandal_1707> there are other params which are not designed for averaging frames
[18:50:57 CET] <Gramner> kierank: without looking into details that's kind of awkward to make fast in avx2. gather is really slow on HSWL and all AMD cpu:s so you'd only want to use that on SKL. a possibility is to store the entire lut in registers and "gather" from those using shuffles/shifts/blends but 16 ymm regs might be too few since you'd need half of them just to store the lut.
[18:52:13 CET] <Gramner> with avx512 the latter approach would be quite manageable and with avx512vbmi straight up trivial (with the only minor complication being that no cpu has been released with avx512vbmi yet)
[18:53:23 CET] <kierank> jdarnley: ^
[18:54:34 CET] <atomnuker> Gramner: gathers are still slower than individual loads on skylake
[18:56:29 CET] <atomnuker> I think it was 2900 decicycles vs 900ish for 4 64-bit loads
[18:56:55 CET] <Gramner> yes but you'd need to do fewer loads overall compared to scalar lut[src[i]] so it might still be a win. alsto the throughput is almost the same as individual loads, it's mainly the latency that's bad, and that can be hidden if you process a sizeable amount of data before you need the results
[18:57:51 CET] <Gramner> oh, and don't use it to load just 4 values
[18:58:14 CET] <Gramner> minimum 8, preferably 16 (with zmm regs)
[18:58:39 CET] <Gramner> sicne the overhead gets proportionally larger the fewer valeus you load
[19:00:22 CET] <jdarnley> Okay, gather only really good on skylake
[19:00:29 CET] <jdarnley> *any good
[19:01:06 CET] <jdarnley> Even if you might do a "complicated" bit of math to gett he address?
[19:01:06 CET] <Gramner> s/good/not terrible/
[19:04:58 CET] <Gramner> depends on the use case I guess. maybe?
[19:06:33 CET] <atomnuker> Gramner: I didn't load just 4 values, I loaded 8 values but each pair was always going to be next to each other so 4 loads for avx2 was faster
[19:09:40 CET] <Gramner> vpgatherdd ymm is 4 µops on SKL, 34 on HSW, and 66 on ryzen :D
[19:11:51 CET] <atomnuker> damn ryzen
[19:12:45 CET] <Gramner> well yeah, the number of loads is what matters. how many "values" those bits represent is irrelevant as far as memory loads goes
[19:12:57 CET] <atomnuker> but ryzens have more units, right? or is it just for math ops?
[19:13:24 CET] <Gramner> ryzen has 4 simd execution units iirc, same as intel
[19:14:04 CET] <atomnuker> I think intel only had 2 256bit units, ryzens had 4 128bit
[19:16:00 CET] <Gramner> err, I meant to write 3. but looking it up it seems amd indeed has 4 although the 4th seems more limited
[19:18:03 CET] <Gramner> logical ops are the only ones that can run on all 4
[19:18:37 CET] <Gramner> intel has 3 256-bit ones. only one of them can do shuffles though. on skl-x there's on 512-bit and two 256-bit
[19:19:14 CET] <atomnuker> you can still run 256bit and 128bit ops on the 2 512bit ones, right?
[19:19:22 CET] <Gramner> yes
[19:19:24 CET] <Gramner> it's p5
[19:19:27 CET] <Gramner> the shuffle one
[19:19:53 CET] <Gramner> althouh it can only do shuffles on <512-bit
[19:20:03 CET] <Gramner> and logical
[19:20:10 CET] <Gramner> so and/or/xor
[19:20:21 CET] <atomnuker> wow, its economical to unroll loops by 4 for that monster
[19:20:28 CET] <Gramner> I'm assuming the rest is power gated
[19:21:38 CET] <Gramner> with out-of-order execution you don't really need to unroll things by the exact count since you'll probably end up having an OOE window that covers 10 loop iterations anyway
[19:23:17 CET] <Gramner> skylake has an OOE window of 224 instructions for example
[19:23:55 CET] <Gramner> and can execute things wildly out of order within that window to try to maximize utilization of execution units
[19:24:40 CET] <atomnuker> crazy
[19:25:09 CET] <Gramner> modern cpu architectures are sorcery and dark magic
[19:25:24 CET] <Gramner> it's surprising they work as well as they do
[19:26:50 CET] <atomnuker> what's stopping them from putting 16 or 32 arithmetic units? area?
[19:27:04 CET] <wm4> CPU: "throw shit at the wall and see what sticks"
[19:27:26 CET] <Gramner> execution units are rarely the bottleneck so it wouldn't really help
[19:27:40 CET] <Gramner> we're mostly held back by memory really
[19:28:13 CET] <Gramner> you need things in L1 to get good utilization of execuition units but L1 is tiny
[19:29:41 CET] <Gramner> cpu performance has scaled way more than memory performance over time
[19:29:44 CET] <atomnuker> 32k is pretty much okay, so I guess RAM->L1 is the bottleneck
[19:30:47 CET] <atomnuker> and you can't improve that much because relativity
[19:31:16 CET] <atomnuker> von neuman-less cpus when?
[19:41:33 CET] <atomnuker> this is ridiculous, why is realplayer still alive as well as the company behind it? I thought they went bankrupt ages ago
[19:42:27 CET] <atomnuker> how do they even get permission to use patents in their totally from scratch codecs?
[19:43:47 CET] <durandal_1707> for your amusement
[19:49:15 CET] <wm4> why does this rv thing require ffmpeg.c changes
[19:50:03 CET] <wm4> "RealMedia® HD is an awesome video codec!"
[19:50:08 CET] <wm4> good argument
[19:50:48 CET] <wm4> (that's the first thing you see on the website)
[19:52:18 CET] <wm4> the download is a .run file (probably some self extracting contraption) so my superficial curiosity ends here
[19:54:18 CET] <durandal_1707> wm4: what? it have linux executable?
[19:55:47 CET] <BtbN> the ffmpeg.c changes seem weird. Why does the coded need special treatment like that?
[19:56:34 CET] <wm4> durandal_1707: probably... and a library at least (I was curious what they have in their headers)
[19:56:50 CET] <atomnuker> I don't think so, there are just libraries in that archive
[19:56:58 CET] <atomnuker> you can use --target to just extract it
[19:57:44 CET] <atomnuker> the libraries are however not stripped, there's some data as strings left
[19:58:17 CET] <wm4> well the patch includes a <librv11_sdk.h>
[19:58:29 CET] <wm4> so that file must be somewhere
[19:59:21 CET] <durandal_1707> we do not need this libary bloat, tell him to foff
[20:00:10 CET] <durandal_1707> i do not accept anything from real, even gifts
[20:00:55 CET] <atomnuker> I'd accept a well written decoder which uses whatever it can from the hevc decoder, as a gift
[20:01:59 CET] <wm4> urgh, more entangled mpegvideo style mess?
[20:02:41 CET] <atomnuker> no, just the c/asm code, not a shared struct
[20:06:26 CET] <durandal_1707> dont accept, and it will like rest of real dead slowly
[20:07:55 CET] <RiCON> librv11dec_decoder_deps="librv11dec"
[20:08:14 CET] <RiCON> the configure changes are really weird
[21:40:47 CET] <KGB> [13FFV1] 15michaelni pushed 1 new commit to 06master: 02https://git.io/vNEeU
[21:40:47 CET] <KGB> 13FFV1/06master 146d0323e 15Jérôme Martinez: Add sample_difference description.
[23:02:09 CET] <jamrial> durandal_1707: 8088b5d69c broke the acrossfade test
[23:03:02 CET] <durandal_1707> jamrial: there was test?
[23:03:17 CET] <jamrial> durandal_1707: fate-filter-acrossfade
[23:03:30 CET] <durandal_1707> what broke?
[23:04:01 CET] <jamrial> what used to be one frame is now two
[23:04:16 CET] <jamrial> http://fate.ffmpeg.org/report.cgi?slot=x86_64-archlinux-gcc-threads-2&time=…
[23:04:35 CET] <durandal_1707> ahh, just update test
[23:13:25 CET] <cone-790> ffmpeg 03James Almer 07master:fb3fd4d50623: fate: update filter-acrossfade test reference file
[23:15:14 CET] <durandal_1707> and i really dislike testing of float / double sample formats filters
[23:15:54 CET] <durandal_1707> this one should just test final hash
[00:00:00 CET] --- Fri Jan 19 2018
1
0
[00:00:52 CET] <fdemo> after reading, a little understood. but!!
[00:01:00 CET] <fdemo> if the values are set: enc_ctx.time_base.num = 417083, enc_ctx.time_base.den = 10000000, then call avcodec_open2 will get fail. And if values num=1001, den=24000 - then success.
[00:02:02 CET] <fdemo> and 10 000 000 / 416 083 = 23.97 , and 24000 / 1001 = 23.97
[00:04:57 CET] <aokfire> thanks again, bye for now :)
[00:19:47 CET] <iive> fdemo, my calculator says that the first one is 24.03366636
[00:36:19 CET] <b0bby__> hello
[00:36:55 CET] <b0bby__> im compiling the encoder.c example and I'm getting the error /tmp/ccdB8W8F.o: In function `encode':
[00:36:56 CET] <b0bby__> t.c:(.text+0x7e): undefined reference to `avcodec_send_frame'
[00:36:56 CET] <b0bby__> t.c:(.text+0xcb): undefined reference to `avcodec_receive_packet'
[00:36:56 CET] <b0bby__> t.c:(.text+0x29c): undefined reference to `av_packet_alloc'
[00:36:56 CET] <b0bby__> t.c:(.text+0x7b8): undefined reference to `av_packet_free'
[00:38:01 CET] <b0bby__> how do I fix this?
[00:47:01 CET] <JEEB> b0bby__: use pkg-config pointed towards your FFmpeg installation prefix
[00:47:09 CET] <JEEB> `pkg-config --libs libavcodec`
[00:47:30 CET] <JEEB> (use PKG_CONFIG_PATH=/my/custom/ffmpeg/prefix/lib/pkgconfig if you used a custom prefix)
[00:49:05 CET] <b0bby__> i got -lavcodec-ffmpeg when I ran pkg-config --libs libavcodec
[00:49:30 CET] <b0bby__> JEEB:
[00:49:41 CET] <JEEB> yea, you use it (pkg-config) when linking your code
[00:49:48 CET] <JEEB> $(pkg-config --libs libavcodec)
[00:49:50 CET] <JEEB> for example
[00:50:14 CET] <JEEB> that puts -lxxx and possibly -Lxxx into your build command line
[00:50:32 CET] <JEEB> if that is the wrong FFmpeg, then use PKG_CONFIG_PATH to tell pkg-config where to look as I noted before
[00:50:34 CET] <b0bby__> JEEB: I get warning: implicit declaration of function avcodec_send_frame
[00:50:46 CET] <JEEB> then that is not the FFmpeg you built and installed
[00:50:59 CET] <JEEB> use PKG_CONFIG_PATH to point it to your prefix
[00:51:06 CET] <JEEB> (/lib/pkgconfig under your prefix)
[00:51:33 CET] <JEEB> for example I install FFmpeg to /home/user/ownapps, and thus it's PKG_CONFIG_PATH=/home/user/ownapps/lib/pkgconfig
[00:51:39 CET] <b0bby__> I'm trying to compile an example(encode.c) what should I put in to compile it?
[00:52:23 CET] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=doc/examples/README;h=c1ce61…
[00:52:27 CET] <JEEB> :P
[00:52:28 CET] <JEEB> there's a README
[08:43:35 CET] <kiranbsravi> I am using FFMpeg libavformat library to generate a webm file from RTP video and audio streams. Video - vp8 encoded and audio - opus encoded. I will have RTP timestamps for both the streams and NTP timestamps for the corresponding RTP packets from the RTCP. Now how do I set PTS and DTS of AVPacket with these values ? And, do I need to set any other extra values (like duration, etc) for AVPacket in order to sync the streams and
[11:17:22 CET] <Kristy> Hi everyone, i have a little question on ffmpeg. Is that possible to directly input a webpage or not? I don't know if any plugin exist to do this kind of stuff, i try to use phantomJS and pipe his output to ffmpeg, but i'm having some issue on quality and on web browser behaviour
[11:18:00 CET] <sfan5> ffmpeg can't read HTML, no
[11:21:11 CET] <BtbN> How would you even "input a webpage"?
[11:21:24 CET] <BtbN> You can stream video from an http server, if that's what you're asking.
[11:25:39 CET] <Kristy> thanks for answer. Well i want to input a webpage because the target is to stream a webpage with dynamic content on facebook, with react counter for example
[11:25:53 CET] <BtbN> Screep-Capture a Browser?
[11:25:53 CET] <jya> is there a way to retrieve the channel layout of a particular file ?
[11:26:29 CET] <Kristy> and the pb is if i'm using a stremaing software like OBS or Xsplit, i must use a desktop, and i'm trying to find a more stable/professional solution, because i'm having issue with cloud desktop and streaming :(
[11:26:57 CET] <jya> Kristy: I think you need to rephrase either your question or your problem, as it is, it doesn't make much sense
[11:27:11 CET] <Kristy> @btbn > that's what i tried with phantomJS, but as i said , i'm having some compatiblity issue, i know it's not due to ffmpeg, but i'm seeking a way to do this :(
[11:27:26 CET] <BtbN> Use OBS
[11:29:26 CET] <Kristy> that is what i was thinking, i need to use OBS, and make this all work on a cloud desktop, thanks for answers :)
[11:54:58 CET] <friki_> Hi, i'm trying to stream a screencast via UDP (from ffmpeg to ffplay, on localhost) . After testing all udp params ( https://ffmpeg.org/ffmpeg-protocols.html#udp ) I still get lot of artifacts on the player
[12:06:01 CET] <relaxed> friki_: pastebin your command
[12:08:37 CET] <friki_> ffmpeg -loglevel info -threads 1 -f x11grab -video_size 1920x1080 -framerate 50 -draw_mouse 0 -i :0.0+0,0 -an -vcodec libx264 -pix_fmt yuv420p -preset fast -crf 0 -f mpegts tcp://127.0.0.1:2000
[12:09:03 CET] <friki_> and: ffplay -i tcp://127.0.0.1:2000
[12:40:30 CET] <esc-reality> I've submitted a bug report 11 days ago, https://trac.ffmpeg.org/ticket/6949. How do I know when any of the devs is looking into this?
[13:05:02 CET] <durandal_1707> esc-reality: by paying them to work on it
[14:21:21 CET] <luneff> hey guys! I'm trying to make a fullscreen desktop recording with ffmpeg. And I seem to get frames where top half is new, and the bottom half isn't updated yet, so I get some sort of a scanline. How do I get rid of that on X11?
[14:23:21 CET] <sfan5> that's tearing
[14:23:34 CET] <sfan5> do you only get that in the recording or on display too?
[14:25:29 CET] <luneff> hard to see by the eye :-) especially, on 144 Hz
[14:29:47 CET] <luneff> on 60 Hz it is there as well :-(
[14:37:14 CET] <luneff> ok, trying to first tweak the nvidia driver side (http://www.thelinuxrain.com/articles/got-tearing-with-proprietary-nvidia-tr…)
[14:37:31 CET] <debianuser> luneff: Do you by chance use any compositors? E.g. compton has a know issue about that: https://github.com/chjj/compton/issues/381 which looks like this: https://youtu.be/q9m_m74mnhA while killing compton fixes the recording.
[14:41:16 CET] <luneff> debianuser, thanks! I've run across this post too and thus trying to tweak the NVidia side. The host is ElementaryOS, not sure about compositor used
[14:45:12 CET] <debianuser> luneff: By the way, do you actually see that "scanline" on screen while recording? Or does it only appear when you play the recorded file? And if it only appears during playback - can you pause the playback and still see it? Or is it only visible during playback and disappears when you pause the video?
[14:45:34 CET] <debianuser> (depending on the answer to those questions that could be 3 different problems)
[14:45:39 CET] <luneff> debianuser, it looks like the scanline appears on the recording only
[14:46:27 CET] <debianuser> luneff: Can you still see the "scanline" if you pause the video playback?
[14:46:51 CET] <esc-reality> durandal_1707: Really?..
[14:46:57 CET] <luneff> debianuser, I check by splitting the video by frames and looking into them. I have frames with scanlines that way
[14:47:22 CET] <luneff> about 2-5% of them
[14:48:45 CET] <debianuser> luneff: Can you upload a small video fragment captured with ffmpeg to some hosting? (sendspace.com, youtube, or any other hosting you like)
[14:49:35 CET] <sfan5> just use uguu.se, it's the least complicated and won't mess with your video file
[14:50:00 CET] <friki_> relaxed: [ffmpeg, udp "server"] http://paste.debian.net/hidden/47e0bd6c/ and [ffplay, udp "client"] http://paste.debian.net/hidden/f7c4943f/
[14:51:02 CET] <luneff> debianuser, just a sec
[14:53:15 CET] <friki_> In "server" side, there are lot errors like: "Past duration 0.954536 too large". It seems to ocurr only when the desktop is not moving.
[14:54:06 CET] <friki_> At "client" side, there are more interesting errors, i think. "[h264 @ 0x7f77eca3daa0] Invalid NAL unit 8, skipping.", "[h264 @ 0x7f77eda1ff60] error while decoding MB 56 2, bytestream -5", ...
[14:56:11 CET] <friki_> Streaming over tcp seems to fix the problem, even at localhost
[15:02:52 CET] <debianuser> recording tearing test is easy: open `xterm`, run `ffmpeg -f x11grab -r 15 -s 1280x1024 -i :0 -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -t 10 out.flv` (replace "1280x1024" with your screen resolution), and move that xterm window around for 10 seconds while ffmpeg is recording it, then play "out.flv" and see half of xterm window moving while the other half had not moved yet... except...
[15:02:58 CET] <debianuser> except... I don't have tearing with this test (nvidia, tested with xcompmgr running and without it).
[15:09:55 CET] <luneff> debianuser, here's the video https://yadi.sk/i/5-nCb3IS3Ra2XA here's an example of tearing observed: https://yadi.sk/i/KW1DS5kh3Ra2hG
[15:12:13 CET] <luneff> line is ffmpeg -y -video_size 300x300 -framerate 144 -f x11grab -i :0.0+1730,363 -c:v libx264 -crf 0 -preset ultrafast -t 11 tearing-issue.mkv
[15:12:13 CET] <luneff> ffmpeg -y -i tearing-issue.mkv -c:v libx264 -crf 0 -preset veryslow tearing-issue-compressed.mkv
[15:12:13 CET] <luneff> ffmpeg -y -i tearing-issue-compressed.mkv -c copy tearing-issue.mp4
[15:12:20 CET] <sfan5> I don't see any tearing in that video file
[15:17:12 CET] <luneff> maybe, vlcsnap and cv2 from python introduce tearing when splitting the video into frames? not sure
[15:20:13 CET] <sfan5> that sounds unlikely
[15:22:46 CET] <debianuser> luneff: Yes, I can see what you're calling "tearing" here (e.g. frame ~77 of your tearing-issue.mp4), but it'
[15:23:35 CET] <debianuser> but it's hard to tell if that's ffmpeg introducing it, or maybe that's the "Figure 2" application drawing each image line by line and ffmpeg just happened to capture it while only half of the image was updated.
[15:24:18 CET] <luneff> I've observed the same scanline over several apps at once, that's just a part of the screen
[15:24:50 CET] <luneff> thought about same first, until watched a GTK window behaving the same under ffmpeg recording
[15:28:42 CET] <debianuser> That's why I suggested to move the window around. :) That'd make sure it's either xorg/compositor/driver or ffmpeg to blame, but not the app.
[15:30:35 CET] <luneff> there is tearing when the window's moving
[15:31:24 CET] <luneff> but it is seen only in the recorded video
[15:33:21 CET] <debianuser> can you see the tearing if you pause the video on individual frames?
[15:34:30 CET] <luneff> that second link was a vlcsnap that included the tearing, right?
[15:37:01 CET] <sfan5> ah there it is
[15:37:41 CET] <debianuser> luneff: I mean can you see the "moving window" tearing if you pause the video on individual frames?
[15:39:00 CET] <sfan5> hard to notice this during playback, but frame 76 does have tearing https://a.uguu.se/zDQfApGesIru.png
[15:49:02 CET] <luneff> debianuser, it is lkounios experimenting with the setup :-)
[15:49:56 CET] <lkounios> Hey, guys. :-) I have the issue that luneff has been describing - screen tearing during recording.
[15:51:14 CET] <lkounios> I've recorded a video using ffmpeg -f x11grab -r 144 -s 2560x1440 -i :0 -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -t 3 out.flv. I'm moving around a window and I can only see the tearing in the video.
[15:53:09 CET] <debianuser> lkounios: There could be multiple origins for the capture tearing. It could be you actually have screen tearing visible on your screen, and ffmpeg just captures it. Or it could be ffmpeg introduces the screen tearing that wasn't there originally. And finally it could be that ffmpeg captures it without tearing, but your video player tears the video.
[15:53:21 CET] <debianuser> lkounios: If you see a tearing while moving a window, can you only see it while video is playing, or do you also see it if you pause the video?
[15:54:12 CET] <debianuser> lkounios: Or maybe you can upload that out.flv video somewhere? (uguu.se, sendspace.com, youtube, or any other hosting you like)
[15:59:14 CET] <lkounios> debianuser, Thanks for the help! I've uploaded the video here: https://a.uguu.se/cJgFu1PW6eFb_out.flv
[15:59:43 CET] <lkounios> I have also "disassembled" the video into frames using ffmpeg -i out.flv -f image2 ./frames/image-%07d.png and confirmed that I can see the tearing in the individual .png files.
[15:59:55 CET] <Fyr> guys, does -itsoffset just modify timestamps of the video, keeping audio tracks intact?
[16:00:12 CET] <Fyr> or it can change also audio track timestamps?
[16:00:27 CET] <lkounios> Anecdotally, I do not see tearing on my screen when moving the window around. I never noticed tearing during day-to-day use either.
[16:04:55 CET] <alexpigment> lkounious: i can see those problems on my end. oddly, i ran across a very similar issue with the AMD AMF encoder recently, and it was a problem with the driver
[16:05:06 CET] <alexpigment> obviously you're using x264, so that's different
[16:05:25 CET] <alexpigment> but lemme see if I can find the details on what the cause was (in case there's a relevant setting to enable)
[16:05:53 CET] <lkounios> alexpigment, That'd be great, thank you!
[16:07:54 CET] <alexpigment> "PPS from extradata returned from AMD runtime dont match SPS/PPS from the stream. The flag is deblocking_filter_control_present is not set to 1 in PPS from extradata. So depending on player and container if extradata is used the decoders go nuts. Some players inject SPS/PPS from extrarata right before IDR NAL unit, after SPS/PPS from stream or just ignore them"
[16:08:29 CET] <alexpigment> so it could be related to the deblocking filter or the SPS/PPS...
[16:08:40 CET] <alexpigment> lemme look at the stream properties
[16:09:40 CET] <alexpigment> your video has deblock on 0:0:0; not sure if that's relevant
[16:10:32 CET] <alexpigment> out of curiosity, are you trying to capture at 144fps?
[16:10:55 CET] <alexpigment> or are you just doing that because it's the native framerate?
[16:12:16 CET] <lkounios> alexpigment, Ideally we want to record at 144fps, but we also observed tearing at 60fps.
[16:13:02 CET] <lkounios> alexpigment, I've tried both recording at 60fps with the monitor set to 144Hz and recording at 60fps with the monitor set to 60Hz. Same issue.
[16:13:45 CET] <alexpigment> what happens if you record at -preset veryfast ?
[16:14:14 CET] <alexpigment> i mean i know you're trying to keep your encoding overhead down, but it may be worth just testing it
[16:14:36 CET] <alexpigment> obviously, that changes a lot of things (turns cabac on, turns deblock on, etc etc)
[16:15:13 CET] <alexpigment> but it's often easier to find a working scenario and keep disabling things until you find the key factor
[16:17:34 CET] <lkounios> alexpigment, Changing the preset to veryfast yields the same results unfortunately.
[16:17:39 CET] <alexpigment> ok
[16:17:53 CET] <alexpigment> also, i'm guessing your player is using your GPU to decode
[16:18:32 CET] <alexpigment> if you play in a player like mpv (which defaults to CPU decoding I believe), the issue goes away, right?
[16:19:12 CET] <lkounios> I've used ffmpeg to split the video into frames and can see the tearing in the individual images. Is GPU acceleration in the media player still relevant in this case?
[16:19:36 CET] <alexpigment> hmmm
[16:19:47 CET] <alexpigment> not sure. i played it in mpv and it plays fine over here
[16:19:55 CET] <alexpigment> it's just broken in WMP and VLC on my end
[16:20:18 CET] <lkounios> Interesting! Let me see if I can reproduce on my end.
[16:21:11 CET] <alexpigment> also, Kodi is unaffected
[16:21:37 CET] <alexpigment> that's not to say that there's not a problem with the video - just that some players are able to deal with that issue
[16:23:45 CET] <luneff> interesting. so what's best to split such video to separate frames?
[16:25:18 CET] <lkounios> alexpigment, Issue exists in mpv for me. Are you positive the issue didn't exist for you? It only happens in a few of the frames, it's not a non-stop issue.
[16:25:56 CET] <alexpigment> yep
[16:26:06 CET] <alexpigment> for what it's worth, it's somewhat persistent on the other players though
[16:26:39 CET] <alexpigment> but in my experience with the AMD encoder issue, the severity of the problem depends on which GPU is in the system
[16:26:46 CET] <alexpigment> i have an Nvidia card
[16:27:18 CET] <alexpigment> ok, that probably made no sense :) lemme rephrase. the severity when *decoding* depends on which GPU is in the system
[16:29:46 CET] <lkounios> alexpigment, I have an nVidia card too. Running 384.111 drivers.
[16:30:17 CET] <alexpigment> gotcha
[16:31:00 CET] <alexpigment> well, i think I've kinda exhausted my ideas here on what you can try :(
[16:31:11 CET] <alexpigment> maybe some others here might have a better idea of what's going on based on your sample video
[16:31:38 CET] <lkounios> alexpigment, Thanks a lot for the help. It is greatly appreciated. We'll figure it out sooner or later! :-)
[16:31:53 CET] <luneff> I wonder if we should just move to Wayland entirely :-)
[16:42:24 CET] <debianuser> lkounios: I can confirm I see the "classic tearing" in your https://a.uguu.se/cJgFu1PW6eFb_out.flv But I can't reproduce it locally. For me it looks like this: https://a.uguu.se/szXjwszCv5XH_out.flv I'm not saying you don't have the problem, you have it clearly, I'm just saying it's not a problem everyone has to deal with, others don't have it, so there must be a solution for you too.
[16:42:28 CET] <debianuser> lkounios: I tested it both without compositor and with out and have no tearing in any case, but maybe your compositor is different? Easy way to test if you have a compositor or not is to run `xcompmgr -c -f` in the terminal, it'd either start (and then you can kill it with Ctrl+C), or print "Another composite manager is already running".
[16:48:50 CET] <debianuser> lkounios: By the way, another noticeable difference between my setup and yours is that I have a much lower resolution and framerate than you. If the issue is caused by ffmpeg it could be related to resolution or framerate. Try capturing `-s 1280x720` that'd capture top left corner of your screen - would you still have tearing in the recording then?
[16:53:47 CET] <lkounios> debianuser, Thanks for the help! I've tried setting the resolution to half what I have now and change from framerate from 144 to 60. Same issue. I've also tried the composite manager command and get the "Another composite manager is already running". Looking into which one it is.
[16:55:00 CET] <lkounios> Something that may or may not be relevant is that if I disable "Allow Flipping" in the nVidia Control Panel, I get videos with the screen tearing issue discussed here. If I enable it, I get videos with lots of seemingly random artifacts. Some of these artifacts may be obscuring the fact that there are also tearing issues, it is difficult to tell for sure.
[16:58:30 CET] <alexpigment> lkounios: for what it's worth, i was seeing lots of artifacts; i assumed that's what you meant by tearing
[16:58:32 CET] <lkounios> debianuser, I believe the compositor is Gala, based on Mutter.
[16:58:44 CET] <alexpigment> but either way, that makes sense with what i was saying earlier about different GPUs behaving differently
[16:59:01 CET] <alexpigment> if it comes down to a GPU setting
[17:00:16 CET] <lkounios> True. May need to start from a fresh install and see where it takes me.
[17:01:44 CET] <lkounios> alexpigment, Do you have a screenshot of the "artifacts" you were seeing? Just to confirm we were seeing the same thing.
[17:02:02 CET] <alexpigment> lemme see if i can capture them
[17:02:20 CET] <alexpigment> but basically the colors are off in certain parts and pieces of the window you're moving around are kinda left behind
[17:02:40 CET] <alexpigment> kinda what it would look like if you deleted an I frame from a video
[17:03:06 CET] <debianuser> lkounios: You can probably just boot livecd and test there. It's faster to test than fresh install. :) Also to check if that's compositor to blame you can test recording without it. I don't know if you can disable gala/mutter, but you can probably relogin into xterm-only "safe mode" session and test there. Or e.g. install "icewm-session" (that's a tiny wm/de with no compositor) and test in it.
[17:03:53 CET] <lkounios> debianuser, Thanks! I'll give it a shot without a compositor.
[17:03:55 CET] <debianuser> alexpigment: that's probably just an encoding artifact. :)
[17:04:45 CET] <alexpigment> debianuser: i doubt it's encoding, because this seems to be an issue that occurs for some players and not others
[17:05:10 CET] <alexpigment> or according to lkounios, depending on whether your have a particular nvidia option enabled
[17:06:42 CET] <alexpigment> lkounios: this was as good as i could capture. when i tried to do a screen capture, that would actually influence the playback of the video, and most of the time cause everything in the video to go green
[17:06:43 CET] <lkounios> alexpigment, Ah, let me clarify. With "Allow Flipping" enabled, my recorded videos have random artifacts regardless of where I play them back. Even switching on a Mac or Windows. Disabling "Allow Flipping" does not help with the playback of a video that was already recorded with "Allow Flipping" enabled.
[17:06:44 CET] <alexpigment> https://a.uguu.se/eVvD3VPfrIgc.png
[17:07:04 CET] <alexpigment> lkounios: oh gotcha. i misunderstood
[17:07:45 CET] <lkounios> alexpigment, Interesting. Didn't have that issue on my end.
[17:07:53 CET] <alexpigment> k
[17:08:18 CET] <lkounios> Anyway. I'll experiment tomorrow without a composite manager. Thank you for all the assitance, alexpigment and debianuser! Have a great day!
[17:08:44 CET] <alexpigment> k good luck. sorry i couldn't help out (apparently we weren't seeing the same issue anyway)
[17:11:35 CET] <debianuser> lkounios: Also you've probably already seen it, but just in case you haven't, there's a "Force Full Composition Pipeline" option in `nvidia-settings`: https://i.stack.imgur.com/P8nKc.png Theoretically it's more important for playback/display, not for capture, but maybe in your case it somehow affects capture too, so it's worth to try anyway.
[17:12:03 CET] Action: debianuser 'd blame either ffmpeg or compositor.
[17:12:23 CET] <AppleTor> i'm trying to download downlaod a video from m3u file. but got HTTP error 403 Forbidden as an error message. weirdly, the playlist run just fine on vlc :/ any idea why
[17:13:22 CET] <AppleTor> ffmpeg -i "/Users/UserName/Downloads/1.m3u" -c copy -bsf:a aac_adtstoasc 1.mp4
[17:13:37 CET] <AppleTor> the command line is correct right ?
[19:52:15 CET] <b0bby__> hello
[19:52:58 CET] <b0bby__> what does undefined reference to symbol 'av_frame_free@@LIBAVUTIL_FFMPEG_54' mean?
[19:53:07 CET] <b0bby__> how do I fix it?
[20:00:31 CET] <Fyr> to avoid this error you need to recompile FFMPEG.
[20:01:08 CET] <Fyr> header file contains the function which source is absent.
[20:15:38 CET] <b0bby__> Fyr: can I just install the devkit from apt-get
[20:21:40 CET] <Fyr> who knows
[20:36:46 CET] <saml> how do I get psnr of a video?
[20:40:36 CET] <kepstin> saml: 'ffmpeg -i original.mkv -i reencoded.mkv -filter_complex psnr -f null -' will log it to the console. The filter has additional options to e.g. log per frame, see the ffmpeg-filters doc for details.
[20:40:40 CET] <durandal_1707> saml: google is your friend
[20:42:25 CET] <saml> thanks. so it's not ffprobe
[20:44:54 CET] <kepstin> I mean, I suppose you could technically do it inside ffprobe if you used a lavfi input.
[21:11:24 CET] <b0bby__> I'm having so much trouble with just compiling a basic ffmpeg program(all linking errors) I have the github source where should I go from here for a proper compilation. If someone could help me that would be great.
[21:12:19 CET] <JEEB> compile FFmpeg and *install* it to a prefix. use --prefix=/some/prefix (default is /usr/local) . if you use a custom prefix you can also remove it easily from your system
[21:13:12 CET] <JEEB> afterwards use PKG_CONFIG_PATH=/some/prefix/lib/pkgconfig with pkg-config --cflags | --libs lib{avcodec,avformat,avfilter,avutil}
[21:13:28 CET] <JEEB> use pkg-config and you get the correct flags to link against those libraries :P
[21:13:43 CET] <JEEB> and if it's the examples then I already linked you to the README included
[21:14:02 CET] <JEEB> they can be built against an installed FFmpeg like a proper 3rd party thing, or as a part of FFmpeg's source tree
[21:14:10 CET] <JEEB> both ways are mentioned in the README
[21:19:06 CET] <b0bby__> JEEB: ok will configure and make.
[21:20:07 CET] <JEEB> you can't really utilize what's in the source tree as-is :P esp. since you lack pkg-config files which make your life generally much simpler.
[21:20:25 CET] <JEEB> I usually do something like /home/jeeb/ownapps or /home/jeeb/ffmpeg_prefix
[21:20:38 CET] <JEEB> where I install stuff I build myself :P
[21:34:27 CET] <b0bby__> JEEB: ok
[21:35:28 CET] <b0bby__> my libs are installed in /mylibs/ffmpeg what should I do to compile https://raw.githubusercontent.com/mpenkov/ffmpeg-tutorial/master/tutorial01…
[21:36:37 CET] <b0bby__> JEEB: what should I do next?
[21:36:51 CET] <JEEB> it tells you to use the Makefile that came with it :P but really, you should know which libraries you're using (I see libavcodec, libavformat and libswscale being used there
[21:37:31 CET] <JEEB> so `PKG_CONFIG_PATH=/mylibs/ffmpeg/lib/pkgconfig gcc <your code's values> $(pkg-config --libs libavcodec libavformat libswscale)`
[21:37:36 CET] <JEEB> I think that should work :P
[21:37:41 CET] <JEEB> also probably ou need the --cflags as well
[21:38:17 CET] <JEEB> you can first test by just doing `PKG_CONFIG_PATH=/mylibs/ffmpeg/lib/pkgconfig pkg-config --cflags --libs libavcodec libavformat libswscale`
[21:38:27 CET] <JEEB> that should give you the -I and -L -l
[21:38:32 CET] <JEEB> for those three libraries
[21:39:07 CET] <b0bby__> JEEB: undefined reference to symbol 'av_frame_free@@LIBAVUTIL_FFMPEG_54'
[21:39:31 CET] <JEEB> check what you get from pkg-config
[21:39:50 CET] <b0bby__> JEEB: How?
[21:39:53 CET] <JEEB> also that's libavutil and it should be in that line but if you want explicitly define it, add it to the pkg-config line as well
[21:40:08 CET] <JEEB> b0bby__: by, you know, running the command I noted?
[21:40:49 CET] <b0bby__> JEEB: the `PKG_CONFIG_PATH=/mylibs/ffmpeg/lib/pkgconfig pkg-config --cflags --libs libavcodec libavformat libswscale`
[21:40:55 CET] <b0bby__> ?
[21:41:21 CET] <JEEB> yes?
[21:42:09 CET] <b0bby__> JEEB: bash: -I/usr/include/x86_64-linux-gnu: No such file or directory
[21:42:18 CET] <JEEB> what are you doing?
[21:45:05 CET] <b0bby__> JEEB: -I/mylibs/ffmpeg/include -L/mylibs/ffmpeg/lib -lavformat -lm -lz -lavcodec -pthread -lm -lz -lva -ldl -lswresample -lm -lswscale -lm -lavutil -pthread -lva -lva-drm -lva -lva-x11 -lX11 -lvdpau -lX11 -lm -lva -ldl
[21:45:16 CET] <JEEB> there you go
[21:46:27 CET] <b0bby__> Oh my god
[21:46:30 CET] <b0bby__> it works
[21:46:34 CET] <b0bby__> THANK YOU!
[21:46:43 CET] <JEEB> :)
[21:46:56 CET] <JEEB> learn how pkg-config can help you help yourself
[21:47:09 CET] <JEEB> "I'd like to utilize this library and it has a .pc file, please tell me what I need"
[22:01:46 CET] <b0bby__> hello
[22:02:42 CET] <b0bby__> compiled encode_video.c from the examples and libx264 is missing. So is libvorbis
[22:03:39 CET] <JEEB> did you enable those in your FFmpeg compile?
[22:04:12 CET] <JEEB> of course requires that you actually have those libraries' development headers and libraries installed
[22:04:59 CET] <b0bby__> JEEB is there an enable all option / what is dev packages should I install
[22:05:36 CET] <JEEB> no there is no enable-all, you enable what you need. the packages depend on what distro you are, which I cannot know now can I?
[22:06:34 CET] <b0bby__> JEEB: I'm on ubuntu
[22:06:54 CET] <JEEB> libx264-dev and libvorbis-dev or so I would guess then :P
[22:07:09 CET] <JEEB> search your package repos
[22:07:14 CET] <JEEB> (and hope the versions are new enough)
[22:07:57 CET] <b0bby__> Do I have to recompile?
[22:08:34 CET] <JEEB> FFmpeg? yes.
[22:08:40 CET] <JEEB> for libx264 you need --enable-gpl --enable-libx264
[22:08:47 CET] <JEEB> for libvorbis it's just --enable-libvorbis
[22:08:49 CET] <JEEB> IIRC
[22:10:52 CET] <rdz> hey all. is it possible to use ffmpeg as a source client for shoutcast streaming server?
[22:11:37 CET] <JEEB> you mean being the transcoder that feeds into a streaming server?
[22:11:43 CET] <rdz> i was able to make it work with icecast2 (2.4.2), but fail to do so with shoutcast (2.5.2)
[22:11:48 CET] <rdz> JEEB, exactly
[22:11:51 CET] <JEEB> yes, if the input protocol is supported
[22:12:11 CET] <JEEB> and of course you need to keep in mind which formats each media server supports
[22:12:32 CET] <rdz> JEEB, input is mp3, output is mp3 with lower bitrate
[22:13:08 CET] <b0bby__> JEEB: ok trying ./configure --enable-gpl --enable-libx264
[22:13:25 CET] <JEEB> remember your prefix :P
[22:13:57 CET] <b0bby__> yes
[22:16:00 CET] <rdz> JEEB, i'm running into exactly the same problem as described here: https://lists.ffmpeg.org/pipermail/ffmpeg-user/2015-November/029257.html
[22:16:39 CET] <rdz> so i wonder whether the situation has changed in the meanwhile...
[22:16:40 CET] <JEEB> you'd have to debug the server if it says anything :P
[22:16:55 CET] <JEEB> also I have no idea if shoutcast actually uses the same protocol as icecast
[22:16:59 CET] <rdz> good point :-)
[22:17:01 CET] <JEEB> so you really will have to look into that
[22:17:03 CET] <rdz> thhanks
[22:18:56 CET] <rdz> when i connect with ffmpeg it doesn't even trigger a log entry....
[22:18:59 CET] <rdz> strange
[22:19:16 CET] <JEEB> if you like spam you can try -v debug and hope that you get any hints
[22:22:28 CET] <rdz> JEEB, what does 'broken pipe' mean?
[22:23:07 CET] <JEEB> "a condition in programming (also known in POSIX as EPIPE error code and SIGPIPE signal), when a process requests an output to pipe or socket, which was closed by peer."
[22:23:17 CET] <JEEB> in your case probably a socket
[22:23:25 CET] <JEEB> so the other side just said nope :P
[22:23:57 CET] <rdz> JEEB, i guess i figured it out...
[22:24:09 CET] <rdz> i mean i might found the reason
[22:24:33 CET] <rdz> i tried to connect with nc and the first thing it said was "bad password"
[22:25:00 CET] <rdz> so i tried again with nc and only entered (without any HTTP bla) the plain pasword and i got a positive respnse
[22:25:10 CET] <rdz> it seems the shoutcast protocol is pretty fucked up....
[22:25:16 CET] <rdz> only using http later in the process..
[22:25:28 CET] <JEEB> well, enjoy
[22:25:54 CET] <rdz> but why keep people in mailinig list and in channel here saying that it is supposed to work?
[22:26:04 CET] <saml> is ffmpeg good
[22:26:05 CET] <JEEB> I have no idea
[22:26:19 CET] <JEEB> saml: it sucks but for what it does it's one of the only things that does what it does
[22:26:21 CET] <saml> or do people create their own using libffmpeg?
[22:26:27 CET] <JEEB> oh you meant in that sense
[22:26:37 CET] <JEEB> yes, most people first get something going with ffmpeg.c
[22:26:40 CET] <JEEB> also there's no libffmpeg
[22:26:59 CET] <JEEB> there's libavcodec,-format,-util,-device,-filter,libswscale
[22:27:00 CET] <saml> yeah, like demuxing and decoding once and do all filtering in parallel and possibly share some of results before encoding and muxing
[22:27:12 CET] <saml> ah i see
[22:27:44 CET] <JEEB> but sooner or later people notice that ffmpeg.c is something done for some specific uses (it can be used for a lot, but it definitely can't do everything you could do with the libraries)
[22:27:51 CET] <saml> what's bottleneck? decoding or swscale or filter?
[22:28:06 CET] <JEEB> it really depends on what you're doing :P
[22:28:21 CET] <JEEB> if your decoder and encoder are fast then usually the filtering ends up being the bottleneck
[22:28:35 CET] <JEEB> that said, you can do the filtering yourself or use some other library for filtering if you think that is faster
[22:28:47 CET] <JEEB> since avcodec gives you the decoded pictures as AVFrames
[22:28:52 CET] <saml> i want to parallelize ffmpeg stuff so that customers can see their uploaded video being ready quicker
[22:29:38 CET] <saml> hrm i see
[22:31:00 CET] <JEEB> anyways, I recommend you actually use some sort of time-tracing thing
[22:31:06 CET] <JEEB> to see what your actual bottleneck is
[22:35:05 CET] <saml> thanks
[22:35:17 CET] <saml> what is -lavfi ?
[22:35:26 CET] <JEEB> libavfilter
[22:35:53 CET] <saml> The libavfilter library provides a generic audio/video filtering framework containing several filters, sources and sinks.
[22:36:20 CET] <saml> hrm. if I want to get PSNR, ffmpeg -i original.mp4 -i transcoded.mp4 -lavfi psnr="stats_file=psnr.log" -f null -
[22:36:28 CET] <JEEB> oh right, the ffmpeg.c parameter
[22:36:44 CET] <kepstin> saml: it's the same thing as -filter_complex on the ffmpeg tool
[22:36:52 CET] <saml> i do that. but psnr.log doesn't contain average psnr
[22:36:58 CET] <JEEB> right, I though that was the case. thanks for confirming
[22:37:02 CET] <saml> oh i see
[22:37:14 CET] <kepstin> saml: no, that contains per-frame psnr. I think the average is printed to the console output.
[22:37:30 CET] <saml> so i have to parse stderr as well
[22:37:51 CET] <kepstin> ffmpeg isn't meant to have programmatically parsable output, unfortunately :/
[22:38:03 CET] <saml> i wish output could be json. looks like only ffprobe supports -print_format json
[22:38:42 CET] <saml> someone must have created programmable python module for ffmpeg :P
[22:39:55 CET] <kepstin> well, there's two kinds of libraries to use ffmpeg. The first kind just makes command-lines for the cli tool, and they wouldn't really help with this. The second kind is bindings to libav*, and they're generally pretty hard to use and often old/incomplete :/
[22:40:21 CET] <saml> okay time to rewrite it in rust
[22:41:12 CET] <JEEB> bindgen is pretty good
[22:41:26 CET] <JEEB> although it fails with many C stdlibs' maths libraries
[22:42:09 CET] <JEEB> https://github.com/rust-lang-nursery/rust-bindgen/issues/687
[22:44:26 CET] <saml> reading https://www.ffmpeg.org/ffmpeg-all.html#psnr looks like psnr doesn't make sense if original and transcoded videos have different resolution
[22:45:11 CET] <kepstin> saml: yep, not an intended use. You could compare psnr between the original and the transcoded resized back to the original, but that's also measuring the particular upscaler as well as the codec
[22:45:23 CET] <kepstin> and psnr doesn't really match human vision all that well anyways
[22:45:46 CET] <saml> i see
[22:56:52 CET] <b0bby__> hello
[22:57:08 CET] <b0bby__> compiling encode.c from examples
[22:57:26 CET] <b0bby__> using libvpx codec to produce a webm
[22:57:33 CET] <b0bby__> the webm won't play
[22:57:36 CET] <b0bby__> why?
[23:01:54 CET] <saml> maybe i can scale original down to transcoded resolution before psnr
[23:02:25 CET] <alexpigment> b0bby__ : come on, man. that's like calling a car repairman and saying "my car won't start. why?"
[23:02:54 CET] <alexpigment> any additional details would get closer to an answer. a sample file would be ideal
[23:04:45 CET] <b0bby__> https://expirebox.com/download/10aeedc43bdfa136c39fdf479713f806.html
[23:05:13 CET] <alexpigment> there's no video or audio streams in the file
[23:05:53 CET] <b0bby__> encode.c said is wrote packets
[23:06:48 CET] <alexpigment> well, it may have written them, but not in a way that anything can understand
[23:07:45 CET] <b0bby__> I used https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/doc/examples/encode_… to create the video but I don't know whats wrong
[23:13:33 CET] <b0bby__> Would it be bad practice to call ffmpeg over the command line inside c++
[23:13:38 CET] <b0bby__> ?
[23:14:26 CET] <JEEB> no, but you're just limited with that
[23:14:31 CET] <JEEB> to what ffmpeg.c can do
[23:14:46 CET] <JEEB> if that is good enough, knock yourself out
[23:15:13 CET] <b0bby__> ok
[23:18:52 CET] <b0bby__> How would I combine multiple videos(different formats and frame rate and audio bitrates) into one video of a some width and height. The videos should all have their aspect ratio preserved and if the can be stretched they should be placed on top of a black background.
[23:29:41 CET] <kepstin> b0bby__: to do that with the ffmpeg cli tool, you'd have to make a complicated filter chain that resizes and pads each video before concatenating them.
[23:31:53 CET] <kepstin> if you're making an app using the api, you'd open and decode each video in turn, resize/pad frames to the correct size (possibly using libavfilter), then send each one on to the encoder/muxer (you'll might have to do some corrections to timestamps to do the concatenation properly)
[00:00:00 CET] --- Fri Jan 19 2018
1
0
[00:02:10 CET] <cone-557> ffmpeg 03Sean McGovern 07master:7b0b5bc810cd: cmdutils: update copyright year to 2018
[00:02:12 CET] <cone-557> ffmpeg 03Mark Thompson 07master:68de778ccc35: Merge commit '7b0b5bc810cdb9ef100492c9a9f2d30602c04336'
[00:04:22 CET] <jkqxz> Next is AMF. I'm not sure I want to disentangle all the random cosmetics from Luca here.
[00:27:17 CET] <cone-557> ffmpeg 03Michael Wootton 07master:34c113335b53: Add support for H.264 and HEVC hardware encoding for AMD GPUs based on AMF SDK
[00:27:18 CET] <cone-557> ffmpeg 03Mark Thompson 07master:3895fce26ec7: Merge commit '34c113335b53d83ed343de49741f0823aa1f8cc6'
[00:28:06 CET] <jkqxz> I really don't like how that got a different author in the two tines, but there isn't much we can do about that now.
[00:33:13 CET] <cone-557> ffmpeg 03Maxym Dmytrychenko 07master:cbe28bc069dd: qsv: better to use alignment by 16 and HEVC 10b requires alignment by 32
[00:33:14 CET] <cone-557> ffmpeg 03Mark Thompson 07master:96cf0d8a9cf3: Merge commit 'cbe28bc069dde1d53d937ee10700bb123279c7c8'
[00:35:26 CET] <jkqxz> wbs: Should I merge the next one?
[02:14:13 CET] <TimothyGu> how good is performance of Clang compared to GCC these days
[02:17:50 CET] <atomnuker> if https://www.phoronix.com/scan.php?page=article&item=clang6-gcc8-epycznver1&… is anything to go by it depends but mostly gcc is slightly faster
[02:21:06 CET] <TimothyGu> well I don't really have a 64-core ryzen so idk if that's the best benchmark to use for me...
[02:29:11 CET] <DHE> but gcc 8.0 is still a pre-release isn't it?
[02:40:12 CET] <jamrial> using znver1 is a bad idea on gcc for the time being. it's not been fully tuned since its addition, where they at first just copied bdver4 values
[02:41:07 CET] <jamrial> i remember seeing some tests where using haswell, skylake or even generic as march/mtune yielded better results
[07:55:04 CET] <wbs> jkqxz: feel free to
[14:11:19 CET] <RiCON> wm4 (?): it's disabled by default
[14:13:10 CET] <wm4> yes that's me
[14:13:15 CET] <wm4> it is?
[14:13:36 CET] <wm4> {"http_persistent", "Use persistent HTTP connections",
[14:13:36 CET] <wm4> OFFSET(http_persistent), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, FLAGS },
[14:13:45 CET] <wm4> I think that means on by default
[14:14:17 CET] <wm4> http_multiple too
[14:14:27 CET] <wm4> though there are things that can disable them
[14:18:11 CET] <RiCON> oh ok, i thought 1 meant false
[14:18:29 CET] <RiCON> keep mistaking it with bash
[15:23:39 CET] <SortaCore> wait, init_output_stream() is only called after the stream has already closed?
[15:39:27 CET] <SortaCore> why am I getting a filter with libx264?
[15:39:37 CET] <wm4> ?
[15:42:53 CET] <SortaCore> ffmpeg -report -rtsp_transport tcp -i "rtsp://[censored]" -c:v libx264 -debug_ts -y "X:\h264frames\libx264rtsp.mp4"
[15:43:16 CET] <SortaCore> copy_ts posts times from a filter, but I've not specified one
[15:43:32 CET] <SortaCore> one = a filter
[15:44:09 CET] <SortaCore> is it a pts/dts fix because libx264 whines about non-monotonic otherwise?
[15:48:44 CET] <rcombs> SortaCore: it's referring to the buffer or scale filter
[15:49:07 CET] <rcombs> all ffmpeg.c transcodes go through a filter chain, even if it's effectively a no-op one
[15:51:30 CET] <SortaCore> I didn't see it for copy codec, so is that the exception?
[15:52:04 CET] <BtbN> that's not a transcode
[15:52:07 CET] <BtbN> there's nothing to filter
[15:52:39 CET] <SortaCore> derp
[15:57:05 CET] <SortaCore> I used to have PTS = DTS = framenum++; but I heard that was bad
[15:57:19 CET] <SortaCore> so now I'm basically going through all the codecs I use and trying to replicate ffmpeg.c's timing
[15:58:02 CET] <BtbN> if your timebase is setup like that, and you have no re-ordering, that's the normal way it will look like
[15:59:08 CET] <DHE> SortaCore: remember ffmpeg has to deal with all kinds of scenarios with weird inputs, formats with different requirements, etc. if you have narrow needs and known codecs/formats, that can be valid
[15:59:19 CET] <DHE> then again, usually you use a dts value provided by the encoder
[15:59:32 CET] <SortaCore> see, I'm getting it from RTSP, and I'm not sure how that works
[15:59:41 CET] <SortaCore> for all I know the frames aren't read at a regular pace
[15:59:59 CET] <SortaCore> it's from a live feed and I don't want people juddering across the screen
[16:00:30 CET] <BtbN> that sounds like a horrible source
[16:00:45 CET] <SortaCore> I think the source is fine, but I dunno
[16:00:47 CET] <BtbN> Just pass along the input timestamps and timebase, and you should be fine though
[16:00:59 CET] <SortaCore> yea, except all the codecs complain about that
[16:01:20 CET] <SortaCore> libx264 complains with every packet, and most of them complain about the first five or so
[16:01:21 CET] <BtbN> your source is indeed messing something up then
[16:02:56 CET] <DHE> if you join the stream on a non-keyframe, then yes the decoder will complain for a while until it gets its first keyframe
[16:03:39 CET] <SortaCore> I thought ffmpeg.c automatically waited for the first keyframe?
[16:04:04 CET] <SortaCore> I'm waiting in my C++ code for the keyframe, but still get the complains, but more importantly ffmpeg.c complains too
[16:06:28 CET] <SortaCore> hold on, I'll paste
[16:10:25 CET] <SortaCore> https://pastebin.com/raw/gLDH8Tyf
[16:10:42 CET] <SortaCore> whoopsies it has a login
[16:10:54 CET] <SortaCore> don't nobody pro hax that
[16:12:06 CET] <SortaCore> but yea, the first packet is timed at dts 0.95, so ffmpeg offsets everything back by -0.9, and then the first five packets have invalid time
[16:13:14 CET] <wm4> nice, this just became a free rtsp test stream!
[16:13:30 CET] <SortaCore> nuuu
[16:14:24 CET] <SortaCore> I'll get the guy to change it so you can't spy on a security office
[16:14:34 CET] <SortaCore> but whatever burns your bacon
[16:15:04 CET] <wm4> you can probably delete the paste, dunno?
[16:15:11 CET] <SortaCore> nah, I'm guest
[16:15:35 CET] <SortaCore> you need a pro pastebin account to do that
[16:16:11 CET] <SortaCore> that doesn't demonstrate the bug, actually, which is kinda dumb because I remember it happening there
[16:16:15 CET] <SortaCore> lemme try another codec
[16:17:11 CET] <SortaCore> wait, you need the scale filter for using qsv?
[16:20:00 CET] <wm4> you might?
[16:20:13 CET] <wm4> the scale filter just converts pixfmts
[16:20:29 CET] <wm4> if the qsv encoder doesn't take your input pixfmt, it has to be converted
[16:25:09 CET] <SortaCore> well, input pixel format is yuvj420p, and qsv needs either nv12 or qsv
[16:25:23 CET] <nevcairiel> well there you go, it needs converting then
[16:26:28 CET] <JEEB> (even if the data is the same, it has to be half-packed which is what nv12 is)
[16:35:17 CET] <SortaCore> *making intensifies*
[17:33:36 CET] <SortaCore> I think I was decoding with h264_qsv and then transcoding to another codec, which woulud explain the issues
[18:16:00 CET] <wm4> does anyone remember the nature of the recent windows configure slowness and whether it was fixed?
[18:36:39 CET] <atomnuker> I'd agree to switch to meson as long as we dump the configure script and I don't have to do the porting :)
[18:42:58 CET] <jamrial> wm4: win 10 falls creator seems to have an issue with process creation, which can lead to 15 min configure runs
[18:43:25 CET] <wm4> I think it's more like 20 min for me
[18:43:33 CET] <wm4> atomnuker: wasn't there a Libav POC
[18:48:22 CET] <iive> I think this was pointed as possible reason for the windows configure slowness... and it should have been addressed by MS update https://randomascii.wordpress.com/2017/07/09/24-core-cpu-and-i-cant-move-my…
[18:48:53 CET] <wm4> yeah someone else also pointed this out
[18:49:04 CET] <wm4> but not sure if it's that
[19:00:06 CET] <nevcairiel> that one was fixed, so its not that =p
[19:06:37 CET] <wm4> my install might not have the update yet then
[19:07:21 CET] <jamrial> in any case, if you're developing and not making a build for distribution, a "workaround" is to disable components you're not going to use
[19:07:42 CET] <jamrial> so the dependency checks finish faster
[19:21:53 CET] <iive> well, the article also kind of show the method to investigate the issue, if you are running win10 yourself.
[20:05:09 CET] <cone-254> ffmpeg 03Jun Zhao 07master:383804edd812: lavfi/deinterlace_vaapi: fix can't show full option information.
[20:05:10 CET] <cone-254> ffmpeg 03Gyan Doshi 07master:e1e89c0695b4: avfilter/vidstab: check bytesPerPixel only for packed formats.
[20:23:37 CET] <jya> who worked on the Apple AT decoder?
[20:24:06 CET] <jya> Rodger Combs from blame.. what's his irc handle?
[20:25:20 CET] <JEEB> rcombs
[20:25:29 CET] <rcombs> oh no what did I do
[20:25:35 CET] <rcombs> is it the channel layout bug
[20:27:30 CET] Action: JEEB plays some dramatic nier: automata OST music
[20:28:25 CET] Action: rcombs plays weight of the world instead
[20:28:41 CET] <JEEB> :D
[20:29:06 CET] Action: JEEB needs to finish B,C,D,E still
[20:29:20 CET] <rcombs> woooow
[20:29:28 CET] <rcombs> and here I thought I was late getting through those
[20:29:35 CET] <JEEB> yea, I used 40h for A and then Stuff
[20:29:52 CET] <JEEB> I was kind of put off by it not warning that I had hit the final mission :<
[20:30:02 CET] <JEEB> suddenly my pass rate went down by 10% or so
[20:30:07 CET] <JEEB> in unfinished subquests
[20:30:17 CET] <rcombs> dw you can go back to them later
[20:30:30 CET] <rcombs> you get a mission select once you finish& I forget what exactly
[20:30:37 CET] <rcombs> some point in one of the later routes
[20:30:46 CET] <JEEB> yea, but I had gotten through various things like emil's challenge
[20:30:53 CET] <JEEB> and just never activated the reward
[20:30:55 CET] <JEEB> :>
[20:31:22 CET] <rcombs> I _think_ those flags stay? Not 100% sure though
[20:31:40 CET] <JEEB> at least the pass % went down
[20:31:43 CET] <JEEB> will check later
[20:32:48 CET] <rcombs> jya: well did you have a question or were you just curious who I was
[21:00:00 CET] <jamrial> https://bitbucket.org/multicoreware/x265/commits/f09f3b4a21151de001fee2bb9e… https://bitbucket.org/multicoreware/x265/commits/b4edf9b44d234dd2ee5c8d41ee…
[21:00:15 CET] <jamrial> sometimes i wonder why we ever bother to add new functions with weird suffixed names to not break the API when other projects don't seem to give half of a shit about it
[21:01:09 CET] <wm4> indeed
[21:02:09 CET] <BtbN> Because they bump their soname every few days
[21:02:30 CET] <atomnuker> ^^that, its annoying
[21:03:43 CET] <jamrial> BtbN: doens't matter, they broke API
[21:03:57 CET] <jamrial> 2.7 will not be source compatible with 2.6 without preprocessor checks for the same damned function
[21:04:01 CET] <BtbN> yeah, but that way they only annoy devs, and not users with crashes
[21:08:31 CET] <jamrial> atomnuker: not really. while x264 and x265 are admitedly overkill with their soname bumps, doing one per year or so is nice to keep the tree clean and prevent headaches that are result of several releases having to be binary compatible
[21:08:42 CET] <Chloe> wm4: what should I be using instead of pthread_once
[21:08:48 CET] <jamrial> see ffmpeg from 3.0 to 3.4
[21:10:23 CET] <wm4> Chloe: ff_thread_once
[21:11:07 CET] <wm4> Chloe: that's just #defined to the pthread ones to avoid build failure of threads are disabled
[21:11:18 CET] <Chloe> right
[21:11:20 CET] <wm4> (I have no idea why you can build ffmpeg with threads disabled)
[21:19:18 CET] <Chloe> wm4: so to summarise: 1) remove if(x) x->next = null; stuff 2) replace all pthread_once with ffmpeg NIH 3) remove RTP_NEXT api deprecation (just remove it) 4) safe-for-threads-ify lavd -> lavf bridge
[21:19:23 CET] <Chloe> right?
[21:22:22 CET] <wm4> uh probably
[21:22:50 CET] <wm4> I don't remember if that's complete, but sounds right
[21:24:41 CET] <Chloe> and yes, the decision to have the lavd and lavf lists separate with the new API is not a mistake, it will need to be supported in FFmpeg, but that's not too difficult
[21:25:36 CET] <wm4> that'd probably be an API break though
[21:25:49 CET] <wm4> so the old API still has to support it
[21:25:59 CET] <Chloe> the old api does still support it
[21:26:10 CET] <Chloe> through the lavf callback
[21:26:10 CET] <wm4> it appears sometimes format probing also picks libavdevice demuxers
[21:27:23 CET] <Chloe> apart from registering external things, all the old APIs should behave exactly the same to a user
[21:27:33 CET] <JEEB> wm4: how the flying... :D
[21:28:00 CET] <wm4> I noticed because mpv /dev/video0 apparently uses the lavd v4l demuxer
[21:28:13 CET] <wm4> (you must have such a device file)
[21:28:49 CET] <wm4> if (av_strstart(p->filename, "/dev/video", NULL))
[21:28:53 CET] <wm4> lol
[21:31:45 CET] <JEEB> lol
[21:35:32 CET] <Chloe> wm4: so I can just remove ff_ functions? are they not public api or...?
[21:35:53 CET] <JEEB> ff_* are not public, yes
[21:35:55 CET] <JEEB> av_* are
[21:36:36 CET] <wm4> yeah, all public API starts with av
[21:36:56 CET] <wm4> (with avpriv not being public, but part of the ABI, idiotically)
[21:53:08 CET] <Chloe> I thought I was being clever by doing everything on a separate branch but now it's messed the history up.
[21:53:29 CET] <JEEB> rip
[22:18:40 CET] <jya> rcombs: i did have a question :)
[22:19:21 CET] <jya> sorry, I got AFK ,
[22:19:31 CET] <jya> or more accurately, I was wondering where you got your documentation.
[22:21:01 CET] <jya> today I had a file that didn't play for me, while your decoder handled it fine
[22:23:34 CET] <rcombs> huh, surprising
[22:23:45 CET] <rcombs> jya: it's nothing secret, just apple's public docs and header files
[22:23:59 CET] <rcombs> docs at developer.apple.com, headers in the SDK
[22:25:47 CET] <BtbN> I really wonder what idiot made the HLS player on the PS4
[22:26:07 CET] <BtbN> Every time it automatically changes quality, it restarts the other qualities playlist from the top
[22:26:17 CET] <durandal_1707> jya: what file?
[22:26:21 CET] <BtbN> so it constantly jumps back like 10 seconds when it decides to change quality. Which it does a lot.
[22:26:44 CET] <BtbN> So with a bad connection, you watch in reverse...
[22:26:54 CET] <BtbN> until it can't anymore
[22:27:06 CET] <jya> and the difference was to set the magic cookie on the converter https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/audiotoolboxdec.c#L…
[22:29:11 CET] <durandal_1707> what decoder didnt worked?
[22:32:08 CET] <rcombs> "magic cookie" just means extradata
[22:32:16 CET] <nevcairiel> with some magic cookie header, apparently
[22:33:22 CET] <rcombs> nevcairiel: which is just however the extradata is formatted in MP4
[22:34:09 CET] <rcombs> so for AAC you have to convert ADTS to ASC and then wrap it in the ESDS which is fucking obnoxious and pointless
[22:34:17 CET] <rcombs> but it's not like it's just something they made up
[22:35:52 CET] <jya> rcombs: I found no documentation related to some of the stuff you do :)
[22:36:02 CET] <jya> durandal_1707: firefox one on mac
[22:37:20 CET] <rcombs> jya: I don't remember where I learned everything that goes into that, it was mostly a lot of testing and general research
[22:38:08 CET] <rcombs> a few times I did run afplay or afconvert under lldb on an input file that wasn't working, and look at which APIs it called with what data
[22:39:05 CET] <nevcairiel> i did that for something else a few years ago, so annoying to reverse engineer api usage, write proper docs ffs
[22:39:32 CET] <rcombs> there was one API that was actually straight-up broken
[22:39:48 CET] <rcombs> the function to parse an MPEG audio header
[22:39:51 CET] <rcombs> which is a 4-byte value
[22:40:04 CET] <nevcairiel> oh i remember that
[22:40:14 CET] <nevcairiel> it takes like a pointer or something instead of the value, right
[22:40:16 CET] <rcombs> the docs indicate you pass in a pointer to a char array, and a size (presumably you're supposed to point to the packet)
[22:40:39 CET] <rcombs> but looking at the disassembly, it looks like there was a stray & somewhere
[22:40:50 CET] <rcombs> which wouldn't have yielded a compiler warning, because the arg is a void*
[22:41:02 CET] <nevcairiel> so do they just not call this function anywhere, or also hack around it? =p
[22:41:05 CET] <rcombs> so instead of passing your pointer to the parser, it passed a pointer to your pointer
[22:41:40 CET] <rcombs> so it actually worked if you casted your pointer to int32_t*, dereferenced it, and casted the result to intptr_t and then to void*
[22:41:43 CET] <nevcairiel> thats what happens when the only api consumer and the api itself are basically written at the same time
[22:41:50 CET] <nevcairiel> you write it broken and noone notices
[22:41:54 CET] <rcombs> nevcairiel: as far as I can tell there is no consumer
[22:42:10 CET] <rcombs> I reported it and they said it looked fine
[22:42:24 CET] <rcombs> and I'm like "no look I have example code and can point at the exact line of assembly where it went wrong"
[22:42:39 CET] <rcombs> and then they fixed it with no release note in the next patch release
[22:44:42 CET] <jya> rcombs: ok... the one thing i had to hack around pretty bound was adding HE-AAC support for content where the SBR is inband
[22:44:52 CET] <jya> and everything look like an AAC-LC
[22:45:00 CET] <rcombs> oh yeah that's a fine mess
[22:45:13 CET] <rcombs> since you have to tell it the channel count and sample rate ahead of time
[22:45:42 CET] <rcombs> and there's no API (that I'm aware of) to find that out just with packet data
[22:45:48 CET] <rcombs> (there is at the container level)
[22:47:52 CET] <jya> rcombs: so what I did is wrap the content in an ADTS stream, I then create a FileStream on it, and feed samples. I listen to metadata callback to see if it can extract a magic cookie
[22:50:33 CET] <jya> and then I create a new decoder with the final number of channels and sampling rate
[23:05:53 CET] <rcombs> jya: yeah that works
[23:06:21 CET] <rcombs> I might do that in lavc if any of my users ever complains
[23:06:30 CET] <rcombs> patch welcome of course
[23:08:57 CET] <jya> rcombs: https://searchfox.org/mozilla-central/source/dom/media/platforms/apple/Appl… the issue is that you must make the decoder creation/initialization lazy
[23:09:33 CET] <rcombs> it already is, to some extent
[23:09:34 CET] <jya> here I store the aac packet in an array until extradata got extracted or 2-3 packets are seen
[23:09:47 CET] <rcombs> see the distinction between ffat_init_decoder and ffat_create_decoder
[23:10:26 CET] <rcombs> it'd need a queue, though
[23:41:04 CET] <cone-254> ffmpeg 03James Almer 07master:1b5d3c08e3fb: avformat: small cosmetics after 6512ff72f9
[00:00:00 CET] --- Thu Jan 18 2018
1
0
[00:59:44 CET] <cemil> Hi all; looking for some assistance with a really funky file format. Original file is in an unknown MPEG-2 container. At present it can only be played out & decoded through a Pinnacle Targa 3200 hardware card (at 1x speed). We've got a lot of these files and are trying to transcode them in an easier fashion. Long story short, ffplay will try to play the file, semi-successfully.
[01:00:21 CET] <cemil> ffprobe reports: https://pastebin.com/xiLPzzuG
[01:01:04 CET] <cemil> GOP is 126, if that helps, beyond that I don't have a ton of info. I do have the final decoded file - but it's been out through Pinnacle card and re-ingested, so it's not a direct transcode. Thoughts?
[01:02:00 CET] <cemil> One other bit of info, each content file comes with a ".AWI" file attached - small file (377kb) of unknown origin/type. Not sure if relevant.
[01:02:21 CET] <cemil> Any help greatly appreciated. Thanks.
[02:23:23 CET] <SilenceDogood> Hey there folks
[02:23:46 CET] <SilenceDogood> I'm trying to create a 3D edition of Dark Side of the Rainbow
[02:25:11 CET] <SilenceDogood> That means I'm trying to combine the "Wizard of Oz 3-D" bluray with the Dark Side of the Moon 2011 immersion edition bluray surround sound mix.
[02:27:03 CET] <SilenceDogood> It's fairly easy to map the video stream from the one and the audio stream from the other together onto a new file, but I want to move the audio over so that it syncs properly
[02:27:08 CET] <SilenceDogood> Currently it's about 12 seconds fast.
[02:27:18 CET] <SilenceDogood> Although that's just a ballpark estimate
[02:27:35 CET] <SilenceDogood> Here's my command: ffmpeg -i oz.mkv -i 00014.m2ts -map 0:0 -map 1:1 -vcodec copy -metadata:s:v:0 stereo_mode=1 -ss 29:00 -t 15 floyd.mkv
[02:28:22 CET] <SilenceDogood> 00014.m2ts is from the pink floyd DVD and oz.mkv is the Wizard of Oz
[02:29:39 CET] <SilenceDogood> oops I meant bluray
[02:29:46 CET] <SilenceDogood> hahaha dvd. thats old now
[02:30:17 CET] <SilenceDogood> How could I make the 1:1 mapping to be moved over 12 seconds?
[02:30:41 CET] <SilenceDogood> oh, the ss and t are just to test. that's where I got the idea that it's 12 seconds off
[02:31:26 CET] <durandal_1707> positive or negative sync needed?
[02:34:12 CET] <SilenceDogood> durandal_1707 the audio is approximately 12 seconds ahead of the video
[02:34:20 CET] <SilenceDogood> inserting 12 seconds of silence to the beginning would probably do it
[02:34:33 CET] <SilenceDogood> (I'd want to test to get a more precise synchronization)
[02:36:29 CET] <durandal_1707> if you can transcode just use adelay=12|12|12|12|.. audio filter
[02:36:57 CET] <durandal_1707> actually it should be 12000 instead
[02:37:31 CET] <SilenceDogood> what are all those pipes ?
[02:37:39 CET] <SilenceDogood> 12|12|12|12| ???
[02:38:06 CET] <SilenceDogood> Also, I probably ought to transcode because the audio source is ridiculously huge
[02:38:08 CET] <durandal_1707> channel separation
[02:38:13 CET] <SilenceDogood> ohhhh right
[02:38:22 CET] <SilenceDogood> well I obviously want all six channels the same
[02:38:41 CET] <durandal_1707> it specify duration in milliseconds
[02:39:19 CET] <SilenceDogood> so for six channels, it would be async=12000|12000|12000|12000|12000|12000 right?
[02:40:45 CET] <durandal_1707> yes
[02:40:49 CET] <SilenceDogood> suprise surprise, "'12000' is not recognized as an internal or external command, operable program or batch file."
[02:41:07 CET] <durandal_1707> iuse "
[02:41:22 CET] <durandal_1707> its adelay and ot async
[02:41:24 CET] <SilenceDogood> wait, shouldn't this be inside some kinda filter related syntax
[02:41:56 CET] <durandal_1707> -af "adelay=..."
[02:42:08 CET] <SilenceDogood> oh right, thanks
[02:42:56 CET] <SilenceDogood> does transcoding mean it can't skip to the timestamp that I specified quickly ?
[02:43:27 CET] <durandal_1707> what!?
[02:43:35 CET] <SilenceDogood> my command currently is: ffmpeg -i oz.mkv -i 00014.m2ts -map 0:0 -map 1:1 -vcodec copy -af "adelay=12000|12000|12000|12000|12000|12000" -metadata:s:v:0 stereo_mode=1 -ss 29:00 -t 15 floyd.mkv
[02:43:50 CET] <SilenceDogood> There's a spot 29 minutes in where it's easy to see whether it's synced or not
[02:44:17 CET] <SilenceDogood> The witch appears when the band sings "black"-- I have a non-3d version which is synced correctly to compare against
[02:44:37 CET] <durandal_1707> ah, transcoding is encoding
[02:45:27 CET] <SilenceDogood> actually never mind. it seems to have worked
[02:45:49 CET] <SilenceDogood> could you maybe give me some advice as to what my target format should be?
[02:46:00 CET] <SilenceDogood> for the audio I mean
[02:46:21 CET] <durandal_1707> depends what you need
[02:47:46 CET] <SilenceDogood> My target platform is virtual reality headsets like for phones, so I really need the final file to be something that could realistically fit on a phone
[02:48:06 CET] <SilenceDogood> and play in Skybox VR player or another similar 3D video player
[02:48:35 CET] <SilenceDogood> I believe those have implemented virtual surround sound
[02:48:49 CET] <SilenceDogood> although information about it online is scarce
[02:49:54 CET] <durandal_1707> look what format it supports
[02:52:23 CET] <SilenceDogood> They don't tell you. That's what drives me nuts about all this
[02:52:34 CET] <SilenceDogood> 3D audio/video support is a crazy wild west
[02:52:55 CET] <SilenceDogood> Or if they do tell you, I can't find it.
[02:54:24 CET] <durandal_1707> so skybox vr player have no such info?
[02:56:40 CET] <SilenceDogood> nope
[02:57:34 CET] <SilenceDogood> Oculus's standards just say, "if it's stereo, it had better be at least 128kbps for us to feature it on oculus video"
[02:57:52 CET] <SilenceDogood> So, when official sources don't tell us, let's see what the pirates do
[02:58:15 CET] <SilenceDogood> Pirate Wizard of Oz 3D encoded the audio as "DTS 5.1 Ch 1510 kbps"
[02:58:29 CET] <SilenceDogood> That sound reasonable?
[02:58:59 CET] <durandal_1707> isnt that original format?
[02:59:09 CET] <furq> yeah that'll be straight off the disc
[02:59:16 CET] <furq> for phones you presumably just want aac
[03:00:22 CET] <SilenceDogood> furq, I'm trying to preserve the surround sound mix though, because VR players will have virtual surround sound (I think?)
[03:00:33 CET] <furq> aac supports 5.1
[03:00:35 CET] <SilenceDogood> meaning it should dynamically adjust the mix as you turn your head
[03:00:41 CET] <SilenceDogood> oh ok
[03:00:48 CET] <SilenceDogood> so furq what would the command for that look like
[03:00:59 CET] <furq> -c:a aac
[03:01:05 CET] <furq> it should preserve the input channel layout
[03:01:25 CET] <SilenceDogood> furq should I be giving it some number for bitrate or something?
[03:02:06 CET] <SilenceDogood> also, I don't want it to be encoding twice (once for filter, once for aac) can I make sure to avoid that somehow?
[03:02:40 CET] <durandal_1707> filter operates on uncompressed audio
[03:02:44 CET] <SilenceDogood> OK thanks
[03:03:10 CET] <furq> it'll pick a sensible default for the channel layout
[03:03:13 CET] <SilenceDogood> Another question: can I loop the audio
[03:03:20 CET] <furq> looks like 320kbps in this case
[03:03:52 CET] <furq> you can give it more if you really want
[03:04:05 CET] <SilenceDogood> 320kbps mp3s sound fine
[03:04:15 CET] <SilenceDogood> but I am not sure what I'm doing with surround sound
[03:04:53 CET] <SilenceDogood> Also, can I get it to loop the audio, but stop at the end of the video?
[03:07:49 CET] <SilenceDogood> Currently, my command is: ffmpeg -i oz.mkv -i 00014.m2ts -map 0:0 -map 1:1 -vcodec copy -af "adelay=6000|6000|6000|6000|6000|6000" -c:a aac -metadata:s:v:0 stereo_mode=1 -ss 29:00 -t 15 floyd.mkv
[03:09:10 CET] <SilenceDogood> I'd like to make the audio from 00014.m2ts repeat until oz.mkv runs out of video, then stop so that the resulting file is the same length as oz.mkv (after I take out the -ss and -t of course)
[03:10:43 CET] <SilenceDogood> Actually, maybe what I should do is run two different ffmpeg commands. One to prepare the audio into some kind of temporary container file, and one to put the audio and video streams together
[03:11:56 CET] <SilenceDogood> furq would that be the way to do it? :)
[03:15:47 CET] <durandal_1707> to loop there is another filter, but better use apad filter to add silence
[03:16:10 CET] <SilenceDogood> which silence?
[03:16:20 CET] <SilenceDogood> The silence at the beginning?
[03:16:30 CET] <durandal_1707> audio silence at end
[03:16:41 CET] <durandal_1707> thats do apad filter
[03:16:42 CET] <SilenceDogood> I don't want audio silence at end
[03:16:58 CET] <SilenceDogood> I want it to just stop no matter where the audio happens to be
[03:17:04 CET] <SilenceDogood> when the video stops, the audio stops
[03:17:25 CET] <SilenceDogood> just cut off and throw away whatever's left
[03:18:20 CET] <SilenceDogood> So to be clear, the audio portion needs to be: "six seconds of silence + Dark side of the moon + Dark side of the moon again + Dark side of the moon up until the moment the video ceases, then throw out the rest"
[03:18:36 CET] <SilenceDogood> the album repeats about two and a half times as I recall
[03:18:56 CET] <SilenceDogood> and ends on "Home, home again" as Dorithy is back in Kansas
[03:20:29 CET] <SilenceDogood> durandal_1707, based on that, I don't think I need a pad filter ? unless I'm misunderstanding how those work?
[03:21:37 CET] <SilenceDogood> The wiki suggests what I probably need to say is something like this: for i in {1..3}; do printf "file '%s'\n" 00014.m2ts >> mylist.txt; done; ffmpeg -f concat -i mylist.txt -c:a aac floyd.aac
[03:21:49 CET] <SilenceDogood> Does that look right?
[03:22:41 CET] <durandal_1707> yees
[03:24:38 CET] <SilenceDogood> OK but what about cutting it off at the correct length?
[03:24:59 CET] <SilenceDogood> Should I maybe grab that length from oz.mkv and put it in as at -t or something?
[03:26:56 CET] <SilenceDogood> Guess I'm going to start for i in {1..3}; do printf "file '%s'\n" 00014.m2ts >> mylist.txt; done; ffmpeg -f concat -i mylist.txt -c:a aac -t 1:41:49 floyd.aac
[03:49:45 CET] <SilenceDogood> I'd like to know how to trim this properly though. I don't want to have leftover data at the end
[03:59:45 CET] <SilenceDogood> I decided to encode to 24-bit FLAC when looping the audio, then to lossy aac in the final step
[04:00:14 CET] <SilenceDogood> I may end up with six seconds of silence on the end, which is annoying
[04:00:33 CET] <kepstin> if you have a long audio and want to cut it to match the video, just use the "-shortest" option and let ffmpeg handle it
[04:00:47 CET] <SilenceDogood> Awesome. Thank you so much kepstin
[04:04:42 CET] <SilenceDogood> I'm going to want to add a bunch more stuff like preserving the subtitles, and adding the original Wizard of Oz audio back in as a second track (if it'll fit)
[04:05:09 CET] <SilenceDogood> but I think I have enough for an initial test run
[04:32:35 CET] <SilenceDogood> oh crap
[04:32:45 CET] <SilenceDogood> The 2011 immersion edition of Dark Side of the Moon changed the length
[04:33:10 CET] <SilenceDogood> This means that the remastered album does not loop at the same length as the old versions
[04:33:31 CET] <SilenceDogood> or at least the bluray stream isn't the same length as the old CD release
[04:33:40 CET] <SilenceDogood> oh well, at least the first time through seems to be in sync
[04:33:50 CET] <SilenceDogood> I might fix the rest of this crap another da
[04:33:52 CET] <SilenceDogood> *another day
[05:00:34 CET] <SilenceDogood> durandal_1707 and furq: Thanks so much for your help guys. I've watched the first third of the first playthrough and everything lines up perfectly like it's supposed to so far. This is working great!
[05:01:02 CET] <SilenceDogood> The second and third playthroughs are out of sync and will require some padding to get them in sync
[05:01:10 CET] <SilenceDogood> but that should be doable
[05:01:53 CET] <SilenceDogood> I'm gonna wait until my actual blu ray comes in the mail tho. I'm using a pirate source (naughty naughty) but I've ordered the bluray to come in the mail and I'll run this for real when it gets here, with subtitles and everything
[05:03:06 CET] <SilenceDogood> but yeah, Dark Side of the Rainbow is just as great as ever in with the Wizard of Oz in 3D and the 2011 5.1 remaster of Pink Floyd
[06:36:01 CET] <TarGari1> Hi,
[06:36:12 CET] <TarGari1> to day i will compile ffpeg with msys2
[06:36:14 CET] <TarGari1> x64
[06:36:47 CET] <TarGari1> thi is my command line to configure
[06:36:49 CET] <TarGari1> PKG_CONFIG_PATH="/usr/local/x86_64-w64-mingw32/lib/pkgconfig"
[06:36:51 CET] <TarGari1> ./configure --prefix=/usr/local/x86_64-w64-mingw32 --enable-gpl --enable-nonfree --enable-w32threads --enable-libx264 --enable-libfdk_aac --arch=x86_64 --enable-static --disable-shared --disable-doc --disable-ffplay --disable-ffprobe --cross-prefix=/mingw64/bin/x86_64-w64-mingw32- --target-os=mingw32 --extra-cflags='-I/usr/local/x86_64-w64-mingw32/include' --extra-ldflags='-L/usr/local/x86_64-w64-
[06:36:53 CET] <TarGari1> mingw32/lib -static'
[06:37:45 CET] <TarGari1> but i have always
[06:37:47 CET] <TarGari1> C compiler /mingw64/bin/x86_64-w64-mingw32-gcc
[06:37:49 CET] <TarGari1> C library mingw64
[06:37:51 CET] <TarGari1> host C compiler gcc
[06:37:53 CET] <TarGari1> host C library mingw64
[06:37:55 CET] <TarGari1> ARCH x86 (generic)
[06:38:09 CET] <TarGari1> ARC x86 (generic) and not x86_64
[06:38:14 CET] <TarGari1> ?!
[06:38:26 CET] <TarGari1> how to compile a x64 version of ffmpeg please ?
[06:39:17 CET] <TarGari1> what's wrong in my commandline
[06:39:18 CET] <TarGari1> ?
[07:05:41 CET] <buu_> Uh, help: http://paste.debian.net/plain/1005613
[07:05:45 CET] <buu_> Where does that error come from?
[07:06:01 CET] <buu_> ok
[07:06:04 CET] <buu_> never mind, I'm dumb
[09:21:14 CET] <JoshX> kepstin: sorry for the late response, going to try this, thanks!
[11:26:10 CET] <tommy``> guys hello, i'm using this command ffmpeg -i file.mkv -vf blackdetect=d=2:pix_th=0.00 -f null NUL to detect black scene on a video, is correct?
[13:19:03 CET] <relaxed> tommy``: yes, that's the example from the man page
[13:25:56 CET] <tommy``> yes i've changed d=2 because didn't detect black screen, so i used d=0.5
[13:26:29 CET] <tommy``> d=0,5 means "greater than" 0,5 sec right?
[13:28:03 CET] <relaxed> equal to or greater than
[13:28:10 CET] <tommy``> ok
[13:28:25 CET] <tommy``> i saw that there is blackframe too, but i didn't find any example
[15:57:08 CET] <jya> with ffplay, can I specify the audio decoder to use ? in particular I'd like to force the use of CoreAudio AAC on mac
[16:02:21 CET] <teratorn> jya: it accepts a lot of arguments just like ffmpeg, so I think the answer is yes
[17:06:29 CET] <huge_ddddd> I've had to rotate a video a ltitle, leaving me with two black triangles on top right and bottom left where the video has been cropped. Is there a way I can fill these sections in with a blur or so with ffmpeg?
[17:07:00 CET] <huge_ddddd> I was thinking some effect similar to how these vertical video to landscape format add blur on the sides.
[17:10:22 CET] <Nacht> huge_ddddd: I recon you can take the original movie, blur it, and then take it again, and rotate it, then use overlay
[17:11:15 CET] <huge_ddddd> Nacht: that's a great idea, thanks!
[17:11:48 CET] <huge_ddddd> I'm quite a noob with ffmpeg, but is applying an overlay _just_ to the black parts of a video easilly done?
[17:13:42 CET] <durandal_1707> yes, if you know right color for padding
[17:23:12 CET] <Nacht> I'm assuming the black parts are those where there is no video. But if you're still in the filter stage they are transparent. So if you blur it, and the overlay the tilted video above it, you would see the blurred video underneath it. So it would only show on the parts where you had no video. e.g. the black parts
[17:34:47 CET] <huge_ddddd> Excellent, thanks a bunch, i'll give a try
[18:06:29 CET] <jya> teratorn: thanks. I found my bug.
[19:47:28 CET] <effmar> ffmpeg
[20:26:23 CET] <teratorn> any good commands to generate test audio? like a changing tone?
[20:35:37 CET] <DHE> teratorn: https://ffmpeg.org/ffmpeg-filters.html#Audio-Sources
[20:37:31 CET] <teratorn> cool
[20:39:18 CET] <lyncher> hi. yesterday I was trying to add A53 CC data to a H264 stream with libavcodec
[20:39:40 CET] <lyncher> and I managed to do it using transcode.c
[20:40:02 CET] <lyncher> but that is far from ideal because a video encoding is being made
[20:40:24 CET] <lyncher> someone gave the suggestion to use a bsf to do it
[20:40:31 CET] <lyncher> without reencoding the video stream
[20:41:07 CET] <JEEB> which you would have to create yourself of course since there currently is no H.264 or HEVC BSF for that
[20:41:16 CET] <lyncher> from the current available bsfs I think that h264_metadata would be a good starting point
[20:41:29 CET] <JEEB> possibly
[20:41:32 CET] <foua> I'm in the process of slicing a MP3 file to a very fine-granular level (end - start < 1 second). However, when I inspect the output mp3 of the command and compare the output to equivalent in Audacity for example, they differ quite a lot (where Audacity sound more accurate). The command I use is: ffmpeg -i file.mp3 -ss s1 -to s2 output.wav. Is there something obvious I'm missing?
[20:41:43 CET] <lyncher> I've the git head.... but I can't find the source for that filter.....
[20:42:15 CET] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavcodec/h264_metadata_bsf…
[20:42:24 CET] <JEEB> libavcodec/h264_metadata_bsf.c
[20:43:33 CET] <furq> foua: if you want a sample-perfect cut then try the atrim filter
[20:43:35 CET] <furq> !filter atrim
[20:43:35 CET] <nfobot> furq: http://ffmpeg.org/ffmpeg-filters.html#atrim
[20:44:13 CET] <lyncher> weird... I really don't have that source here.... thanks
[20:44:35 CET] <lyncher> it seems that in 2012 someone had the same issue: http://libav-users.943685.n4.nabble.com/Add-MPEG-2-user-data-or-H-264-SEI-m…
[20:46:06 CET] <furq> so uh
[20:46:18 CET] <foua> furq: I see --- thanks a lot, I will have a look! :-)
[20:46:19 CET] <furq> the net neutrality popup is still showing up on ffmpeg.org
[20:46:36 CET] <JEEB> yes, someone please make a patch on the site repo :|
[20:46:40 CET] <JEEB> and post on ffmpeg-devel
[20:47:03 CET] <furq> it still shows up on zeranoe too, in case he can see this
[20:47:20 CET] <furq> or it might have been relaxed's site, i forget now
[20:47:44 CET] <lyncher> JEEB: my repo was pointing to tag 3.
[20:48:00 CET] <lyncher> JEEB: my repo was pointing to tag 3.4.1.... switched to HEAD and now I got that file. thanks
[20:48:05 CET] <JEEB> well you picked that at some point, the default branch is master
[20:48:13 CET] <JEEB> but yea, enjoy
[20:49:42 CET] <lyncher> the content of the SEI is well defined.... I'm trying to figure out what is the correct insertion point in the h264 stream
[20:50:18 CET] <lyncher> according to that post is after the last SEI (easy to identify).... but If I have no previous SEI I've to figure that out
[20:57:02 CET] <painy> hello
[20:57:49 CET] <painy> is there any issue splitting a vp9 webm with ffmpeg? i see if I split some videos, they don't play properly in vlc (it freezes for a few seconds before playing properly) or in ffplay (it plays slow motion before resuming normally)
[21:00:07 CET] <painy> here's the command I use:
[21:00:11 CET] <painy> ffmpeg -i dvgrab-012.webm -codec copy -ss 00:32.69 012.02.webm
[21:00:48 CET] <painy> if I try playing 012.02.webm, it does what I said
[21:00:57 CET] <BtbN> exact splitting without re-encoding is impossible
[21:01:02 CET] <BtbN> it will either not work or result in broken files
[21:02:05 CET] <painy> i see, thanks
[21:02:43 CET] <BtbN> I would expect it to use the nearest keyframe though
[21:02:52 CET] <BtbN> instead of actually breaking files
[21:04:23 CET] <painy> such is life
[21:07:02 CET] <furq> afaik it cuts the audio at the exact point and then cuts the video at the next keyframe
[21:07:06 CET] <furq> hence the pause at the start
[22:08:53 CET] <foua> I realise that this might not be a *perfect* fit for #ffmpeg, but I was here previously asking about inaccurate trimming in an mp3 file (even with atrim filter). However, transcoding the input file to a .wav and running the same command gives an accurate representation. Is there something I can do here in order to avoid transcoding, or am I stuck with it?
[22:10:43 CET] <BtbN> you can only ever cut on full frames without transcoding
[22:12:40 CET] <foua> Thanks BtbN --- I'll hang on to the transcoding then :-)
[22:15:10 CET] <IZh> Hi. I have a short 5-second audio file in *.3gp format (AAC codec) that stutters on (most of?) Linuxes but plays well on Androids, Macs and Windows. Not sure whether it is a right place to ask, but how to find a guilty part?
[22:15:17 CET] <IZh> The file has reproducible stutter on about 1 second from the start.
[22:18:35 CET] <alexpigment> IZh: out of curiosity, have you tried just doing a copy to another container (e.g. m4a)?
[22:19:00 CET] <alexpigment> e.g. ffmpeg -i [infile] -c:a copy [outfile.m4a]
[22:24:28 CET] <IZh> alexpigment: No.
[22:24:48 CET] <alexpigment> ok
[22:25:04 CET] <IZh> alexpigment: Sent you a link to the file.
[22:25:38 CET] <IZh> Stuttering on 1-st second sounds strange like it tries to replay the already played part again.
[22:26:48 CET] <IZh> The file itself is small. It's an alarm sound of Sony Ericsson K790i.
[22:27:35 CET] <IZh> It's my favourite morning alarm sound. Tried to copy it on another device (under Linux) and found that Linuxes can't play it well. Had to convert to MP3 for now.
[22:27:58 CET] <alexpigment> works fine over here
[22:28:08 CET] <alexpigment> then again, i don't have a linux box to test at the moment
[22:28:27 CET] <alexpigment> i guess earlier when i asked a question, it was more a prescriptive thing than just simply a question
[22:28:38 CET] <alexpigment> can you try the ffmpeg command above?
[22:29:07 CET] <IZh> alexpigment: Not right not (AFK) but would try tomorrow.
[22:29:11 CET] <alexpigment> that will take the native aac stream and put it in a container that's more common outside of mobile devices
[22:29:14 CET] <alexpigment> ok
[22:29:15 CET] <sfan5> "Linux can't play it well" is fairly inaccurate
[22:29:24 CET] <sfan5> what matters is the software used for playback, not the OS
[22:29:36 CET] <alexpigment> i would also agree with the above
[22:29:56 CET] <alexpigment> having said that, i would bet money on something being able to play an m4a file correctly than i would a 3gp audio file
[22:29:56 CET] <IZh> sfan5: Agreed. Tried on few mobile devices with Sailfish OS and one Linux desktop.
[22:30:18 CET] <sfan5> and with which player? VLC?
[22:30:18 CET] <IZh> And got the same stuttering.
[22:31:17 CET] <alexpigment> the other thing to keep in mind is that this is he-aacv2
[22:31:34 CET] <alexpigment> which is quite a bit less common than aac-lc
[22:31:53 CET] <alexpigment> so there's the potential the same thing would happen in an m4a container
[22:32:14 CET] <alexpigment> but it's certainly not complicated enough of a format that any relatively modern system can't play it
[22:32:35 CET] <IZh> It was tested on Totem player on Linux.
[22:33:21 CET] <kerio> i haven't heard that name in a looooooong time
[22:34:06 CET] <b0bby__> hello
[22:36:09 CET] <IZh> I could test it tomorrow with different players on few distros.
[22:36:20 CET] <alexpigment> i think totem is just what is now called "Videos"
[22:36:26 CET] <alexpigment> and is the default player for ubuntu etc
[22:37:09 CET] <sfan5> it uses gstreamer IIRC
[22:37:13 CET] <IZh> Yes. My colleague simply clicked on the file.
[22:37:15 CET] <sfan5> trying something ffmpeg-based would be a good idea
[22:37:16 CET] <b0bby__> I have a programming problem and have no idea where to start. The project is in c++. I need to take a bunch of videos(different formats, frame rates, and audio bitrates) and combine them into one 16:9 video(with black bars if the video can't stretch side ways(similar to how video players do it)) with the .mp4 format. Does ffmpeg have all the things I need for this and where do I start?
[22:37:50 CET] <sfan5> b0bby__: it does and you probably want to start by looking at the doc/examples/
[22:38:08 CET] <sfan5> though you would not even *need* C++ for this
[22:38:29 CET] <b0bby__> sfan5: I know
[22:38:52 CET] <b0bby__> sfan5: any idea what which files to look at in examples
[22:39:31 CET] <sfan5> e.g. transcoding.c
[22:39:45 CET] <sfan5> maybe filter_video.c and some others
[22:40:41 CET] <alexpigment> b0bby__: concat is the main thing you're going to need, I believe: https://trac.ffmpeg.org/wiki/Concatenate . specifically the second about the Concat Filter
[22:40:55 CET] <alexpigment> next, you'll need to know about padding
[22:41:24 CET] <alexpigment> https://ffmpeg.org/ffmpeg-filters.html#pad-1
[22:41:57 CET] <alexpigment> the audio stuff a bit simpler. you just specify a desired output format after you've used the concat filter
[22:47:52 CET] <b0bby__> alexpigment: I'm working in c++
[23:00:26 CET] <b0bby__> Any good tutorials for ffmpeg programming? Trying to read through the examples but I'm having trouble.
[23:02:10 CET] <JEEB> not that I know. I mostly utilized the examples and the doxygen documentation/headers (and just plain asking people) https://ffmpeg.org/doxygen/trunk/group__lavf__decoding.html
[23:02:44 CET] <JEEB> the "trunk" documentation is the latest stuff
[23:17:28 CET] <fdemo> Tell me please. I'm trying to transcode the video, but on some files I get an error when opening the codec. avcodec_open2(enc_ctx, encoder, opt) = -1
[23:17:37 CET] <fdemo> I took this line from the example "enc_ctx.time_base := av_inv_q(dec_ctx.framerate);"
[23:17:47 CET] <fdemo> After this line is executed, the values of timebase set:
[23:17:55 CET] <fdemo> enc_ctx.time_base.num = 417083
[23:18:04 CET] <fdemo> enc_ctx.time_base.den = 10000000
[23:19:19 CET] <b0bby__> Ok. been reading the examples, this is my idea so far. DecodeVideo1->getframe->applystretchingAndBlackLines->(lower frame rate some how)->write frame to file through encode, then continue to next video.
[23:19:52 CET] <b0bby__> Then audio would be the same except I would have to change its bitrate
[23:20:32 CET] <JEEB> I hope you're using this API for decoding and encoding (the feed/receive ones)
[23:20:35 CET] <JEEB> https://www.ffmpeg.org/doxygen/trunk/group__lavc__encdec.html
[23:20:45 CET] <JEEB> *send/receive
[23:26:12 CET] <aokfire> Hello all. I just had a quick question. I have a source that is interlaced. Source is 29.97fps, so output should be too. But there is a duplicate frame every 5th
[23:26:36 CET] <aokfire> do I need to use yadif AND decimate? They are not mutual, eg. with specific yadif setting I can remove duplicates?
[23:26:46 CET] <aokfire> thank you
[23:26:47 CET] <JEEB> decimation required so most likely you also want field matching
[23:27:04 CET] <aokfire> right now I just have: yadif
[23:27:08 CET] <aokfire> no chosen specifics.
[23:27:28 CET] <aokfire> -vf "yadif, crop"
[23:27:34 CET] <aokfire> Would i decimate before or after yadif
[23:27:36 CET] <JEEB> yadif is a deinterlacer, and I would check if your pictures are instead consisting of two fields having to matched VS completely separate pictures in each field
[23:27:45 CET] <aokfire> ah
[23:28:01 CET] <JEEB> yadif is what you need when field A has picture A, and field B has picture B - so you can't get an image by just field matching two
[23:28:21 CET] <JEEB> this is what you use before decimation in 99% of all cases https://www.ffmpeg.org/ffmpeg-all.html#fieldmatch
[23:28:38 CET] <aokfire> ah inverse telecine
[23:28:39 CET] <JEEB> because in most cases you have pictures put into two fields that have to be matched
[23:28:55 CET] <aokfire> i was using yadif previously on a source that was also 29.97, but the actual content was 60fps
[23:29:13 CET] <JEEB> 60 fields per second and each field is its own thing
[23:29:15 CET] <JEEB> true interlacing
[23:29:20 CET] <JEEB> which is where deinterlacing comes up :)
[23:29:24 CET] <aokfire> ya
[23:29:26 CET] <aokfire> so that's fine
[23:29:33 CET] <aokfire> but this source is not 23.97, nor 60
[23:29:38 CET] <aokfire> definitely 30fps
[23:30:24 CET] <JEEB> well after decimation it would become 24/1.001 from 30/1.001 :P
[23:30:36 CET] <kepstin> it sounds like your sources was 24000/1001 frames per second, telecined to 60000/1001 fields per second, stored as 30000/1001 frames per second.
[23:31:05 CET] <JEEB> well it could be coded as separate fields or frames, depends on how interlacism is handled
[23:31:34 CET] <JEEB> but generally you get them decoded with two fields interleaved
[23:31:40 CET] <aokfire> ok uhm
[23:31:43 CET] <kepstin> yeah, but by the time it's in the ffmpeg filter chain, you'll usually have combed frames.
[23:31:46 CET] <aokfire> I'm looking at this one I'm working on now
[23:31:49 CET] <aokfire> the image is like
[23:31:54 CET] <aokfire> when there's movement, there is a shadow
[23:31:57 CET] <aokfire> er ghost
[23:32:00 CET] <aokfire> not ghosting persay but
[23:32:14 CET] <JEEB> kepstin: jpeg2000 and hevc are the exceptions btw
[23:32:32 CET] <JEEB> which output the separate pictures and can't be fed into the filters because everything expects them to be combed together
[23:32:35 CET] <JEEB> lul
[23:34:16 CET] <aokfire> so what should I Use JEEB... just a bit confused
[23:34:34 CET] <JEEB> if it looks good after fieldmatch+decimate then use that
[23:34:50 CET] <aokfire> "The decimate filter currently only works for constant frame rate input. If your input has mixed telecined (30fps) "
[23:34:55 CET] <aokfire> it's definitely 29.97 or 30fps
[23:35:04 CET] <JEEB> don't worry about that :P
[23:35:07 CET] <aokfire> ok
[23:35:14 CET] <aokfire> sooo not yadif.
[23:35:24 CET] <JEEB> otherwise you'll have to start looking into getting down n' dirty if it's mixed content in 60 fields interlaced :P
[23:35:28 CET] <kepstin> aokfire: telecined (2:3) video is a way of storing 24fps video into 60 fields per second (30fps) video.
[23:35:29 CET] <aokfire> nah
[23:35:34 CET] <aokfire> it's all 29.97
[23:35:34 CET] <JEEB> (as in, if fieldmatch+decimate doesn't look good)
[23:35:37 CET] <kepstin> so inverse telecine gives you 24fps back
[23:35:40 CET] <aokfire> hm
[23:35:42 CET] <aokfire> well here's th thing
[23:35:48 CET] <aokfire> I forced ffmpeg using -r to 24000/1001
[23:35:52 CET] <aokfire> and used yadif. and it was too slow
[23:35:55 CET] <aokfire> audio desynced
[23:36:08 CET] <JEEB> aokfire: well the 60 fields per sec is the "container" you have now - the content within that can be whatever
[23:36:09 CET] <kepstin> aokfire: you used the -r input option, which is wrong.
[23:36:17 CET] <aokfire> oops
[23:36:21 CET] <JEEB> that what my "if it doesn't look good / down and dirty" comments meant :P
[23:36:39 CET] <JEEB> because handling mixed content properly in libavfilter is not fun
[23:36:51 CET] <kepstin> aokfire: and using the -r output option will probably drop the wrong frames, so don't do that either. The decimate filter detects the correct 'duplicate' frames to drop.
[23:36:58 CET] <aokfire> ok
[23:37:02 CET] <aokfire> so I want to use the decimate filter
[23:37:09 CET] <JEEB> fieldmatch, then decimate
[23:37:11 CET] <aokfire> ok
[23:37:16 CET] <aokfire> and this will deinterlace as well
[23:37:23 CET] <kepstin> no, it will undo the telecine
[23:37:27 CET] <aokfire> hrm
[23:37:39 CET] <JEEB> it will remove the interlacism, but deinterlacing is specifically handling actually interlaced content
[23:37:45 CET] <aokfire> so fieldmatch + decimate and then yadfi
[23:37:48 CET] <aokfire> yadif
[23:37:49 CET] <JEEB> no
[23:37:55 CET] <aokfire> sorry
[23:38:10 CET] <kepstin> fieldmatch will remove the combing by undoing the telecine, giving you back a progressive video
[23:38:18 CET] <JEEB> both IVTC (inverse telecine) and a deinterlacing filter will remove the interlacism, they are just to be applied for different content
[23:38:24 CET] <aokfire> ahhhh
[23:38:24 CET] <JEEB> as in, what is in that interlaced video
[23:38:25 CET] <kepstin> then decimate removes some duplicate frames that fieldmatch leaves as a side-effect.
[23:38:35 CET] <aokfire> got it
[23:38:48 CET] <aokfire> and kepstin using fieldmatch will output proper fps, which I'm guessing is 29.97?
[23:38:50 CET] <JEEB> and yes, many people call both deinterlacing since they get rid of interlacism
[23:39:02 CET] <JEEB> just field match will have the same rate
[23:39:04 CET] <JEEB> as the input
[23:39:14 CET] <aokfire> ah
[23:39:15 CET] <JEEB> since it literally just tries to match up fields in the interlaced video
[23:39:20 CET] <kepstin> aokfire: no, the correct output rate will be 24000/1001 (~24fps) progressive
[23:39:22 CET] <JEEB> and create progressive frames
[23:39:26 CET] <JEEB> kepstin: that is after decimation
[23:39:34 CET] <kepstin> er, yes, true, after decimation
[23:39:49 CET] <JEEB> aokfire: then you will still have your duplicates after field match, which is why if you have 1-2-3-4-4 kind of situation you apply decimate
[23:39:51 CET] <kepstin> I'm actually kind of annoyed that fieldmatch doesn't have builtin decimation, but that's another story :)
[23:40:10 CET] <JEEB> well it makes sense to separate them since there are sources which don't require decimation
[23:40:22 CET] <JEEB> and/or mixed sources. but handling them is a PITA anyways
[23:40:48 CET] <JEEB> avisynth had TFM and TDecimate separate as well, and vapoursynth has those steps separate as well
[23:41:07 CET] <aokfire> ah wow
[23:41:10 CET] <aokfire> lotta settings
[23:41:14 CET] <kepstin> anyways, aokfire - to understand what telecine does, go look at https://en.wikipedia.org/wiki/Telecine#2:3_pulldown
[23:41:29 CET] <JEEB> aokfire: I wouldn't be surprised if you could just apply the defaults and they'd work
[23:41:34 CET] <kepstin> it turns 4 progressive frames into 5 interlaced frames (10 fields)
[23:41:38 CET] <JEEB> they're there for tweaking and/or nonstandard things
[23:41:46 CET] <kepstin> so what we're doing now is undoing that to get the original 4 frames back.
[23:41:49 CET] <aokfire> -vf "fieldmatch, decimate, crop"
[23:41:51 CET] <aokfire> ?
[23:42:09 CET] <JEEB> yes, but generally you put some values in the crop
[23:42:15 CET] <aokfire> yeah there are values
[23:42:18 CET] <JEEB> ok
[23:42:23 CET] <aokfire> just making it basic to understand easily
[23:42:25 CET] <JEEB> I recommend making a quick test thing
[23:42:28 CET] <aokfire> yes
[23:42:30 CET] <aokfire> -t 30
[23:42:32 CET] <JEEB> use -ss and -t for it
[23:42:38 CET] <JEEB> ss for seeking into the content
[23:43:07 CET] <aokfire> I am thinking there might be as mentioned in that wiki, 24fps content with the 30fps
[23:43:10 CET] <aokfire> im not sure
[23:43:26 CET] <kepstin> keep in mind that to check the detelecine, you'll probably end up watching the whole video to see if there were any mismatched sections or mixed content (which will show up as appearing to still be interlaced)
[23:43:53 CET] <aokfire> [Parsed_fieldmatch_0 @ 0000000003b1fb00] Frame #248 at 8.27493 is still interlaced
[23:43:57 CET] <aokfire> or stuff like that?
[23:44:09 CET] <JEEB> that might be a false or something that will get decimated
[23:44:16 CET] <kepstin> aokfire: hmm, you really have to check the video to see.
[23:44:17 CET] <JEEB> with this stuff you really need to go by eye
[23:44:23 CET] <aokfire> aw man
[23:44:33 CET] <aokfire> maybe I should forget reencoding lol
[23:44:59 CET] <aokfire> ahh, many frames still interlaced
[23:45:01 CET] <kepstin> if you're getting a *lot* of messages like that, then the video content probably isn't telecined, or is mixed telecined and interlaced.
[23:45:15 CET] <aokfire> 12 now
[23:45:29 CET] <JEEB> well, that doesn't really say much
[23:45:44 CET] <aokfire> there are 12 messages claiming interlaced frames
[23:45:44 CET] <JEEB> it's all guesswork by the matching algorithm
[23:45:58 CET] <aokfire> like I said I think it's 29.97
[23:45:59 CET] <JEEB> and it could be either false positives or stuff that gets decimated
[23:46:10 CET] <JEEB> if it was that then you wouldn't have the duplicates
[23:46:15 CET] <aokfire> ah
[23:46:20 CET] <aokfire> yes makes sense
[23:46:32 CET] <JEEB> basically your input is 60/1.001 fields per second, yes
[23:46:40 CET] <JEEB> but what is INSIDE those fields (as content)
[23:46:42 CET] <aokfire> it's 29.97i
[23:46:42 CET] <JEEB> is what matters
[23:46:45 CET] <aokfire> yes
[23:47:18 CET] <JEEB> aokfire: the exact value is 30/1.001 "frames" per second, or just 60/1.001 fields per second :P
[23:47:37 CET] <aokfire> ahhh
[23:47:43 CET] <aokfire> and no more dupe frames, good
[23:47:55 CET] <kepstin> (29.97 is a rounded value, which is actually off be enough to sometimes cause desync issues with many-hour videos)
[23:50:35 CET] <JEEB> aokfire: and because the interlaced fields is just the "container" for whatever's in the content you can get stuff like telecined content with interlaced credits on top
[23:50:46 CET] <JEEB> at that point you just facepalm and use some fancy filters not in FFmpeg
[23:50:50 CET] <aokfire> aha
[23:51:04 CET] <aokfire> yeah not looking for something fancy/end all
[23:51:10 CET] <aokfire> I could just use AVS for that
[23:51:16 CET] <aokfire> Anyway I think you're right, it's 23.976
[23:51:33 CET] <kepstin> (24000/1001 - again, the decimal value is rounded)
[23:51:40 CET] <JEEB> well the "it has duplicates (1-2-3-4-4)" is a telltale sign of it :P
[23:51:51 CET] <JEEB> that at least some part of your content needs decimation
[23:52:02 CET] <aokfire> yes sorry
[23:52:04 CET] <aokfire> 24000/1001
[23:52:13 CET] <aokfire> I just use 23.976 as an easier to approach term
[23:52:20 CET] <aokfire> perhaps for those who are lurking in here and interested.
[23:52:34 CET] <kepstin> once people get really lazy, they just say 24, 30, and 60 :/
[23:52:35 CET] <aokfire> But yes, it is definitely 24000/1001. It doesn't "look" as fast as 30000/1001
[23:52:51 CET] <aokfire> ive seen native 29.97 content and this isn't it
[23:53:12 CET] <JEEB> it's really easy to check content in something like AvsPmod if you know avisynth :P
[23:53:17 CET] <kepstin> native progressive 30fps content is actually kinda rare.
[23:53:30 CET] <JEEB> separatefields+selecteven and see the preview
[23:53:31 CET] <kepstin> (30i - aka 60 fields per second - is common tho)
[23:53:38 CET] <JEEB> is it 1-2-3-4-4 or 1-2-3-4-5
[23:53:47 CET] <JEEB> then you remove the selecteven
[23:53:50 CET] <aokfire> yes
[23:53:56 CET] <aokfire> so I think I got it right now :)
[23:53:59 CET] <JEEB> and you see if the images consist of a single or multiple fields
[23:54:18 CET] <JEEB> (and in the worst case you filter in parts because the content switches)
[23:54:55 CET] <aokfire> yeah
[23:57:26 CET] <aokfire> well, samples look good
[23:57:53 CET] <aokfire> so I think it is all good :)
[23:58:02 CET] <aokfire> thanks for the help JEEB and kepstin
[23:58:05 CET] <JEEB> np
[00:00:00 CET] --- Thu Jan 18 2018
1
0
[00:00:13 CET] <atomnuker> hm, that looks alright
[00:00:14 CET] <jkqxz> I do think you should get an AMD and/or an Nvidia for testing this, because discrete GPUs really do have significantly different properties wrt where memory is and how it can be used.
[00:00:29 CET] <atomnuker> yeah, I'll get one when I move soon
[00:00:42 CET] <atomnuker> what command line do you use?
[00:00:55 CET] <atomnuker> I can't get -init_hw_device to work because hwupload needs a reference
[00:01:03 CET] <atomnuker> so I use -vulkan_device <>
[00:01:58 CET] <jkqxz> See above. You need -filter_hw_device.
[00:02:40 CET] <jkqxz> Having thought about that stuff, I think that rather than introducing -foo_device for everything, making it so that if there is exactly one device it's assumed to be the filter device would be better.
[00:02:52 CET] <jkqxz> (And kill -vaapi_device.)
[00:03:11 CET] <atomnuker> what's with the p11/cl prefix?
[00:03:55 CET] <atomnuker> are they custom so you can choose?
[00:04:16 CET] <jkqxz> Yeah, completely arbitrary.
[00:04:59 CET] <jkqxz> I gave them names so I could easily switch by just changing the -filter_hw_device.
[00:05:44 CET] <atomnuker> yeah, that works perfect, I'll remove the hack in ffmpeg_opt
[00:09:27 CET] <atomnuker> nope, getting rid of the pix_fmt != 0 assumption in transfer formats (pushed that to the repo) doesn't fix 420
[00:10:38 CET] <atomnuker> my mistake, nevermind
[00:10:50 CET] <atomnuker> had 1 more assumption in vkfmt_from_pixfmt
[00:11:58 CET] <jkqxz> I think that's a vote for wm4's AV_PIX_FMT_YUV420P != 0 change :)
[00:15:22 CET] <atomnuker> yep, I'd vote for that now :)
[00:15:56 CET] <nevcairiel> one bad assumption doesnt replace all the others
[00:16:06 CET] <nevcairiel> plenty places that check for < 0, i'm sure
[00:16:17 CET] <nevcairiel> unless you can proof you fixed them all, no dice =p
[00:16:56 CET] <nevcairiel> why any new code would even check against any literal value instead of the symbol names is just beyond me however
[00:16:59 CET] <nevcairiel> so you deserve any pain you get
[00:18:33 CET] <atomnuker> I find it nice that radv advertises sane alignment values, nvidia just says 1 for all is optimal so vulkan code in mpv doesn't try to align anything outside of what's absolutely required
[00:19:22 CET] <atomnuker> and even then what's absolutely required is what's required on nvidia so rgba pixfmts with intel are still broken
[00:19:51 CET] <nevcairiel> why would nvidias values affect intel
[00:21:18 CET] <atomnuker> I guess its because nvidia doesn't have alignment requirements whilst intel does?
[00:21:51 CET] <nevcairiel> from your first comment I assume there is an API you can ask about those, so again, why would nvidia cause intel to break?
[00:22:07 CET] <nevcairiel> unless your design is faulty and you ask the wrong device
[00:24:14 CET] <nevcairiel> or if its trying to share frames between those two gpus, it should ask both for its requirements and determine the smallest alignment needed to work on both
[00:26:37 CET] <atomnuker> no idea why mpv vulkan is broken on intel, I tried to debug a few months ago and I did indeed see the image had an incorrect stride and the code there correctly asserted that something's wrong
[00:26:51 CET] <atomnuker> mpv doesn't ask for requirements like I said
[00:27:06 CET] <atomnuker> sorry, optimal buffer alignments, not requirements
[00:27:32 CET] <atomnuker> there's a requirement for mapping memory which is always 4k on any gpu I've seen
[00:27:50 CET] <jkqxz> That's probably just the system page size.
[00:28:02 CET] <atomnuker> yep, that makes sense
[00:44:33 CET] <SortaCore> I'm struggling to get metadata to be outputted in a MP4
[00:44:48 CET] <SortaCore> even changing the encoder tag, which is outputted anyway, fails
[00:46:23 CET] <SortaCore> is this by design, or should any metadata be outputted?
[00:50:58 CET] <atomnuker> just set key=value using av_dict in avformatcontext->metadata
[03:48:08 CET] <SortaCore> atomnuker: I do, but it's not outputted
[03:48:20 CET] <SortaCore> the file only contains encoder Lavf and that's it
[03:48:51 CET] <atomnuker> guess either the keys you're setting aren't supported or can't be mapped to anything mp4 supports
[04:37:28 CET] <atomnuker> jkqxz: right, found out why it crashed, I did "flags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;" on every image when that's not the case
[04:37:38 CET] <atomnuker> not sure what I was on when I wrote that
[04:38:15 CET] <atomnuker> probably a leftover from where I didn't keep track of flags
[05:50:57 CET] <atomnuker> jkqxz: I'm wondering how much utilities should I provide in lavu's hwcontext and how much to leave for api users?
[05:51:34 CET] <atomnuker> should I provide buffer allocation functions despite the hwcontext not doing any vkbuffer allocations and only dealing with images?
[05:51:36 CET] <wm4> I'd expect that it provides the basic primitives like frame allocation upload/download
[05:52:10 CET] <atomnuker> well yeah, that's a given, just wondering about other things that could be useful
[05:52:32 CET] <atomnuker> I think maybe I shouldn't have buffer alloc functions there but in lavfi's vulkan utils file
[05:53:49 CET] <atomnuker> because using the same device flags for memory as images might make buffer access suboptimal (since things like vertex buffer need the fastest local memory, even if its slow to upload)
[05:54:26 CET] <atomnuker> I better leave it to lavfi/api users, the hwcontext should just do what's best for images only
[05:59:03 CET] <wm4> so that other code would be private to ffmpeg?
[06:01:34 CET] <atomnuker> bah, I'll keep buffer allocation code inside lavu, its barely a hundred lines and saves users the annoyance of searching through memory for flags
[06:02:33 CET] <atomnuker> can't think of anything else that should be in lavu, pipeline things really need to be separate from memory allocation stuff
[06:37:46 CET] <SortaCore> I can't even set the encoder one, it's overwritten
[06:38:02 CET] <SortaCore> is there a list of supported mp4 metadata keys then?
[09:22:44 CET] <mistym> I'm seeing a muxer I'm writing crashing during cleanup - anyone able to help out?
[09:22:50 CET] <mistym> (My code is probably pretty bad, lol)
[09:25:46 CET] <mistym> Backtrace shows that after `av_write_trailer`, it went into `av_opt_free`, and then crashed here in `av_opt_next`: https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/opt.c#L51
[09:26:05 CET] <mistym> (Sorry for linking to a mirror, git.ffmpeg.org blob view seems to not be working right now)
[09:26:28 CET] <mistym> My muxer doesn't have any options, so not sure why it's taken this path
[09:27:49 CET] <mistym> This is my muxer: https://github.com/mistydemeo/FFmpeg/blob/add_segafilm_muxer/libavformat/se…
[09:35:34 CET] <wm4> I think if you set priv_class, the first member in your priv struct must be AVClass
[09:37:30 CET] <mistym> Oh yeah, that was it! Thanks!
[09:50:26 CET] <mistym> I'm reminded, too - I think I asked about this before, but...
[09:51:49 CET] <Shiz> lots of details that are not really obvious
[09:51:52 CET] <Shiz> happens to the best
[09:52:00 CET] <mistym> This is a format where I need to buffer the video and audio in advance.
[09:52:36 CET] <mistym> This is because the header contains a table with info on every sample in the file, so I have to have knowledge on that before the header ets written.
[09:53:07 CET] <mistym> Currently, attempting to buffer more than a moderate number of audio packets returns a "Too many packets buffered" error related to max_muxing_queue_size. Not sure the best way for me to handle this.
[09:53:13 CET] <nevcairiel> you cant buffer all the audio or video, its not something you should ever even consider
[09:53:20 CET] <Shiz> I'll gladly admit ignorance on the lavf API, but wouldn't it be better to write the header last?
[09:53:24 CET] <Shiz> after all the other packets are written
[09:53:42 CET] <Shiz> buffering everything seems like a very bad thing performance and memory-wise
[09:53:52 CET] <nevcairiel> instead, look at how mp4 works, it has the same requirements, it writes sample data into the header
[09:55:20 CET] <JEEB> mov/mp4 is movenc.c in lavf
[09:59:07 CET] <JEEB> mistym: btw I did some initial testing of the ATRAC3+ stuff and it seems like the parser needs to be able to resync
[09:59:13 CET] <JEEB> (like after a seek)
[09:59:37 CET] <JEEB> also I noticed an error popping up about something not being set but I was still getting audio; I should check that out too when I have time.
[12:04:42 CET] <jkqxz> atomnuker: I think avoid adding external functions to the code in lavu unless they really need internal stuff, because the API/ABI gets fixed for a long time.
[12:04:52 CET] <jkqxz> So, probably keep buffer the allocation stuff private in lavfi.
[12:07:44 CET] <jkqxz> (And think again if you write anything in lavc, but even then it isn't very large so duplicating a bit of object code may well be preferable to adding external symbols.)
[12:58:47 CET] <cone-943> ffmpeg 03wm4 07master:6512ff72f9cc: avformat: deprecate another ffserver API leftover
[12:58:48 CET] <cone-943> ffmpeg 03wm4 07master:631c56a8e46d: avformat: make avformat_network_init() explicitly optional
[14:24:52 CET] <jkqxz> wm4: Define an AVD3D11HWConfig for the user to indicate what they want to do with the frames? (That is why that argument exists, after all.)
[14:26:56 CET] <wm4> you _could_ do that
[14:27:10 CET] <wm4> I'm not sure whether it's really worth to abstract this
[14:28:22 CET] <wm4> if the API user knows it has to be useable with shaders or decoders or whatever, he can use D3D11 API directly to determine support, and the constraints API is mostly about knowing what ffmpeg's code supports
[15:29:03 CET] <wm4> jkqxz: anyway, can you ack that patch? or am I maybe the maintainer of it and I can just push? I have no idea
[15:35:54 CET] <atomnuker> the hwcontext_d3d11va constraints patch? code-wise it looks fine to me, but don't take my word for it - I thought pix_fmt of 0 was invalid until yesterday
[16:28:03 CET] <nevcairiel> why is it that you cant do thread priorities on linux without root or messing with limits.conf? sure smells funky to me
[16:30:19 CET] <DHE> thread priorities are just renice on individual threads. so the same rules apply
[16:31:59 CET] <BtbN> you should be able to de-prioritize as user though?
[16:32:10 CET] <nevcairiel> of the three consumer OSes, its the only one that lacks this ability, and its really quite annoying if you cant prioritize say audio rendering over other background tasks
[16:32:15 CET] <DHE> de-prioritize, yes. for example x264 does this to its lookahead threads
[16:32:45 CET] <BtbN> so you basically de-prioritize everything else to achive that
[16:32:53 CET] <nevcairiel> i dont think you actually can
[16:32:55 CET] <wm4> I never had the need for that anyway
[16:33:16 CET] <BtbN> I have seen processes, including ffmpeg, to have different nicenesses on its thread in htop
[16:34:00 CET] <nevcairiel> in default linux, the "normal" schedulers like SCHED_OTHER (the default) don't have any scheduling priorities, you need one of the real-time schedulers for that - which require super-user
[16:35:55 CET] <nevcairiel> you could potentially put some threads on SCHED_IDLE to de-priorities them, but thats not the granuliarity i'm looking for, since that basically puts them on hold if the system is busy with any normal tasks
[16:36:20 CET] <DHE> on linux there's another option - control groups. administrative action is required to set them up, and either the app of whatever launches the app must be aware of it, but there's some flexibility there
[16:37:15 CET] <nevcairiel> with admin interaction i can also edit limits.conf to allow my user to use SCHED_RR or SCHED_FIFO
[16:37:57 CET] <DHE> SCHED_RR and SCHED_FIFO will monopolize the CPU though. these have hard priority over regular SCHED_OTHER processes
[16:38:21 CET] <nevcairiel> and thats fine if i'm having an audio renderer that absolutely needs to feed the device when I want it to
[16:38:24 CET] <DHE> the objective is to raise priority above other apps as a non-root user, right?
[16:38:35 CET] <DHE> where's SCHED_ISO when you need it...
[16:39:09 CET] <nevcairiel> basically, we're having issues with audio drop-outs unless we use a real-time prioritiy to keep our audio output thread properly in charge
[16:39:18 CET] <nevcairiel> only on super low-power devices mind you, but still
[16:39:20 CET] <nevcairiel> the change helps
[16:40:38 CET] <DHE> https://github.com/torvalds/linux/blob/master/include/uapi/linux/sched.h#L40 This was supposed to be the solution. SCHED_ISO would grant a high immediate priority to a process that sleeps often, but its priority drops rapidly if it abuses this
[16:40:54 CET] <DHE> making it good for apps that require immediate attention when woken up, but don't require much CPU time overall
[16:41:14 CET] <nevcairiel> that sounds like a lot of book keeping in the scheduler
[16:41:50 CET] <nevcairiel> why is it the kernels job to control my app like that, i'm the developer, i should be in charge
[16:42:03 CET] <DHE> I imagine the implementation would be like a process with a nice value that goes towards -20 when sleeping and goes towards +20 while running
[16:42:20 CET] <DHE> because SCHED_ISO is available to normal users while not allowing a single app to monopolize the CPU
[16:42:51 CET] <nevcairiel> i would still contest that its not the kernels job to care about that
[16:43:03 CET] <nevcairiel> it should give me the power to (ab)use
[16:46:49 CET] <atomnuker> nevcairiel: there's a dbus service to alter process priorities, pulseaudio uses it
[16:47:39 CET] <nevcairiel> .. and that there is whats wrong with linux and dbus
[16:48:01 CET] <nevcairiel> also I want thread priorities, otherwise my background thread doing whatever processing is still going to shit on audio output
[16:48:51 CET] <atomnuker> well threads have a separate pid from main processes so you can use it
[16:49:15 CET] <atomnuker> rtkit, that's what its called
[16:49:18 CET] <wm4> what kind of audio output are you using that anything can shit on it
[16:50:19 CET] <nevcairiel> its just alsa output, but if you're on a Pi or something and doing R128 audio analysis in the background, it can glitch out the audio
[17:07:46 CET] <philipl> BtbN: were you able to put any time into the deinterlacer over the weekend?
[17:41:54 CET] <cone-943> ffmpeg 03wm4 07master:27b9f82e2c5d: hwcontext_d3d11va: implement av_hwdevice_get_hwframe_constraints()
[22:03:20 CET] <cone-557> ffmpeg 03Jun Zhao 07master:a919ab853efc: lavc/snow_dwt: add struct MpegEncContext to fix headers check.
[23:58:35 CET] <cone-557> ffmpeg 03Zhong Li 07master:e23190269fb6: lavu/qsv: add log message for libmfx version
[23:58:36 CET] <cone-557> ffmpeg 03Zhong Li 07master:1efbbfedcaf4: examples/qsvdec: do not set the deprecated field refcounted_frames
[23:58:37 CET] <cone-557> ffmpeg 03Mark Thompson 07master:d204b7ff610c: Merge commit 'e23190269fb6e8217d080918893641ba3e0e3556'
[23:58:38 CET] <cone-557> ffmpeg 03Mark Thompson 07master:725ae0e2d022: Merge commit '1efbbfedcaf4a3cecab980273ad809ba3ade2f74'
[00:00:00 CET] --- Wed Jan 17 2018
1
0
[00:07:51 CET] <chocolaterobot> `ffmpeg -i file:filename.ogg -loop 1 -i image.png -tune stillimage -shortest -c:a copy out.mkv` <--- How do I lower framerate in this command? (I jus tneed to add a video to an audio s othat I can upload to Youtube
[00:16:10 CET] <alexpigment> set -framerate [whatever] before the inputs
[00:16:24 CET] <alexpigment> https://trac.ffmpeg.org/wiki/Slideshow
[00:44:39 CET] <chocolaterobot> alexpigment: thanx. so I can do `-framerate 1` and it won't make a difference with regard to audio, yes?
[02:46:59 CET] <therage3> has there ever been a bug in FLAC such that an encoded file actually differed from the source?
[06:48:52 CET] <k_sze> Is there a way to use ffmpeg to turn a H.264 video from 1080p to 4K, with nearest-neighbor resampling and losslessly?
[06:49:19 CET] <k_sze> Hopefully without the file size blowing up.
[06:52:56 CET] <k_sze> This is mostly to work around a stupid 4K TV that can't play a 1080p video without interpolation.
[06:55:10 CET] <furq> not losslessly
[06:55:27 CET] <furq> i mean you could encode it to lossless h264 but that'll be massive and the tv most likely won't play it anyway
[09:41:25 CET] <Guest56> hi, i currently use https://github.com/michaelherger/spotty to pipe audio coming from Spotify to stdout. I'm trying to pipe this through ffmpeg to do some processing. I can't seem to get the right parameters to receive the buffer from stdout, anyone has experience with this?
[09:42:41 CET] <Guest56> i'm currently using https://github.com/fluent-ffmpeg/node-fluent-ffmpeg library, i just have process.stdin as its input and pipe to process.stdout, then in the cli, i pipe it to vlc
[10:25:46 CET] <kikobyte> BtbN: Hi, yesterday I asked about scale_npp not working from within a systemd service. The issue seems to be that it creates $HOME/.nv/ComputeCache folder, while the user specified in the .service file usually doesn't have a home directory.
[10:26:21 CET] <BtbN> weird, must be something specifically libnpp does
[10:27:03 CET] <kikobyte> Most likely. Apparently that doesn't look like anything an FFMPEG filter would do
[10:27:21 CET] <sfan5> .nv/ComputeCache/ sounds like nvidia's driver to me
[11:21:04 CET] <BtbN> sfan5, except it doesn't. So it has to be libnpp
[11:37:41 CET] <sfan5> BtbN: then I'm wondering why these files are in my homedir, since I don't even have cuda (libnpp) installed on this system
[11:38:09 CET] <BtbN> Well, it works fine if not using scale_npp, so that rules out everything else.
[11:38:42 CET] <BtbN> scale_cuda might cause it as well, as the compute cache might be CUDA related
[14:44:29 CET] <BaronLand> has there ever been a FLAC bug where files end up being different from the source material despite md5 match?
[14:46:04 CET] <ch80> hi, i'm struggling to compile ffmpeg with vmaf for win. it's way over my head. does anyone here have a working build they could share?
[14:48:00 CET] <relaxed> ch80: If you can run linux in a VM or boot a livecd, my builds include vmaf: https://www.johnvansickle.com/ffmpeg/
[14:55:39 CET] <ch80> unfortunately not
[15:14:45 CET] <durandal_1707> BaronLand: if you find such files, you are very rich
[15:15:38 CET] <BaronLand> durandal_1707 i was curious, since I have some backed up files here on my laptop from a CD collection back home, and they were encoded with an old version of the FLAC reference encoder
[15:15:45 CET] <BaronLand> just curious really
[15:31:40 CET] <b0bby__> hello
[15:31:56 CET] <b0bby__> is this the chat for the C api
[15:38:59 CET] <DHE> yes
[15:46:38 CET] <JoshX> Hi, When i have a file with exactly 27000 frames and a framerate of 30/1 why would the length of the file not be 15:00.000 but something like 14:59.992 or 15:00.010 ??
[15:47:43 CET] <JoshX> even when I drop the frames to files, get exactly 27000 files and then encode them again into mp4 with -r 30 the length is not exactly 15:00.000
[15:49:51 CET] <JoshX> also no matter if i use libx264, h264_nvenc or h264_qsv
[15:50:03 CET] <JoshX> all give me a small offset
[15:51:01 CET] <JoshX> and this matters because we concatenate multiple 15 minute files into larger files and they should be exactly 15:00.000 / 27000 frames @ 30fps each so 4 should be 1 hour.. but sometimes we gain like 20 sec per hour
[15:51:16 CET] <JoshX> and then per 24 hours that is 480 seconds which is 8 minutes ??
[15:51:27 CET] <JoshX> which throws of our software...
[16:10:53 CET] <durandal_1707> JoshX: isnt duration stored in container?
[16:12:27 CET] <durandal_1707> and depending on container duration may be pure guesswork
[16:18:44 CET] <JoshX> durandal_1707: well.. i have exactly 27000 frames and a framerate of 30/1
[16:18:53 CET] <JoshX> so how many seconds would that be?
[16:19:02 CET] <JoshX> (900.000 in my world)
[16:19:20 CET] <JoshX> r_frame_rate=30/1 -> duration=900.010026
[16:19:41 CET] <JoshX> i don't get it.. and it's different if i use different encoders and decoders as well
[16:20:18 CET] <durandal_1707> muxers for duration only matters
[16:22:21 CET] <JoshX> but it's not as simple as frames / fps = duration??
[16:32:59 CET] <durandal_1707> JoshX: only for cfr, besides you never said container you use
[16:34:53 CET] <JoshX> its h264 / mp4
[16:35:08 CET] <JoshX> so when i recode with CFR it should be correct?
[16:35:41 CET] <JoshX> when i recode with -r 30/1 -vsync cfr
[16:35:51 CET] <JoshX> should that force the output to be exactly 30fps?
[16:38:26 CET] <JoshX> or what should be my ffmpeg command to convert the 27000 frames 30 fps mp4 h264 file to a file of 27000 frames with 30 fps and exactly 900 sec duration?
[16:49:02 CET] <JoshX> also, when I convert from 30/1 to lets say 15/1 and go from 27000 frames to 13502 or 13506.. even with cfr and everything.. why is that? :-/
[16:53:11 CET] <DHE> JoshX: it is assumed you want to preserve the video appearance
[16:53:45 CET] <DHE> what you should do is override the video input framerate. ffmpeg -r 30 input_at_15fps.vid [encoding options] output_at_30fps.vid
[16:53:47 CET] <DHE> or something like that
[16:56:28 CET] <JoshX> I'm trying exactly that: ffmpeg -y -c:v h264_cuvid -r 30/1 -i ../testinput.mp4 -c:v h264_nvenc -r 30/1 -vsync cfr test6.mp4
[16:56:39 CET] <JoshX> that should give me the correct output i assume?
[16:57:31 CET] <kepstin> you'll probably get the same result, because you're putting it back into mp4 container again (which iirc doesn't preserve exact timebase)
[16:57:36 CET] <JoshX> DHE: that works when I keep the framerate at 30/1
[16:57:46 CET] <JoshX> DHE: when i do ffmpeg -y -c:v h264_cuvid -r 30/1 -i ../testinput.mp4 -c:v h264_nvenc -r 15/1 -vsync cfr test6.mp4
[16:58:05 CET] <JoshX> I get 13505 output frames...
[16:58:15 CET] <JoshX> where I would expect 13500 exactly
[17:00:30 CET] <JoshX> the output of above command gives me a file of exactly 15:00.000 with exactly 27000 frames with frame rate 30/1 and when i dump all the frames, all frames have 0.0333333 sec duration
[17:00:42 CET] <JoshX> this is exactly what I expect and is super cool
[17:01:01 CET] <JoshX> then when i change the frame rate from that file to 15/1 i get 13502 frames in the output
[17:01:08 CET] <JoshX> :-O
[17:06:01 CET] <kepstin> that's probably just a quirk of how the fps filter works internally. Try using the select filter instead, to drop every second frame.
[17:08:14 CET] <kepstin> might need settb/setpts filters after it to correct the stream's framerate tho.
[17:08:34 CET] <kepstin> (otherwise it'll dup frames when outputting in crf mode)
[17:10:04 CET] <kepstin> something like -vf 'select=mod(n\,2),settb=1/15,setpts=N' would do what you want, I think.
[17:29:26 CET] <b0bby__> in C how would you combine to videos of different frame rates and with audio streams at different bit rates
[17:32:31 CET] <DHE> b0bby__: audio should probably be resampled to a constant rate. with the video you can manually set the timestamps on frames freely within the confines of the format and its framerate
[17:33:50 CET] <b0bby__> DHE: could you please elaborate on the video side?
[17:35:50 CET] <DHE> b0bby__: each frame has a "pts" value which sets its timestamp, in units relative to the time_base on the stream. if you set the time_base to 1/30, then you have 30fps material and you can set the pts of each frame to 1,2,3,... to make a normal 30fps video
[17:36:13 CET] <JEEB> (also in containers like mp4 you additionally have a duration set for each sample as well)
[17:36:16 CET] <DHE> if you're switching back and forth between 30fps and 60fps content, you could set the time_base to 1/60 and for 30fps material you use pts values of 2,4,6,8,...
[17:36:34 CET] <JEEB> (generally this then takes care of the issue of "what's the duration of the last sample?")
[19:38:25 CET] <lyncher> hi all. I'm wondering if anyone was able to successfully add SEI user data to H264 video frames?
[19:39:10 CET] <lyncher> I've looked to extract_mvs.c to be able to read existing SEI data
[19:39:26 CET] <lyncher> but what I really need is to _add_ SEI data
[19:39:40 CET] <lyncher> without reencoding the video stream
[19:39:56 CET] <lyncher> is that even possible (or I always need to reencode the video stream)?
[19:41:21 CET] <atomnuker> yes, h264_metadata bsf
[19:47:00 CET] <lyncher> but If I wan't to add 608 CC data, currently I'll need to work directly with the API (libavcodec & friends), right?
[19:47:27 CET] <lyncher> because in that scenario a SEI user data would have to be added at every frame
[19:48:57 CET] <atomnuker> yes
[19:52:45 CET] <lyncher> I've made a small change in transcoding.c to add SEI:
[19:52:46 CET] <lyncher> AVFrameSideData * new_sd = av_frame_new_side_data(frame, AV_FRAME_DATA_A53_CC, size);
[19:52:52 CET] <lyncher> memcpy(new_sd->data, data, size);
[19:53:07 CET] <lyncher> but the SEI data isn't being added to the frames in the output
[19:53:55 CET] <lyncher> I've started to add that changes in remuxing.c and encoder_video.c, but without any success
[19:54:14 CET] <atomnuker> muxing that isn't supported
[19:54:58 CET] <BtbN> pretty sure A53 stuff can only be actually added during encoding
[19:55:01 CET] <lyncher> what would be the right approach to mux that?
[19:55:29 CET] <BtbN> since it's actually in the bitstream of the video, which is extremely weird and wrong for subtitles
[19:56:49 CET] <lyncher> but that is the current approach that broadcast video contains the captions
[19:57:45 CET] <lyncher> ffmpeg already supports read_eia608 which is able to extract the captions from the video bitstream
[19:58:07 CET] <atomnuker> that's the current approach for the same small part of the world that gave us non-integer framerates
[19:58:25 CET] <lyncher> what I'm trying to achieve is something like "write_eia608"....
[19:58:27 CET] <BtbN> dvb definitely does not use it
[19:59:52 CET] <lyncher> dvb uses images to transport text instead....
[20:00:07 CET] <JEEB> DVB subtitles are images, DVB teletext is text
[20:00:09 CET] <JEEB> vOv
[20:02:09 CET] <lyncher> I'm able to create a dvb subtitle stream for live content
[20:02:44 CET] <lyncher> which just needs to be muxed in the main TS stream
[20:03:04 CET] <lyncher> to deliver live captions in dvb regions
[20:03:38 CET] <lyncher> but what I'm trying to figure out is out to add 608/708 captions in live streams
[20:03:47 CET] <lyncher> but what I'm trying to figure out is how to add 608/708 captions in live streams
[20:04:04 CET] <BtbN> you will need to re-encode the stream
[20:04:13 CET] <BtbN> It's impossible to add them outside of an encoder
[20:04:45 CET] <JEEB> were they in SEI messages or so?
[20:05:03 CET] <JEEB> or were they part of VCL NAL units+
[20:05:07 CET] <JEEB> ?
[20:05:30 CET] <lyncher> SEI/user_data payload
[20:05:42 CET] <lyncher> SEI_USER_DATA_REGISTERED_ITU_T_T35
[20:06:00 CET] <JEEB> ok, so in theory you could use a bit stream writer filter to stick them around
[20:06:15 CET] <JEEB> but I don't think FFmpeg has such subsystems; currently only encoders do things
[20:07:18 CET] <BtbN> I don't think you can put bitstream filters after encoders at all
[20:07:46 CET] <JEEB> that's why I didn't call it a BSF
[20:07:53 CET] <JEEB> but yes, in theory a BSF could do it?
[20:08:24 CET] <BtbN> for just remuxing, a bsf could totally be used though
[20:08:26 CET] <BtbN> if one existed
[20:08:45 CET] <JEEB> yup
[20:09:09 CET] <lyncher> but if the BSF can't be placed after the encoder and the muxer disregards the AVFrameSideData....
[20:09:24 CET] <BtbN> I thought you aren't re-encoding?
[20:09:30 CET] <JEEB> how is a muxer supposed to utilize that thing :P
[20:09:48 CET] <lyncher> I would like to avoid re-encoding
[20:16:32 CET] <lyncher> looking to remuxing.c.... what would I need to add there to add a bsf?
[20:18:00 CET] <BtbN> you need to write such a bsf first.
[20:18:17 CET] <BtbN> it doesn't exist. Only way to add a53 to a stream is to encode it
[20:19:27 CET] <lyncher> let's say that I write something like: h264_mp4toannexb_bsf.c
[20:20:20 CET] <lyncher> that get the frame from the packet, adds a53 data to the frame
[20:21:53 CET] <lyncher> ...but I still can get how would I create a new packet(s)
[20:36:34 CET] <lyncher> trying to play around with h264_metadata, but I'm getting: Unknown bitstream filter h264_metadata
[20:38:12 CET] <FishPencil> Is it possible to take a 10 frame video and stack each frame side by side (horizontally) into a final image? Or should I first save each frame and then combine
[20:39:06 CET] <kepstin> FishPencil: the tile filter should be able to do that.
[20:39:40 CET] <FishPencil> how about with an unknown number of tiles?
[20:40:24 CET] <kepstin> unknown number of tiles? no, and that's a problem in general since you'll hit ffmpeg's max image size pretty quickly with large frames/long videos :)
[20:40:26 CET] <FishPencil> The bigger picture: I want to crop a section of video, and "tile" the croped images side by side, frame by frame
[20:41:01 CET] <FishPencil> so i'll need to first save the crops, then combine
[20:41:11 CET] <kepstin> with an unknown number of tiles, you'll have to make a tool that analyzes the video in advance (e.g. using ffprobe) then generates the appropriate ffmpeg command line
[20:41:29 CET] <kepstin> or you could do them individually too, I guess.
[20:42:15 CET] <FishPencil> Can ffprobe get the number of frames in a video
[20:45:18 CET] <JEEB> after decoding, yes
[20:45:22 CET] <JEEB> -show_frames
[20:46:20 CET] <FishPencil> then FFmpeg could just do that
[20:46:49 CET] <JEEB> you can get number of packets from -show_packets but not sure if that always is the same as actual image or audio frames
[20:47:07 CET] <JEEB> (as in, IIRC NAL units generally get separated)
[20:47:13 CET] <JEEB> if not, then packets are just fine
[20:48:06 CET] <stephaneyfx> Is it ok to ask questions regarding the FFmpeg C API on here or is there a more appropriate channel?
[20:48:26 CET] <kepstin> stephaneyfx: for using the C api to build other apps? Right here is fine.
[20:48:40 CET] <stephaneyfx> kepstin: Exactly. Thank you.
[20:49:02 CET] <kepstin> (the #ffmpeg-devel channel is for development of ffmpeg itself)
[20:56:46 CET] <stephaneyfx> I read the explanations regarding timestamps given in https://stackoverflow.com/a/40278283. One step mentions to set the time_base of the decoder to some sane value before opening it (time_base in AVCodecContext) but the doc indicates that this field is deprecated when decoding and it recommends using the framerate field instead. Should I set framerate in the decoder context then (my sane value would be the inverse of the
[20:56:47 CET] <stephaneyfx> stream time_base)?
[21:12:09 CET] <FishPencil> What would be the correct crop filter args to return the vertical center line of pixels? 1 pixel wide, the middle one
[21:12:45 CET] <kepstin> FishPencil: what pixel format? e.g. in yuv420p you can't get a single pixel wide video, has to be a multiple of 2
[21:13:06 CET] <kepstin> FishPencil: you might have to convert to yuv444p or something first
[21:13:32 CET] <FishPencil> It's yuv420p
[21:13:39 CET] <stephaneyfx> I also noticed that the demuxing_decoding example does not seem to perform any timestamp conversion after getting a packet from the demuxer and before passing it on to the decoder. Shouldn't the pts of the packet be converted to use the decoder's time_base?
[21:14:10 CET] <kepstin> stephaneyfx: I'd recommend first just reading the comments in the avcodec.h header file - it tells you for each field whether you're supposed to set it or the codec sets it for decoding and encoding.
[21:15:29 CET] <lyncher> JEEB + BtbN: just found this repo: https://github.com/jpoet/ffmpeg
[21:15:42 CET] <lyncher> the changelog is: Add A53 Closed Captions to MPEG header if they are available.
[21:15:54 CET] <BtbN> and so it does?
[21:16:01 CET] <lyncher> but....
[21:16:06 CET] <BtbN> are you encoding mpeg?
[21:16:13 CET] <lyncher> it is only implemented for mpeg2
[21:16:14 CET] <JEEB> lyncher: see the file :P
[21:16:31 CET] <JEEB> it's the MPEG-1/2 video encoder
[21:16:35 CET] <BtbN> h264 should already be able to add a53 in most/all encoders
[21:16:54 CET] <lyncher> but it added some concept that was rejected by ffmpeg main repo: an array of AVFrameSideData per frame
[21:18:21 CET] <stephaneyfx> kepstin: Thank you for your answer. These comments appear to be the same as the ones in the doxygen doc. They indicate that time_base in AVCodecContext is deprecated when decoding, so I just wanted to know if I should set framerate instead before opening the decoder (https://stackoverflow.com/a/40278283 indicates to set time_base of the decoder).
[21:19:21 CET] <lyncher> in ffmpeg main repo I see code to decode a53 from h264 in h264_sei.c
[21:23:38 CET] <kepstin> stephaneyfx: according to the comments in the header file, the decoder might set it if a framerate is stored in the codec bitstream. There's no reason for you to ever set it when decoding, and in fact you should probably generally ignore it in favour of the framerate you get from the AVFormat instead.
[21:23:57 CET] <lyncher> in h264_slice.c a53 data is copied (for pass-through I suppose - which means that must be contained in source stream)
[21:25:24 CET] <kepstin> stephaneyfx: (er, from the AVStream specifically)
[21:27:52 CET] <stephaneyfx> kepstin: (Sorry if my questions sound silly, I am just having a hard time understanding all the timestamps and time bases) I thought that a stream and the corresponding decoder can use different time bases for timestamps (and this is what https://stackoverflow.com/a/40278283 seems to indicate) and that pts should be converted after reading a packet from the demuxer and before feeding it to the decoder. Did I misunderstand?
[21:32:17 CET] <kepstin> stephaneyfx: I think with current ffmpeg, the codec is supposed to just pass through the pts/dts values from the packet to the frame.
[21:32:19 CET] <stephaneyfx> I can see this conversion happening in the muxing example (conversion of a packet's timing fields from codec to stream time base), and I was expecting the reverse conversion when demuxing/decoding as the stackoverflow entry explains.
[21:32:47 CET] <kepstin> stephaneyfx: but I'd have to confirm this, I haven't looked to closely recently :/
[21:33:37 CET] <stephaneyfx> kepstin: Oh, so does it mean the timing fields in AVFrame are in AVStream's time_base unit?
[21:34:39 CET] <kepstin> stephaneyfx: they should be, yes.
[21:36:22 CET] <stephaneyfx> kepstin: So the time_base of the codec context is used only when encoding/muxing to convert the packet's timing fields from the encoder's time_base to the muxer's time_base? For decoding/demuxing, there's no such conversion?
[21:37:43 CET] <stephaneyfx> Err, from the encoder's time_base to the AVStream's time_base
[21:37:57 CET] <kepstin> normally when encoding, you'd set the encoder's time base to the same as the avstream's timebase, I'd think?
[21:39:45 CET] Action: kepstin notes that when decoding, you're supposed to set the pkt_timebase on the decoder to the timebase from the avstream.
[21:41:36 CET] <stephaneyfx> kepstin: I would think so too. But I guess there may be cases where they are different (e.g. I have read that a decoder can change its time base when it gets opened).
[21:42:17 CET] <stephaneyfx> Interesting note regarding pkt_timebase. Let me look it up. Thank you very much for your help kepstin.
[21:44:32 CET] <stephaneyfx> Looks useful indeed. I had overlooked this field. Thank you again.
[21:44:47 CET] <FishPencil> kepstin: I don't even think yuv444p can do single pixel width
[21:44:47 CET] <kepstin> stephaneyfx: like I said, just read through the comments/docstrings on all the fields on the avcodeccontext, they say who sets it.
[21:45:24 CET] <kepstin> FishPencil: i'd have to see your full filter line. You should be able to do single pixel width stuff with yuv444p.
[21:45:44 CET] <FishPencil> -i cut.mp4 -pixel_format yuv444p -vf "crop=1:in_h:0:100"
[21:46:13 CET] <stephaneyfx> kepstin: I have but will again, more thoroughly this time. I was just trying to match this stackoverflow answer with the current API. Thank you very much.
[21:47:22 CET] <kepstin> FishPencil: -pixel_format does nothing there. You want to do -vf "format=yuv444p,crop=1:in_h:0:100"
[21:48:20 CET] <kepstin> FishPencil: the correct name for the output option to set pixel format is "-pix_fmt", and it's equivalent to adding a ",format=XXX" to the *end* of the video filter chain.
[21:48:42 CET] <kepstin> FishPencil: to do a format conversion earlier, you usually have to add it explicitly to the filter chain.
[22:11:18 CET] <rjp421> ffmpeg-git-20180111-64bit-static/ffmpeg on centos 6 x64, kernel 2.6.32-696.18.7.el6.x86_64: "FATAL: kernel too old"
[22:11:43 CET] <rjp421> the latest kernel
[22:13:28 CET] <kepstin> upgrade to centos 7? it has a newer kernel
[22:13:51 CET] <kepstin> or build ffmpeg yourself, i guess, if you can't find a build that works on that old kernel.
[22:15:59 CET] <therage3> this is at least the 50th time I've seen someone in a support channel ask something because a CentOS kernel is way too ancient
[22:16:12 CET] <therage3> 2.6.32-696.18.7.el6.x86_64
[22:16:14 CET] <therage3> Jesus
[22:16:27 CET] Action: kepstin notes that kernel 2.6.32 was originally released in 2009, although centos/rhel has *heavily* modified it.
[22:17:25 CET] <rjp421> easier said than done
[22:21:03 CET] <rjp421> certain bs on the server wont run on centos7, or else id be using it
[22:21:14 CET] Action: therage3 is on 4.14.13 :)
[22:32:58 CET] <kepstin> rjp421: well, there's always the option of just building ffmpeg yourself.
[22:34:47 CET] <rjp421> meaning i need to install all the codecs etc, to build against. clutter i dont want on the server
[22:34:58 CET] <furq> to be fair the page does say it should work on 2.6.32
[22:35:02 CET] <rjp421> especially needing extra repos for the codecs
[22:35:04 CET] <furq> so i assume relaxed would want to know if it doesn't
[22:38:06 CET] Action: kepstin would spin up a new centos 7 vm, build a static ffmpeg there, then copy the binaries over.
[22:57:20 CET] <SortaCore> Okay Google, play 10 minutes of silence.
[23:08:56 CET] <kepstin> Youtube: <plays a loud advertisement before someone's video of contentid-matched silence>
[23:13:06 CET] <tyng> in this output which represents the colormatrix, primaries and gamma values? yuv422p10le(tv, bt709/unknown/unknown)
[23:13:59 CET] <JEEB> the three are those after tv|pc (limited|full) range IIRC
[23:14:10 CET] <tyng> but in which order?
[23:14:15 CET] <JEEB> you could just ffprobe -of json -show_streams I think?
[23:14:24 CET] <JEEB> to actually get the values in a parse'able manner
[23:17:26 CET] <jkqxz> matrix/primaries/transfer, it's made by <http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavcodec/utils.c;h=4c71843…>.
[23:19:20 CET] <tyng> json outputs confirms its pixfmt(range, space/primaries/transfer)
[00:00:00 CET] --- Wed Jan 17 2018
1
0