[00:00:02 CET] <thebombzen> yea they're both fine [00:00:05 CET] <JEEB> since the difference between samples is a duration of the sample [00:00:13 CET] <thebombzen> but it's not "monotonic" [00:00:21 CET] <thebombzen> I mean it turns out the timestamps are monotonic [00:00:37 CET] <JEEB> yes, that was incorrect [00:01:02 CET] <JEEB> what I mean was that the difference between two samples' timestamps would always be static (aka the duration of all samples is the same) [00:01:50 CET] <nyuszika7h> there must be something at the beginning of the file, I only see it in a sample if I cut it from there [00:01:51 CET] <nyuszika7h> https://ptpb.pw/u_FM [00:02:15 CET] <nyuszika7h> (this one didn't have any options to try to force CFR) [00:03:15 CET] <nyuszika7h> also if I add "-vsync 1", the only thing that achieves is that it also displays "Original frame rate: 25.000 fps" in addition to "Frame rate mode: Variable" [00:04:08 CET] <JEEB> oh, matroska. one of the three or so containers where you'll have fun with timestamps (although not necessarily with 25Hz, although I don't remember). MPEG-TS, FLV and Matroska have funky time bases, which often makes even CFR content VFR in them, and you can't do jack about it :P [00:04:19 CET] <JEEB> that said, you should now be able to calculate the duration of each sample [00:04:38 CET] <JEEB> do note that those aren't listed in presentation order there [00:04:41 CET] <nyuszika7h> the original MPEG-2 from the DVD remuxed to MKV is reported as 25 fps CFR [00:04:43 CET] <JEEB> because of the B-pictures [00:05:51 CET] <Threads> someone else having problems with cfr i see [00:06:28 CET] <Threads> i found out if you encode it into a avi container and and mux with mkvmerge its ok but if you try todo it directly into mkv its vfr [00:07:34 CET] <JEEB> avi input with mkvmerge engages its VFW mode [00:07:37 CET] <JEEB> that is not something you want [00:07:59 CET] <JEEB> and your "VFR" issues probably stem from something else although I have no idea if they're issues at all at this point [00:08:41 CET] <JEEB> unfortunately, it's 1AM here and I really don't have the power of taking newbies up until the "ooh! so *that's* why X is Y!" moment [00:08:44 CET] <JEEB> g'night [00:10:08 CET] <Threads> JEEB its ok i prefer going the long way round on things as thats how you learn, also gnight to you [00:11:53 CET] <nyuszika7h> hmm yes I can see many timecodes increasing by +80 or +120 instead of +40 [00:12:16 CET] <JEEB> nyuszika7h: that's because those timestamps are in coded order, not presentation order [00:12:23 CET] <nyuszika7h> I sorted them [00:12:40 CET] <JEEB> then that's weird [00:13:02 CET] <JEEB> anyways, sleep for me [00:14:50 CET] <nyuszika7h> https://t.6697.eu/g/file_23639.png [00:15:52 CET] <nyuszika7h> could that mean dropping frames maybe? I haven't noticed any glitches in the output file though [00:16:29 CET] <nyuszika7h> the duration is the same though [01:14:17 CET] <bencc1> what happens to hls stream when there are no packets? [01:14:42 CET] <bencc1> before the stream starts or when it is paused [01:15:07 CET] <bencc1> do hls players retry to load the stream every few seconds? [01:28:50 CET] <hiihiii> hey back again [01:29:27 CET] <hiihiii> I'm about to encode a loop of some scrolling text on a blue background [01:31:09 CET] <hiihiii> https://www.filepicker.io/api/file/Unjb5zolR0Wm6RcVQQJo?signature=42321892d789ede2cbb293747c1109195d31ea686510bc44c054694d0726844e&policy=eyJleHBpcnkiOjE0ODk4ODYyNjB9 [01:31:49 CET] <hiihiii> my input is raw. it amounts to 5GB [01:32:56 CET] <hiihiii> -i input.avi -c:v libx264rgb -preset veryslow -crf 20 output.mp4 [01:33:28 CET] <hiihiii> only one problem left for me. what type of -tune to use [01:34:16 CET] <hiihiii> I've been using -tune grain for almost everything but I don't know how to differentiate between the different types [01:35:20 CET] <hiihiii> for my current input, film or grain? [01:44:16 CET] <c_14> For that I'd use stillimage [01:47:07 CET] <hiihiii> huh really [01:47:34 CET] <c_14> Well it's not film and you're not trying to preserve grain so those two are off. Also it is mostly a still image [01:47:36 CET] <hiihiii> would that yield better results [01:50:38 CET] <c_14> it might [02:12:39 CET] <hiihiii> my clip is 60fps and the text kinda scrolls fast, so how is that a still image? yes there are a lot of areas/patches of blue but still [02:13:39 CET] <hiihiii> anyway, I'd be grateful if someone could point me to a detailed post describing tune presets [02:42:11 CET] <obamoose> heya [02:42:49 CET] <obamoose> i'm having an issue with looping [02:42:53 CET] <obamoose> I used while : do my ffmpeg config done done [02:43:14 CET] <obamoose> and now it restarts the stream [02:43:16 CET] <obamoose> after every file [02:43:43 CET] <obamoose> http://pastebin.com/yaDHd52k [03:45:53 CET] <obamoose> anyone? [05:05:17 CET] <peels> anyone ever compile ffmpeg from source... on a raspberry pi zero?! [05:05:56 CET] <CoJaBo> I'm not a masochist, so.. [05:09:32 CET] <peels> lol [05:09:41 CET] <peels> guilty! [07:42:24 CET] <thebombzen> c_14: I'm not entirely sure when to use -tune stillimage and -tune animation [07:42:33 CET] <thebombzen> given certain low-motion cell-shaded things [07:42:48 CET] <thebombzen> how do I know which one is better (other than "just try both") [08:14:01 CET] <Spring> thebombzen, depends how low motion it is. I use still image for detailed scenes with a fixed camera and only subtle to low movement and it works very well as it reduces the deblocking so more detail is preserved. [08:14:48 CET] <Spring> on the other hand with more regular movement in the scene and camera the deblocking becomes apparent [08:15:48 CET] <Spring> I believe the animation tuning does the opposite wrt the deblocking [08:19:10 CET] <thebombzen> speaking of which, how do we check what the various presets and tunes turn on [08:28:09 CET] <Spring> thebombzen, this page lists the details from the ffmpeg help (though that command doesn't seem to work on my system, might have changed). https://superuser.com/questions/564402/explanation-of-x264-tune [08:31:04 CET] <thebombzen> yea, x264 --fullhelp did say it. but unfortunately I don't know how to interpret the deblock or aq setting. I'll have to read more about htat [10:44:54 CET] <Tom_B> Hi all, I'm using ffmpeg to take a HTTP stream and convert it into a hls stream but it seems to be re-encoding the video and audio: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) is there any way for it just to pass the video through without re-encoding it? [11:00:07 CET] <furq> Tom_B: -c copy [11:10:06 CET] <Tom_B> @furq, thanks :) [11:52:15 CET] <jaggadak> hello [11:53:00 CET] <jaggadak> why a little noise is there in between concatenating two videos ? [12:28:00 CET] Last message repeated 1 time(s). [13:54:00 CET] <thebombzen_> How does one check x264 settings in an encoded file? [13:54:22 CET] <thebombzen_> Afaik they're embeded as metadata but idk what they're called [13:55:07 CET] <BtbN> they don't neccesarily are [13:55:43 CET] <thebombzen_> Does avformat embed them by default? [13:55:47 CET] <furq> libx264 does [13:55:51 CET] <furq> you need to patch it to prevent it [13:56:32 CET] <thebombzen_> If so furq do you know how to use ffprobe or equiv to extract thrm [13:56:39 CET] <furq> i don't think ffprobe does it [13:56:40 CET] <JEEB> strings file |grep x264 [13:56:42 CET] <furq> mediainfo does it [13:56:47 CET] <furq> or yeah strings will get it out [13:56:51 CET] <thebombzen_> Mediainfo? [13:56:54 CET] <thebombzen_> lol strings [13:57:00 CET] <furq> or if you have some x264 nalu inspector, it's in the sei nalu [13:57:00 CET] <thebombzen_> I wasn't expecting that [13:57:09 CET] <JEEB> it's a string in the SEI NALU, so strings should get it :P [13:57:13 CET] <furq> ^ [13:57:46 CET] <thebombzen_> "sei nalu" welp gtg google that [13:58:07 CET] <furq> http://vpaste.net/EjdLe [13:59:31 CET] <thebombzen_> That's useful [14:00:07 CET] <thebombzen_> Out of curiosity [14:00:16 CET] <furq> also wrt what you asked last night [14:00:17 CET] <furq> https://en.wikibooks.org/wiki/MeGUI/x264_Settings#aq-mode [14:01:12 CET] <JEEB> except now we have mode=3 as well :P [14:01:18 CET] <JEEB> which is a tweaked 2 IIRC [14:01:24 CET] <furq> well if you have a more up-to-date page i will bookmark it [14:01:37 CET] <JEEB> not that I know [14:01:50 CET] <JEEB> but anyways, psychovisual stuff is such a "let's try it out" kind of thing [14:02:05 CET] <JEEB> since you can't necessarily mathematically note how it's better [14:02:19 CET] <furq> yeah i rarely touch anything other than preset and tune [14:04:02 CET] <JEEB> IIRC the reason why aq-mode 3 wasn't made the default was mostly due to "well, we've had 2 around for long enough and we don't want to do extensive testing again welp" [14:04:21 CET] <thebombzen> so AQ basically allows x264 to look at the video holistically [14:04:32 CET] <thebombzen> so it doesn't have to quantize each block blindly [14:04:38 CET] <JEEB> yes [14:04:42 CET] <furq> aq-mode defaults to 1 doesn't it [14:04:49 CET] <JEEB> depends on the preset I bet [14:04:56 CET] <JEEB> since 1 might be faster? [14:04:57 CET] <furq> apparently it's always 1 [14:05:01 CET] <JEEB> ok [14:05:04 CET] <furq> but this page might also be outdated [14:05:14 CET] <furq> 0 in ultrafast, 1 in everything else [14:05:41 CET] <JEEB> thebombzen: anyways the algorithms behind the AQ methods are various. heck, there used to be a haali AQ which mostly preferred blue to red etc [14:05:57 CET] <JEEB> and then there was an overcomplicated mess called OreAQ [14:06:17 CET] <JEEB> from a Japanese guy, which required you to make up a set of values for a specific clip with an AviUtl preview thing [14:06:20 CET] <JEEB> :D [14:06:42 CET] <furq> by which point you'd have already finished encoding it with veryslow [14:07:06 CET] <furq> but you lost out on a 1% space saving so the joke's on you [14:07:26 CET] <JEEB> then there was a MixAQ which was normal AQ vs Haali's AQ I think? [14:07:40 CET] <JEEB> and you set the strengths of those two against each other [14:07:58 CET] <JEEB> I still think a chinese dude is maintaining those patches [14:08:06 CET] <thebombzen> and aq strenth is just a weight on how much it cares about low-detail sections? [14:08:36 CET] <JEEB> yea [14:08:38 CET] <JEEB> more or less [14:09:32 CET] <thebombzen> wow looking at ultrafast [14:09:34 CET] <thebombzen> it's a piece of shit [14:09:40 CET] <furq> yeah [14:09:40 CET] <thebombzen> but ultra fast [14:10:24 CET] <furq> even superfast is a big step up [14:10:33 CET] <thebombzen> yea [14:10:52 CET] <thebombzen> it seems like ultrafast is only useful if you're on terrible hardware [14:11:01 CET] <thebombzen> or you're use -qp 0 [14:11:09 CET] <thebombzen> and don't care b/c you're going to transcode it later anyway [14:11:35 CET] <JEEB> ultrafast is for benchmarks and certain lossless use cases, yes [14:11:44 CET] <JEEB> similar to placebo in the first case [14:11:50 CET] <furq> if you're doing 1080p60 and playing league of dotawatch at the same time then i can see superfast being a drag on modest hardware [14:12:11 CET] <thebombzen> league isn't super cpu-intensive afaik [14:12:21 CET] <furq> well i should hope not because it's not a real game [14:12:25 CET] <furq> i just made it up [14:12:31 CET] <thebombzen> league of legends i mean [14:12:31 CET] <thebombzen> or dota [14:12:35 CET] <thebombzen> mobas in general [14:12:40 CET] <JEEB> he just mashed the three popular things [14:12:41 CET] <thebombzen> I was under the impression that games with physics simulation were the biggies [14:12:47 CET] <JEEB> league, dota, overwatch :P [14:12:54 CET] <thebombzen> oh I didn't even notice the overwatch [14:12:57 CET] <thebombzen> lol [14:12:59 CET] <JEEB> but in any case, SW encoding does eat CPU cycles [14:13:10 CET] <furq> i forgot that card game thing where you have to pay for better cards [14:13:16 CET] <furq> people fucking love paying to win [14:13:17 CET] <thebombzen> hearthstone? [14:13:20 CET] <furq> that's the one [14:13:36 CET] <thebombzen> Hearthstone is very uninteresting [14:13:45 CET] <furq> and you don't even get real cards that you can use to scare away any girls who might come near you [14:13:47 CET] <thebombzen> coming from the persepctive of a magic the gathering player [14:13:57 CET] <thebombzen> hearthstone is very little skill [14:14:01 CET] <thebombzen> and has too much RNG [14:14:13 CET] <thebombzen> and girls who'd be scared away by cards aren't girls I want to hang out with [14:14:15 CET] <furq> so it's basically mario kart then [14:14:18 CET] <thebombzen> so I'm cool with that [14:14:25 CET] <furq> i now see why all the terrible nerds love it [14:14:28 CET] <thebombzen> well mario cart does take some skill [14:14:32 CET] <thebombzen> I have no idea how much [14:14:35 CET] <thebombzen> but all I know is I suck ass at it [14:14:40 CET] <thebombzen> so it's gotta take some nonzero amount of skill [14:14:58 CET] <furq> have you tried playing it until someone takes all the drivers in front of you out with randomised weapons that target them exactly [14:15:06 CET] <thebombzen> no [14:15:10 CET] <thebombzen> because I don't own it [14:15:12 CET] <thebombzen> and usually I lose the race [14:15:13 CET] <furq> that seems like the winning strategy [14:15:22 CET] <thebombzen> and then the next person in line says "you lose, you're out" [14:15:24 CET] <thebombzen> and I don't get to play [14:15:37 CET] <thebombzen> there's a reason it's a bad party game [14:15:44 CET] <furq> is it because it's a bad game [14:15:53 CET] <thebombzen> but I was under the impression that the games that drag on your cpu the most have physics sims [14:16:01 CET] <thebombzen> like FPS games [14:16:03 CET] <furq> nice segue [14:16:09 CET] <thebombzen> segue? [14:16:10 CET] <furq> and probably [14:16:21 CET] <furq> http://chambers.co.uk/search/?query=segue&title=21st [14:16:41 CET] <thebombzen> I'd been trying to say that for a while [14:16:42 CET] <thebombzen> lol [14:17:14 CET] <thebombzen> I also think it's amusing that when you said "League of Dotawatch" you referenced three popular games all of which are mobastyle [14:17:24 CET] <furq> i haven't played a new fps in years [14:17:30 CET] <furq> i think the newest one i played was battlefield 3 [14:17:34 CET] <furq> and only because someone bought it for me [14:17:43 CET] <thebombzen> lol at least it wasn't call of duty [14:17:52 CET] <furq> i have never played a call of duty game [14:17:55 CET] <thebombzen> Call of duty is a pretty terrible game [14:18:02 CET] <furq> not even cod4 which apparently has quake 3 physics [14:18:18 CET] <thebombzen> they're all bad [14:18:23 CET] <thebombzen> cod4 just was less bad than the others [14:18:28 CET] <thebombzen> the maps were awful though [14:18:45 CET] <furq> bf3 would have been sort of ok if it wasn't full of hackers [14:18:49 CET] <thebombzen> lol [14:19:00 CET] <thebombzen> the biggest problem with games like this is just the random death [14:19:09 CET] <thebombzen> There's a million things that oneshot you [14:19:11 CET] <furq> i had some fun with it when i wasn't being sniped from three miles away while inside a tank by a dude facing the other way in a basement in enemy spawn [14:19:12 CET] <thebombzen> for no reason [14:19:18 CET] <thebombzen> and you have basically no hitpoints [14:19:19 CET] <furq> because obviously client-side netcode is a great idea [14:19:23 CET] <thebombzen> in any of these games [14:19:36 CET] <thebombzen> lol [14:19:46 CET] <thebombzen> yea you have basically no hitpoints and there's a lot of random instakills [14:20:01 CET] <furq> well yeah that's not great [14:20:08 CET] <thebombzen> and what isn't an instakill is frequently almost instant [14:20:13 CET] <furq> but it becomes slightly less great when you can just tell the server you killed someone and it believes you [14:20:22 CET] <thebombzen> lol unsafe network code [14:20:34 CET] <furq> apparently it was fully client-side [14:20:40 CET] <thebombzen> I always love how games conistently start out with unsafe network code [14:20:50 CET] <furq> i'm pretty sure this finished with unsafe netcode as well [14:20:50 CET] <thebombzen> and then people take it apart in about three minutes [14:20:57 CET] <thebombzen> and they have to constantly release patches [14:20:59 CET] <thebombzen> fixing this stuff [14:21:16 CET] <furq> the funniest thing was that instead of banning hackers, they would just reset their level to 0 [14:21:22 CET] <furq> because obviously people don't ever hack to level up faster [14:21:22 CET] <thebombzen> oh [14:21:26 CET] <thebombzen> lol [14:21:30 CET] <furq> nice work EA [14:21:43 CET] <thebombzen> yea if you reset their level to 0 they're just gonna give themselves a whole bunch of xp [14:21:49 CET] <thebombzen> and endup exactly where they started [14:22:02 CET] <furq> i wouldn't mind if you could just hack extra XP directly [14:22:14 CET] <furq> but you had to do that by hacking in games and fucking it up for everyone else [14:22:35 CET] <furq> it only became tolerable if you could get into servers with community banlists [14:22:52 CET] <furq> the community had this big infrastructure set up to do EA's job for them [14:23:12 CET] <furq> or not EA's job, because that is "make as much money as possible right now" [14:23:20 CET] <furq> but what one would hope EA would consider their job [14:29:24 CET] <__jack__> 14:18:18 < thebombzen> they're all bad > you does not like them, does not mean they are bad [14:29:57 CET] <__jack__> I actually enjoyed modern warfare [14:46:10 CET] <thebombzen> __jack__: enjoying something does not mean it's good or bad [14:46:16 CET] <thebombzen> lots of people enjoy lots of bad things [14:46:32 CET] <thebombzen> lots of people enjoy things despite knowing they're bad [15:24:49 CET] <Tom_B> I have the same issue as described here: http://www.ffmpeg-archive.org/Exactly-one-WebVTT-stream-is-needed-td4673148.... I'm trying to covert a DVB stream into an HLS stream including the subtitles. As it generates .ts files. I have set -scodec copy and ffmpeg output shows " Stream #0:3 -> #0:2 (dvb_subtitle (dvbsub) -> dvb_subtitle (dvbsub))" but I get the error "Exactly one WebVTT stream is needed" [15:31:54 CET] <JEEB> Tom_B: dvb subtitles are not a thing in HLS [15:32:12 CET] <Tom_B> is there any way to convert them into something that HLS can use? [15:32:25 CET] <JEEB> dvb subtitles are image-based so no [15:32:33 CET] <JEEB> dvb teletext is text-based [15:32:44 CET] <Tom_B> can the subtitles be read and embedded into the frame? [15:32:52 CET] <Tom_B> as pixels [15:33:02 CET] <JEEB> yes [15:33:24 CET] <JEEB> overlay filter is required for that and thus the subtitles cannot be disabled as they will be hardcoded into the video [15:34:23 CET] <Tom_B> yeah, that makes sense. Is it possible to send a message to a running ffmpeg process to change its settings? to turn on/off the subtitles being hardcoded into the video? [15:35:17 CET] <Tom_B> ah, it does look like hls supports webvtt: http://hlsbook.net/how-to-add-subtitles-to-a-live-hls-stream/ can ffmpeg be used to generate m3u8 files in this format? [15:35:38 CET] <thebombzen> Tom_B: also consider using ocr, depending on how legible the subs are [15:37:09 CET] <JEEB> Tom_B: it doesn't do dynamic track selection so if the subtitle type or PID changes that's not a thing you can handle in ffmpeg.c [15:37:31 CET] <JEEB> it actively ignores new AVStreams after the initial probe and track selection :P [15:37:55 CET] <JEEB> and yes, there's some control for some options but I recommend just doing the extra few meters and creating your own API-using app [15:38:21 CET] <JEEB> that way you can handle all the extra cases correctly and don't have to have the metric ton of awful stuff that's in ffmpeg.c that's unrelated to your use case [15:40:13 CET] <Tom_B> so the best way is to have ffmpeg extract the subs, and then load the subs manually into the video player? [15:55:15 CET] <thebombzen> is there a way to transfer frame metadata from one video stream to another? [16:16:14 CET] <thebombzen> hmmm, with avfilter I'm getting unterminated %{} errors [16:16:20 CET] <thebombzen> the example out of the docs verbatim doesn't work [16:18:45 CET] <thebombzen> if I use: -vf drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}' it will complain about an unterminated %{} near {localtime [16:19:05 CET] <thebombzen> if I drop the fontfile= it'll whine about a stray % [16:19:20 CET] <furq> i always needed to use \\: [16:20:52 CET] <faLUCE> Hello: AV_CODEC_ID_H264 shows: YUV422P, YUVJ422é, YUV444P, YUVJ444P, NV12, NV16, NV21 as supported pixel formats, but I can use YUV420P as well. Why? Is this last one automatically converted into one of the listed formats? [16:21:14 CET] <thebombzen> http://sprunge.us/fhDh [16:21:28 CET] <thebombzen> the second \ does work [16:21:35 CET] <thebombzen> but that sounds like an error in the documentation [16:26:16 CET] <faLUCE> I can read that AV_PIX_FMT_NV12 = planar YUV 4:2:0 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V) <----- is this the answer for my question? [16:39:19 CET] <rhoki2> Hi, I'm trying to record a h264 encoded RTSP stream in environtment where there is pretty high risk of power loss. I've figured out I need to store it in something like fragmented mp4, or matroska. The problem is that muxing into those containers consumes A LOT of CPU time. Why does it happen? Is there any alternative solution I can use? [16:40:50 CET] <furq> are you reencoding [16:41:20 CET] <rhoki2> nope, I'm just trying to dump the stream as it is [16:41:30 CET] <furq> what's the command [16:41:39 CET] <rhoki2> when I'm using non fragmented mp4, all is fine [16:43:29 CET] <rhoki2> ffmpeg i (url) -vcodec:copy -movflags frag_keyframe+empty_moov out.mp4 [16:43:48 CET] <rhoki2> -i, sorry [16:44:02 CET] <furq> that should be -c copy instead of -vcodec copy [16:44:05 CET] <furq> otherwise it'll reencode the audio [16:44:18 CET] <furq> i don't see any other part of that which will hit the cpu [16:44:22 CET] <rhoki2> there is no other stream than video [16:44:33 CET] <furq> fun [16:44:40 CET] <furq> i'd probably use mpegts fwiw [16:44:47 CET] <furq> muxing that to mkv definitely shouldn't hit the cpu though [16:49:14 CET] <rhoki2> by mpegts you mean hls muxer and mpegts segments, right? [17:14:14 CET] <rhoki2> I tried -codec copy -f mpets and it seems OK [17:14:33 CET] <rhoki2> I must have done something wrong, thank you for your help [17:36:52 CET] <jonascj_> Hi all. Can I disable the "size=N/A time=07:02:27.15 bitrate=N/A speed= 386x" output which is printed every now and then? It interfers with capturing the output of "-af silencedetect"... [17:46:42 CET] <furq> jonascj_: -nostats or -v error [17:51:27 CET] <jonascj_> furq: thanks, I did not find anything looking for "progress" in the docs [17:52:27 CET] <nyuszika7h> rhoki2: you can just mux the entire thing into a .ts container too [19:06:39 CET] <faLUCE> is there a function for calculating the size of the planes of an AVFrame (frame->data[0], frame->data[1], frame->data[2]) ? At the moment, I manually calculate them considering the frame's format. For YUV420P the values are: frame->linesize[0]*heigth, frame->linesize[1]*heigth/2, frame->linesize[2]*heigth/2 [19:31:55 CET] <DHE> faLUCE: if you're allocating, just use av_frame_get_buffer and let ffmpeg do it for you [19:32:34 CET] <DHE> are you actually processing the frame data yourself? [19:32:55 CET] <faLUCE> DHE: I know that, but I have to wrap the data into my own struct [19:33:08 CET] <faLUCE> then I need these sizes.... [19:33:59 CET] <faLUCE> DHE: I don't understand if libav lacks this function (planes' size) or is there some function in avutil for calculating that [19:41:38 CET] <faLUCE> DHE: just found: AVBufferRef * av_frame_get_plane_buffer (AVFrame *frame, int plane) let's try it [19:48:09 CET] <faLUCE> nothing done, it's not useful for what I want [19:52:12 CET] <faLUCE> found another one: av_image_get_linesize, let's try it [19:53:05 CET] <feliwir> In page 14 for VP6_DecodeSymbol there isn't an output: https://multimedia.cx/mirror/vp6_format.pdf [20:03:32 CET] <faLUCE> it works ;-) [20:15:05 CET] <faLUCE> is it possible to sws_scale() from a JPEG frame to a YUVJ444P frame without decoding? [20:18:07 CET] <BtbN> uhm, jpeg is a compressed image [20:18:14 CET] <BtbN> you need to decompress/decode it first to get YUV data [20:19:02 CET] <faLUCE> BtbN: I see [20:29:55 CET] <thebombzen> faLUCE: turning a jpeg image into a yuvj44p frame is literally decoding [20:30:02 CET] <thebombzen> that's like [20:30:06 CET] <thebombzen> literally what it means to decode jpeg [20:32:22 CET] <faLUCE> thebombzen: I see. Given that x264 encoder accepts YUVJ444P I thought it could accept encoded JPEG frames as well [20:33:06 CET] <thebombzen> why would you think that [20:33:19 CET] <thebombzen> x264 doesn't haven't a built-in mjpeg decoder [20:33:25 CET] <thebombzen> because it's not FFmpeg [20:33:27 CET] <faLUCE> thebombzen: because I saw the J letter in the pix-fmt ;-) [20:33:41 CET] <faLUCE> thebombzen: anyway, I understand [20:33:52 CET] <thebombzen> it's got a J because it's jpeg's old deprecated yuv [20:33:59 CET] <thebombzen> to distinguish it from modern yuv444p [20:34:39 CET] <faLUCE> yes. I had to view the code in order to see the "deprecated" word [20:34:51 CET] <faLUCE> it compiles without warning [20:40:43 CET] <furq> j denotes full-range [20:46:06 CET] <obamoose> hello [20:47:37 CET] <obamoose> can someone help me figure out why [20:47:48 CET] <furq> yes [20:47:54 CET] <obamoose> thanks [20:47:56 CET] <furq> it's because [20:48:02 CET] <obamoose> solved it [20:48:10 CET] <furq> what a nice young man [20:48:22 CET] <obamoose> welp another issue came up [20:48:28 CET] <furq> oh no [20:48:36 CET] <obamoose> Can someone help me figure out why it's restarting my stream after every file [20:48:37 CET] <rob0> this one is "because I said so" [20:48:38 CET] <obamoose> http://pastebin.com/yFqhG3G8 [20:48:43 CET] <obamoose> noo ;_; [20:48:45 CET] <rob0> or maybe not [20:48:50 CET] <furq> because that's how ffmpeg works [20:49:04 CET] <obamoose> huh [20:49:06 CET] <obamoose> for real? [20:49:15 CET] <obamoose> how do I turn it into a single stream [20:49:20 CET] <furq> you concat the inputs [20:49:35 CET] <obamoose> I what now? [20:49:48 CET] <furq> https://trac.ffmpeg.org/wiki/Concatenate#demuxer [20:50:07 CET] <furq> or use the concat filter, which is generally better, but is less amenable to running on the output of find|xargs [20:51:01 CET] <obamoose> I don't know how this works ;_; [20:51:05 CET] <obamoose> pls spoonfeed me [20:51:25 CET] <thebombzen> or use cat [20:51:28 CET] <thebombzen> and mpegts [20:51:29 CET] <thebombzen> lol [20:51:42 CET] <obamoose> I don't know any of those mean [20:51:47 CET] <obamoose> I got spoonfed my current config [20:51:49 CET] <obamoose> ;_; [20:51:51 CET] <furq> http://vpaste.net/qQ6IO [20:51:53 CET] <obamoose> i'm retarded [20:52:47 CET] <thebombzen> obamoose: it sounds like you have several files you're trying to just loop through a stream [20:53:00 CET] <thebombzen> the easiest way to do that is to remux them all to mpegts and concatenate them [20:53:13 CET] <thebombzen> for each of the files, do ffmpeg -i input.mp4 -c copy output.ts [20:53:14 CET] <furq> i don't think that's the easiest way [20:53:42 CET] <thebombzen> it is because they also want to loop the files [20:54:02 CET] <thebombzen> if you have a bunch of video.ts files, then you can just concatenate them together with "cat" and that will work [20:54:12 CET] <thebombzen> so you have the entire stream in one file, stream.ts [20:54:17 CET] <thebombzen> then to loop the stream you can do: [20:54:22 CET] <obamoose> http://pastebin.com/a0cTmPqE [20:54:23 CET] <obamoose> like this? [20:54:29 CET] <obamoose> I'm trying to loop a directory of files [20:54:30 CET] <furq> no [20:54:33 CET] <furq> not in any way like that [20:54:33 CET] <thebombzen> no [20:54:33 CET] <obamoose> all the same extension [20:54:50 CET] <thebombzen> obamoose: this will take a bit of prep [20:54:59 CET] <thebombzen> the easiest way to do it is to actually concatenate all the video files into one [20:55:24 CET] <obamoose> before or after? [20:55:30 CET] <thebombzen> well I'm not done answering [20:55:31 CET] <obamoose> i'm adding new files every day though [20:55:45 CET] <thebombzen> still easier to convert them all to ts [20:55:48 CET] <furq> well your existing command won't add new files [20:55:55 CET] <furq> actually nvm it's in a while loop [20:55:59 CET] <thebombzen> obamoose: you should put all of the files you want into a directory [20:56:05 CET] <obamoose> they're in home/me/cgn [20:56:05 CET] <thebombzen> and make sure they're mpegts formatted [20:56:09 CET] <furq> there's no way of doing this where new files will get added to the rotation without breaking the stream [20:56:11 CET] <obamoose> they're all mp4's [20:56:15 CET] <obamoose> ;_; [20:56:16 CET] <thebombzen> well that's a problem [20:56:26 CET] <furq> unless you want to write your own application using ffmpeg's libs [20:56:29 CET] <furq> and i suspect you don't [20:56:30 CET] <thebombzen> furq: it's possible, and i'm about to explain how [20:56:38 CET] <furq> is it going to be something fucking awful [20:56:43 CET] <thebombzen> obamoose: for each of the files, you need to do ffmpeg -i input.mp4 -c copy output.ts [20:56:45 CET] <thebombzen> or whatever [20:56:50 CET] <obamoose> I just want to create a tv channel in ubuntu [20:56:50 CET] <thebombzen> so they're all ts [20:56:52 CET] <thebombzen> I KNOW [20:56:53 CET] <obamoose> why is it so hard ;_;? [20:57:00 CET] <thebombzen> STOP WHINING ABOUT HOW HARD IT IS AND ACTUALLY LISTEN FOR ONCE [20:57:16 CET] <furq> are you going to suggest appending to the .ts while the stream is still running [20:57:23 CET] <thebombzen> furq: I'm not done [20:57:25 CET] <thebombzen> lemme talk [20:57:37 CET] <thebombzen> obamoose: you want to remux each of the videos in the directory to .ts [20:57:45 CET] <obamoose> yes [20:57:49 CET] <thebombzen> for each of them, do ffmpeg -i input.mp4 -c copy output.ts [20:57:50 CET] <thebombzen> then [20:58:01 CET] <obamoose> yes [20:58:08 CET] <thebombzen> make sure they're named in order you want them to play [20:58:16 CET] <thebombzen> then you can do this: [20:59:07 CET] <thebombzen> while true; do cat *.ts; done | ffmpeg -y -re -f mpegts -i - <rest of your command line> [20:59:39 CET] <thebombzen> if you drop a new .ts file into the directory it'll be added to the rotation once the old ones are done [20:59:45 CET] <thebombzen> and it restarts [21:00:23 CET] <rob0> I don't get why the while loop, why not just cat *.ts | ffmpeg ... ? [21:00:32 CET] <furq> because that won't loop [21:00:39 CET] <rob0> oh [21:00:50 CET] <furq> and you can't use -stream_loop because that won't add newly added files [21:00:51 CET] <thebombzen> read the question lmao [21:00:55 CET] <rob0> "and it restarts" [21:01:02 CET] <furq> although [21:01:16 CET] <furq> that doesn't satisfy the requirement of not dropping the stream [21:01:24 CET] <thebombzen> why not? [21:01:33 CET] <furq> because it'll drop out at the end of every rotation [21:01:36 CET] <thebombzen> no it won't [21:01:42 CET] <furq> of course it will [21:01:44 CET] <thebombzen> no it won't [21:01:50 CET] <furq> every time you restart ffmpeg, the stream will drop [21:01:55 CET] <thebombzen> this never restarts ffmpeg [21:01:59 CET] <thebombzen> just leave that running forever [21:02:05 CET] <obamoose> mom, dad stop fighting ;_; [21:02:11 CET] <furq> nvm i can't read [21:02:14 CET] <thebombzen> lol [21:02:24 CET] <thebombzen> do this basically: while true; do cat *.ts; done | ffmpeg -y -re -f mpegts -i - <rest of your command line> [21:02:40 CET] <thebombzen> this will loop all the .ts files in your directory [21:03:24 CET] <thebombzen> leave that running forever [21:03:38 CET] <thebombzen> note that you can save cpu time by doing your video encoding beforehand [21:03:39 CET] <thebombzen> but that should do it [21:03:48 CET] <thebombzen> now, what are you getting the files from? [21:04:02 CET] <thebombzen> obamoose: where are the video files originating [21:04:33 CET] <obamoose> youtube [21:04:34 CET] <furq> if he has bitrate constraints then it probably doesn't matter [21:04:35 CET] <obamoose> -> mp4 [21:04:39 CET] <furq> or maybe it does [21:04:47 CET] <thebombzen> furq: but he can bitrate constrain them beforehand [21:04:51 CET] <furq> if they're all from youtube and they're all the same resolution then you don't need to reencode at all [21:04:51 CET] <thebombzen> and use -preset slow or something [21:05:10 CET] <thebombzen> yea [21:05:15 CET] <thebombzen> if they're all from youtube and the same resolution [21:05:27 CET] <thebombzen> you can actually use -c copy instead of the previous stuff [21:07:28 CET] <obamoose> I'm confused [21:08:09 CET] <obamoose> http://vpaste.net/DbY6e [21:08:12 CET] <obamoose> this? [21:08:23 CET] <thebombzen> so <rest of your command line> [21:08:24 CET] <thebombzen> means the rest [21:08:27 CET] <thebombzen> not the entire thing [21:08:29 CET] <furq> forget the -f concat stuff [21:08:36 CET] <furq> and in fact most of that [21:08:42 CET] <thebombzen> also cat isn't spelled with a k [21:08:45 CET] <furq> you might as well just write the entire command for him [21:08:49 CET] <furq> it'll save everyone a lot of time [21:09:25 CET] <thebombzen> while true; do cat *.ts; done | ffmpeg -re -f mpegts -i - -c copy -f flv rtmp://live.twitch.tv/app/streamkey [21:09:28 CET] <thebombzen> try that [21:09:47 CET] <thebombzen> make sure you actually have a .ts video file there, otherwise it'll just fail [21:10:00 CET] <thebombzen> to get one of those, use ffmpeg -i video.mp4 -c copy video.ts [21:10:24 CET] <obamoose> ;_; [21:10:29 CET] <thebombzen> what [21:10:34 CET] <thebombzen> what are you crying about now [21:10:35 CET] <obamoose> oh [21:10:40 CET] <thebombzen> your inability to copy and paste [21:10:46 CET] <obamoose> wait I need to find an mp4 to ts converter [21:10:51 CET] <thebombzen> how about ffmpeg [21:10:55 CET] <thebombzen> I literally fucking told you how to do it [21:10:58 CET] <thebombzen> about thirty seconds ago [21:11:10 CET] <obamoose> I wasn't kidding when I said retarded [21:11:23 CET] <thebombzen> [16:09:47] <thebombzen> make sure you actually have a .ts video file there, otherwise it'll just fail [21:11:23 CET] <thebombzen> [16:10:00] <thebombzen> to get one of those, use ffmpeg -i video.mp4 -c copy video.ts [21:11:27 CET] <thebombzen> like [21:11:30 CET] <thebombzen> come on [21:11:58 CET] <obamoose> but but [21:12:01 CET] <obamoose> is that a test file? [21:12:10 CET] <thebombzen> lol it's whatever you want it to be [21:12:13 CET] <obamoose> or does it take all my files inside my folder [21:12:26 CET] <obamoose> and convert them? [21:12:28 CET] <thebombzen> okay, video.mp4 means the actual filename [21:12:43 CET] <thebombzen> if it's not called video.mp4, then instead use whatever the filename is [21:12:48 CET] <obamoose> yessir [21:16:20 CET] <obamoose> ffmpeg -i home/obamoose/cgn/1.mp4 -c copy 1.ts won't find it [21:16:28 CET] <obamoose> home/obamoose/cgn/1.mp4: No such file or directory [21:17:33 CET] <thebombzen> well [21:17:52 CET] <thebombzen> that's because you need a / in front [21:17:59 CET] <thebombzen> home/obamoose/cgn/1.mp4 is a relative path [21:18:08 CET] <thebombzen> from the CWD (current working directory) [21:18:38 CET] <thebombzen> if it starts with a / then it's an absolute path and it means "start from the root of the filesystem" not "start from the current working directory" [21:18:43 CET] <obamoose> oh [21:18:48 CET] <obamoose> thank you [21:18:53 CET] <thebombzen> so when you copy and paste [21:18:56 CET] <thebombzen> things like this matter [21:19:02 CET] <obamoose> indeed [21:19:16 CET] <obamoose> you know how I can confirm I'm retarded? [21:19:35 CET] <obamoose> I pasted this: /home/obamoose/cgn/1.mp4: No such file or directory [21:20:23 CET] <thebombzen> well [21:20:25 CET] <furq> is it the fact that you picked an irc client that interprets that as a command [21:20:29 CET] <furq> that's pretty dumb [21:20:45 CET] <furq> /there's/nothing/wrong/with/this [21:20:55 CET] <thebombzen> well kvirc does too but at least it whines at you that command not found [21:21:08 CET] <thebombzen> either way [21:21:27 CET] <thebombzen> obamoose: it's telling you that there's no such file or directory there [21:21:32 CET] <thebombzen> because there's no such file or directory [21:21:40 CET] <thebombzen> error messages are not always helpful but they usually are [21:21:43 CET] <thebombzen> you should probably read them [21:21:53 CET] <obamoose> Yessir [21:21:58 CET] <obamoose> it was fixed by adding a / [21:22:04 CET] <obamoose> but now I can't seem to find the file [21:22:29 CET] <thebombzen> well the file should be in /home/obamoose/cgn [21:22:38 CET] <obamoose> it's not ;_; [21:22:40 CET] <thebombzen> well then [21:22:45 CET] <thebombzen> it can't find a file that isnt' there [21:22:47 CET] <thebombzen> because it isn't there [21:23:01 CET] <thebombzen> if you're trying to remux a .mp4 into a .ts file [21:23:05 CET] <obamoose> File '1.ts' already exists. Overwrite ? [y/N] [21:23:08 CET] <thebombzen> perhaps try doing that on an actual file [21:23:27 CET] <thebombzen> well it sounds like you already ran the command once [21:23:30 CET] <thebombzen> and it already succeeded [21:23:35 CET] <thebombzen> so why are you trying again [21:23:53 CET] <obamoose> cause I can't find it in the cgn folder [21:24:30 CET] <thebombzen> perhaps you can't find it because it's not there [21:24:34 CET] <thebombzen> have you considered this possibility [21:24:47 CET] <obamoose> oh damn [21:24:48 CET] <obamoose> I'm slow [21:24:51 CET] <thebombzen> yes [21:24:53 CET] <obamoose> it's in the main folder [21:25:53 CET] <RossW> for next time: find / -name "1.mp4" [21:26:04 CET] <thebombzen> lolno [21:26:05 CET] <thebombzen> don't do that [21:26:22 CET] <thebombzen> that would take too long [21:26:52 CET] <RossW> it's quicker than wasting an hour looking everywhere it isn't :) [21:27:10 CET] <thebombzen> but slower than find /home/obamoose -name 1.mp4 [21:27:25 CET] <furq> it's probably best to assume he didn't write it somewhere that he doesn't have write permissions [21:27:33 CET] <furq> which is probably everywhere outside of ~ [21:27:41 CET] <RossW> sure - if you're certain it's in the /home/obamoose path... [21:27:43 CET] <furq> at least for his own safety i hope it is [21:28:01 CET] <thebombzen> if it's not in ~/ then he's got bigger problems [21:28:03 CET] <furq> if he had write permissions in /usr i doubt he'd be here talking to us [21:33:51 CET] <obamoose> I converted them all to ts \o/ [21:39:42 CET] <obamoose> I think [21:39:43 CET] <obamoose> I did it [21:40:33 CET] <obamoose> wait nvm [21:40:35 CET] <obamoose> It didn't work [21:40:50 CET] <obamoose> but no error message ;_; [21:41:09 CET] <obamoose> while true; do cat /home/obamoose/cgn/*.ts; done | ffmpeg -y -re -f mpegts -i ffmpeg -y -re -i $ -vcodec libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f concat -i concatlist -f -f flv rtmp://live.twitch.tv/app/streamkey [21:41:22 CET] <obamoose> wait I have ffmpeg twice [21:42:07 CET] <thebombzen> have you considered [21:42:14 CET] <thebombzen> copy and pasting the command I gave you [21:42:24 CET] <thebombzen> rather than coming up with one that doesn't work yet again [21:43:15 CET] <obamoose> I thought [rest of your command line] [21:43:21 CET] <obamoose> meant the whole command line [21:47:47 CET] <thebombzen> no that's not what "rest of" means [21:48:33 CET] <thebombzen> https://www.oxfordlearnersdictionaries.com/us/definition/english/rest_1 [21:52:44 CET] <obamoose> http://pastebin.com/34gcJBxA [21:52:45 CET] <obamoose> is what I have [21:53:11 CET] <obamoose> ffmpeg: No such file or directory [21:53:16 CET] <nightlingo> hello! [21:53:46 CET] <obamoose> hello [21:53:46 CET] <nightlingo> how may I encode an mp4 video into having a fixed sample_size ? [21:55:04 CET] <nightlingo> either that, or , any ideas where can I find an example .mp4 file that has a fixed sample size? I really need it in order to analyze its format [22:01:28 CET] <thebombzen> obamoose: again [22:01:32 CET] <thebombzen> copy and paste what I wrote [22:01:37 CET] <thebombzen> which I will leave here for you, again [22:01:44 CET] <obamoose> i'm sorry ;_; [22:02:20 CET] <thebombzen> while true; do cat /home/obamoose/cgn/*.ts; done | ffmpeg -re -f mpegts -i - -c copy -f flv rtmp://live.twitch.tv/app/streamkey [22:02:44 CET] <petecouture> Can ffmpeg encode a file input from a url e.g. http://example.com/movie.mp4 [22:03:03 CET] <thebombzen> yes [22:04:33 CET] <petecouture> Can the output be saved to a S3 bucket? [22:04:53 CET] <thebombzen> well I assume you'd have to do that yourself [22:05:40 CET] <petecouture> gotcha [22:06:04 CET] <petecouture> @thebombzen thank you for your help [22:09:07 CET] <thebombzen> in general putting something with http is harder than taking it [22:12:48 CET] <asda> is it possible for ffmpeg to print out the actual versions of particular encoders ffmpeg was built against, for example libopus 1.1.3? [22:13:07 CET] <thebombzen> if it was dynamically linked? easily [22:13:37 CET] <asda> thebombzen: statically linked [22:14:26 CET] <thebombzen> I don't know, sorry [22:15:18 CET] <asda> thanks anyway [22:15:21 CET] <asda> :) [22:20:10 CET] <furq> https://www.youtube.com/watch?v=h4kBcm-ls8Y&t=67 [22:27:21 CET] <hky> Hi! When creating a buffersink filter context in AVFilterContext using avfilter_graph_create_filter, how can I specify the number of input pads? [22:28:47 CET] <obamoose> Malformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg) av_interleaved_write_frame(): Invalid data found when processing input [22:28:52 CET] <obamoose> thebombzen: ;_; [22:29:36 CET] <furq> did you try doing the exact thing it explicitly tells you to do [22:29:57 CET] <obamoose> y-yes? [22:30:10 CET] <obamoose> all I did was replace streamkey with the actual key] [22:33:21 CET] <thebombzen> you should do the thing it tells you to do [22:34:13 CET] <obamoose> Option bsf:a (A comma-separated list of bitstream filters) cannot be applied to input url - -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to. Error parsing options for input file -. Error opening input files: Invalid argument [22:34:56 CET] <furq> again, you should do the thing it tells you to do [22:43:09 CET] <obamoose> i placed it before | [22:43:10 CET] <obamoose> ;_; [22:43:23 CET] <thebombzen> well how about not doing that [22:43:32 CET] <obamoose> but isn't that input? [22:44:52 CET] <thebombzen> no [22:44:58 CET] <thebombzen> it's not even part of the ffmpeg command [22:47:27 CET] <obamoose> but where do I place it ;_;? [22:48:11 CET] <thebombzen> where it tells you to [22:49:07 CET] <obamoose> Move this option before the file it belongs to [22:49:51 CET] <obamoose> while true; do cat -bsf:a aac_adtstoasc /home/obamoose/cgn/*.ts; done | ffmpeg -re -f mpegts -i - -c copy -f flv rtmp://live.twitch.tv/app/streamkey [22:50:15 CET] <thebombzen> even I'm starting to lose my patience right now [22:50:20 CET] <thebombzen> have you ever used a command line before [22:50:28 CET] <obamoose> y-yes [22:50:39 CET] <thebombzen> are you sure [22:51:39 CET] <obamoose> yes? [22:52:31 CET] <thebombzen> do you know what a pipe is [22:52:35 CET] <thebombzen> in a command line [22:52:38 CET] <thebombzen> you know, the | thingy [22:52:52 CET] <obamoose> yessir [22:54:06 CET] <thebombzen> do you know what "cat" does [22:54:58 CET] <thebombzen> and obamoose have you considered using OBS instead [22:55:01 CET] <thebombzen> https://obsproject.com/ [22:55:30 CET] <obamoose> it's a headless ubuntu server somewhere in a datacenter in france [22:55:33 CET] <obamoose> can I run obs? [22:56:23 CET] <thebombzen> why do you have access to a headless datacenter in france [22:56:27 CET] <thebombzen> if you have no idea how to use a command line [22:56:48 CET] <thebombzen> who gave you access to that thing and how much do they hate their job [22:56:50 CET] <obamoose> for a 24/7 stream [22:56:58 CET] <obamoose> m-me myself and I [22:57:26 CET] <thebombzen> why do you want to have a 24/7 twitch stream of videos you downloaded off youtube [22:57:43 CET] <thebombzen> so much that you're willing to pay money for a server you don't know how to administer [22:58:18 CET] <obamoose> no bully ;_; [22:58:58 CET] <thebombzen> this is a serious question [22:59:09 CET] <thebombzen> why do you want to have a 24/7 twitch stream of videos you downloaded off youtube [22:59:20 CET] <obamoose> I'm creating an esports channel [22:59:21 CET] <BtbN> Just set up a playlist on Twitch, and let it plays those videos for you...? [22:59:33 CET] <obamoose> playlist is only for a select few streamers [22:59:44 CET] <BtbN> hm [22:59:49 CET] <thebombzen> what about a YouTube gaming playlist [22:59:52 CET] <thebombzen> that's a thing [23:00:03 CET] <obamoose> starting out on twitch [23:00:14 CET] <BtbN> I hope it's at least your own content you are broadcasting there? [23:00:14 CET] <thebombzen> by streaming other people's content? [23:01:35 CET] <obamoose> It's others content [23:01:39 CET] <obamoose> but with explicit permission [23:07:16 CET] <furq> i hope you at least bought the cheapest ovh server [23:14:38 CET] <obamoose> furq: yes, kimsufi [23:14:44 CET] <obamoose> furq: ;_; [00:00:00 CET] --- Mon Mar 20 2017
participants (1)
-
burek