Ffmpeg-devel-irc
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
May 2018
- 1 participants
- 62 discussions
[04:31:38 CEST] <atomnuker> jkqxz / whoever's up to it: can you test my latest vulkan patchset?
[04:31:48 CEST] <atomnuker> I think its pretty much complete
[10:56:53 CEST] <mohamed_> hi
[10:57:06 CEST] <mohamed_> hello everyone
[10:57:08 CEST] <mohamed_> [10:55] <mohamed_> i have a little question
[10:57:10 CEST] <mohamed_> [10:56] <mohamed_> I'm trying to create video from images
[10:57:11 CEST] <mohamed_> [10:56] <mohamed_> I use this command line :
[10:57:13 CEST] <mohamed_> [10:56] <mohamed_> ffmpeg -i out*.png videoout.avi
[10:58:03 CEST] <nevcairiel> You want #ffmpeg for user help
[11:09:51 CEST] <J_Darnley> Well that won't work right anyway
[11:11:01 CEST] <J_Darnley> it probably overwrote all the other files too
[11:11:13 CEST] <J_Darnley> oh, I guess you need to confirm that
[12:16:24 CEST] <atomnuker> how is variable frame size encoding meant to work (with a hardware encoder, but asking in general)?
[12:16:53 CEST] <atomnuker> drain decoder, then reinit a new one with a new hwframes context ref'd to it?
[12:17:01 CEST] <atomnuker> erm encoder
[12:17:59 CEST] <mohamed_> this command work for me, but in script shell
[12:18:02 CEST] <mohamed_> ffmpeg -framerate 10 -pattern_type glob -i '*.jpg' -c:v libx264 -pix_fmt yuv420p out.mp4
[12:18:35 CEST] <J_Darnley> bye
[12:22:24 CEST] <BtbN> atomnuker, i don't think it's supposed to work at all?
[12:23:25 CEST] <atomnuker> it is working, its just I'm not sure how much I need to tear and rebuild stuff
[12:23:36 CEST] <BtbN> Everything I'd say
[12:23:44 CEST] <BtbN> at least for the cuda chain nothing supports it at all
[12:26:05 CEST] <atomnuker> yeah, seems like everything down to the avstream itself, including
[12:42:43 CEST] <nevcairiel> the stream should be mostly fine if you use a muxer that can take extradata changes (or in-band extradata), like mpegts, which just doesnt care what the stream contains except the codec
[12:42:52 CEST] <nevcairiel> but the codec context definitely needs rebuilding
[12:45:46 CEST] <atomnuker> codecpar would need to get updated via avcodec_parameters_from_context again, wouldn't it? despite the fact that the header has been written (and you can't write a new one)
[12:47:17 CEST] <nevcairiel> we have sidedata for new extradata and even other property changes, although extradata is what really matters
[12:49:16 CEST] <nevcairiel> most containers can only store one set of information anyway, consider mkv and h264, it can store multiple SPS/PPS in its extradata field so you can change the resolution later on if you want to, but it can only store one value for resolution
[12:49:26 CEST] <nevcairiel> so what is it supposed to do with a second value?
[12:51:11 CEST] <atomnuker> mkv supports resolution changes
[12:52:41 CEST] <nevcairiel> not really though, its not a container feature as such, it only works if the codec stored inside it does all the work
[14:37:17 CEST] <durandal_1707> 5/win2
[17:01:10 CEST] <durandal_1707> anybody knows anything about convolving Nx(S+1) matrix with 2K+1 kernel?
[20:07:19 CEST] <cone-115> ffmpeg 03Carl Eugen Hoyos 07master:42b435133332: lavf/img2dec: Auto-detect xwd images.
[20:11:30 CEST] <cone-115> ffmpeg 03Carl Eugen Hoyos 07master:7b51b8020c0a: lavc/j2kenc: Support AV_PIX_FMT_PAL8.
[20:52:51 CEST] <cone-115> ffmpeg 03Carl Eugen Hoyos 07master:085fe9822daa: lavc/hevc_ps: Use correct pix_fmt AV_PIX_FMT_GRAY9 for 9-bit 4:0:0 input.
[22:55:15 CEST] <rindolf> Hi all! Can anyone review and apply this patch - http://www.shlomifish.org/Files/files/code/0001-Refactor-two-near-identical… ?
[23:17:51 CEST] <tmm1> rindolf: please send it to the ffmpeg-devel mailing list
[23:26:50 CEST] <rindolf> tmm1: thanks, sent
[00:00:00 CEST] --- Sat May 26 2018
1
0
[01:33:48 CEST] <johnnny22> Hi guys & girls
[01:35:14 CEST] <johnnny22> I'm having problems encoding this short part of a stream that can be found at http://frederic.bochmann.ca/hevc/source/sample_fmp4_fmp4/master.m3u8
[01:35:32 CEST] <johnnny22> I get something like " could not find corresponding track id 0 "
[01:35:50 CEST] <johnnny22> and it quickly dies with "Too many packets buffered for output stream 0:1."
[01:39:10 CEST] <johnnny22> trying to figure out either whats wrong with the stream or ffmpeg ;)
[01:40:48 CEST] <JEEB> http://up-cat.net/p/00b68a8a
[01:41:56 CEST] <JEEB> ah, fun there's multiple messages like that in mov.c
[01:42:08 CEST] <johnnny22> 2 of them :)
[01:42:13 CEST] <johnnny22> if i recall right
[01:43:14 CEST] <JEEB> tfdt, trun, sidx
[01:43:25 CEST] <johnnny22> JEEB: not sure if you'll need libx265 as it's hevc in the video
[01:43:29 CEST] <JEEB> no
[01:43:32 CEST] <JEEB> the decoder is internal
[01:43:38 CEST] <johnnny22> ah right, ok
[01:43:39 CEST] <JEEB> 99% of all decoders are internal
[01:44:30 CEST] <JEEB> this is 100% container thing, it seems to refer to track IDs that are not there in things (most likely because it opens up new demuxers for fragments? not sure)
[01:46:16 CEST] <JEEB> with stream copy I did get both video and audio, though
[01:46:20 CEST] <JEEB> so it isn't fatal?
[01:46:37 CEST] <JEEB> `ffmpeg -v verbose -i "http://frederic.bochmann.ca/hevc/source/sample_fmp4_fmp4/master.m3u8" -c copy -movflags faststart out.mp4`
[01:46:50 CEST] <JEEB> this actually finishes
[01:47:16 CEST] <JEEB> of course it seems like something wonky happens in timestamps
[01:47:40 CEST] <johnnny22> but the out.mp4 doesn't show the video anymore
[01:47:52 CEST] <JEEB> worked for me
[01:48:13 CEST] <johnnny22> i'll try another player (was using vlc)
[01:48:25 CEST] <JEEB> I get a cathedral and some audio in mpv
[01:48:35 CEST] <johnnny22> oh works
[01:48:45 CEST] <johnnny22> right, and then a change of scene
[01:48:56 CEST] <johnnny22> and then another
[01:49:03 CEST] <JEEB> the timestamp messages are kind of worrying during the remux, but I'm not gonna debug this at 3am :D
[01:49:10 CEST] <JEEB> I've already herped a derp enough for the past 24h
[01:49:20 CEST] <johnnny22> haha
[01:49:33 CEST] <johnnny22> Is there a way to clone that behavior with you know what other player ? :)
[01:49:48 CEST] <JEEB> I'll have to check wtf is going on first
[01:49:58 CEST] <JEEB> not now, now I sleep and wake up in 5h and go to work
[01:50:04 CEST] <johnnny22> aight :D
[01:50:12 CEST] <johnnny22> thanks for the eyes on this though ! :)
[01:50:39 CEST] <johnnny22> I'll keep on digging around and will keep you posted if i find out more.
[01:50:59 CEST] <johnnny22> I'll try to create a source that has timestamps that start at 0 , instead of system time based :P
[01:53:56 CEST] <johnnny22> JEEB: 0 based seems to work better for now :P
[01:54:19 CEST] <johnnny22> JEEB: 0 based seems to work better for now :P but as soon as the window has slided away it's kaput
[01:55:00 CEST] <johnnny22> I mean, if the window has slided, starting ffmpeg on an already slided playlist seems to make it fil.
[01:55:04 CEST] <johnnny22> fail ^
[07:12:07 CEST] <fa0> Hello
[07:13:10 CEST] <fa0> Some older rips I've been going through and removing Title Tags that were previously set, I thought '-map_metadata -1' will only remove metadata tags? But it's also removing a second audio stream...
[07:13:29 CEST] <fa0> I have these;
[07:13:30 CEST] <fa0> Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
[07:13:39 CEST] <fa0> Stream #0:2(eng): Audio: aac (LC), 24000 Hz, mono, flt
[07:13:52 CEST] <fa0> And that last mono stream gets removed with -map_metadata -1
[07:14:14 CEST] <fa0> This is in Linux with ffmpeg-3.4.2
[07:14:30 CEST] <fa0> This is the cmd I'm running from a script;
[07:14:32 CEST] <fa0> urxvt -g 120x32 -e ffmpeg -i "$i" -c:v copy -sn -map_metadata -1 -c:a copy "$OUTPUT/${i%.*}.mkv"
[07:16:05 CEST] <fa0> To remove only a Title tag, should I only use this instead? -metadata title=
[07:18:36 CEST] <fa0> SORRY my bad, I realize now -c:a copy isn't copying all the audio streams... :(
[07:18:40 CEST] Action: fa0 bangs head
[07:19:24 CEST] <furq> fa0: -map 0
[07:19:32 CEST] <fa0> yeah I just saw that LOL
[07:19:37 CEST] <fa0> oh boy, I be dummy...
[07:20:00 CEST] <furq> honestly the default stream mapping behaviour is kind of dumb
[07:20:09 CEST] <furq> it's just one of those legacy things i guess
[07:20:43 CEST] <fa0> hmm
[07:21:01 CEST] <fa0> yeah I thought by now -c:a copy would do it all...
[07:26:45 CEST] <fa0> furq: if I just want the first two streams then use this? --> -map 0:1 -map 0:2
[07:43:49 CEST] <furq> you presumably want -map 0:v as well
[07:44:15 CEST] <fa0> yeah that's 0:0
[07:44:32 CEST] <fa0> So I'm doing it like this now;
[07:44:33 CEST] <fa0> urxvt -g 120x32 -e ffmpeg -i "$i" -map 0:0 -map 0:1 -map 0:2 -c:v copy -sn -map_metadata -1 -c:a copy "$OUTPUT/${i%.*}.mkv"
[07:50:36 CEST] <fa0> To be honest I didn't originally rip these, not sure why it has 2 audio tracks for the video, stereo and mono... I personally don't get or see the benefit here...
[07:50:37 CEST] <fa0> hmm
[08:04:51 CEST] <fa0> furq: thanks for help
[08:55:28 CEST] <alex108> is there a way to not drop frames when resampling PAL 25 fps to film 24 fps. setpts=N/(24*TB) keeps dropping frames
[08:57:05 CEST] <faxmodem> you could slow down frame rate, I guess
[08:57:53 CEST] <mifritscher> moin
[09:00:17 CEST] <mifritscher> is there a documentation what max_buffer and rtbufsize do exactly (in case of rtsp)? For example: Does max_buffer set more a "default buffer" (aka delay), and does rtbufsize causes always delay or only if data comes too fast (what case would that be?)
[09:03:01 CEST] <alex108> slow down frame rate in what way? -r 25 in and -r 24 out will decimate, so will the fps=24 filter. also tried setpts=N/(24*TB),fps=24, way less drops within the two digits
[09:07:29 CEST] <mifritscher> alex108: My input is a rtsp webcam connected via wireless
[09:08:31 CEST] <mifritscher> the output straight from the camera is smooth, but the wlan causes 300 ms pauses every few seconds, which can be seen in the output of ffmpeg as well (I'm using the library directly)
[09:09:20 CEST] <mifritscher> so I would like to have a 500ms long buffer
[09:10:24 CEST] <alex108> mifritscher, I was actually asking too, my bad
[09:10:44 CEST] <mifritscher> no problem :-)
[10:01:26 CEST] <Ivan_> Hello
[10:04:47 CEST] <Nacht> Anyone have experiance using WEBDAV with authentication with FFMPEG ? I can't seem to figure out where to specify the user/pass
[10:09:00 CEST] <BtbN> https://user:password@blabla.de/.... I guess
[10:55:08 CEST] <mohamed_> hello everyone
[10:55:41 CEST] <mohamed_> i have a little question
[10:56:00 CEST] <mohamed_> I'm trying to create video from images
[10:56:21 CEST] <mohamed_> I use this command line :
[10:56:31 CEST] <mohamed_> ffmpeg -i out*.png videoout.avi
[10:58:53 CEST] <ubitux> http://ffmpeg.org/ffmpeg-formats.html#toc-image2-1 + http://ffmpeg.org/ffmpeg-formats.html#Examples-1
[11:43:05 CEST] <Ivan_M> hello. Maby anybody know howto fix this trouble - Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
[11:43:23 CEST] <Ivan_M> i probe cut some part of file
[14:00:07 CEST] <Hackerpcs> why on show_entries mode the frame rate of a 23,976 fps, avg_frame_rate is 13978/583 ?
[14:00:44 CEST] <Hackerpcs> on ffprobe
[14:04:04 CEST] <Hackerpcs> i mean why it isn't pretty like the 23,976 :P
[14:04:16 CEST] <Hackerpcs> i used the -pretty option
[14:36:13 CEST] <xwni> Hi Folks, can anyone help me build a filter_complex command; I've got it adding an overlay image to a video; and writing out the result... I want to change it to append a fullscreen jpg to the end, say to display the jpg for 5 seconds at the end of the video.
[14:50:40 CEST] <kubast2> Anyone knows whether veryslow/placebo first pass improve quality over ultrafast/superfast/veryfast first pass?
[14:53:24 CEST] <BtbN> the preset for first and second pass have to match, otherwise the recorded data is useless
[14:53:35 CEST] <BtbN> also, placebo is named placebo for a reason.
[14:57:12 CEST] <xwni> https://pastebin.com/06SNt4J6 ; I have added a png overlay onto a mp4. Can anyone help me with a command to append an image at the end of the result - to display for 5 seconds (with 5 secs silence).
[14:58:38 CEST] <alex108> I gave up on resampling with setpts, loading an avisynth script and remuxing audio with atempo worked out
[15:30:01 CEST] <Diag> sorry if my znc spammed
[16:20:29 CEST] <aiena> I have a series of m4s segments. For video and audio. I just downloaded all the video segments and concatenated them together. If I do ffmpeg -i foo.mps bar.mp4 it works for the video. How do I convert the video and audio m4s data to an mp4?
[16:20:57 CEST] <aiena> *ffmpeg -i foo.m4s bar.mp4
[16:21:30 CEST] <aiena> her foo.4s is the concatenated segments data. from segment-0.m4s to segment-n.m4s
[16:21:35 CEST] <aiena> *m4
[16:21:38 CEST] <aiena> *m4s
[17:18:19 CEST] <anill> Hello people, suppose i make a skype video call from one user to another how can i give the live stream to ffmpeg to capture the traffic of the call and generate a final H264 video file.
[17:27:59 CEST] <ChocolateArmpits> anill, it'd probably make more sense to use a screengrabber
[17:29:08 CEST] <anill> ChocolateArmpits: Hi do you know how can i give live streams to ffmpeg and make it output an MP4/H264 file
[17:31:48 CEST] <ChocolateArmpits> anill, it's just simple ffmpeg -i [streamlink] output.mp4
[17:32:09 CEST] <ChocolateArmpits> additionally specify bitrate with -b:v [size]
[17:32:37 CEST] <anill> ChocolateArmpits: Thanks :)
[17:32:56 CEST] <ChocolateArmpits> without the brackets of course
[17:56:07 CEST] <johnnny22> JEEB: So, after further testing -c:a copy seems to help, but AV sync seems to get ~0.2s late audio. It seems to play in sync with other engines like vlc and web-players.
[17:57:10 CEST] <JEEB> it can be a whole lot of things, I'd have to check it after I have the time. if you can provide a description with ffmpeg.c to trac.ffmpeg.org (tested with as new FFmpeg as possible, since you most likely will be asked to do that anyways)
[17:58:36 CEST] <johnnny22> right, are the windows nightly builds found at https://ffmpeg.zeranoe.com/builds/ good enough ? :)
[18:00:15 CEST] <JEEB> should be
[18:00:26 CEST] <JEEB> ffmpeg -version should give the -gXXXXX git revision
[18:00:59 CEST] <johnnny22> *thumbs up*
[18:01:14 CEST] <johnnny22> and what did you mean by "description with ffmpeg.c" ?
[18:04:01 CEST] <JEEB> as in, use cases with the FFmpeg command line tool, which is ffmpeg.c
[18:04:11 CEST] <johnnny22> aah okay ;)
[19:02:12 CEST] <saml_> how can I do content aware encoding?
[19:02:17 CEST] <saml_> --content-ware=1 ?
[19:02:43 CEST] <durandal_1707> wtf?
[19:02:59 CEST] <saml_> if a video is animation then becomes sports event, can ffmpeg dynamically change encoding params for optimal result?
[19:03:31 CEST] <durandal_1707> no
[19:04:00 CEST] <saml_> would it be useful to have such feature? or just a lot of work to implement such with little reward?
[19:04:24 CEST] <saml_> i guess codecs are already smart enough (adaptive enough)
[19:13:39 CEST] <furq> is there even such a thing as realtime context-aware encoding
[19:14:29 CEST] <saml_> you can build one for me so i can use it for free
[19:14:42 CEST] <furq> i'd be surprised if that's even possible to do well
[19:15:39 CEST] <tdr> realtime aware vs realtime capable, "aware" would me its doing scope creep outside its job to find out about scheduling etc. ugly
[19:15:47 CEST] <saml_> deep learning + big data + ... =
[19:15:53 CEST] <furq> lol
[19:16:45 CEST] <furq> dynamic content media experience enables cloud disruption
[19:17:30 CEST] <saml_> but isn't there some kind of theoretical limit of bitrate? and we can calculate how much bandwidth cost it'll save
[19:18:17 CEST] <furq> iptv almost always uses cbr anyway
[19:18:43 CEST] <saml_> instead of trying to cut the cost, need to find ways to earn money more
[19:19:51 CEST] <furq> well yeah dynamically changing encoding params in the middle of a stream is possible and well supported
[19:19:54 CEST] <furq> it's just not possible in ffmpeg
[19:20:25 CEST] <furq> at least with x264 you need to reinit the encoder to change params
[19:21:30 CEST] <saml_> hrm i see
[19:21:39 CEST] <furq> so if you're able to analyse (or preferably encode) the different stream segments ahead of time, this isn't that complicated a problem
[19:21:53 CEST] <furq> but doing it in realtime sounds awful
[19:21:59 CEST] <saml_> would it be helpful to analyze video and generate ffmpeg arguments per video file?
[19:22:17 CEST] <furq> unless you're encoding the segments ahead of time you shouldn't use the ffmpeg cli for this at all
[19:22:40 CEST] <saml_> yeah this will be something like youtube (no live stream)
[19:22:52 CEST] <furq> the networking stuff in ffmpeg is more of a convenience than anything else
[19:23:04 CEST] <furq> i wouldn't do anything remotely critical with it
[19:23:44 CEST] <saml_> what do you mean? instead of ffmpeg -i http://... -f mp4 http://... save to file?
[19:24:02 CEST] <furq> i mean you can do that and it'll probably work
[19:24:16 CEST] <furq> but error handling for all network stuff is practically nonexistent
[19:24:18 CEST] <saml_> but it's better/safer to save to disk, right?
[19:24:24 CEST] <saml_> ah i see
[19:25:16 CEST] <furq> it sounds like you need to use the libs anyway
[19:25:38 CEST] <saml_> so i get 2 hour video. segment it first (delivery will be HLS). encode segments. upload encoded segments
[19:26:06 CEST] <furq> sure
[19:26:06 CEST] <saml_> different ffmpeg params maybe applied to each segment
[19:26:26 CEST] <saml_> let's build this
[19:26:50 CEST] <furq> i have no idea how well that'll handle SPS changing mid-stream
[19:27:02 CEST] <furq> i guess you'll find out soon enough
[19:27:14 CEST] <saml_> https://sps.cuny.edu/ ? what is sps?
[19:27:25 CEST] <furq> sequence parameter set
[19:27:31 CEST] <furq> one of the h264 headers
[19:27:45 CEST] <saml_> okay let's not use different ffmpeg params per segment
[19:27:59 CEST] <furq> i'm not saying it won't work
[19:28:17 CEST] <saml_> it'll be future feature
[19:28:29 CEST] <furq> sending a new SPS mid-stream generally works fine in most players in mpegts
[19:28:42 CEST] <furq> idk how web players will handle it
[19:28:58 CEST] <saml_> what output format would you choose for segmenting? mp4 with -crf 0?
[19:29:00 CEST] <furq> also yeah this sounds like something the ffmpeg cli will handle just fine
[19:29:11 CEST] <furq> i would use mpegts
[19:29:25 CEST] <saml_> segmenting first enables me to parallelize encoding
[19:29:31 CEST] <furq> oh
[19:29:39 CEST] <furq> i take it you mean across multiple machines
[19:29:46 CEST] <saml_> yeah
[19:30:02 CEST] <saml_> ffmpeg already maximizes all cores
[19:30:46 CEST] <saml_> if i can segment 2 hour videos and massively parallelise it and encode everything with 200 machines...
[19:32:04 CEST] <furq> that sort of seems like it's only worth doing if you have hundreds of videos
[19:32:40 CEST] <saml_> yeah thousands a day or more
[19:32:59 CEST] <furq> oh right you're making a youtube clone
[19:33:00 CEST] <furq> nvm then
[19:33:18 CEST] <saml_> there are so many video companies: youtube, vimeo, dailymotion,... not sure why there's no tool i can just download and use
[19:35:20 CEST] <saml_> https://stackoverflow.com/questions/35133119/ffmpeg-splitting-large-files there's already solution
[19:36:37 CEST] <furq> you probably want to double check the audio is correct after doing that
[19:37:02 CEST] <furq> cutting with -c copy and relying on ffmpeg to just find the nearest keyframe has a tendency to screw up the audio
[19:37:10 CEST] <furq> but hopefully the segment muxer is smart enough to not do that
[19:37:30 CEST] <furq> if it doesn't work you can always just remove the audio and encode that by itself
[19:37:32 CEST] <ChocolateArmpits> youtube does exactly that, it segments and encodes each segment separately, applying some additional quality correction
[19:37:47 CEST] <ChocolateArmpits> furq, it would be smarter to separate video and audio
[19:37:55 CEST] <furq> that's what i said
[19:38:08 CEST] <ChocolateArmpits> missed
[19:38:19 CEST] <furq> maybe i didn't say it very clearly
[19:38:21 CEST] <furq> that's what i meant anyway
[19:38:30 CEST] <ChocolateArmpits> nah you did, I just skimmed
[19:39:10 CEST] <furq> but yeah it probably is a good idea in general to not segment the audio
[19:46:25 CEST] <saml_> ChocolateArmpits, do you have youtube script?
[19:51:52 CEST] <saml_> if I separate audio, HLS segments won't have audio
[19:52:22 CEST] <saml_> I guess, separate audio, segment, encode, combine segments and audio back, then segment again for HLS?
[00:00:00 CEST] --- Sat May 26 2018
1
0
[00:04:01 CEST] <Chloe> durandal_1707: figure it out?
[00:04:37 CEST] <Chloe> Rip
[00:14:33 CEST] <klaxa> jdarnley: do you think this is okay or should i really move everything ping-pong between C lua and C? https://gist.github.com/klaxa/6d3aa0127b311dcc79d88f89cc15accf
[00:16:17 CEST] <klaxa> configs_read() now loads the lua file, the parser function and then calls it with pcall, the parser function fills a file-scope variable with the config and returns the number of configs and raises luaL_error() on errors
[00:16:18 CEST] <klaxa> number of configs is kind of misleading, it's the number of configured servers
[00:16:53 CEST] <klaxa> hmm good thing i see *now* that my editor is messing up tabs and spaces
[00:17:00 CEST] <jdarnley> :)
[00:17:28 CEST] <jdarnley> change the second "Unable to read config file" to "parse"
[00:17:52 CEST] <jdarnley> I don't object to the global var but it should be static
[00:18:01 CEST] <klaxa> right
[00:18:02 CEST] <klaxa> ok
[00:19:27 CEST] <jdarnley> Oh, I guess if it isn't a library it doesn't matter whether it is static or not.
[00:19:58 CEST] <klaxa> why would it be different if it was a library?
[00:20:33 CEST] <jdarnley> Things that aren't static are "public"
[00:20:53 CEST] <klaxa> ah, didn't realize static made things "private"
[00:21:34 CEST] <jdarnley> In this case it limits it to just the scope of the file.
[00:22:09 CEST] <jdarnley> I think static is a bit overloaded in meaning in C
[00:22:30 CEST] <jdarnley> But that might just be because I've never read the technical definition of it.
[00:22:53 CEST] <klaxa> and being taught mostly java in uni doesn't help
[00:23:20 CEST] <jdarnley> I definitely don't mean it in the object oriented sense
[00:23:34 CEST] <jdarnley> ... of public/private
[00:23:43 CEST] <klaxa> yeah, it's just differently used in different contexts
[00:25:30 CEST] <klaxa> well, thanks for that explanation, that made it a bit clearer :=
[00:25:33 CEST] <klaxa> :)
[01:29:29 CEST] <klaxa> can av_realloc() fail on shrinking?
[01:37:52 CEST] <nevcairiel> all calls to it should be considered possible to fail
[01:38:06 CEST] <nevcairiel> you dont know what an allocator might try to do
[01:39:16 CEST] <klaxa> hmm yeah that's what i thought...
[01:45:35 CEST] <klaxa> oh god i have so many unchecked allocations....
[02:02:16 CEST] <atomnuker> jkqxz: so I'm trying to map DRM to VAAPI and I'm hitting the "av_assert0(i < FF_ARRAY_ELEMS(vaapi_format_map));" assert
[02:02:40 CEST] <atomnuker> do you happen to know why with VA_FOURCC_BGRX it fails to find a va_rt_format?
[02:03:05 CEST] <atomnuker> earlier today a few people in #mpv hit the same issue (on amd and i915)
[02:03:20 CEST] <atomnuker> though they used ffmpeg.c and I'm using the api
[02:04:02 CEST] <atomnuker> it makes no sense since there's a BGRX entry in vaapi_format_map
[02:13:39 CEST] <jkqxz> Blech, it always fails. Clearly wasn't tested at all.
[02:14:35 CEST] <jkqxz> Will fix.
[02:20:53 CEST] <cone-014> ffmpeg 03Mark Thompson 07master:8ef51a4092a5: hwcontext_vaapi: Fix mapping from DRM
[02:20:58 CEST] <jkqxz> atomnuker: ^
[02:38:21 CEST] <atomnuker> thanks, awesome
[02:38:32 CEST] <atomnuker> can you backport to whatever release branch it applies to?
[02:42:37 CEST] <jkqxz> It's not on any release branch.
[02:58:03 CEST] <atomnuker> that code's been there for about a year now, hasn't it? should at least apply to 4.0
[02:59:09 CEST] <nevcairiel> it was only broken recently by the added assertion
[05:49:24 CEST] <cone-969> ffmpeg 03Colin NG 07master:9aee574dd092: avformat/dashdec: Fix for ticket 7149 (Segfault when decoding dash streams)
[05:49:24 CEST] <cone-969> ffmpeg 03Colin NG 07master:93fc96e1997d: avformat/dashdec: Fix for ticket 7149 (Segfault when decoding dash streams)
[05:49:24 CEST] <cone-969> ffmpeg 03Steven Liu 07master:04b6060616b0: avformat/dashdec: replace user-agent to user_agent for deprecate warning message
[05:56:32 CEST] <cone-969> ffmpeg 03Steven Liu 07master:50df4c958b64: avformat/hlsenc: support http method for hls fmp4
[13:50:29 CEST] <kierank> gagandeep: what are you working on now
[13:55:58 CEST] <gagandeep> kierank: i think i just figured out for group decoding
[13:56:25 CEST] <kierank> you mean the 3d transform?
[13:56:27 CEST] <gagandeep> its spatial inverse for the num_spatial times, then inverse temporal
[13:56:30 CEST] <gagandeep> yeah
[13:56:46 CEST] <gagandeep> after that we get two fields even and odd from inverse spatial
[13:56:47 CEST] <kierank> ok, well I guess try and get the mountain clip to work
[13:56:51 CEST] <kierank> fields?
[13:56:54 CEST] <kierank> ok
[13:57:30 CEST] <gagandeep> then inverse spatial is performed on both fields along with the necessary subbands
[13:57:37 CEST] <gagandeep> and we get two frames back
[13:58:08 CEST] <gagandeep> this is the basic, and again i am seeing optimizations
[13:58:34 CEST] <gagandeep> so those will take time to work out properly but i think by sunday, i should have a non threaded version running
[13:59:27 CEST] <gagandeep> kierank: i meant to say two fields from inverse temporal
[13:59:45 CEST] <kierank> forget about threading for now, yes
[13:59:51 CEST] <kierank> just valid pictures
[14:00:26 CEST] <gagandeep> yeah, and later will need to get an interlaced ip version working as well, cause this was for progressive
[14:01:05 CEST] <kierank> dunno if we have interlaced temporal samples
[14:01:26 CEST] <gagandeep> i have from david newman, he gave me that when i asked for interlaced
[14:01:56 CEST] <gagandeep> really a nice person :)
[14:02:14 CEST] <kierank> ah ok
[14:03:29 CEST] <gagandeep> ok, anything else you want to ask right now
[14:05:03 CEST] <gagandeep> i think like in interlaced, ip frame will cause problems with hand optimizations as well
[14:05:03 CEST] <kierank> nop
[14:05:31 CEST] <gagandeep> now i see they are also using a lossless encoding for one subband in ip
[14:05:58 CEST] <gagandeep> will report later on this lossless
[14:19:53 CEST] <jdarnley> I've got a bit of a brain freeze.
[14:19:59 CEST] <jdarnley> The result of uint64_t * int32_t is uint64_t but what if the int32_t is negative?
[14:20:04 CEST] <jdarnley> For example: -1, does that become 0xFFFFFFFF before the multiply?
[14:21:38 CEST] <nevcairiel> your int32_t is converted to an unsigned type with allt he rules that go with it
[14:25:00 CEST] <nevcairiel> ie it probably turns into 64-bit FF's, not just 32-bit, i think?
[14:28:14 CEST] <jdarnley> ah, yes, hm
[14:40:19 CEST] <jdarnley> Yep, a quick test of 1 * -1 gives UINT64_MAX
[14:42:55 CEST] Action: jdarnley facepalms
[14:43:01 CEST] <jdarnley> that was all pointless
[14:43:26 CEST] <jdarnley> There's an FFABS on the int32_t
[14:43:49 CEST] <nevcairiel> lol
[14:43:59 CEST] <jdarnley> Thank you anyway
[14:44:09 CEST] <nevcairiel> the more you know
[14:44:31 CEST] <jdarnley> ... and knowing is half the battle!
[15:01:08 CEST] <jdarnley> oh, shit! I forgot that you need avx512 for a 64-bit multiply
[15:01:59 CEST] <jdarnley> no pmullq
[15:03:47 CEST] <jdarnley> oh, I might not need to
[15:04:34 CEST] <jdarnley> move a left shift of 2 after the multiply and I can get away with pmuludq
[15:19:58 CEST] <durandal_1707> jdarnley: writting simd for what?
[15:20:16 CEST] <jdarnley> vc2 coeff quant
[15:20:27 CEST] <jdarnley> well, part of the quant
[15:20:47 CEST] <jdarnley> no, the whole quant, which is onyl part of the coeff coding
[15:21:22 CEST] <jdarnley> If you want to see, look for the QUANT macro in vc2enc.c
[15:28:41 CEST] <kierank> I would imagine transforms would be more interesting
[15:28:44 CEST] <kierank> but up to you
[15:29:09 CEST] <jdarnley> Maybe, but they don't take much time compared to the coeff quant
[15:35:03 CEST] <kierank> are you thinking of unpacking to a buffer then dequanting in one go?
[15:35:06 CEST] <kierank> in two goes
[15:35:10 CEST] <kierank> might not be fast
[15:35:14 CEST] <kierank> after unpack data is in cache
[17:08:35 CEST] <jdarnley> Gah! Its been so long since I did any assembly I've forgotten half the instructions available.
[17:35:05 CEST] <jdarnley> Is there a simple instruction to pack quadwords from to 2 regs into 1 reg?
[17:43:05 CEST] <jamrial> jdarnley: i think nothing before avx512
[17:43:41 CEST] <jdarnley> Right, shifts and shuffles
[17:53:37 CEST] <iive> quadword is 64 bit, isn't it?
[17:53:58 CEST] <iive> it would be movhps or movlps on sse then.
[18:24:17 CEST] <cone-596> ffmpeg 03Carl Eugen Hoyos 07master:7c333dc6a7fe: doc/codecs: Remove option sc_factor.
[21:44:06 CEST] <Gramner> jdarnley: punpck(l|h)qdq?
[21:45:49 CEST] <Gramner> or do you mean convert qwords to dwords?
[21:46:24 CEST] <Gramner> for the latter you can use shufps if truncation is fine
[00:00:00 CEST] --- Fri May 25 2018
1
0
[01:01:26 CEST] <wfbarksdale> I do not need to support 10 bit color today, but I'm wondering how this looks at the AVFrame level since uint8_t is used to hold the data buffers for AVFrames
[01:02:50 CEST] <kepstin> 10bit and higher image data is stored in 16bit values, can be in either endianness.
[01:03:44 CEST] <kepstin> assuming native endian values, you could cast the data pointer to a uint16_t array, otherwise use appropriate endian-converting extraction functions.
[01:04:46 CEST] <wfbarksdale> gotchya
[01:10:57 CEST] <JEEB> wfbarksdale: most APIs deal with "set of byte"s anyways
[10:16:07 CEST] <Brian_> hi, i am trying to scale/animate an image in the center of a background video. I tried with zoompan but it doesnt keep the aspect ratio. Anything i can do?
[11:27:16 CEST] <tomtomb> Hi all, I got an ffprobe question.. is it possible to have the warnings show in json mode in a correct json syntax? (-print_format json -loglevel warning) would print something like "{ [mxf @ 000000000] broken or empty index }"... my json parser wouldn't read that..
[12:49:58 CEST] <th3_v0ice> Hi all. How is it possible that decoder timebase changes while decoding? I thought that this value was constant? Can anyone explain?
[12:55:18 CEST] <th3_v0ice> .
[14:38:09 CEST] <Freneticks> hey i have a weird problem with ffmpeg, i try to open many link to record stream, everythings is working, except after some time i got cannot resolv host
[14:38:58 CEST] <Freneticks> i can ping host, dig it, but ffmpeg just doesn't want to open it
[15:06:04 CEST] <kepstin> tomtomb: warnings should be printed to stderr, not stdout, so they don't get mixed with the json content
[16:12:35 CEST] <edgar_> Hey guys. Im currently experiencing with an raspberry pi 3 and ffmpeg to stream live to youtube. i managed to get a smooth nice live stream with streamcopy in h264. Is there a way to still use complex filters? Unfortunately filtering and streamcopy cannot be used together. Do you think there is a way for raspberry pi ?
[16:17:51 CEST] <edgar_> ... if im doing stuff without streamcopy, the fps is < 5 and 0,4xxx speed.
[17:25:47 CEST] <furq> edgar_: ffmpeg can use the pi's builtin hardware h264 decoder and encoder if you built it with --enable-mmal --enable-omx
[17:26:19 CEST] <furq> the quality isn't good at all but that's pretty much your only hope of getting it to run fast enough
[19:14:00 CEST] <wfbarksdale> Am I understanding line size correctly here?
[19:14:08 CEST] <wfbarksdale> +++++--
[19:14:10 CEST] Last message repeated 2 time(s).
[19:14:10 CEST] <wfbarksdale> width = 5(height = 3
[19:14:12 CEST] <wfbarksdale> linesize = 7
[19:15:04 CEST] <wfbarksdale> so the '+' represents a useable pixel and the '-' is padding
[19:26:19 CEST] <wfbarksdale> it appears there may also be extra lines as well? I guess you never really need info about these extra lines because you are always stopping short?
[19:44:01 CEST] <wfbarksdale> another oddity, I took a video using iphone in portrait, so was expecting to see ffmpeg provide side_data for each AVFrame of video to know how to rotate it, however i don't see this side data in my test :/ do i need to pass some sort of flag to make sure i get that data?
[19:45:12 CEST] <Mavrik> Yes, you're understanding line size (also called stride) correctly
[19:45:24 CEST] <Mavrik> and yeah, you can have extra lines at the end but that shouldn't really affect you
[19:47:59 CEST] <saml_> anyone has experience with running ffmpeg with http? I want ffmpeg to directly upload the result to S3
[19:48:04 CEST] <saml_> S3 is Amazon storage
[19:49:12 CEST] <Mavrik> I guess as long as you use an output format that doesn't require seeking it should work.
[19:51:02 CEST] <wfbarksdale> saml_ don't you just want to use `aws s3 cp` in a script to copy the resulting video? or are you trying to do some sort of fancy streaming thing
[19:55:00 CEST] <saml_> i'm trying to do fancy streaming :P
[20:03:13 CEST] <ChocolateArmpits> try mpegts it's fit for that kind of situation
[20:33:46 CEST] <xjuan_> hello guys, I am trying to stream my desktop to a virtual video device
[20:33:57 CEST] <xjuan_> sudo ffmpeg -f x11grab -r 30 -s 1920x1080 -i :1.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0
[20:34:21 CEST] <xjuan_> but I get an error "[v4l2 @ 0x5624fd4e8f80] ioctl(VIDIOC_G_FMT): Invalid argument"
[20:34:29 CEST] <xjuan_> https://pastebin.com/KR4dmcMZ
[20:37:46 CEST] <saml_> what's a virtual video device?
[20:40:04 CEST] <xjuan_> a virtual v4l2 device created with the loopback module
[20:40:19 CEST] <xjuan_> sudo modprobe v4l2loopback
[20:40:36 CEST] <xjuan_> that should create a dummy /dev/video0
[20:40:51 CEST] <xjuan_> which in theory you can then send any kind of video to it
[20:41:09 CEST] <xjuan_> for example a desktop screencast
[20:41:30 CEST] <saml_> xjuan_, did you load the module?
[20:41:52 CEST] <xjuan_> saml_, yeah
[20:42:25 CEST] <xjuan_> lsmod | grep v4l2loopback
[20:42:25 CEST] <xjuan_> v4l2loopback 40960 0
[20:42:25 CEST] <xjuan_> videodev 204800 1 v4l2loopback
[20:43:04 CEST] <saml_> what about ls /dev/video* ?
[20:43:10 CEST] <saml_> video0 is the right device?
[20:43:37 CEST] <xjuan_> yeah, its the only one
[20:44:09 CEST] <xjuan_> v4l2-ctl --list-device --verbose
[20:44:09 CEST] <xjuan_> Dummy video device (0x0000) (platform:v4l2loopback-000):
[20:44:09 CEST] <xjuan_> /dev/video0
[20:44:09 CEST] <xjuan_> VIDIOC_QUERYCAP: ok
[20:45:49 CEST] <saml_> v4l2-ctl -d /dev/video0 -l
[20:46:29 CEST] <xjuan_> v4l2-ctl -d /dev/video0 -l
[20:46:29 CEST] <xjuan_> User Controls
[20:46:29 CEST] <xjuan_> keep_format 0x0098f900 (bool) : default=0 value=0
[20:46:29 CEST] <xjuan_> sustain_framerate 0x0098f901 (bool) : default=0 value=0
[20:46:29 CEST] <xjuan_> timeout 0x0098f902 (int) : min=0 max=100000 step=1 default=0 value=0
[20:46:29 CEST] <xjuan_> timeout_image_io 0x0098f903 (bool) : default=0 value=0
[20:48:30 CEST] <saml_> xjuan_, maybe try sudo ffmpeg -re -f x11grab .... (add -re)
[20:48:53 CEST] <saml_> and don't specify -r 30
[20:49:33 CEST] <saml_> and possibly drop -s 1920x1080 as well. or move that -s option after -i
[20:49:36 CEST] <xjuan_> same error
[20:49:59 CEST] <xjuan_> looks like ffmpeg is trying some ioctl that is not supported by the loopback device
[20:53:22 CEST] <saml_> https://www.ffmpeg.org/ffmpeg-devices.html#video4linux2_002c-v4l2 not sure if ffmpeg supports video4linux as output
[20:53:28 CEST] <saml_> it reads like it's an input only
[20:56:18 CEST] <saml_> ffmpeg -f x11grab -framerate 15 -video_size 1280x720 -i :0.0 -f v4l2 /dev/video0
[20:56:26 CEST] <saml_> https://askubuntu.com/questions/881305/is-there-any-way-ffmpeg-send-video-t…
[20:56:36 CEST] <saml_> looks like as output would work.. i don't know
[20:58:37 CEST] <xjuan_> saml_, yeah thats the first post I found and where I took the example
[20:58:44 CEST] <xjuan_> does it work for you?
[20:59:01 CEST] <xjuan_> maybe there is something wrong with my module
[21:05:01 CEST] <saml_> it doesn't work for me xjuan_
[21:06:42 CEST] <xjuan_> saml_, ohh well, thanks for your help
[21:11:45 CEST] <saml_> hrm i don't even have v4l2loopback
[21:12:25 CEST] <xjuan_> ohh, I guess that explains why it does not work for you
[21:12:26 CEST] <xjuan_> hehe
[21:12:50 CEST] <saml_> xjuan_, just curious, did you try to use a normal video file as input. and the loopback as output?
[21:13:08 CEST] <saml_> ffmpeg -re -i input.mp4 -map 0:v -f v4l2 /dev/video0 # as the webpage says
[21:13:23 CEST] <saml_> to narrow down the problem isn't x11grab -i :0.0
[21:22:37 CEST] <xjuan_> saml_, yeah that does not work
[21:22:44 CEST] <xjuan_> also x11grab to a file does
[21:29:06 CEST] <saml_> https://github.com/umlaeute/v4l2loopback/wiki/Ffmpeg weird this should work xjuan_
[21:29:14 CEST] <saml_> what's your ffmpeg version?
[21:29:28 CEST] <saml_> .... If you have an older FFmpeg version, you can rely on GStreamer: t
[21:30:12 CEST] <saml_> try with 4.0 (static build here https://johnvansickle.com/ffmpeg/)
[21:32:08 CEST] <furq> oh hey the static builds are back
[21:34:44 CEST] <edgar_> if i use "-preset" on ffmpeg, it fails and say "Unrecognized option 'preset'.
[21:34:44 CEST] <edgar_> Error splitting the argument list: Option not found
[21:34:44 CEST] <edgar_> ". is my installation fucked up?
[21:35:31 CEST] <JEEB> preset is a component specific option
[21:35:41 CEST] <JEEB> if the encoder or whatever you're using doesn't have that AVOption
[21:35:49 CEST] <JEEB> then it will tell you that such an option does not exist
[21:36:06 CEST] <JEEB> -h encoder=libx264 for example gives you what is available for libx264, IIRC
[21:45:08 CEST] <xjuan_> saml_, ffmpeg version 3.4.2-2+b1
[21:45:26 CEST] <edgar_> JEEB, thank you
[21:50:37 CEST] <xjuan_> saml_, just tried with ffmpeg version 4.0-2 from debian/experimental
[21:50:40 CEST] <xjuan_> same error
[21:56:06 CEST] <saml_> meh
[21:56:11 CEST] <saml_> out of idea
[22:20:43 CEST] <mifritscher1> moin
[22:22:07 CEST] <mifritscher1> i'm using the library directly to grab frames from a rtsp camera wich is connected via wlan. Is there an option that it uses a buffer to "smooth" the duration between getting 2 frames, at the cost of an higher delay? setting max_delay doesn't seem to help for me...
[22:29:46 CEST] <mifritscher1> on my wlan, i get sometimes the sitation that 300 ms long the computer gets no packet, and then all in a row. This could be mitigitated by having a buffer of 500ms
[22:33:11 CEST] <ChocolateArmpits> mifritscher1, did you try analyzeduration or probesize ?
[22:56:55 CEST] <mifritscher> sorry, got disconnected because of empty battery :-(
[22:58:22 CEST] <blurry_light> if I have a video file I backed up with multiple audio tracks for different languages, how do I make one video file with one single audio track, preserving quality for both video and audio?
[22:58:46 CEST] <blurry_light> my approach was to make a nosound version of the video alone and now I want to extract the one audio track I want and merge it with the soundless video
[22:59:12 CEST] <blurry_light> the audio stream is "Stream #0:5(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s"
[22:59:20 CEST] <blurry_light> what would be the best way to extract this losslesly?
[22:59:25 CEST] <blurry_light> losslessly*
[23:01:17 CEST] <furq> -i foo -c copy -map 0:5 bar.dts
[23:01:34 CEST] <blurry_light> ok, so .dts is an audio format/container?
[23:01:44 CEST] <furq> or just -i soundless -i source -map 0:v -map 1:5 -c copy out.mkv
[23:01:51 CEST] <blurry_light> O.O
[23:01:58 CEST] <blurry_light> that's some insane wizardry there
[23:01:59 CEST] <blurry_light> hold on
[23:03:38 CEST] <blurry_light> oh wow, that's clever
[23:20:48 CEST] <marcurling> Hello pals, what's the use of libpostproc (once ffmpeg compiled) please?
[23:25:13 CEST] <furq> !filter pp @marcurling
[23:25:13 CEST] <nfobot> marcurling: http://ffmpeg.org/ffmpeg-filters.html#pp
[23:25:36 CEST] <furq> i assume it's in a separate lib because it's gpl
[23:29:51 CEST] Action: marcurling deeply thanks furq ;)
[00:00:00 CEST] --- Fri May 25 2018
1
0
[08:55:26 CEST] <JEEB> .2
[10:21:52 CEST] <`md> 03:04:13 <bxbxb> Hello there! I was wondering if there was an email that I could reach the ffmpeg team at? Thanks! It's regarding a large donation and I didn't want to spam the user list!
[10:21:56 CEST] <`md> lolwat?
[10:30:04 CEST] <durandal_1707> whats wrong with that?
[12:44:59 CEST] <Chloe> yo working on an decoder thing durandal_1707 gave me slowly but looking to do something else alongside, anything needs doing?
[12:46:09 CEST] <Chloe> Or rather anything not particularly time sensitive which someone wants
[12:53:06 CEST] <Compn> Chloe : atomnuker wants some old game format reverse engineered :D
[12:53:08 CEST] <Compn> ehe
[12:53:09 CEST] Action: Compn afk
[12:53:20 CEST] <Compn> [22:09] <atomnuker> https://pars.ee/temp/mm2_dmusic.zip
[12:53:20 CEST] <Compn> [22:10] <atomnuker> there's a simple client in there too which uses directmusic to decode them (windows only ofc)
[12:53:55 CEST] <Chloe> Nice. Ill check it out
[12:54:58 CEST] <nevcairiel> its a midi-like format, i would recommend to stay away =p
[12:55:13 CEST] <nevcairiel> synthesizer formats are hell on earth
[12:56:19 CEST] <Chloe> nevcairiel: oh. Ill leave it to the libopenmpd guys then, they do the tracker format stuff
[13:00:45 CEST] <ramiro> michaelni: hi michael, I'm working on the intra macroblocks for p frames patch I sent a couple of weeks ago. using a continuous variable like intra_penalty is more interesting than my yes/no approach, but now I have some questions for mpegvideo_enc.c's encode_picture().
[13:01:40 CEST] <ramiro> michaelni: 1) for both ff_fix_long_p_mvs() and ff_fix_long_mvs(), wouldn't it be better to re-run motion estimation with a limited range instead of truncating/using intra mbs?
[13:03:31 CEST] <ramiro> michaelni: 2) for ff_fix_long_p_mvs(), would it be ok to set CANDIDATE_MB_TYPE_INTER instead of CANDIDATE_MB_TYPE_INTRA when the mvs are out of range (with a function parameter to select which one)?
[13:09:28 CEST] <Chloe> nevcairiel: you got anything interesting then?
[13:10:41 CEST] <durandal_1707> Chloe: can you read math papers about non-local means ?
[13:11:25 CEST] <Chloe> I dont have big brain for hard maths but Ill give it a shot why not
[13:15:48 CEST] <durandal_1707> Chloe: can you read this https://arxiv.org/abs/1407.2343 and look at my anl branch on github and tell my why code does not work for denoising audio?
[13:24:43 CEST] <kierank> Qiiiik
[13:25:28 CEST] <Chloe> durandal_1707: why would nlmeans work for audio?
[13:27:17 CEST] <durandal_1707> Chloe: there is another paper which claims it works, also i can get reasonable ouput under some conditions
[13:29:57 CEST] <Chloe> From what i understand, nlmeans takes the mean of the relative difference per pixel for the entire frame. So in audio this means youre taking the relative difference per sample for a frame?
[13:30:13 CEST] <Chloe> But its essentially a one dimensional nlmeans i think
[13:30:41 CEST] <durandal_1707> yes it works in 1 dimenstion only
[13:31:49 CEST] <nevcairiel> in frequency domain?
[13:32:11 CEST] <Chloe> Ah i see thats what youre doing. Sorry Im a bit slow, on my phone
[13:32:18 CEST] <nevcairiel> nlmeans over sample data doesnt seem very logical
[13:32:28 CEST] <durandal_1707> nevcairiel: nope
[13:33:19 CEST] <Chloe> nevcairiel: yes thats what durandal_1707 is doing
[13:33:46 CEST] <Chloe> durandal_1707: so whats it doing when it doesnt give reasonable output?
[13:35:26 CEST] <durandal_1707> Chloe: it gives samples that doesnt make sense nans/infs etc
[13:36:20 CEST] <Chloe> Oh right mmh. durandal_1707 what did the paper which was about audio say?
[13:36:27 CEST] <durandal_1707> if i modify algo i get too much quit audio
[13:36:34 CEST] <Chloe> Were there any major differences between image and audio nlmeans?
[13:37:19 CEST] <durandal_1707> Chloe: this paper does nlmeans very fast, so i thought i could use its 1d nlmeans algorithm for denoising
[13:38:06 CEST] <Chloe> durandal_1707: i mean you want it working first right?
[13:38:48 CEST] <Chloe> Id get *any* audio nlmeans working and then look at this 1d nlmeans algo again
[13:40:17 CEST] <Chloe> durandal_1707: sorry not able to help much with it, not at a pc for a few hours
[13:40:49 CEST] <durandal_1707> anoher paper algo is not of much use, it is not described very good
[13:47:53 CEST] <michaelni> ramiro, for 1) it would seem logic but in practice subjective quality may prefer intra over limited (and incorrect thus) MVs. at least for some content. for 2) yes, seems to make sense to have more options
[16:25:08 CEST] <ramiro> michaelni: I don't see why a second limited search would result in incorrect MVs. I haven't tested yet, but I would assume a second limited search could possibly provide better results than truncating (by the way this is in the context of eliminating intra mbs for p frames, even though I see your point that intra is better and preferred in this case)
[17:00:46 CEST] <michaelni> ramiro, an object in classical physics can only be at one position at a time so theres only one correct motion vector. Now if that is beyond some limit every other motion vector must be wrong and that could lead to more artifacts than the correct motion vector
[17:01:38 CEST] <michaelni> it doesnt have to lead to artifacts but it could
[17:04:11 CEST] <michaelni> of course if the intra/inter decission and all that is perfect than it doesnt matter as it would reject a MV causing more artifacts but its not prefect so the whole would need testing
[20:06:07 CEST] <rungcc> Hi people, is there someone here that could point me to where could I find someone to hire as a freelancer to create custom encodes profiles to ffmpeg?
[21:26:01 CEST] <atomnuker> wm4: why would you want a flat array?
[21:26:19 CEST] <atomnuker> this makes no sense if you're transmitting something very well defined and universal
[21:26:39 CEST] <atomnuker> making it opaque and codec specific would make it completely useless
[21:27:03 CEST] <atomnuker> what would api users need to put in there if they want to correctly decode a packet?
[21:28:20 CEST] <atomnuker> I understand if it was some data that's not fitting in something we do, like for example a container providing containerization for some data without any explicit type, like magnetometer measurements
[21:32:18 CEST] <wm4> atomnuker: but it's not universal
[21:32:57 CEST] <atomnuker> field parity is universal, its just that most codecs signal that in headers, but we treat packed pixel formats as codecs which don't have such
[21:33:03 CEST] <wm4> it's just some codec specific data that happens not to fit into extra or packet data
[21:33:46 CEST] <wm4> sort of like extradata
[21:33:58 CEST] <wm4> most extradata also transports parameters that are general concepts
[21:34:04 CEST] <wm4> just in a codec specific form
[21:35:05 CEST] <atomnuker> you have a point there, but most extradata we use is in the context of a specified codec-specific header
[21:36:35 CEST] <atomnuker> also extradata isn't something api users have to touch or write themselves
[21:37:13 CEST] <wm4> field parity isn't either
[21:37:25 CEST] <wm4> unless you plan to add this to other raw codecs
[21:37:45 CEST] <wm4> also the field parity thing he wants to add seems to be very basic
[21:37:57 CEST] <wm4> (I don't know interlacing shit much, I just know it's usually more complex)
[21:38:55 CEST] <atomnuker> not really, just need to know the per-packet parity
[21:39:15 CEST] <atomnuker> I don't mind doing packing inside lavf but that would need simd code there
[21:39:49 CEST] <wm4> anyway, I don't want to block it
[21:39:58 CEST] <wm4> being side data is good enough
[23:23:56 CEST] <klaxa> mmrrr, rewriting the parsing as luaC_functions is giving me some trouble...
[23:26:20 CEST] <klaxa> i have started to split the parsing into parts that use lua and those that... don't, but in the end everything interfaces with the stack
[23:26:51 CEST] <klaxa> and i can't pass anything opaque to a lua_Cfunction
[23:27:15 CEST] <klaxa> only "easy" solution i see is using a global variable
[23:40:50 CEST] <jdarnley> Oh, are you the person writing the Lua config for ffserver?
[23:41:18 CEST] <jdarnley> Passing data over the C -> Lua -> C barrirer can be a challenge
[23:42:16 CEST] <jdarnley> push a (light)userdata and you can get a pointer to whatever memory you need.
[23:43:51 CEST] <jdarnley> Lua has a helpful channel on #lua
[23:44:43 CEST] <jdarnley> Also, if the config is only for use in the ffserver binary you are probably fine to use static variables in the C.
[23:49:33 CEST] <klaxa> hmm... well i just now put the whole parsing function in a luaC_function and allocate the configs in a file-scope variable
[23:50:05 CEST] <klaxa> calling it with invalid configurations prints the expected errors without crashing
[23:53:37 CEST] <klaxa> also i replaced all the if (lua_type(...)) stuff with luaL_checktype() which just raises an error, much simpler :)
[00:00:00 CEST] --- Thu May 24 2018
1
0
[00:02:29 CEST] <wfbarksdale> kepstin: is calling av_frame_free safe in the context of my pipeline we where talking about?
[00:03:00 CEST] <wfbarksdale> i'm using c++ smart pointers, and its not clear if the deleter should be using av_frame_free or av_frame_unref
[00:03:13 CEST] <wfbarksdale> don't want to pull the buffers out from under the cached frame
[00:03:43 CEST] <kepstin> It depends how the memory of the struct avframe itself was allocated
[00:04:06 CEST] <wfbarksdale> av_frame_alloc()
[00:04:49 CEST] <kepstin> av_frame_unref frees the buffers only, and _free also frees the struct itself
[00:05:16 CEST] <wfbarksdale> but will _free abide by the reference counting on the buffers?
[00:05:24 CEST] <kepstin> Yes
[00:06:38 CEST] <wfbarksdale> thanks for the peace of mind
[00:12:54 CEST] <kepstin> Just remember that the ref counting is on the buffers in the frames, not the avframe object itself.
[00:13:44 CEST] <kepstin> So make sure you don't have two things sharing an avframe pointer
[00:16:54 CEST] <Kaedenn1> I have a ~3.5 hour VOD with a bunch of audio skips. I'd like to cut out all sections that have less than a certain threshold of audio. The video seems to be a chunked mp2t
[00:17:14 CEST] <Kaedenn1> Can I do this programatically with ffmpeg?
[00:20:00 CEST] <kepstin> You're not going to be able to do that with a single ffmpeg cli command. You might be able to write a script that uses ffmpeg to find the quiet sections then generates a command or series of commands to build a final video from the other sections.
[00:21:19 CEST] <nicolas17> or did you mean writing your own program using lavf when you said "programmatically"?
[00:21:30 CEST] <Kaedenn1> kepstin: I had a feeling that would be the case. However, I'm fine writing a script to do this.
[00:22:01 CEST] <Kaedenn1> nicolas17: I meant a way to identify and then remove quiet sections without me manually identifying all of the sections
[00:23:08 CEST] <kepstin> I think the "silencedetect" filter can be used to find quiet sections, I think it can be made to print out time ranges.
[00:23:20 CEST] <kepstin> Haven't used it myself
[00:27:20 CEST] <furq> printing out time ranges is the only thing it can do
[00:28:05 CEST] <furq> silenceremove is the one that trims silence
[00:37:53 CEST] <flubble> I'd like to add an srt subtile file to a mp4 container. I tried 'ffmpeg -i input.mp4 -i input.srt -c copy -c:s mov_text output.mp4
[00:38:17 CEST] <flubble> But get an Error: Invalid UTF-8 in decoded subtitles text; maybe missing -sub_charenc option
[00:39:05 CEST] <flubble> I suspect that the encoding of the srt is somehow wrong, but I don't know what I can do to fix it
[00:40:34 CEST] <flubble> Here is an example of the srt file: https://pastebin.com/ersZAcB7
[00:42:59 CEST] <Kaedenn1> flubble: You have non-UTF8 characters in there it seems
[00:43:40 CEST] <nicolas17> probably latin1
[00:45:59 CEST] <Kaedenn1> I can't figure out an encoding where \xe9 is e'
[00:46:11 CEST] <Kaedenn1> ...wait, I'm dumb
[00:46:16 CEST] <flubble> how can I determine which encoding is used?
[00:46:36 CEST] <Kaedenn1> it's probably latin1
[00:46:48 CEST] <Kaedenn1> try -sub_charenc LATIN1
[00:47:42 CEST] <Kaedenn1> flubble: a cursory google search gives https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options… which lists LATIN1 as one of the known values. \xe9 parses nicely with latin1
[00:57:11 CEST] <flubble> Yessss! It worked, thank you very much Kaedenn1
[01:49:09 CEST] <laomaiweng> Hi there, with the new API how am I supposed to pass a 'const AVOutputFormat*' obtained from av_muxer_iterate() to avformat_alloc_output_context2()?
[10:59:17 CEST] <shfil> I was talking one week ago about issue ffmepg 4.0 no sound from mp3 files in playing cutscenes in openRW. I can't figure what is causing it. There's no errors in log and with older versions it works. Should I start issue on bug tracer?
[10:59:48 CEST] <JEEB> check the output sample rate, the default decoder for mp1/2/3 was switched to the higher quality floating point one
[10:59:56 CEST] <JEEB> not sure if it was between 3.4 and 4.0 but most likely
[11:00:29 CEST] <JEEB> the integer decoder is still available but generally people are recommended to utilize libswresample to convert to whatever audio format their output requires
[11:04:05 CEST] <shfil> thx, I will go for libswresample, do you know how can I use the integer decoder for quick test?
[11:08:37 CEST] <JEEB> seems like they share the name :/ but are different by just their AVCodec->sample_fmts listing
[11:08:50 CEST] <JEEB> one returns S16P as the first one, another FLTP
[11:08:59 CEST] <JEEB> I thought the signed one would get a suffix in the name...
[11:09:18 CEST] <JEEB> oh, I guess they do
[11:09:19 CEST] <JEEB> D.A.L. mp3 MP3 (MPEG audio layer 3) (decoders: mp3float mp3 )
[11:09:25 CEST] <JEEB> ffmpeg -codecs gives me two names
[11:09:37 CEST] <JEEB> so mp3float is now the default
[11:09:45 CEST] <JEEB> while mp3 is the integer one, I would guess
[11:10:01 CEST] <JEEB> checking the sample_fmts array will make it possible to check before opening the decoder
[11:12:10 CEST] <shfil> I get it, thanks
[12:28:09 CEST] <sunzofman1> is it possible to compile support for one codec without explicitly listing all others that may have been previously compiled? simply attempting to encode opus files to mp3. forgot to compile in mp3 encoding capability.
[13:23:18 CEST] <th3_v0ice> What is the best way to force FFmpeg to generate PTS for each segment? Lets say I have a live stream pipe. ffmpeg -i pipe:0 -f segment -f segment_time 10 -reset_timestamps 1 -fflags +genpts out%03d.ts. Is there a way to have pts and dts 0's for first packet in each segment? Previous command is not resetting them. Thanks!
[15:13:34 CEST] <Blacker47> i have some DV.avi files (audio muxed in the video stream?) what i try to cut with ffmpeg -i file -ss -to -c copy outfile but the audio get async on longer input videos (up to 4h). playing the input files with mpv is sync. any ideas how to manage this?
[16:12:09 CEST] <saml> how do I use --enable-rpath properly?
[16:12:35 CEST] <saml> I've been doing --extra-ldflags="'-Wl-rpath,$ORIGIN'"
[16:12:54 CEST] <saml> but, some libraries like libogg.so isn't searched within $ORIGIN
[16:13:38 CEST] <saml> ffmpeg elf itself does not NEED libogg.so
[16:13:51 CEST] <saml> looks like something else (libtheora.so?) needs libogg.so
[16:28:26 CEST] <kepstin> you'd probably have to enable rpath when linking that library, then
[16:29:33 CEST] <saml> hrm
[16:29:38 CEST] <saml> let me try --enable-rpath
[16:30:41 CEST] <saml> makefile so good bro. make clean; make
[16:30:47 CEST] <saml> bam and it builds
[16:31:39 CEST] <saml> but looks like i did something wrong. it doesn't build
[16:34:53 CEST] <saml> man someone needs to create ffmpeg build script so i can just use it instead of writing one myself
[16:39:45 CEST] <saml> --enable-rpath works. but libogg.so is still dangling
[17:13:06 CEST] <saml> https://trac.ffmpeg.org/wiki/CompilationGuide/Centos this compiles ogg, theora, vorbis with --disable-shared to get around libogg problem, i think
[17:40:49 CEST] <rungcc> Hello guys. I need help putting together an extremely complex ffmpeg command. Im trying to do this for months now, so I can get rid of telestream episode (i borowed a license temporarily from a friend). Here we go: I neet to create a MPEG-TS container with audio pid 482, video pid 481, pcr pid 481 and pmt pid 480, ts extension and 8mbps of constant bit rate and one PES per frame. The video itself need to have 7mbps constant bitrate, a keyframe every 30
[17:40:49 CEST] <rungcc> frames, a B frames every 2 frames and a reference frame also every 2 frames, the video need to be an interlaced 29,97fps frame rate with top field first, the audio need to be AC-3 with 192kbps and 48kHz sample rate. Does anyone know if this is possible with ffmpeg?
[17:42:01 CEST] <BtbN> Your gop setup sounds impossible
[17:42:20 CEST] <BtbN> you want IBIBIBIBIBIBIB...?
[17:43:08 CEST] <rungcc> it is how it has been working with the distributor at the moment I think, let me check with the manual just a sec& And BtbN , THANKS A MILLION for helping.
[17:43:48 CEST] <BtbN> not impossible with ffmpeg I mean, impossible in general.
[17:43:49 CEST] <ariyasu> if everyother frame is an i-frame, whats the point of the b frames
[17:43:58 CEST] <rungcc> at the manual& it is mentiones ad: GOP: maximum recomended = 60
[17:44:22 CEST] <rungcc> for 4k at least, let me also check the fullhd and sd manual.
[17:44:24 CEST] <BtbN> That's the length of it, but not its "layout"
[17:44:51 CEST] <rungcc> the fullhd manual is more detailed, just a sec
[17:46:27 CEST] <rungcc> format configuration reference 3 frames
[17:47:41 CEST] <kepstin> hmm, that gop sounds like IPBPBPB... or something like that, i'd think? which should be doable
[17:47:54 CEST] <kepstin> what video codec?
[17:48:00 CEST] <kepstin> mpeg-2? h264?
[17:48:08 CEST] <rungcc> Due to the nature of the trick-mode operation, it is recommended the utilization of a maximum GOP size of 15 frames. If, due to content requirements, such GOP is too restrictive, a biger GOP, no larger than 29 frames(1 IDR, or I frame, in every 30 frames, at least) is supported, although with inferior trick-mode appearance for the final user.
[17:48:25 CEST] <rungcc> this is how it is layed on the manual for fullhd deliveries
[17:48:36 CEST] <rungcc> the codec is h.264
[17:49:45 CEST] <rungcc> the team that put together their tvod platform are honestly, crazy& they put extremely low bitrates as well IMHO, but this isnt the problem itself
[17:50:38 CEST] <rungcc> the h.264 profile is high l4.0 btw
[17:50:50 CEST] <rungcc> not sure if has something to do with that.
[17:51:11 CEST] <kepstin> right, should be doable with libx264 if you just set gop size (-g), and use x264-specific options to set bframes to 1 and maybe b-pyramid to strict. You might have to use no-scenecut too.
[17:52:10 CEST] <rungcc> let me copy here what I was able to put together as a command :)
[17:52:31 CEST] <kepstin> x264 also supports an option to set specific frame types per frame, if you need a particularly strict sequency (although I've never used that, and dunno how it works)
[17:53:14 CEST] <rungcc> ffmpeg -i 4kvid.mov -vcodec libx264 -x264opts nal-hrd=cbr:force-cfr=1:keyint=60 -profile:v main -level 4.0 -r:v 29.97 -vf "tinterlace=4" -b:v 8000k -minrate 8000k -maxrate 8000k -bufsize 8000k -streamid 0:481 -acodec ac3 -c:a ac3 -b:a 192k -streamid 1:482 test.ts
[17:55:23 CEST] <kepstin> rungcc: well, you've set keyint to 60 there, which is longer than you said :) (sounds like it should be 30). Add the bframes=1 and b-pyramid=strict and no-scenecut options to your x264opts and you should be good.
[17:55:33 CEST] <kepstin> for the video encoding at least.
[17:56:40 CEST] <kepstin> (I forget whether that option parser supports 'no-scenecut' - if it doesn't, setting 'scenecut=0' should be equivalent)
[18:02:55 CEST] <rungcc> this encode is giving me also a variable bitrate
[18:04:30 CEST] <rungcc> kepstin, could you put together a command for this specs? I can pay you if this is the case :D maybe a ko.fi or something :D
[18:05:11 CEST] <kepstin> nah, that's not something I do. I'm just trying to give you pointers so you can figure it out yourself.
[18:05:12 CEST] <rungcc> Im honestly not that video oriented myself, have been busting my head trying to understand some of this specs and gops and things like that.
[18:05:46 CEST] <rungcc> kepstin: :( well, thanks for your help nevertheless
[18:05:56 CEST] <kepstin> you have nal-hrd=cbr so it's putting filler into the h264 stream, you might need some options on the mpeg-ts muxer.
[18:07:29 CEST] <kepstin> also, what makes you think it's producing variable bitrate? how are you checking that?
[18:07:40 CEST] <rungcc> mediainfo
[18:09:10 CEST] <rungcc> he is giving me VBR as spec for the video
[18:09:46 CEST] <rungcc> while the sample encode that the company sent me are marked as bit rate mode: constant
[18:19:17 CEST] <furq> rungcc: that shows as constant for me
[18:20:00 CEST] <rungcc> weird, maybe something related to the ffmpeg build used?
[18:21:08 CEST] <rungcc> let me encode a sample here.
[18:21:50 CEST] <rungcc> hey
[18:21:52 CEST] <rungcc> it worked.
[18:22:09 CEST] <furq> i thought you might need -muxrate but apparently not
[18:22:15 CEST] <rungcc> definitely something related to the build used. Im at home now, on linux 18.04 with apt version of ffmpeg
[18:22:19 CEST] <furq> fun
[18:23:03 CEST] <rungcc> it is weird that mediainfo now shows me bitrate and nominal bitrate
[18:23:09 CEST] <rungcc> and bitrate mode constant
[18:23:17 CEST] <rungcc> scan time is progressive still though.
[18:24:06 CEST] <furq> iirc for an interlaced encode you need -flags ilme+ildct
[18:34:34 CEST] <ChocolateArmpits> OR -x264-params interlaced=1 OR -x264-params tff=1 OR -x264-params bff=1
[19:15:08 CEST] <rungcc> still no luck configuring this encoding& :( If anyone is interested on making an extra money putting together ffmpeg commands for me, please send me a PM
[20:22:27 CEST] <a__pi> is possible to resume a m3u8 download with ffmpeg ?
[20:25:02 CEST] <nicolas17> an m3u8 file is a playlist of smaller files, so you can download the ones you're missing
[20:25:05 CEST] <nicolas17> what were you doing?
[21:04:02 CEST] <seeking_ffmpeg_s> Hi... I ran this... ffmpeg -i C:\Video\CarGoPro.mp4 -an -s 1920x1080 -tune "animation ref 1" C:\Video\CarGoPro.h264... in order to set number of reference frames in my output H.264 stream to 1... according to Wireshark RTP -> SPS -> h264.num_ref_frames still being larger than 1, it didn't seem to work... what am I doing wrong ?... Thanks :)
[21:09:20 CEST] <kepstin> seeking_ffmpeg_s: er, that's not what the tune option is for. You might want to use the -x264opts option to set advanced things, it takes basically the same set of options as the x264 command line tool does.
[21:13:25 CEST] <ChocolateArmpits> seeking_ffmpeg_s, why did you wrap a parameter in quotes? it should be -tune animation -refs 1
[21:17:21 CEST] <seeking_ffmpeg_s> Tried several syntax options... that's what worked... the way you suggest I got... [NULL @ 0000000002cf96c0] Unable to find a suitable output format for 'refs' ; refs: Invalid argument
[21:18:20 CEST] <ChocolateArmpits> seeking_ffmpeg_s, surely you borked the command line somehow else after that
[21:18:21 CEST] <seeking_ffmpeg_s> I looked at this... https://superuser.com/questions/564402/explanation-of-x264-tune
[21:18:51 CEST] <nicolas17> did you use refs or -refs?
[21:20:08 CEST] <seeking_ffmpeg_s> exactly as I wrote initially did not throw anything syntax wise, however didn't do the trick
[21:20:32 CEST] <kepstin> seeking_ffmpeg_s: the -tune option takes a single string value, from the list of available tunes. that link just shows what each tune option does behind the scenes.
[21:20:40 CEST] <ChocolateArmpits> seeking_ffmpeg_s, paste your command line
[21:21:01 CEST] <kepstin> seeking_ffmpeg_s: in order to change the refs and override the settings the tunes do, you have to use different options
[21:21:15 CEST] <seeking_ffmpeg_s> ffmpeg -i C:\Video\CarGoPro.mp4 -an -s 1920x1080 -tune "animation ref 1" C:\Video\CarGoPro.h264
[21:21:29 CEST] <nicolas17> that's not what ChocolateArmpits told you to try
[21:21:44 CEST] <seeking_ffmpeg_s> kepstin... how would you use -x264opts ?
[21:21:46 CEST] <nicolas17> there is no tuning preset called "animation ref 1"
[21:23:06 CEST] <kepstin> seeking_ffmpeg_s: -x264opts ref=1
[21:23:08 CEST] <kepstin> should do it
[21:28:18 CEST] <furq> you don't need to set that with x264opts
[21:28:28 CEST] <furq> just -tune animation -refs 1
[21:34:54 CEST] <seeking_ffmpeg_s> furq: It was suggested... syntax doesn't work
[21:36:21 CEST] <seeking_ffmpeg_s> kepstin: your syntax works, however output file changed to 25 fps & VLC doesn't identify its' duration
[21:36:56 CEST] <seeking_ffmpeg_s> maybe need to add -r 30 ?... although that's original frame rate
[21:48:30 CEST] <kepstin> seeking_ffmpeg_s: sounds like you changed something else, please paste your entire current command
[21:49:43 CEST] <seeking_ffmpeg_s> That's it... ffmpeg -i C:\Video\CarGoPro.mp4 -an -s 1920x1080 -x264opts ref=1 C:\Video\CarGoPro_opts_ref1.h264
[21:50:03 CEST] <seeking_ffmpeg_s> (and adding -r 30 to it didn't help)
[21:52:26 CEST] <kepstin> seeking_ffmpeg_s: oh, raw .h264 files don't preserve framerate. Please put the video into a container format instead
[22:00:36 CEST] <seeking_ffmpeg_s> I need to check which containers my streaming app can work with... will continue tomorrow at office ;) Many Thanks !
[22:26:20 CEST] <shfil> hi, been trying use swresampler for mono wav, I'm not able to convert it to AV_SAMPLE_FMT_S16P. It isn't possible to do, or do I something stupid?
[22:27:05 CEST] <shfil> With rest of files(stereo mp3) it works.
[22:28:15 CEST] <furq> shfil: p is planar
[22:28:25 CEST] <furq> i.e. the channels aren't interleaved
[22:28:32 CEST] <furq> that obviously makes no sense for mono
[22:29:27 CEST] <shfil> I was thinking it would store everything in data[0].
[22:29:41 CEST] <furq> is there some reason you're not just using s16
[22:29:48 CEST] <kepstin> shfil: didn't you want interleaved anyways? (i think you had some code to interleave the planes). Just request AV_SAMPLE_FMT_S16 to start with
[22:31:15 CEST] <shfil> we are using 16bit integers buffers in openAL, maybe it would be better if I show the code.
[22:32:21 CEST] <shfil> https://github.com/rwengine/openrw/pull/420/files#diff-e9cc6b7c0e9b40ae49ea…
[22:33:21 CEST] <shfil> with AV_SAMPLE_FMT_S16 crashes :(
[22:35:47 CEST] <shfil> there with resampler https://gist.github.com/ShFil119/a49baef6ede5cda5f1b6ca87e1d0bef6
[22:37:56 CEST] <shfil> With AV_SAMPLE_FMT_S16 should I somehow change way of extracting data from frame?
[22:56:22 CEST] <radicate> Anyone knows of a way to stream a webcam (with dshow and ffmpeg) while still allowing other programs view the webcam properly?
[22:57:06 CEST] <kepstin> shfil: if you use _S16, you need to remove your code that interleaves the channels - the already-interleaved data will be stored in ->data[0]
[23:04:11 CEST] <shfil> but won't be two channel merged in one then? or there's some option for openAL?
[23:04:56 CEST] <shfil> hmmm, still no sound with mono mp3
[23:05:22 CEST] <shfil> (sorry for many stupid questions)
[23:05:53 CEST] <kepstin> of course the two channels are merged into a single data stream. That's exactly what interleaving does. In fact, that's exactly what the code under the comment "// Interleave left/right channels" in your code did
[23:06:33 CEST] <kepstin> it looks like openal expects audio with channels interleaved, so having libswsample give you data already in interleaved format saves you from having to do the interleave yourself.
[00:00:00 CEST] --- Thu May 24 2018
1
0
[00:45:14 CEST] <cone-683> ffmpeg 03James Almer 07master:27df34bf1f7a: avcodec/libvpxenc: fix setting amount of threads used for encoding
[00:45:15 CEST] <cone-683> ffmpeg 03Thomas Volkert 07master:c24d247e2c2c: libavformat: add mbedTLS based TLS
[03:59:30 CEST] <tmm1> jamrial: valgrind test is back to green, thanks for the heads up
[11:22:44 CEST] <akravchenko188> hi guys. I have a question. I try to call av_hwdevice_ctx_create_derived twice with the same params(source device and target type). framework creates two different instances. is it possible to retrieve previously derived context?
[11:26:28 CEST] <jkqxz> It's only connected backwards. Given "A = new(T1); B = derive(A, T2);", "derive(B, T1);" will return A.
[11:27:36 CEST] <jkqxz> But "derive(A, T2);" will not return B because it doesn't know about B.
[11:28:55 CEST] <jkqxz> I guess connecting forwards would be possible if we recorded that somewhere in I guess AVHWDeviceInternal? I don't know if that's what you want in all cases, though.
[11:32:26 CEST] <akravchenko188> for example I have pipeline D3D11 decoder(out: d3D11) -> amf filter (in/out: D3D11 frames) -> amf encoder (in: D3D11 frame)
[11:33:20 CEST] <akravchenko188> amf filter and amf encoder could have same hwcontext_amf object, because both requests from the same D3D11 device
[11:39:40 CEST] <akravchenko188> there are possible pipeline in future AMF decoder(out: vulkan frames) -> amf filter (in/out: vulkan frames) -> amf encoder (in: vulkan frames)
[11:43:27 CEST] <jkqxz> It would work if you made derivation work in the opposite direction (e.g. "-init_hw_device amf=a:... -init_hw_device d3d11=d@a -hwaccel_device d ...").
[11:44:27 CEST] <jkqxz> I don't think I'm in favour of making derivation always return the same answer in the forward direction. It's not at all obvious that two independent components want to be given e.g. the same OpenCL context.
[11:56:49 CEST] <akravchenko188> ok, thanks. if hwcontext_amf used to initialize d3d11, d3d9, opencl... and all others will be derived from, I think this is solution
[12:23:54 CEST] <akravchenko188> jkqxz: is it true that to derive hwcontext_dxva2 from hwcontext_amf code should be added to hwcontext_dxva2.c or there is the way to do in hwcontext_amf?
[12:33:07 CEST] <akravchenko188> I mean it look like I need to extend hwcontext_dxva2 hwcontext_d3d11va hwcontext_opencl to derive from hwcontext_amf
[12:43:40 CEST] <nevcairiel> i'm not a fan of that idea
[12:50:55 CEST] <cone-862> ffmpeg 03Carl Eugen Hoyos 07master:15f50ccc6f3f: lavc/h264_parse: Remove a superfluous linebreak.
[12:56:12 CEST] <akravchenko188> nevcairiel: why?
[12:56:24 CEST] <nevcairiel> because it spreads vendor-specific stuff in all sorts of generic code
[12:56:50 CEST] <nevcairiel> amf/cuda/qsv stuff should ideally remain self-contained
[12:56:56 CEST] <cone-862> ffmpeg 03Carl Eugen Hoyos 07master:848ce6f0a607: lavc/jpeg2000dec: Use a define to clarify the meaning of a constant.
[12:56:57 CEST] <cone-862> ffmpeg 03Carl Eugen Hoyos 07master:1083808c48cd: lavc/jpeg2000dec: Move a variable declaration closer to its usage.
[12:58:31 CEST] <jkqxz> It probably wants to have functions derive_from and derive_to, like map_from and map_to.
[12:59:24 CEST] <nevcairiel> It also feels like a hack to work around an architecture short-coming
[12:59:42 CEST] <nevcairiel> ultimately from a logical standpoint, you have a ie. d3d11 device and derive the amf context from that device
[12:59:59 CEST] <nevcairiel> you just want it the opposite direction because of architecture, not because its the logical way to do it
[13:01:31 CEST] <jkqxz> I don't think saying that derivation should return the same device on a second call is desirable in general, though.
[13:01:44 CEST] <nevcairiel> how does qsv solve that? i guess it transforms frames into qsv frames as well and replaces the entire hwcontext with a qsv context?
[13:01:57 CEST] <jkqxz> Maybe these components want to take the AMF device explicitly.
[13:02:02 CEST] <nevcairiel> while amf has no "amf frames"?
[13:02:11 CEST] <jkqxz> Yes, qsv has a whole hwcontext implementation with the frames.
[13:02:51 CEST] <jkqxz> That hasn't been so good in general, but it does avoid this problem.
[13:04:49 CEST] <jkqxz> If the AMF device were passed explicitly then you would do "-init_hw_device d3d11=d:... -init_hw_device amf=a@d -filter_hw_device a -vf something..."
[13:08:27 CEST] <akravchenko188> this case filter should check if filter_hw_device has same D3D device with frame context
[13:10:25 CEST] <akravchenko188> I saw some components, they check hwframe context first, and if it NULL it tryes to use hw_device_ctx
[13:14:33 CEST] <akravchenko188> probably we need API to be extended. enumerate active derived contexts from particular device and target type
[13:28:02 CEST] <jkqxz> Maybe a single flag on av_hwdevice_ctx_create_derived(), maybe named AV_HWDEVICE_DERIVE_SHARED, which indicates that it should share the derived context with other callers?
[13:28:53 CEST] <jkqxz> Then keep track of the shared derived device for each type in AVHWDeviceInternal.
[13:53:33 CEST] <akravchenko188> so if you call 1) with shared 2) without shared 3) with shared 4) without shared; then here we have 3 different context objects. 1,3 points to same
[13:54:07 CEST] <akravchenko188> right/
[13:54:08 CEST] <akravchenko188> ?
[13:54:34 CEST] <nevcairiel> that would probably be the idea
[14:09:00 CEST] <jkqxz> Yeah, that's what I was thinking.
[14:20:52 CEST] <akravchenko188> thanks for the idea
[18:12:26 CEST] <durandal_1707> atomnuker: i think i got it, but cant guess what formula to use to rescale final output to match input volume
[20:39:10 CEST] <thardin> michaelni: https://trac.ffmpeg.org/ticket/7209 is clang5 a supported target?
[20:41:03 CEST] <JEEB> clang5 worked for me for android and linux
[20:43:03 CEST] <JEEB> I think my last android build was quite recent master with clang5 in NDK r16
[20:45:51 CEST] <JEEB> I think that was specific to 10.11 macos
[20:46:01 CEST] <JEEB> there's no details on it, though
[20:46:18 CEST] <JEEB> because on macos you have a) the xcode version and b) the OS version
[20:47:20 CEST] <thardin> the syntax looks really unusual
[20:56:53 CEST] <michaelni> clang 3.4-1ubuntu3 and 4 seem working on linux
[20:57:30 CEST] <JEEB> it's a stdlib problem, rather than compiler
[20:57:43 CEST] <JEEB> IIRC we had a report that it works on 10.12+
[20:57:43 CEST] <michaelni> ive just posted a patch that adds () can someone who has this issue test it
[20:57:47 CEST] <JEEB> with "some" xcode
[20:58:03 CEST] <JEEB> (we never got results on which versions are broken and which aren't)
[21:06:09 CEST] <cone-862> ffmpeg 03Michael Niedermayer 07master:919e37377a76: avformat/bintext: Reduce detection for random .bin files as it more likely is not a multimedia related file
[21:06:10 CEST] <cone-862> ffmpeg 03Michael Niedermayer 07master:fe84f70819d6: avformat/mov: replace a value error by clipping into valid range in mov_read_stsc()
[00:00:00 CEST] --- Wed May 23 2018
1
0
[00:33:25 CEST] <vlt> Hello. How can I use ffmpeg to grab the video data from /dev/video0 on host A and make it available to another ffmpeg instance on a remote host B?
[00:34:35 CEST] <vlt> I want low CPU consumption on host A while network bandwidth should not be a problem.
[00:44:27 CEST] <kerio> "make it available" how
[00:46:33 CEST] <kerio> i'd say ffmpeg -f v4l2 -framerate whatever -video_size whatever -pixel_format whatever -i /dev/video0 -c:v copy -f nut -write_index 0 tcp://0.0.0.0:12345?listen=1
[00:51:26 CEST] <Cracki> send uncompressed frames?
[00:51:51 CEST] <klaxa> >network bandwidth should not be a problem.
[00:54:08 CEST] <kerio> i'm not aware of a "dumber" protocol other than mpegts with compatible codecs
[00:54:27 CEST] <kerio> then again, there's not much weirdness that can come out of a v4l2 device
[00:54:36 CEST] <furq> kerio: remember -f nut defaults to mpeg4
[00:54:52 CEST] <kerio> furq: remember that i wrote -c:v copy
[00:54:55 CEST] <furq> oh so you did
[00:55:10 CEST] <kerio> i did
[00:55:13 CEST] <kerio> get rekt
[00:55:13 CEST] <furq> still if it's just video i'd probably use y4m
[00:55:16 CEST] <furq> that's the simplest thing possible
[00:55:21 CEST] <kerio> wasdat
[00:55:35 CEST] <furq> https://wiki.multimedia.cx/index.php/YUV4MPEG2
[00:55:45 CEST] <kerio> fair
[00:56:06 CEST] <kerio> can i go one step further and suggest rawvideo
[00:56:26 CEST] <kerio> ok real talk tho
[00:56:33 CEST] <kerio> add a -vsync passthrough at the beginning of the command line
[00:56:35 CEST] <kerio> and maintain the timestamps
[00:56:35 CEST] <furq> actually idk if y4m is suitable for network streaming
[00:56:46 CEST] <furq> probably just use mpegts
[00:56:53 CEST] <kerio> ...except that the timestamps are based on the monotonic clock of the first box so they're pretty useless on the second one
[00:59:06 CEST] <JEEB> if you need raw+timestamps
[00:59:15 CEST] <JEEB> then I recommend NUT. FFmpeg can read and write it
[00:59:23 CEST] <JEEB> and it's a streaming container
[00:59:25 CEST] <JEEB> IIRC
[00:59:30 CEST] <JEEB> like MPEG-TS
[01:13:40 CEST] <kerio> it's nuts
[01:13:51 CEST] <kerio> ( a° \– a°)
[01:15:56 CEST] <Cracki> >nut
[01:16:15 CEST] <Cracki> I haven't seen innuendo in this channel before
[01:32:39 CEST] <furq> Cracki: just don't ask about subtitles
[01:33:02 CEST] <Cracki> sounds like something kinky
[01:34:27 CEST] <Cracki> oh btw, how do I "transplant" metainfo such as "this is rec 709"? I do some custom stuff outside of ffmpeg, but in the end I'd like to copy over the attributes of the source. only resolution changes (I'm doing a kind of cropping).
[01:35:00 CEST] <Cracki> I wanna make sure the video editing software (premiere) sees the data to be the right color space, not whatever it guesses from 640x810
[01:35:25 CEST] <Cracki> (input and output is h.264)
[01:37:52 CEST] <furq> there's no way to copy it, you'd have to pull it from ffprobe first
[01:38:09 CEST] <Cracki> that's ok
[01:38:24 CEST] <Cracki> just need some keywords to search for
[01:38:33 CEST] <furq> then iirc -colorspace bt709 -color_trc bt709 -color_primaries bt709
[01:38:39 CEST] <Cracki> hm that was easy
[01:38:47 CEST] <Cracki> thx
[01:38:48 CEST] <furq> depends on the encoder though
[01:38:52 CEST] <furq> x264 definitely supports those
[01:39:28 CEST] <Cracki> good enough
[01:39:32 CEST] <furq> you can also edit it while remuxing in h264 with -bsf:v h264_metadata
[01:39:46 CEST] <Cracki> oh, depends on encoder? any way to remux a file and add the info then?
[01:39:48 CEST] <Cracki> ah ok
[01:39:54 CEST] <Cracki> bsf are nice
[01:40:01 CEST] <furq> !bsf h264_metadata
[01:40:01 CEST] <nfobot> furq: http://ffmpeg.org/ffmpeg-bitstream-filters.html#h264_005fmetadata
[01:40:46 CEST] <furq> that's new in 3.4 or 4.0 iirc
[04:11:00 CEST] <aszlig> furq: okay, got the encoder for the intermediate format working so far, however it seems that pts seems to be codec-specific...
[04:11:15 CEST] <aszlig> so here is the code: https://gist.github.com/aszlig/c25e531734476e3496be2e85797d08d8
[04:12:07 CEST] <aszlig> when encoding to mpeg4/avi everything works as expected, but if i use vp9/webm the frame timing is incorrect
[04:13:47 CEST] <aszlig> a workaround for this would be to duplicate each frame until i get the expected duration
[04:14:07 CEST] <aszlig> so is this really a workaround or is this what i'm supposed to do?
[04:15:03 CEST] <aszlig> or is there a way to encode pts in a codec-agnostic way?
[04:16:40 CEST] <aszlig> i dug around in different sites and mailing list threads but so far i have only found outdated information or weird threads with either no real answers or the thread going entirely off-topic
[04:17:25 CEST] <kepstin> all codecs in ffmpeg should have basically the same pts handling, I'm guessing that if you're running into problems it might be due to the container?
[04:17:49 CEST] <kepstin> tbh, i'm not very familiar with libavformat :/
[04:21:26 CEST] <kepstin> the ffmpeg mkv/webm muxer uses a fixed 1/1000 timebase, but I thought (i might be wrong?) that there was something in libavformat to convert from your stream timebase automatically.
[04:22:14 CEST] <aszlig> kepstin: oh, wait... fixed timebase...
[04:22:24 CEST] <kepstin> if it's working, the pts values in your webm output should be going up by 16/17 every frame to be 60fps.
[04:22:28 CEST] <aszlig> kepstin: that means, that the timebase really is codec-specific, right?
[04:22:55 CEST] <aszlig> kepstin: well, they're varying
[04:22:56 CEST] <kepstin> format specific, not codec specific. Some formats support arbitrary (or nearly so) timebases, some are fixed
[04:23:47 CEST] <kepstin> 60fps in 1/1000 timebase is 16.66 repeated pts increments, so there's some rounding that has to happen
[04:23:49 CEST] <aszlig> like for example 20 120 312 333 ...
[04:24:27 CEST] <aszlig> kepstin: so you're saying that pts should always be incremented in time_base steps?
[04:24:47 CEST] <kepstin> that's really variable, that's kind of odd.
[04:25:19 CEST] <kepstin> the way pts works is that if you multiply pts by the time base fraction, you get the frame time in seconds.
[04:25:38 CEST] <aszlig> the input i'm getting is basically screen changes along with a timestamp in nanoseconds of the time where the screen change has happened
[04:26:00 CEST] <kepstin> hmm, so it's vfr, not fixed times then?
[04:26:06 CEST] <aszlig> yep
[04:26:15 CEST] <kepstin> if so, it all seems to be working as expected?
[04:26:24 CEST] <kepstin> note that avi doesn't support vfr, so it's kinda weird.
[04:26:25 CEST] <aszlig> kepstin: only with avi
[04:26:52 CEST] <kepstin> webm does natively support vfr, so each frame should be getting appropriate pts values for the variable time between frames
[04:26:56 CEST] <kepstin> it's all working like it should.
[04:28:48 CEST] <aszlig> here is a sample of the resulting videos:
[04:29:03 CEST] <aszlig> https://redmoonstudios.org/~aszlig/fdbc/test.avi
[04:29:06 CEST] <aszlig> https://redmoonstudios.org/~aszlig/fdbc/test.webm
[04:29:50 CEST] <aszlig> both encoded with the same source posted above
[04:31:37 CEST] <kepstin> why are you using a 1/60 timebase, anyways? if you're doing vfr stuff with timestamps from a clock, you should probably use something like AV_TIME_BASE (1/1000000 aka microseconds) to make calculations a bit easier
[04:32:05 CEST] <aszlig> so if the avi doesn't support vfr, then ffmpeg maybe does some magic and duplicates frames?
[04:33:03 CEST] <kepstin> iirc: ffmpeg uses the framerate you've set on the context, and drops frames that are too fast, and inserts null frames to fill in gaps to do a sort of pseudo-vfr
[04:33:12 CEST] <kepstin> avi is weird and old
[04:33:14 CEST] <kepstin> it's all hacks
[04:33:17 CEST] <aszlig> kepstin: i did use that while testing and getting a webm file where mpv reported 1000 fps
[04:33:29 CEST] <kepstin> please don't use it, particularly for modern codecs like h264 :)
[04:33:39 CEST] <aszlig> kepstin: well, i don't intend to
[04:33:50 CEST] <kepstin> if you have a vfr mkv file, tools will likely not be able to determine a framerate, yes
[04:34:02 CEST] <aszlig> that's why i'm trying to fix the timing issues with webm
[04:34:51 CEST] <aszlig> kepstin: okay, so mpv displaying 1000 fps should be fine, great :-)
[04:35:24 CEST] <kepstin> it looks like you're not setting the pts values correctly somewhere, yeah, that webm does play back much faster than real time. hmm.
[04:36:10 CEST] <kepstin> i'd guess it's an issue in how you're calculating the pts from your input timestamp
[04:37:02 CEST] <kepstin> i dunno why the avi plays back realtime tho, assuming that code's the same for both
[04:38:29 CEST] <kepstin> are both your examples from the exact same source/input video?
[04:39:03 CEST] <aszlig> they are
[04:39:28 CEST] <aszlig> and this is why i assumed that the pts is correct because it oddly works for the avi
[04:40:31 CEST] <kepstin> so the pts values in the avi and mkv are the same for matching frames
[04:41:00 CEST] <kepstin> which is wrong, in the mkv they should be much larger to compensate for the difference in timebase
[04:41:18 CEST] <aszlig> https://redmoonstudios.org/~aszlig/fdbc/testinput.xz <- this is the input data for those two samples
[04:41:54 CEST] <kepstin> so i dunno what's up, but for some reason the timestamps aren't being converted from the 1/60 of your stream timebase to the 1/1000 of the mkv/webm timebase
[04:42:01 CEST] <aszlig> kepstin: what do you mean by "the same" for matching frames?
[04:43:19 CEST] <aszlig> ah, you mean in relation to the timebase
[04:43:28 CEST] <kepstin> the first 4 frames in both videos have pts values 0, 1, 3, 4. So in the avi, that's 0*1/60, 1*1/60, 3*1/60, 4*1/60. In the mkv, that's 0*1/1000, 1*1/1000, 3*1/1000, 4*1/1000
[04:43:36 CEST] <alyssa> Is it possible to build *just* ffplay, linking against the (Debian) system ffmpeg rather than compiling all the libs?
[04:43:43 CEST] <kepstin> so obviously the mkv will play back about 16 times faster
[04:44:15 CEST] <aszlig> kepstin: which seems to be happening here
[04:44:21 CEST] <aszlig> hmm...
[04:45:02 CEST] <aszlig> kepstin: so in some way the time_base hasn't been converted correcly, or is that something i need to do for the corresponding format?
[04:45:02 CEST] <kepstin> alyssa: the build system doesn't support linking tools to external ffmpeg libs, but if you build an ffplay from a matching ffmpeg version which is configured the same way it'll probably work with the system libraries.
[04:45:18 CEST] <kepstin> alyssa: still not generally recommended tho, imo.
[04:46:30 CEST] <kepstin> aszlig: unfortunately, i'm not familiar enough with the libavformat api to tell you where it's going wrong
[04:46:59 CEST] <alyssa> kepstin: okay.... was really not looking forward to rebuilding all of ffmpeg (which I assume is time consuming given the sheer number of codecs, etc support)
[04:48:24 CEST] <aszlig> kepstin: no problem, at least i now know where i should dig into, so thanks a lot :-)
[04:50:17 CEST] <kepstin> aszlig: I suspect you're gonna need a `av_packet_rescale_ts(packet, avcodeccontext->time_base, avstream->time_base);`
[04:50:31 CEST] <kepstin> in before you send the avpacket to the muxer
[04:52:04 CEST] <aszlig> you mean after avcodec_receive_packet?
[04:52:13 CEST] Action: alyssa decides ffplay is unbuildable :p
[04:52:27 CEST] <kepstin> aszlig: yeah
[04:53:05 CEST] <kepstin> alyssa: I though debian had ffplay packaged tho, so this is kinda odd
[04:53:21 CEST] <alyssa> kepstin: it does, I want to hack on it though (without touching the rest of the lib)
[04:53:50 CEST] <kepstin> alyssa: if you want to hack on it (particularly if you want to contribute upstream), you should be starting from git master anyways
[04:54:10 CEST] <kepstin> alyssa: and building the libs is a one-time thing, after that it'll only rebuild stuff that changed (i.e. ffplay itself)
[04:54:28 CEST] <alyssa> fair enough
[04:58:26 CEST] <aszlig> kepstin: i've seen av_packet_rescale_ts mentioned a few times, but thought it won't be necessary because i'm setting the time_base for the stream myself
[04:59:22 CEST] <kepstin> you can set a suggested timebase, iirc, but the format can choose to ignore it
[04:59:30 CEST] <kepstin> aszlig: from the docs! "May be set by the caller before avformat_write_header() to provide a hint to the muxer about the desired timebase. In avformat_write_header(), the muxer will overwrite this field with the timebase that will actually be used for the timestamps written into the file (which may or may not be related to the user-provided one, depending on the format). "
[05:00:41 CEST] <aszlig> kepstin: yep, just stepped through with gdb and found out about it myself :-/
[05:01:28 CEST] <aszlig> but yeah, that at least resolves my problem and also gets rid of a few lines of code, yay :-)
[05:01:41 CEST] <aszlig> thanks a lot again =)
[05:03:20 CEST] <kepstin> note that once you've done this change, you can set the timebase of your stuff to whatever you like internally, even use something like AV_TIME_BASE (1/1000000 aka microseconds) to make time calculations easier, if you like.
[05:04:11 CEST] <kepstin> although it looks like you're doing something in your code to make it so the max framerate is 60fps? if so, maybe just stick with 1/60 to make that easier :)
[05:04:42 CEST] <aszlig> kepstin: nah, ideally i don't want to set the framerate at all
[05:05:04 CEST] <aszlig> i only did that as a workaround
[05:05:59 CEST] <kepstin> the only thing you should be careful about is making sure that once the pts values are converted to the format's timebase, you don't have two frames with the same pts.
[05:06:20 CEST] <kepstin> this isn't often an issue with mkv, since it's unlikely you'll get two frames within the same ms :)
[05:07:17 CEST] <aszlig> kepstin: i already took care of that in the first place: https://gist.github.com/aszlig/c25e531734476e3496be2e85797d08d8#file-encode…
[05:08:34 CEST] <kepstin> aszlig: but that's checking in the codec timebase, not in the stream (format) timebase :)
[05:08:57 CEST] <kepstin> either way, unlikely to be a problem
[05:10:04 CEST] <aszlig> kepstin: oh, right... nice catch =)
[05:10:50 CEST] <kepstin> (it'll only ever be a problem if your codec timebase is much smaller than the stream timebase, which probably won't happen unless you use a really big denominator like, uh, AV_TIME_BASE)
[05:11:29 CEST] <kepstin> and even then, with e.g. mkv/webm it's not an issue unless you have frames <1ms apart.
[05:12:16 CEST] <aszlig> i need to refactor that part anyway, because right now i'm dropping those frames, but what i really want in the end is update to the latest state (aka: "last" instead of "head" for same-time frames)
[05:12:50 CEST] <kepstin> heh, that's fun code to write
[05:13:24 CEST] Action: kepstin wrote code to do that recently when he updated the fps filter to the newer filter api :/
[05:21:30 CEST] <aszlig> kepstin: well, in my case it shouldn't be that difficult, right? just writing frame data and sending it only whenever there is a time difference in the next packet or it's the last packet
[05:23:29 CEST] <aszlig> because i need to write frame data anyway, because they're deltas
[05:27:02 CEST] <kepstin> yeah, should be pretty simple then
[05:27:45 CEST] <kepstin> if (!(new_pts > prev_pts)) continue; // or so :)
[05:34:39 CEST] <alyssa> :tada: everything is working as expected
[05:34:45 CEST] <alyssa> kepstin: thanks! :)
[05:35:10 CEST] <aszlig> oh, forgot to mention ;-)
[05:35:20 CEST] <aszlig> kepstin: everything is working as expected for me too =)
[05:35:30 CEST] Action: alyssa high-fives aszlig
[05:35:34 CEST] <aszlig> so rescale_ts did the trick
[05:38:58 CEST] <fa0> Hello
[05:40:05 CEST] <fa0> Using tools like mkvtoolnix and handbrake, I do some stuff with, I see sometimes the Audio tracks shows as Unknown/Undetermined
[05:40:26 CEST] <fa0> I'm trying to have then listed with English for the moment, and thought this would work, but not having success;
[05:40:39 CEST] <fa0> ffmpeg -i "$i" -c:v copy -c:a libmp3lame -b:a 114k -metadata:s:a:0 language=eng output.mp4
[05:41:43 CEST] <fa0> disregard "$i" I use the cmd in a script file, it really reads as thisl
[05:41:53 CEST] <fa0> urxvt -g 120x32 -e ffmpeg -i "$i" -c:v copy -c:a libmp3lame -b:a 114k -metadata:s:a:0 language=eng "$OUTPUT/${i%.*}.avi"
[05:47:12 CEST] <aszlig> kepstin: haha... "timebase 1/1000000000 not supported by MPEG 4 standard" :-D
[05:48:48 CEST] <kepstin> heh, yeah, that's probably a thing :)
[05:49:51 CEST] <aszlig> kepstin: well, i thought i could just directly use nanoseconds as time base, but that's probably too much for some codecs
[05:50:39 CEST] <kepstin> yeah, most of the ffmpeg internal stuff doesn't go any smaller than microseconds
[06:23:55 CEST] <fa0> The DOCs say this; To set the language of the first audio stream:
[06:23:57 CEST] <fa0> ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
[06:24:21 CEST] <fa0> but when I run ffprobe -i file the lang is not show on the first audio stream... hmm
[06:24:47 CEST] <fa0> Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 114 kb/s
[06:25:31 CEST] <fa0> On an mp4 video with aac ffprobe shows it like this;
[06:25:34 CEST] <fa0> Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 159 kb/s (default)
[06:26:04 CEST] <fa0> So I was assuming with this cmd, the mp3 would show the same as Stream #0:1(eng):?
[06:27:11 CEST] <fa0> I also ran it as; -metadata:s:a:1 language=eng OUTPUT
[06:27:18 CEST] <fa0> anyone, any thoughts here?
[06:40:04 CEST] <fa0> If anyone is breathing, I added in -map 0 but still not working;
[06:40:05 CEST] <fa0> urxvt -g 120x32 -e ffmpeg -i "$i" -map 0 -c:v copy -c:a libmp3lame -b:a 114k -metadata:s:a:0 language=eng "$OUTPUT/${i%.*}.avi"
[06:40:45 CEST] <fa0> When I start the encode, the output in the term shows it as Stream #0:1(eng) so I don't get why ffprobe after the encode is over shows nothing?
[06:41:06 CEST] Action: fa0 bangs head
[06:42:15 CEST] <fa0> Ahh AVI doesn't support language metadata, or is this just a ffmpeg thing?
[07:07:19 CEST] <wfbarksdale> what you tryina do fa)
[07:07:23 CEST] <wfbarksdale> fa0
[07:08:41 CEST] <fa0> wfbarksdale: hi, add a language to an audio stream, which I thought was suppose to be --> -metadata:s:a:0 language=eng
[07:09:50 CEST] <fa0> When I start encoding it the output in the term will show as; Stream #0:1(eng), but I check it when done with ffprobe it just shows then as Stream #0:1
[07:13:59 CEST] <wfbarksdale> mp4?
[07:16:24 CEST] <fa0> avi
[07:17:54 CEST] <fa0> wfbarksdale: I read something online that avi doesn't support language meta tagging, so not sure...
[07:18:19 CEST] <wfbarksdale> literally know nothing about the AVI container, sorry man
[07:18:26 CEST] <wfbarksdale> but yeah, that might be right
[07:18:29 CEST] <wfbarksdale> heard it sucks
[07:19:05 CEST] <wfbarksdale> maybe find the spec for AVI container online and do some control+f on it?
[07:20:04 CEST] <wfbarksdale> if AVI is not required you might try converting to mp4 then try your commands
[07:21:55 CEST] <fa0> with mkvmerge gui I can easily do it, but seems silly to mux some crappy avi to mkv... hmm
[07:22:15 CEST] <fa0> yeah let me also try them as mp4
[07:23:30 CEST] <wfbarksdale> are you trying to embed both audios in the same file?
[07:30:40 CEST] <fa0> wfbarksdale: embed both? There's only one audio stream and it's listed as und/unknown, just trying to tag the audio tracks as 'eng' is all...
[07:30:55 CEST] <wfbarksdale> ahh
[07:31:08 CEST] <wfbarksdale> i thought you where trying to embed a second audio stream
[07:31:29 CEST] <wfbarksdale> well, still, it may be that the tag only works in mp4 container
[07:31:39 CEST] <wfbarksdale> the AVI container spec would confirm or deny this
[07:33:05 CEST] <fa0> ok
[07:33:07 CEST] <wfbarksdale> sorry you just got this guy <---- here helping you, typically peeps here are very generous with helping out
[07:33:21 CEST] <fa0> trying to find that cmd I read earlier for the avi
[07:33:22 CEST] <fa0> LOL
[07:34:30 CEST] <fa0> Ahh found it;
[07:34:31 CEST] <fa0> https://superuser.com/questions/783895/ffmpeg-edit-avi-metadata-and-audio-t…
[07:34:50 CEST] <fa0> Look at the last comment... Took quite a long time for me to figure this out...
[07:35:00 CEST] <fa0> -metadata IAS1=eng
[07:35:34 CEST] <fa0> Not sure, I tried, but didn't seem to work...
[07:39:11 CEST] <fa0> Sounds like a good mouth full but it no workie LOL
[07:39:15 CEST] <fa0> hmm
[07:42:27 CEST] <fa0> wfbarksdale: mp4 works...
[07:42:35 CEST] <fa0> urxvt -g 120x32 -e ffmpeg -i "$i" -map 0 -c:v copy -c:a copy -metadata:s:a:0 language=eng "$OUTPUT/${i%.*}.mp4"
[07:42:39 CEST] <wfbarksdale> noice, hi five!
[07:43:19 CEST] <fa0> now, does just copying the avi to an mp4 like this in ffmpeg really convert it to an mp4?
[07:43:22 CEST] <wfbarksdale> mp4 is very flexible
[07:43:34 CEST] <fa0> -c:v copy -c:a copy
[07:43:45 CEST] <wfbarksdale> does it play correctly?
[07:44:12 CEST] <fa0> yes
[07:44:47 CEST] <wfbarksdale> like i said, i know nothing about AVI, but my understanding is that the codec copy should work just fine
[07:45:31 CEST] <fa0> I meant, what I was asking, when I look online to convert from one container to another it's simply this;
[07:45:34 CEST] <fa0> ffmpeg -i infile.avi youroutput.mp4
[07:46:03 CEST] <wfbarksdale> it seems like that would work
[07:46:14 CEST] <wfbarksdale> whats the codec of your avi
[07:46:18 CEST] <fa0> yeah that's what everywhere
[07:46:55 CEST] <wfbarksdale> could you paste me the ffprobe output from your AVI?
[07:46:59 CEST] <TheAMM> copy reminds me, is there a way to remux an mkv (ie -c copy) with video + multiple audio channels without looking at the file beforehand?
[07:47:15 CEST] <fa0> ffprobe shows; Stream #0:0(und): Video: msmpeg4v3
[07:47:30 CEST] <TheAMM> I mean tracks, ffmpeg -i many_tracks.mkv -c copy remuxed.mkv loses the additional audio tracks
[07:47:32 CEST] <wfbarksdale> msmepg4v3 is not something i am familiear wtih
[07:47:40 CEST] <wfbarksdale> is that microsfot mpeg 4x3 aspect ratio?
[07:47:55 CEST] <fa0> http://dpaste.com/3NHBTPA
[07:48:05 CEST] <fa0> me too, not sure hehe
[07:49:04 CEST] <wfbarksdale> yeah,video size reduces to 4x3
[07:49:31 CEST] <fa0> hmm some hack; http://www.undercut.org/msmpeg4/
[07:49:33 CEST] <wfbarksdale> erm
[07:50:31 CEST] <fa0> It's an old TV show Allo Allo; https://en.wikipedia.org/wiki/%27Allo_%27Allo!
[07:50:57 CEST] <wfbarksdale> so like whats your status now?
[07:51:13 CEST] <fa0> so the rips are quite old avi 600x400 rez LOL
[07:51:27 CEST] <wfbarksdale> you converted the container to mp4, and then then labeling the audio stream (eng) worked with your commands?
[07:51:30 CEST] <wfbarksdale> are you done then?
[07:51:32 CEST] <fa0> status? Yeah it works showing eng
[07:51:42 CEST] <wfbarksdale> noice!
[07:51:51 CEST] <fa0> If you look at line 11 on that dpaste.com
[07:51:57 CEST] <fa0> Stream #0:1(eng): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, stereo, s16p, 114 kb/s (default)
[07:52:15 CEST] <fa0> yeah all good now
[07:52:24 CEST] <wfbarksdale> awesome
[07:52:29 CEST] <wfbarksdale> yeah, so it just copied the codec
[07:52:42 CEST] <fa0> SO I guess in the future, someone comes asking, convert avi to mp4 and use in your cmds;
[07:52:49 CEST] <fa0> -map 0 -metadata:s:a:0 language=eng
[07:53:20 CEST] <wfbarksdale> yeah, not sure if its required for your use case, but I would re-encode the video to h264
[07:53:35 CEST] <fa0> I just ran this cmd one time is all to do everything;
[07:53:37 CEST] <fa0> urxvt -g 120x32 -e ffmpeg -i "$i" -map 0 -c:v copy -c:a copy -metadata:s:a:0 language=eng "$OUTPUT/${i%.*}.mp4"
[07:54:04 CEST] <fa0> Hmm h264, well I've played the videos on the computer ok, and ran on the TV too
[07:54:25 CEST] <fa0> IF in the future won't play, I'll convert then,,, thanks
[07:55:12 CEST] <wfbarksdale> ^ makes sense, gl hf, your drunk friend - wfbarks
[07:55:54 CEST] <fa0> wfbarksdale: hey, in case you want a simple way to run ffmpeg from a term and also batch do a lot of videos at once;
[07:55:56 CEST] <fa0> http://dpaste.com/0YSJ09R
[07:56:23 CEST] <fa0> I just got this simple little script and I run all my various cmds in it, to do all the rips/encodes, etc...
[07:56:40 CEST] <fa0> uncomment one cmd, then comment out another and away ya go... :P
[07:56:41 CEST] <wfbarksdale> ahh cool
[07:56:43 CEST] <wfbarksdale> thanks!
[07:57:12 CEST] <wfbarksdale> only worked with videos that play on the interwebs and in apps, so mp4 + h264 is my jam
[07:57:53 CEST] <fa0> The other day, got these Babylon 5 rips, but they are all h265, won't play on the TV, so I converted them all h264, put like 22 files in the Video directory, ran the script and sat back while it converted them all
[07:57:53 CEST] <fa0> hehe
[07:58:24 CEST] <fa0> just be sure to make like ffmpeg.sh script and make executable...
[07:58:55 CEST] <fa0> I set it up with my term as; urxvt -g 120x32 so it pops up on the desktop and I can see it running...
[07:59:44 CEST] <fa0> I have it also setup as a Menu launcher LOL
[08:00:15 CEST] <fa0> I just click ffmpeg in my menu and away she goes...
[08:10:39 CEST] <fa0> wfbarksdale: h264 with mp3 LOL
[08:10:55 CEST] <fa0> mp3 seemed to be the order of the day many many years ago....
[08:11:41 CEST] <wfbarksdale> mp4 container
[08:11:44 CEST] <wfbarksdale> not mp3 audio
[08:12:05 CEST] <wfbarksdale> AAC audio
[08:12:28 CEST] <wfbarksdale> outside of those things i'm a n00b
[08:12:55 CEST] <fa0> I was just saying, these old avi are using mp3 :P
[08:13:02 CEST] <wfbarksdale> oh yeah
[08:13:05 CEST] <wfbarksdale> i saw that
[08:13:13 CEST] <wfbarksdale> definitely some hackery haha
[08:13:16 CEST] <fa0> divx and mp3 baby WoOt
[08:13:18 CEST] <fa0> lol
[08:13:24 CEST] <wfbarksdale> some old MPEG codec and MP3
[08:13:36 CEST] <fa0> I've never seen before
[10:03:12 CEST] <vlt> Hello. Is there a way to reduce latency when running "ffmpeg -i /dev/video0 -c:v copy -f nup tcp://..."?
[10:53:23 CEST] <Brian_> hi guys, i successfully compiled ffmpeg 3.4.1 for Android. But when I try with ffmpeg 4.0.0 i suddenly get <library> not found using pkg-config errors. logfile: https://pastebin.com/eF7N0xaq
[10:53:54 CEST] <Brian_> did anything change in ffmpeg 4.0 regarding compilation?
[10:57:27 CEST] <poutine> looks to me like you don't have a libvorbis compiled for android
[11:01:03 CEST] <Brian_> well I did, if i replace ffmpeg folder with the version of 3.4.1 it works perfectly
[11:16:29 CEST] <JEEB> I don't build libvorbis, but I do build FFmpeg for android often and it WorksForMe
[11:16:42 CEST] <JEEB> ah, you're building static
[11:17:22 CEST] <JEEB> a static library doesn't contain information on what shared dependencies it bases upon, unfortunately
[11:17:53 CEST] <JEEB> also those extra cxxflags look really weird, generally you get those from pkg-config after you set PKG_CONFIG_LIBDIR to your build root(s)' lib/pkgconfig
[11:18:22 CEST] <JEEB> ah, so the error is during configure
[11:19:25 CEST] <JEEB> oh
[11:20:04 CEST] <JEEB> Brian_: it has most likely been working by accident, 4.0 does have IIRC a lot of improvements in how dependencies are handled in the configure script
[11:20:45 CEST] <JEEB> PKG_CONFIG_LIBDIR=/root/bravobit/ffmpeg-android/toolchain-android/lib/pkgconfig if that is where you have installed various libraries
[11:21:23 CEST] <JEEB> also if you're using static libraries you need --pkg-config-flags="--static"
[11:22:30 CEST] <JEEB> basically what's happening in that vorbis check is that you have -logg already manually added, and vorbisenc.a is found by something. but nothing points that you also need the generic vorbis lib that provides vorbis_info_clear
[11:23:42 CEST] <JEEB> you could brute force it as well but rather use pkg-config for flags
[11:24:43 CEST] <JEEB> I actually wonder why my build txt file still adds my build prefix's include/lib manually to the search paths, need to check why I do that after work
[11:25:17 CEST] <JEEB> ah, that might be because of my hacked gnutls :P
[11:32:40 CEST] <Brian_> JEEB thanks i'll check it out :)
[12:58:57 CEST] <TarquinWJ> Hi, I am trying to set the with metadata for a video to the wrong value, to see if our video player can play it with the correct or wrong size (I understand that this sounds insane, but I am making tests for edge cases).
[12:58:58 CEST] <TarquinWJ> This replicates an old bug in XMedia Recode (FFMpeg front-end), where if you transposed a video, it would always specify the original dimensions in the metadata instead of the new dimensions.
[12:58:58 CEST] <TarquinWJ> However, I am a little unfamiliar with setting metadata, and I am not sure if I am doing the right thing. My attempts to set the width to the wrong value seem to be being ignored.
[12:58:58 CEST] <TarquinWJ> This works:
[12:58:58 CEST] <TarquinWJ> ffmpeg -i original.mp4 -c:v copy -write_tmcd 0 -metadata:s:v:0 rotate=90 rotated.mp4
[12:58:59 CEST] <TarquinWJ> This does not:
[12:59:00 CEST] <TarquinWJ> ffmpeg -i original.mp4 -c:v copy -write_tmcd 0 -metadata:s:v:0 width=100 wrongsize.mp4
[12:59:29 CEST] <TarquinWJ> can it be done?
[14:20:52 CEST] <th3_v0ice> Hello guys. I have a problem while encoding a video with API. My packet duration changes from 256 to 512, does anyone know why this is happening?
[15:16:58 CEST] <weker> Hey just updated ffmpeg und saw that ffserver was removed. Has anybody a recommendation for a replacement? I heard something about SRS. Looking into it now.
[15:19:23 CEST] <Mavrik> weker: nginx-rtmp-module was one of the better supported and easy to setup things I've seen
[15:22:30 CEST] <weker> Mavrik: Thanks! will look into it.
[15:23:49 CEST] <Mavrik> (It supports HLS and DASH as well IIRC even though the name implies otherwise :) )
[16:01:15 CEST] <SpeakerToMeat> Sorry to ask this here but you guiy are all very knowledgeable. do you know anyu cli/oss program that would ocr burned in subtitles off a video file? (linux), I'm more interested at getting the exitence of subtitles plus their time in out rather than text accuracy.
[16:02:02 CEST] <JEEB> subtitle edit is one thing I know that has OCR features and is IIRC OSS
[16:06:10 CEST] <SpeakerToMeat> Subtitle edit is the best editor but so far all the ocr i've seen it have works with dedicated subtitle streams (vob) not any file.
[16:07:10 CEST] <JEEB> I'd still say I prefer Aegisub as an editor, but for OCR only subtitle edit has the feature. you might want to check the Subtitle Edit community since the application can load up videos IIRC
[16:21:17 CEST] <vlt> Hello. Is there a way to reduce latency when running "ffmpeg -i /dev/video0 -c:v copy -f nup tcp://..."?
[16:31:04 CEST] <SpeakerToMeat> Hmmm yeah subtitle edit needs a special type of file to ocr subs
[16:41:39 CEST] <weker> Is there something more lightweight than nginx-rtmp-module? I never really worked with nginx, just served some static pages with it. I only need to stream audio with relatively low latency.
[17:01:51 CEST] <kepstin> nginx isn't particularly heavyweight, really :)
[17:02:12 CEST] <kepstin> what kind of player are you trying to stream to? That's the main thing that determines the server you want to use...
[17:03:55 CEST] <weker> yes you are probably right, just a bit of a mess to configure...
[17:04:08 CEST] <weker> What do you mean what player? In what respect?
[17:06:04 CEST] <kepstin> what software is the person playing the stream/listening going to be using?
[17:06:24 CEST] <weker> Ohh I have full controll over the stream consumer
[17:06:26 CEST] <kepstin> which determines what streaming protocol do you want to use
[17:06:50 CEST] <kepstin> multiple clients or just one?
[17:06:59 CEST] <weker> multiple clients
[17:07:31 CEST] <kepstin> hmm. nginx-rtmp might not be the best choice if you want low latency then, it's intended mostly for streaming to web browsers
[17:07:51 CEST] Action: kepstin isn't really familiar with what *would* be the best option, tho
[17:10:56 CEST] <furq> weker: if you just want audio then use icecast
[17:20:23 CEST] <grady> does anyone have any ideas for a strategy for writing a complex filter that combinesfor instancethree 5-second video clips with one 15-second audio clip? Preferably without having to split the audio file into three 5-second clips
[17:28:25 CEST] <Shadowsan> Hi, I was wondering whether anyone has tried to compile ffmpeg latest using CUDA 9.2 and can steer me in the right direction?
[17:28:44 CEST] <Shadowsan> I can't seem to get the configure to recognise hardware acceleration
[17:29:31 CEST] <furq> grady: -i video1 -i video2 -i video3 -i audio -lavfi concat=n=3 out.mp4
[17:30:22 CEST] <furq> or `-i video1 -i video2 -i video3 -i audio -lavfi "concat=n=3[out]" -map "[out]" -map 3:a out.mp4` if the video clips contain audio
[17:34:17 CEST] <Shadowsan> ./configure --enable-nonfree --enable-cuda --enable-cuvid --enable-nvenc --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 "ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec"
[17:34:39 CEST] <Shadowsan> But definitely got the nv codecs on there
[17:35:18 CEST] <Shadowsan> Also tried to specify via adding the location as an extra cflag and via the PKG_CONFIG_PATH variable
[17:35:26 CEST] <th3_v0ice> Shadowsan: Can you try and run sudo ldconfig?
[17:36:49 CEST] <Shadowsan> Sure - and then run again?
[17:37:33 CEST] <th3_v0ice> Yep
[17:40:46 CEST] <Shadowsan> No dice - same issue
[17:42:27 CEST] <th3_v0ice> If you havent changed the default package config path, you could also try this. "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig" Replace with the one that you have if you changed it.
[17:46:45 CEST] <Shadowsan> Nope - still dead
[17:46:48 CEST] <Shadowsan> [root@min01 ffmpeg]# PKG_CONFIG_PATH=/usr/lib64/pkgconfig ./configure --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
[17:47:22 CEST] <Shadowsan> and /usr/lib64/pkgconfig has all the cuda and other libs in there
[17:47:28 CEST] <Shadowsan> including ffnvcodec.pc
[17:50:10 CEST] <th3_v0ice> Shadowsan: I had the same problem but while including x265, previous command that I posted fixed my problem.
[17:53:17 CEST] <Shadowsan> It's weird. If I specify no flags, configure completes but no hw_accel
[17:53:35 CEST] <Shadowsan> As soon as I specify cuda, it blows up
[17:57:13 CEST] <Matador> bloody heck
[17:57:55 CEST] <Matador> got an issue after Intel + Win 10 updates with h264_qsv
[18:00:04 CEST] <Matador> [h264_qsv @ 0000000004f208c0] Error initializing the encoder: failed to allocate memory (-4)
[18:02:24 CEST] <grady> Shadowsan: Thanks for the help. What if i am trying to use the audio from a video file but combine it with a blank color screen like `ffmpeg -y -f lavfi -t 5 -i "color=0xED223F@1:s=1920x1080" -ss 0 -t 10 -i video.mp4 -filter_complex "filtering..." ` where the audio plays from the beginning of the 5 second color screen and then continues once the color screen goes away and the video plays
[18:03:14 CEST] <Shadowsan> Think I might be onto something
[18:42:15 CEST] <weker> Icecast was even more clunky then nginx-rtmp. So I went back to nginx. Now I get spammed with errors from ffmpeg :/
[18:42:26 CEST] <weker> Application provided invalid, non monotonically increasing dts to muxer in stream 0:
[18:42:35 CEST] <weker> with: ffmpeg -f pulse -i 0 -c:a libmp3lame -b:a 320k -f mp3 'rtmp://127.0.0.1/live/test'
[20:15:34 CEST] <MSafroshkin> hello, guys! How do I submit a bug about ffmpeg? just send an e mail?
[20:18:14 CEST] <JEEB> trac.ffmpeg.org is the issue tracker
[20:37:00 CEST] <MSafroshkin> Has anyone meet the memory leak with rtsp stream. Memory leak is caused by avcodec 58 and avutil 56 (according to my visual studio heap profiler)
[21:42:22 CEST] <edgar_> Hi there. Does anybody know why my livestream doesnt loop the audio file? After first play of the .mp3 it seems like youtube stops the streaming connection. there are no errors in the console, (just if the stream goes on, but it doesnt) https://pastebin.com/wvbH3MAy
[21:43:40 CEST] <edgar_> its like.. first play..everything ok, 2nd play, youtube stops the stream. in console ffmpeg is running without errors
[21:51:41 CEST] <BtbN> You seem to be missing the -re option
[21:52:10 CEST] <BtbN> This will currently just hammer output to YouTube as fast as it can, not in real-time for a stream
[21:52:27 CEST] <BtbN> But your video device might already limit you to realtime
[21:56:04 CEST] <kepstin> yeah, the muxer should take care of it, if you have a live input you should avoid -re.
[21:56:11 CEST] <kepstin> i wonder if it's a timestamp problem
[21:56:56 CEST] <kepstin> when stream_loop does the loop, do the timestamps jump back to 0, maybe?
[22:06:39 CEST] <wfbarksdale> I have a rendering pipeline using ffmpeg (c API) for demuxing / decoding, and in some cases it may be necessary to duplicate frames at the decoder part or the pipeline. I was wondering if its possible to send the same packet for decoding again?
[22:06:42 CEST] <edgar_> mhh im realy new with ffmpeg and still have to understand how it works -.- can you give me an example of how to use the -re ?
[22:06:51 CEST] <wfbarksdale> when i try this i get this output:
[22:07:01 CEST] <wfbarksdale> [h264 @ 0x10300da00] mmco: unref short failure
[22:07:01 CEST] <wfbarksdale> [h264 @ 0x10300da00] illegal short term buffer state detected
[22:07:21 CEST] <wfbarksdale> i'm using using avcodec_send_packet and avcodec_receive_frame
[22:07:27 CEST] <wfbarksdale> and just sending the same packet again
[22:07:31 CEST] <kepstin> wfbarksdale: if you need to duplicate frames, do it after decoding. Sending dup frames into the decoder is, as you can see, invalid.
[22:08:16 CEST] <kepstin> (although it might work in some codecs or with keyframes, ymmv)
[22:08:17 CEST] <wfbarksdale> argh
[22:08:56 CEST] <wfbarksdale> Problem is that this would mean i need to copy every frame, as the decoder won't necessarily know when it will need to serve a duplicate frame
[22:09:20 CEST] <wfbarksdale> and upstream may want to modify the buffer
[22:09:31 CEST] <kepstin> note that ffmpeg avframes let you have multiple frames with a shared reference buffer, this is all handled for you by the framework
[22:09:47 CEST] <kepstin> it'll only copy if needed to handle modifying buffers
[22:14:51 CEST] <wfbarksdale> i see
[22:15:41 CEST] <wfbarksdale> so I basically need to do copy on write for the whole pipeline
[22:16:02 CEST] <edgar_> how do you guys got your ffmpeg skills? just reading documentation? id like to have a good tutorial for staters. does anybody know if something like thats exists? xD
[22:16:27 CEST] <kepstin> yeah, ffmpeg's designed for that. Anything that wants to write to an avframe is supposed to call av_frame_make_writable() before modifying that, and that function copies the frame data if there's a shared reference existing.
[22:17:02 CEST] <wfbarksdale> i see, thats helpful man thanks
[22:18:01 CEST] <wfbarksdale> its kind of a shortcoming of my design i guess, because the buffer will always have to be copied since the decoder always has to hold onto the frame it just decoded
[22:19:35 CEST] <kepstin> wfbarksdale: depends on exact timing of the other stuff and whether any modification is actually needed, but perhaps.
[22:20:22 CEST] <wfbarksdale> in most cases conversion from YUV -> RGB will be needed
[22:20:22 CEST] <kepstin> note that it's safe to pass an AVFrame between threads, which is sometimes useful.
[22:20:48 CEST] <wfbarksdale> which i guess is always a copy anyways
[22:20:54 CEST] <kepstin> YUV->RGB conversion doesn't modify the source buffer tho, you'll always be allocating a new buffer for that
[22:22:05 CEST] <kepstin> assuming that's the first thing you do after decoding, this design won't add any additional buffer copies
[22:22:23 CEST] <wfbarksdale> thats good, probably workable for me
[22:22:28 CEST] <wfbarksdale> "good"
[22:23:42 CEST] <wfbarksdale> my architecture works as sort of a pull based thing, where whatever is downstream (display, encoder, streamer, whatever) just requests some output for a given time. so it might be advancing at 60fps or 30fps or whatever. But unfortunately I didn't create a way to tell downstream the next output that will be requested :/
[22:24:12 CEST] <wfbarksdale> so not seeing a simple way to avoid this copy
[22:24:48 CEST] <wfbarksdale> kepstin: thanks for the help, as always
[22:25:18 CEST] <kepstin> right, so each time you decode a frame, just deref the previous frame and store the new one - and when you receive a request for the frame from downstream, use av_frame_clone to make it a new avframe that shares the data
[22:25:21 CEST] <kepstin> should work great
[22:26:50 CEST] <kepstin> note that it is safe to pass AVFrame between threads (the reference-counting stuff is atomic)
[22:32:00 CEST] <wfbarksdale> maybe I could add like a "next frame hint" to the request structure
[22:32:50 CEST] <wfbarksdale> <- (mumbles to himself)
[22:33:58 CEST] <kepstin> note that this "store a frame reference then generate cloned frames sharing refs on demand" is actually how a lot of ffmpeg filters are internally implemented - particularly ones which need to sync multiple inputs.
[22:34:17 CEST] <kepstin> fps filter basically works like that too
[22:42:17 CEST] <wfbarksdale> gotchya
[00:00:00 CEST] --- Wed May 23 2018
1
0
[00:05:21 CEST] <ubitux> durandal_1707: yeah? can you share?
[00:07:41 CEST] <durandal_1707> ubitux: fast separable non-local means
[00:08:16 CEST] <ubitux> https://arxiv.org/pdf/1407.2343.pdf ok
[00:19:02 CEST] <jamrial> ubitux: you updated your fate clients and now valgrind complains about two tests that seemingly make no sense :p
[00:19:22 CEST] <jamrial> wonder if it's gcc 8.1.0 at fault, or something else like libc
[03:22:45 CEST] <cone-081> ffmpeg 03Jerome Borsboom 07master:fac584991597: avcodec/vc1: FIELDTX is only present in interlaced frame I/BI pictures
[03:22:45 CEST] <cone-081> ffmpeg 03Michael Niedermayer 07master:56e76bd0579c: avformat/mov: Break out early if chunk_count is 0 in mov_build_index()
[03:22:45 CEST] <cone-081> ffmpeg 03Michael Niedermayer 07master:2c2d689c5664: avformat/mov: Only fail for STCO/STSC contradictions if both exist
[12:46:18 CEST] <kierank> gagandeep: data is little endian I think
[12:46:24 CEST] <kierank> You are using big endian functions
[12:50:39 CEST] <gagandeep> kierank: fixed the table issue, they were implecitely converting uint8_t * buffer to int16_t * buffer and then adding offset to 16 bit buffer
[12:51:04 CEST] <kierank> Yes
[12:51:10 CEST] <gagandeep> just finallizing some stuff, i think i should be able to fix that last sample by today
[12:59:10 CEST] <kierank> gagandeep: cool
[12:59:13 CEST] <kierank> what else is left?
[12:59:33 CEST] <kierank> I also saw in the code that we do decompand sometimes on some codebooks where it's not necessary
[12:59:40 CEST] <kierank> there's a flag saying not to decompand
[13:15:31 CEST] <gagandeep> well, currently i am not decompanding when codebook 2 is used (same table but having different name and flag with decompanding not needed), that is taken care of
[13:16:03 CEST] <gagandeep> in lowpass decoding, an offset is added, i will confirm from where to get that and update that as well
[13:17:09 CEST] <gagandeep> kierank: i have directly access the bitstream buffer from getbytecontext, will that be alright?
[13:17:30 CEST] <kierank> yes
[13:17:35 CEST] <kierank> see how it's done for lowpass coeffs
[13:18:17 CEST] <gagandeep> in lowpass, i think you used function bytestream2_get_be but i am directly referencing the pointer to buffer for table
[13:18:35 CEST] <gagandeep> peak.base = gb.buffer
[13:18:59 CEST] <gagandeep> because they are not giving size of the peak table so i don't have other options
[13:19:52 CEST] <kierank> hmmm ok, a bit strange
[13:20:38 CEST] <gagandeep> yeah, i mean they have size in their struct in codec state but they dont have a tag value pair for that
[13:23:45 CEST] <kierank> I think they are using a trick that if the fsm decoder produces two coefficients then the second one MUST be small
[13:29:34 CEST] <gagandeep> yeah, well my peak_table values are matching now, just need to properly integrate it with the decoding of highpass bands
[13:29:39 CEST] <durandal_1707> atomnuker: i have anlmeans almost working, but can not understand why i get heavily distorted audio
[14:57:30 CEST] <durandal_1707> atomnuker: fine to apply mbedTLS ?
[15:01:24 CEST] <BBB> atomnuker: I have some basics in place now
[15:02:50 CEST] <durandal_1707> BBB: what basics?
[15:04:42 CEST] <gagandeep> kierank: what are chunks
[15:04:42 CEST] <durandal_1707> ugh, filter removes background noises just fine but does some strange distortion to voices
[15:05:26 CEST] <kierank> gagandeep: in what context
[15:06:42 CEST] <gagandeep> i think i will need to skip peak table when bitstream gets to it
[15:06:45 CEST] <gagandeep> don't you thin
[15:06:48 CEST] <gagandeep> *think
[15:07:15 CEST] <gagandeep> either the bitstream is at tag value pair or it is at subband data
[15:07:35 CEST] <gagandeep> but if it is at peak table, i think this is the last thing causing me trouble
[15:08:38 CEST] <gagandeep> there is a tag called chunk header for peak table, do you understand anything by this
[15:10:02 CEST] <gagandeep> also i am unable to catch this chunk tag = 0x4001 in cfhd
[15:11:19 CEST] <gagandeep> kierank: any thoughts
[15:14:01 CEST] <durandal_1707> gagandeep: searching for 0x4001 doesnt show anything? perhaps search for 0x0140 ?
[15:16:06 CEST] <gagandeep> could this tag 0x4001 be affected by the endian system?
[15:16:32 CEST] <nevcairiel> any value over 8-bit would
[15:18:49 CEST] <gagandeep> 0x0140 doesn't work, but let me see
[15:19:11 CEST] <gagandeep> but what are chunks, they are the data?
[15:54:32 CEST] <gagandeep> chunk data was already handled by kierank so need for me to fuss over that
[16:10:47 CEST] <gagandeep> kierank: finally last sample for interlacing fixed (i think)
[16:10:49 CEST] <gagandeep> https://imgur.com/a/KQ0a57H
[16:10:52 CEST] <gagandeep> ffmpeg output
[16:11:02 CEST] <gagandeep> will be sending patch later
[16:11:21 CEST] <kierank> Doesn't load on my phone (am roaming) but congtatulations
[16:11:28 CEST] <kierank> Does it match cineform bitstream
[16:12:54 CEST] <gagandeep> i'll check that, though, it wouldn't be strange for there to be some other offset at this point
[16:14:00 CEST] <gagandeep> afk, going to eat now
[17:59:05 CEST] <atomnuker> durandal_1707: heavily distorted?
[17:59:30 CEST] <durandal_1707> atomnuker: i dunno what kind of convolution i need to do
[17:59:31 CEST] <atomnuker> BBB: neat, put it up on github if you're comfortable its good enough so we can get other interested people
[17:59:53 CEST] <BBB> j-b: ^^ :-p
[18:00:05 CEST] <atomnuker> durandal_1707: where does the distortion appear? in the high frequencies?
[18:00:26 CEST] <durandal_1707> should use FFT, but its not really useful because lavc FFT only knows about power of 2
[18:00:54 CEST] <durandal_1707> atomnuker: yes, big spikes in spetrogram
[18:03:36 CEST] <atomnuker> does it change/move with respect to the input?
[18:04:51 CEST] <durandal_1707> atomnuker: if voice appears it appears too, for only noise it is silent
[18:06:44 CEST] <atomnuker> what about for sine waves with different frequencies?
[18:15:32 CEST] <durandal_1707> havent tried, but this thing is slow
[18:24:11 CEST] <atomnuker> I think what's happening is the per-sample changes from the algorithm settle around a frequency
[18:40:23 CEST] <durandal_1707> atomnuker: see anl branch on github
[18:53:20 CEST] <atomnuker> BBB: I don't think he responds to pings on this channel, I think you need to pm him
[18:58:16 CEST] <BBB> hm...
[19:06:05 CEST] <JEEB> (32
[19:31:03 CEST] <j-b> BBB: yo (but not today)
[19:31:13 CEST] <BBB> ok
[19:31:54 CEST] <atomnuker> when then? when the spec hits 1.0?
[19:34:48 CEST] <JEEB> gagandeep: that looks nice ( ^_^)b
[19:35:09 CEST] <JEEB> good work with yer stuff, just make sure to check it against reference
[19:56:58 CEST] <gagandeep> fate?
[19:57:07 CEST] <gagandeep> yeah, will do that
[19:57:38 CEST] <durandal_1707> atomnuker: so have you looked it?
[19:57:41 CEST] <JEEB> no, I mean the reference decoder :) since I'm not sure if FATE tests non-working features, and FATE's references might be incorrect?
[19:59:05 CEST] <gagandeep> yeah, currently i will need to add the offset for lowpass decoding but that is also there for p frames, right now it looks nice, but is not completely accurate
[19:59:31 CEST] <gagandeep> though offset values are really small < 50
[20:12:23 CEST] <durandal_1707> so with FFT i would get O=NlogN instead of O=N^2 is that enough?
[20:50:05 CEST] <atomnuker> yep, that's much faster for high transform sizes
[20:51:01 CEST] <BBB> atomnuker: hm&
[20:51:53 CEST] <BBB> atomnuker: you know the reason :-p
[20:52:58 CEST] <durandal_1707> atomnuker: how much high sizes? 512-4096?
[20:54:51 CEST] <atomnuker> anything above small sizes (e.g. 128), N*N explodes very fast compared to N*log(N)
[20:55:39 CEST] <atomnuker> BBB: I don't actually, its something that whatever happens will have to end up public, might as well go public from the start
[21:06:59 CEST] <klaxa> if creating a thread fails, i should gracefully exit, correct? should this also impact already running threads and abort the whole program or only the operation that caused it?
[21:11:12 CEST] <JEEB> if threads fail that sounds pretty fatal
[21:12:25 CEST] <klaxa> well i mean i check the return value of pthread_create()
[21:12:33 CEST] <klaxa> and i have to do *something* with it :P
[21:15:22 CEST] <tmm1> in the context of a server, would be better to fail locally than blow up the entire process
[21:16:33 CEST] <klaxa> that would also be easier to implement as i don't have to communicate with other threads who's context is out of scope
[21:21:52 CEST] <cone-683> ffmpeg 03Aman Gupta 07master:64680fff3bcf: avformat/mpegts: rename variable to clarify meaning
[21:21:53 CEST] <cone-683> ffmpeg 03Aman Gupta 07master:fc2daf36f926: doc: remove AVStream private fields from APIchanges
[21:21:54 CEST] <cone-683> ffmpeg 03Aman Gupta 07master:70d25268c21c: avformat/mpegts: fix memory leak with merge_pmt_versions=1
[21:52:54 CEST] <atomnuker> lol, that camera motion patch
[21:53:20 CEST] <atomnuker> the spec is wtf
[22:20:48 CEST] <durandal_1707> atomnuker: first need to make it work without any convolution
[22:29:21 CEST] <kierank> durandal_1707: https://ffmpeg.org/pipermail/ffmpeg-devel/2018-May/230353.html
[22:30:55 CEST] <durandal_1707> kierank: i didnt know that cfhd is deinterlacer
[22:31:07 CEST] <kierank> it isn't
[22:31:13 CEST] <kierank> I think he just made bad commit name
[22:32:31 CEST] <durandal_1707> it was, as JEEB would tell, sarcastic remark
[23:48:21 CEST] <cone-683> ffmpeg 03Mark Thompson 07master:ba7d1377e856: hwcontext: Add test for device creation and derivation
[00:00:00 CEST] --- Tue May 22 2018
1
0
[08:53:06 CEST] <jk^> hi all
[08:53:37 CEST] <jk^> pls how to uninstall the contents of this archive https://ffmpeg.org/releases/ffmpeg-4.0.tar.bz2 ?
[08:54:00 CEST] <c_14> after make install?
[08:54:01 CEST] <jk^> i donwloaded this archive, extract it and installed all
[08:54:07 CEST] <c_14> make uninstall
[08:54:15 CEST] <jk^> following the instructions in install.md text file
[08:55:20 CEST] <jk^> i followed this instructions https://pastebin.com/raw/TCGfbNnC
[08:55:24 CEST] <jk^> c_14
[08:56:49 CEST] <jk^> c_14, how ever it doesn't work
[08:58:30 CEST] <jk^> https://pastebin.com/raw/pJjUiqxF
[08:59:17 CEST] <c_14> you have to run ./configure before make uninstall
[08:59:30 CEST] <jk^> ok, pls tell me all steps :(
[08:59:46 CEST] <c_14> use the same ./configure command as you did before you installed it
[08:59:48 CEST] <jk^> i told u how i installed
[08:59:48 CEST] <c_14> and then make uninstall
[08:59:53 CEST] <jk^> ok
[08:59:56 CEST] <jk^> i'll try
[08:59:57 CEST] <jk^> then
[09:00:14 CEST] <jk^> i have to enter these commands: 1) ./configure
[09:00:16 CEST] <jk^> and after
[09:00:17 CEST] <jk^> 2)
[09:00:22 CEST] <jk^> make unistall
[09:00:25 CEST] <jk^> is it right?
[09:00:30 CEST] <c_14> yeah
[09:00:37 CEST] <jk^> have i to use sudo before these commands?
[09:01:03 CEST] <c_14> if you used sudo for make install you'll need it for make uninstall
[09:02:44 CEST] <jk^> i don't remember
[09:03:03 CEST] <c_14> you can use ls -l on the ffmpeg binary to get the owner
[09:03:08 CEST] <c_14> if it's root you'll need sudo
[09:07:28 CEST] <jk^> c_14 may i let u see a log?
[09:07:36 CEST] <c_14> sure
[09:08:15 CEST] <jk^> did it go all right?
[09:08:17 CEST] <jk^> https://pastebin.com/raw/ZRxxLbvU
[09:08:50 CEST] <c_14> looks fine
[09:08:57 CEST] <c_14> check if /usr/local/bin/ffmpeg still exists
[09:10:55 CEST] <jk^> firt time i typed just make uninstall
[09:11:17 CEST] <jk^> aftet seeing some errors, i repeat the command adding sudo
[09:11:20 CEST] <jk^> sudo make uninstall
[09:13:08 CEST] <jk^> this path /usr/local/bin
[09:13:09 CEST] <jk^> is empty
[09:13:22 CEST] <c_14> then it worked
[09:15:26 CEST] <jk^> thanks a lot :) have a nice day
[14:24:03 CEST] <Hackerpcs> is it possible with ffprobe show_entries option to show the bitrate in kb/s like if "ffprobe file.mkv" is used?
[14:24:13 CEST] <Hackerpcs> or maybe mb/s
[14:27:01 CEST] <furq> Hackerpcs: -prefix
[14:27:37 CEST] <furq> https://www.ffmpeg.org/ffprobe.html#Main-options
[14:29:19 CEST] <Hackerpcs> thanks, didn't notice it, was looking below at the show_entries option
[14:29:35 CEST] <Hackerpcs> pretty is more suited tho
[14:29:38 CEST] <Hackerpcs> for me
[17:51:07 CEST] <Guest73016> Hi, I am trying to create a video file out of svg sequence using ffmpeg. I compiled ffmeg with --enable-librsvg flag. When I create a video from SVG sequence it is created with lot of artefacts.
[17:51:19 CEST] <Guest73016> Command: docker run -v $(pwd):/data ffmpeg -v 9 -loglevel 99 -r 25 -i /data/image_%03d.svg /data/video.mp4 -y
[17:51:27 CEST] <Guest73016> Dockerfile: https://pastebin.com/Bfcc9Bc4
[17:51:38 CEST] <Guest73016> FFmpeg output: https://pastebin.com/
[17:52:00 CEST] <Guest73016> Ffmpeg output: https://pastebin.com/wNZMwcp6
[17:52:34 CEST] <Guest73016> Link to files and a video to reproduce: https://www.justbeamit.com/8xb97
[17:52:47 CEST] <Guest73016> Can some one help me with that please?
[18:15:24 CEST] <Cracki> Guest33321, you did not specify video codec and bitrate
[18:15:37 CEST] <Cracki> uh Nadir88
[18:18:15 CEST] <Nadir88> Cracki, thanks for the answer. Tried to run `docker run -v $(pwd):/data ffmpeg -v 9 -loglevel 99 -r 25 -i /data/image_%03d.svg -c:v libx264 -r 25 /data/video.mp4 -y` same result.
[18:18:30 CEST] <Cracki> still, where's the bitrate?
[18:19:03 CEST] <Cracki> -b:v
[18:20:17 CEST] <Nadir88> Ok, `docker run -v $(pwd):/data ffmpeg -v 9 -loglevel 99 -r 25 -i /data/image_%03d.svg -c:v libx264 -b:v 2M /data/video.mp4 -y` same...
[18:21:40 CEST] <Cracki> show me input and output data
[18:21:56 CEST] <Nadir88> Cracki, https://www.justbeamit.com/8xb97
[18:22:03 CEST] <Cracki> sorry, this download link no longer exists :(
[18:22:12 CEST] <Cracki> did you set expiration time to 1 minute or something?
[18:22:14 CEST] <Nadir88> I will reoupoad it
[18:22:43 CEST] <Nadir88> https://www.justbeamit.com/tp2hi
[18:23:15 CEST] <Cracki> what artefacts do you see?
[18:23:46 CEST] <Nadir88> It seems like frames accumulate the images from previous frames
[18:23:55 CEST] <Cracki> the svg has transparent background
[18:23:59 CEST] <Nadir88> Yes
[18:24:17 CEST] <Cracki> pictures are drawn on top of each other. transparency causes what you see.
[18:24:43 CEST] <Nadir88> If I use transparent PNGs the video is OK
[18:24:45 CEST] <Cracki> you want to either fix the svg files, or add a filter that creates an opaque background behind the input
[18:25:20 CEST] <Cracki> btw: that text in the video/svg is not 100% opaque
[18:25:36 CEST] <kepstin> that's actually a bug in the svg render that i've already fixed
[18:25:43 CEST] <kepstin> fix should be in ffmpeg 4.0 i think
[18:26:24 CEST] <Cracki> Nadir88, browse the ffmpeg video filters for something like "compose" or synthetic color
[18:26:25 CEST] <kepstin> (might be in 3.4 as well, i forget exactly when it got merged)
[18:26:28 CEST] <Nadir88> kepstin, thanks! I am compiling it right now.
[18:26:35 CEST] <Cracki> or use 4.0 :P
[18:26:56 CEST] <Nadir88> Thanks guys! I will try 4.0
[18:27:38 CEST] <Nadir88> It works!
[18:30:35 CEST] <Cracki> kepstin, at what point does this happen? would a complex filter using overlay filter and drawbox (or similar) be a workaround?
[18:31:12 CEST] <kepstin> it was a problem in the decoder not clearing buffers before re-using them for new frames, so it couldn't be fixed by filters.
[18:31:35 CEST] <Cracki> hm
[18:31:40 CEST] <Cracki> good to know, thx
[18:35:44 CEST] <Cracki> is nullsrc creating frames of _uninitialized_ data?
[19:13:54 CEST] <MarkedOne> Hello! Does the .mkv format contains only title metadata?
[19:17:01 CEST] <furq> MarkedOne: https://matroska.org/technical/specs/tagging/index.html
[19:40:01 CEST] <MarkedOne> furq: Thank you.. but in ffmpeg documentation I found this https://ffmpeg.org/ffmpeg-all.html#matroska
[19:40:48 CEST] <MarkedOne> Is it just not updated documentation or am I missing something?
[19:45:52 CEST] <MarkedOne> Is it that it because of that mkv can have any tag specified as key value?
[19:49:38 CEST] <JEEB> yes. metadata is rather free-form
[19:49:49 CEST] <JEEB> actual container data is well-defined, but otherwise it can be whatever
[19:50:12 CEST] <JEEB> and you should always trust the container data if the input is trying to feed you something similar as metadata
[19:50:44 CEST] <furq> title is in a separate metadata block iirc
[19:50:55 CEST] <furq> but tags are just arbitrary key/value
[19:51:14 CEST] <furq> so -metadata foo=bar or -metadata:s:a:0 foo=bar for track-specific tags
[19:51:20 CEST] <JEEB> yes, there are specified things as well, in addition to freeform tags
[19:56:22 CEST] <MarkedOne> Thank you :)
[19:57:27 CEST] <furq> apparently nothing i use likes track-specific tags so probably don't use those
[20:00:50 CEST] <MarkedOne> Hmm id there a way to create xml with metadata as seen here https://matroska.org/technical/specs/tagging/example-video.html and then let ffmpeg to embed it into file?
[20:01:04 CEST] <MarkedOne> Is there*
[20:01:56 CEST] <furq> i doubt you can do it with ffmpeg
[20:02:03 CEST] <furq> i'm pretty sure mkvpropedit will do it though
[20:04:54 CEST] <MarkedOne> Yep I understand.. Thank you :)
[20:23:34 CEST] <benzrf> yo
[20:25:33 CEST] <benzrf> is it possible to excise like 10 seconds from the middle of a long video w/o recoding the whole thing? does it depend on the format?
[20:25:56 CEST] <nicolas17> you can only cut at keyframes
[20:26:04 CEST] <benzrf> how often are those?
[20:26:15 CEST] <nicolas17> that depends on the video
[20:26:22 CEST] <benzrf> range?
[20:26:24 CEST] <nicolas17> they might even be at irregular intervals
[20:27:01 CEST] <nicolas17> "To give some orientation, the x264 encoder by default uses a GOP size of 250 (which means 1 keyframe each 10 seconds if the input frame rate is 25 fps)."
[20:27:10 CEST] <benzrf> ty
[20:28:57 CEST] <benzrf> so does that mean its possible to re-encode just the section between the closest keyframes around the altered section?
[20:29:02 CEST] <benzrf> is that default behavior, or
[20:31:14 CEST] <nicolas17> in theory yes, it would be possible to copy unmodified data until the closest keyframe, re-encode the GOP(s) you want to cut, and continue copying unmodified data
[20:31:22 CEST] <nicolas17> but I don't know *how* to do it with ffmpeg
[20:32:01 CEST] <SpeakerToMeat> If I want to enlarge and crop I need a complex filter, no?
[20:32:21 CEST] <durandal_1707> no
[20:32:22 CEST] <nicolas17> SpeakerToMeat: no, a linear sequence of filters doesn't count as "complex"
[20:33:42 CEST] <SpeakerToMeat> oh ok
[20:41:13 CEST] <SpeakerToMeat> I wonder if ffmpeg minds that I do several things at once. I don't want it to feel overworked :D
[20:41:50 CEST] <benzrf> nicolas17: yeah basically i wanna clip out about 10 seconds from a movie that are really gross and i dont wanna spend an hour re-encoding :(
[20:41:56 CEST] <benzrf> and losing quality at that
[20:47:09 CEST] <Cracki> reencoding the half-gop could be done as a separate step
[20:47:15 CEST] <Cracki> and then glue together the bitstreams
[20:47:32 CEST] <benzrf> what excatly is a gop?
[20:47:47 CEST] <Cracki> group of pictures, i.e. a keyframe and following (inter-frame) predicted frames
[20:47:50 CEST] <benzrf> ah
[20:48:11 CEST] <Cracki> keyframe is a frame that doesn't reference other frames, only uses "constants" and "intra" prediction
[20:49:04 CEST] <Cracki> so... you can always (more or less) chop off the end of a GOP. not always, because B-frames can reference *future* frames too
[20:49:11 CEST] <benzrf> yikes
[20:49:19 CEST] <Cracki> but chopping the head off requires reencoding of that GOP because you chopped the keyframe off
[20:49:40 CEST] <Cracki> all GOPs you don't touch you can just copy over
[20:50:20 CEST] <benzrf> mm
[20:50:22 CEST] <Cracki> virtualdub does that. avisynth might too, but not sure
[20:50:59 CEST] <nicolas17> wait, can a B-frame reference an I-frame from the next GOP?
[20:51:04 CEST] <Cracki> yes
[20:51:06 CEST] <Cracki> I think so
[20:51:15 CEST] <benzrf> what are b and i frames?
[20:51:19 CEST] <Cracki> at the very least, it can reference future P-frames
[20:51:24 CEST] <benzrf> and p frames o__o
[20:51:33 CEST] <benzrf> between? intermediate?
[20:51:34 CEST] <Cracki> I frame is intra
[20:51:35 CEST] <nicolas17> an I frame is pretty much like a JPEG image, it can be decoded on its own
[20:51:49 CEST] <Cracki> P is predicted, inter-frame, from only past decoded frames (I/P)
[20:51:51 CEST] <benzrf> how is that different from keyframe
[20:52:00 CEST] <nicolas17> a keyframe is an i-frame
[20:52:03 CEST] <benzrf> oic
[20:52:10 CEST] <benzrf> oh is it like
[20:52:36 CEST] <benzrf> each frame is determined by a group of predictions, and these terms like i-frame refer to frames that contain an i prediction
[20:52:55 CEST] <Cracki> no.
[20:52:59 CEST] <benzrf> :(
[20:53:01 CEST] <Cracki> the implication is the other way around
[20:53:05 CEST] <benzrf> ah
[20:53:09 CEST] <nicolas17> an i-frame is entirely independent
[20:53:16 CEST] <Cracki> if a frame only contains constant blocks and intra predictions, it's an I frame
[20:53:36 CEST] <nicolas17> a p-frame stores the difference to a previous frame
[20:53:52 CEST] <benzrf> that doesn't sound "predicted" to me
[20:53:54 CEST] <nicolas17> a b-frame stores the difference to previous and following frames
[20:54:05 CEST] <Cracki> predicted as in it copies a piece of the picture from an earlier frame
[20:54:09 CEST] <benzrf> well aight
[20:54:10 CEST] <Cracki> it might move that piece
[20:54:17 CEST] <Cracki> or transform it in some way
[20:54:27 CEST] <Cracki> the easiest prediction is "the same again"
[20:54:32 CEST] <Cracki> that's how you get run-length-encoding
[20:54:44 CEST] <nicolas17> well, it uses motion compensation to predict the frame from a previous one, and then adds a difference to fix what the prediction inevitably got wrong
[21:17:07 CEST] <SpeakerToMeat> how can b-frames work? without reading ahead
[21:17:39 CEST] <Mavrik> Well, by reading ahead ;)
[21:18:08 CEST] <BtbN> by re-ordering frames so you never have to read ahead.
[21:18:10 CEST] <Mavrik> Usually they're put behind the frames they refernce in stream
[21:18:19 CEST] <Mavrik> So no reordering is needed, just buffering.
[21:18:42 CEST] <Mavrik> Although, I guess you still need to reorder them for display when playing
[21:18:59 CEST] <JEEB> yes
[21:19:45 CEST] <JEEB> that's why during encoding (and decoding) you have a small amount of extra latency because you have to wait for that/those extra frame(s) depending on the depth of the reorder
[21:21:18 CEST] <Cracki> Presentation timestamp and Decode timestamp
[21:21:42 CEST] <Cracki> streams should be ordered by DTS. decoders will then emit frames in PTS order.
[21:22:43 CEST] <JEEB> yup
[21:58:11 CEST] <xmbswc> hello, im trying to spawn few ffmpegs together to fill quad core of my i5, but it waits for fg in foreground
[21:58:30 CEST] <xmbswc> ah i can spawn with xterm prolly
[21:59:56 CEST] <Cracki> basic unix terminal/shell usage
[22:00:19 CEST] <Cracki> and you can fill your quadcore with a single ffmpeg instance, if the codecs are allowed to use multiple threads
[22:02:10 CEST] <xmbswc> i dunno, the windows are spawning
[22:02:58 CEST] <Cracki> I only know of terminal windows *spawning* on windows
[22:03:12 CEST] <Cracki> on linux, you get all output in the parent terminal
[22:03:45 CEST] <xmbswc> well it opens 4 or 5 windows at max, rxvt -e ffmpeg cmd
[22:05:29 CEST] <Cracki> ah
[22:54:40 CEST] <goiko> hi, i want to compile the latest version on raspberry pi and have "C compiler test failed." error, here log file: https://pastebin.com/LmmJTbwm
[22:55:02 CEST] <goiko> that worked in the past, months ago
[22:55:26 CEST] <furq> goiko: install libasound
[22:55:30 CEST] <furq> libasound2-dev on debian iirc
[22:55:36 CEST] <JEEB> for no reason you are adding -lasound and it's not installed
[22:55:59 CEST] <JEEB> also for the record I added pkg-config support for ALSA
[22:56:00 CEST] <furq> oh right yeah don't put that in --extra-libs
[22:56:04 CEST] <furq> it'll autodetect alsa if it's there
[22:56:06 CEST] <goiko> ah okay, thanks, will try
[22:56:23 CEST] <furq> also you probably want --enable-mmal on a pi
[22:56:32 CEST] <JEEB> also why do you need --enable-nonfree?
[22:56:42 CEST] <JEEB> you don't gain anything from it according to your parameters
[22:56:58 CEST] <furq> and i suspect you want --arch=armhf but it depends on your os
[22:57:36 CEST] <goiko> well, i just copied it from a tutorial - good point, will remove/change it
[22:58:13 CEST] <furq> if you're running raspbian you might need armel
[22:58:40 CEST] <JEEB> although I think if you're building *on* rpi you probably wouldn't need any arch/os?
[22:58:46 CEST] <furq> true
[22:58:55 CEST] <furq> you don't need target-os either
[22:59:08 CEST] <goiko> installed libasound, and yes it was a fresh raspbian lite
[22:59:13 CEST] <JEEB> for cross-compilation those start to matter
[22:59:55 CEST] <JEEB> also libx264 sounds really like extra on a rpi
[22:59:59 CEST] <JEEB> since it's not gonna get you far
[23:00:30 CEST] <goiko> yeah i compiled x264, why not far?
[23:00:40 CEST] <JEEB> I would probably just do ./configure --disable-autodetect --enable-zlib --enable-omx --enable-omx-rpi --enable-mmal --enable-libfreetype
[23:00:42 CEST] <furq> it's unusably slow on a pi
[23:00:54 CEST] <furq> you're pretty much going to be stuck with h264_omx
[23:00:59 CEST] <JEEB> disable-autodetect just to get a smaller build since 99% of all things for *decoding* are enabled in the default
[23:01:10 CEST] <JEEB> then just the rpi specific things, although enable-mmal is the most important
[23:01:20 CEST] <JEEB> libfreetype if you really need it for something?
[23:01:30 CEST] <JEEB> I would otherwise not waste time building that FFmpeg module
[23:01:42 CEST] <JEEB> zlib is for PNG support so it makes sense
[23:01:44 CEST] <furq> you presumably want explicit --enable-alsa if you're disabling autodetect
[23:01:50 CEST] <furq> or whatever the option is called
[23:01:55 CEST] <JEEB> in case he actually needs alsa, yes
[23:02:12 CEST] <JEEB> but yea, I like being explicit about features required :P
[23:02:14 CEST] <furq> i assume anyone installing ffmpeg on a pi needs to capture a webcam
[23:02:21 CEST] <furq> there's not much else you can do with it
[23:02:27 CEST] <JEEB> or just build mpv with the mmal hwdec?
[23:02:32 CEST] <JEEB> people have differing needs
[23:02:49 CEST] <goiko> actually i just want to use youtube-dl on rpi, and it said in the past that its needed
[23:03:06 CEST] <furq> oh right
[23:03:09 CEST] <furq> literally any ffmpeg will do fine then
[23:03:14 CEST] <JEEB> then you just need literally ./configure --disable-autodetect
[23:03:16 CEST] <furq> youtube-dl only uses ffmpeg for remuxing and bsfs
[23:03:18 CEST] <JEEB> yup
[23:03:23 CEST] <goiko> cool
[23:03:25 CEST] <furq> i mean
[23:03:26 CEST] <JEEB> a default no-extra-crap build will do
[23:03:31 CEST] <furq> you might as well build it with omx and mmal just in case
[23:03:33 CEST] <furq> you already have the libs
[23:03:45 CEST] <JEEB> yea, if you ever want to build mpv or so on it
[23:03:56 CEST] <JEEB> enable-mmal would go for that
[23:04:20 CEST] <JEEB> and for various things like PNG zlib is needed which is why I usually add it there
[23:04:26 CEST] <goiko> yeah, so: ./configure --disable-autodetect --enable-omx --enable-omx-rpi --enable-mmal will be good?
[23:04:41 CEST] <JEEB> whip zlib there too for good measure if you already added omx/MMAL :)
[23:04:48 CEST] <goiko> okay
[23:04:48 CEST] <JEEB> enable-zlib
[23:09:21 CEST] <goiko> thanks, configure works (took very long btw) and now it compiles....
[23:18:35 CEST] <saml> hueheueeheueheueheue I built ffmpeg from source
[23:18:39 CEST] <saml> such power
[23:19:36 CEST] <saml> actually, build failed. never mind
[23:20:06 CEST] <saml> libavcodec/libx264.c:271:9: error: 'x264_bit_depth' undeclared (first use in this function)
[23:22:26 CEST] <JEEB> if you didn't have enable-libx264 enabled then you should clear your build root
[23:23:14 CEST] <JEEB> basically if you don't have anything interesting in the FFmpeg source directory, I would recommend doing `git clean -dfx` to clean it up, and then `mkdir -p rpi_build && cd rpi_build`
[23:23:26 CEST] <JEEB> and then you call the configure script from the top dir with ../configure instead of ./configure
[23:23:42 CEST] <JEEB> that way your build root is conveniently separate from the source root
[00:00:00 CEST] --- Tue May 22 2018
1
0