[Ffmpeg-devel-irc] ffmpeg.log.20170123

burek burek021 at gmail.com
Tue Jan 24 03:05:01 EET 2017


[00:01:18 CET] <furq> there's not been a listening test but i'm told it's pretty good for cbr
[00:01:35 CET] <furq> vbr is still experimental and he-aac isn't supported yet
[00:02:18 CET] <DHE> as I understand it libfdk-aac is still the best, but the built-in AAC encoder is good enough (subject to the above details)
[00:02:50 CET] <furq> it's certainly better than all the aac encoders which used to be in ffmpeg
[00:04:03 CET] <DHE> well, there's that. do use the most up-to-date version you can. :)
[00:04:08 CET] <furq> i would really appreciate a proper qaac/fhg/fdk/ffmpeg aac listening test
[00:04:09 CET] <DHE> (good advise in general anyway)
[00:04:21 CET] <furq> i suspect it doesn't really matter at >=128kbps though
[00:06:16 CET] <furq> i have noticed that the builtin encoder seems to be much faster than fdk
[00:09:46 CET] <kerio> DHE: the man page claims that the builtin aac encoder is better than fraunhofer's, at 128kbps stereo
[00:10:34 CET] <furq> yeah some wiki pages say the builtin encoder is better and some say fdk is better
[00:10:50 CET] <furq> i'm pretty sure fdk is better but in the absence of a listening test, it's impossible to say
[00:11:03 CET] <furq> fdk is certainly better if you want vbr, which you do because it's 2017
[00:11:11 CET] <kerio> D:
[00:11:38 CET] <DHE> also the various variants like HE-AAC and HEv2 (not that I understand what the difference is) and FDK is better in that regard
[00:12:12 CET] <furq> v1 is spectral band replication, v2 is that and parametric stereo
[00:12:56 CET] <furq> https://en.wikipedia.org/wiki/Parametric_Stereo
[00:13:45 CET] <kerio> thankfully, it doesn't matter because we should be using opus instead
[00:14:05 CET] <furq> i would also like to forget that apple exist
[00:14:11 CET] <kerio> System Information: Model: MacBook Pro (15-inch, Retina, Late 2013) " CPU: Intel Core i7-4850HQ (8 Threads, 4 Cores) @ 2.30 GHz " Memory: 16,00 GB " Uptime: 14 days " Disk Space: 349,71 GB " Graphics: Intel Iris Pro, NVIDIA GeForce GT 750M " Screen Resolution: 1440 x 900 (HiDPI Mode) " OS: macOS Sierra (Version 10.12.2, Build 16C67)
[00:14:36 CET] <furq> 2.30ghz and 16,00 gb
[00:14:39 CET] <furq> nice consistency
[00:14:49 CET] <kerio> it's a lappy
[00:14:52 CET] <kerio> what do you want
[00:14:56 CET] <furq> i meant the decimal point
[00:15:22 CET] <furq> did you c&p that from somewhere or is that actually a system information irc script
[00:15:33 CET] <furq> and if so can i come back to 2007 with you
[00:15:36 CET] <kerio> :^)
[00:15:42 CET] <kerio> you can, but you need macos
[00:15:47 CET] <furq> fuck that
[00:15:50 CET] <kerio> https://www.codeux.com
[00:15:56 CET] <kerio> https://www.codeux.com/textual/ rather
[00:16:20 CET] <DHE> furq: unfortunately the HLS spec strictly only allows AAC (unless an updated draft changed that) in MPEG-TS so I'm low on options for codecs
[00:16:22 CET] <furq> i like descriptions that just keep on adding caveats
[00:16:42 CET] <furq> also i'm pretty sure hls allows mp3 and ac3
[00:17:01 CET] <furq> although much like fmp4 that's probably not supported in practice
[00:17:08 CET] <DHE> an HLS-capable app (and only HLS mind you) for android puked on anything except AAC stereo...
[00:17:24 CET] <DHE> didn't try too hard, mind you
[00:17:34 CET] <furq> yeah i'm not really surprised
[00:17:35 CET] <DHE> ironically the apple player was way more forgiving
[00:18:07 CET] <kerio> *coughcoughyuv420ponlycoughcough*
[00:18:23 CET] <DHE> hardware decodes FTL
[00:18:25 CET] <furq> i remember firefox used to puke on mp4 with mp3 audio even though it could play standalone mp3
[00:18:35 CET] <kerio> maybe quicktime only supports yuv420 because apple likes dat kush
[00:19:12 CET] <furq> that's one of the worst jokes i've ever seen
[00:19:41 CET] <kerio> ._.
[00:19:46 CET] <kerio> you don't have to be so mean furq
[00:19:55 CET] <furq> but it's so much fun
[00:20:11 CET] <furq> that's like 70% of the point of irc
[00:21:18 CET] <furq> also you think dodonpachi daifukkatsu is good so you're already basically dead to me
[00:21:20 CET] <DHE> right, API question. If AVStream->codec (AVCodecContext*) is deprecated, where do I store my AVCodecContext for decoding? Or is that up to me and just keep it private?
[00:22:05 CET] <kerio> weeb
[00:25:05 CET] <kerio> furq did you play undertale? :3
[00:25:10 CET] <furq> no
[00:25:13 CET] <furq> it looks bad
[00:25:24 CET] <kerio> but it's got HEART
[00:25:34 CET] <furq> yeah i hate that
[00:25:51 CET] <kerio> play it tho :<
[01:03:15 CET] <DHE> if you missed it, I asked an API question just above
[01:06:20 CET] <wpbro> Restreamer.io doesn't support MPEG-DASH out of the box - is MPEG-DASH needed anyway when sending the feed up to Youtube Live? I guess it is not because Youtube handles the further multires/bandwidth stuff?
[01:07:10 CET] <DHE> mpeg-dash support would be more for hosting your own streaming. for youtube just send the video to them using whatever method other people use and let them deal with it
[01:07:32 CET] <wpbro> cool
[01:07:43 CET] <wpbro> youtube probably uses something like mpeg-dash or even mpeg-dash and hsl?
[01:07:54 CET] <wpbro> I mean, they probably figured it out very nicely, right?
[01:08:15 CET] <DHE> I'm not actually sure. I would assume DASH is most likely for browser support as an actual standard. still, other solutions exist and I wouldn't put it past google to implement something in javascript
[01:08:25 CET] <jkqxz> DHE:  Yes, it doesn't matter; store the pointer wherever you like.  (Just make sure you allocate the structure with avcodec_alloc_context3().)
[01:08:27 CET] <wpbro> ah right
[01:08:48 CET] <wpbro> so h264 is a video codec, mpeg-dash and hls are container formats for multires stuff and that
[01:09:11 CET] <DHE> correct
[01:10:31 CET] <DHE> though you could argue the specifics. HLS is a listing of MPEG-TS files (which is itself a container) and MPEG-DASH is similar using mp4 (which is another container)
[01:11:26 CET] <wpbro> DHE: MPEG-DASH being mp4 container with extra metadata on top?
[01:12:03 CET] <DHE> MPEG-DASH is a listing of MP4 files. you basically play them back to back non-stop to produce a continuous, seamless video
[01:12:45 CET] <wpbro> DHE: so temporal chunks that are joined by the player? So the listing gets more and more items over time during a live session? Is this also because of timeshifting?
[01:12:57 CET] <wpbro> DHE: this also means there will be also a latency compared to live because of chunk size?
[01:13:15 CET] <DHE> my experience is mostly with HLS, which is a similar concept to DASH
[01:13:40 CET] <DHE> with that the list of chunks deletes the oldest and adds the newest as it goes. players are encouraged to start near the bottom (say, 3rd last) for buffering purposes.
[01:14:02 CET] <DHE> but that does mean you're 3*duration seconds behind live, and there's likely a video being encoded you can't see yet, plus encoder lag
[01:14:20 CET] <DHE> this is where the term "Twitch lag" comes from for twitch.tv users
[01:31:53 CET] <wpbro> Is flowplayer still needed? I mean, with HTML5 video support, most if not all browsers already offer a built-in player?
[01:43:12 CET] <wpbro> Another question concerning video resolutions. I export to  768 x  432 and now I also want to export to  424 x  240, but 2 pixels height would be used more than the video with same aspect ratio.
[01:43:24 CET] <wpbro> I could just render with 2px black letterbox, or I would use indeed 238px height instead
[01:43:38 CET] <wpbro> is 240px height better than 238px? I mean, size-wise? codec-wise? standards-wise?
[01:46:23 CET] <klaxa> 240 is 256 - 16 so i would *think* it might be better suited
[01:46:41 CET] <klaxa> but i doubt it will make much of a difference quality wise
[01:48:12 CET] <thebombzen> It appears that OBS captures the screen with XSHM, whereas FFmpeg uses XCB for x11 grabbing. Are these actually the same thing, or is one better?
[01:51:37 CET] <DHE> they're stackable. XCB is just an API family, SHM is still supported
[02:05:48 CET] <wpbro> I got two different mpeg4 (h264 codec) movie files. Is there a nice tool to bundle them both to a mpeg-dash file? So I can use it in browser and browser will pick the right one by resolution/video player size?
[02:34:30 CET] <thebombzen> DHE: is there a way to get ffmpeg x11grabbing to use SHM?
[02:34:53 CET] <DHE> it should by default, assuming it works (eg: not over a remote TCP session)
[02:34:59 CET] <thebombzen> ah
[02:35:08 CET] <thebombzen> wpbro: afaik, the <video> HTML tag lets you specify multiple sources
[03:02:13 CET] <wpbro> thebombzen: but not for different resolutions, right?
[03:03:42 CET] <thebombzen> idk someone else would have to answer that ^_^
[03:04:07 CET] <thebombzen> My guess is you might be able to accomplish this with javascript tho
[03:04:23 CET] <wpbro> right
[03:04:29 CET] <wpbro> some nice javascript plugin would be coo
[03:04:36 CET] <wpbro> even better as wordpress plugin
[03:05:49 CET] <thebombzen> wordpress? afaik wordpress allows you to edit your html
[03:06:00 CET] <thebombzen> so it seems possible
[03:06:20 CET] <thebombzen> Hell even Tumblr lets you add JS and Tumblr is absurdly restrictive
[03:12:20 CET] <wpbro> hi again
[03:12:35 CET] <wpbro> Is it possible to convert mpegs of different resolutions (and bitrates) to a dash-mpeg?
[03:12:40 CET] <wpbro> static file to be served by nginx?
[03:27:53 CET] <DHE> wpbro: chances are you can just use the same options on multiple executions with a different -s parameter to resize the video. and obviously different bitrates
[03:28:17 CET] <wpbro> DHE: will this write into the same output file?
[03:28:43 CET] <DHE> no, I'm not sure how to deal with that aspect. like I said, I'm more an HLS expert
[03:30:06 CET] <wpbro> DHE: from what I read is HLS much better supported by browsers than dash
[03:30:31 CET] <wpbro> DHE: so let's say I got a very shot video clip, around 1 minute, no audio (video only). And I have three different variants of it with different resolution and bandwidth used.
[03:30:58 CET] <wpbro> I want to play the right video file in browser, no fancy player, in fact, the player doesn't even need to have any controls.
[03:31:00 CET] <DHE> actually browser support is pretty weak, but there's a javascript package (HLS.js) which deals with that fairly well
[03:31:05 CET] <wpbro> ah, right
[03:31:16 CET] <wpbro> I use flowplayer currently, apparently it got hjs.js as option
[03:31:52 CET] <wpbro> ok, so how could I create a HJS? file? Can ffmpeg do this? I would feed it three mpeg (h264) files and it will do all the necessary containering + chunking?
[03:32:03 CET] <DHE> for HLS you make a sort of master playlist (.m3u8 extension) that lists further m3u8 files with their resolutions and bandwidth requirements. ffmpeg can produce these files directly with: ffmpeg -i input [codecoptions] -f hls -hls_list_size 0 variant1.m3u8
[03:32:18 CET] <wpbro> those are basically text files?
[03:32:22 CET] <DHE> yes
[03:32:24 CET] <wpbro> I mean, meta files and the browser can decide on them?
[03:32:26 CET] <wpbro> oh
[03:32:32 CET] <wpbro> so the three mpeg files can stay unchanged?
[03:32:34 CET] <wpbro> cool
[03:33:04 CET] <DHE> ffmpeg will write the text playlist file for a single bitrate/resolution variant and write out the .ts video files that go with it
[03:33:39 CET] <wpbro> DHE: how to have multiple variants? just call the command multiple times for each variant?
[03:33:49 CET] <wpbro> DHE: and TS files are those mpeg files in a transformed way?
[03:34:14 CET] <DHE> mpegts is a file format/container
[03:34:53 CET] <DHE> there's a few gotchas. I recommend some additional options. -g 180 -hls_time 6 -x264opts no-scenecut
[03:35:06 CET] <DHE> that assumes 30fps material
[03:35:14 CET] <wpbro> yes, 30fps is used
[03:35:52 CET] <wpbro> ffmpeg would add further variants automatically to the master playlist?
[03:35:58 CET] <DHE> no, you'll need to make that yourself
[03:36:58 CET] <DHE> mind if I PM you?
[03:37:17 CET] <wpbro> DHE: sure
[03:37:30 CET] <wpbro> I am glad someone knows this :)
[03:48:46 CET] <wpbro> DHE: just noticed that I have to be logged in/registered to answer your PMs :)
[03:48:57 CET] <DHE> oh...
[03:48:59 CET] <DHE> I can turn that off
[03:49:06 CET] <wpbro> that would be best
[05:04:15 CET] <wpbro> hm, I got a question :D
[05:04:40 CET] <wpbro> so let's say there is a javascript-supported video player that picks a mpeg file by resolution (its own size) automatically - what would be the advantages of HSL over this?
[05:15:09 CET] <iMath> hello, is it possible to figure out the video file size from the ffmpeg command line output info here https://bpaste.net/show/c1af0f149697   ?
[05:19:06 CET] <Nosomy> if is a streming, probably no.
[05:19:13 CET] <Nosomy> *streaming
[05:25:01 CET] <iMath> Nosomy: any way for non-streaming ?
[05:26:41 CET] <Nosomy> look the ffmpeg/ffprobe documentation
[07:23:46 CET] <tdhgedrt> hi
[08:24:09 CET] <tipking> integrate ffmpeg with unity3e
[08:24:26 CET] <tipking> need help to integrate ffmpeg with unity3d
[13:01:56 CET] <stephy-here> Yo! I got 300 files. Can I trim them at same time at same time frame ?
[13:24:10 CET] <nate> The -s switch when generating thumbnails from ffmpeg (-vframes + -ss) is optional right?  If I don't specify a size it'll just save a snapshot of the native video resolution?
[13:25:52 CET] <c_14> nate: yes
[13:26:00 CET] <c_14> stephy-here: only with use of a scripting language
[13:30:01 CET] <nate> Cool, thanks
[13:30:08 CET] Action: nate woulda tested it but ffmpeg is still recompiling so :P
[13:38:23 CET] <stephy-here> u have a cool scriping language? :)
[13:38:38 CET] <BtbN> just use your shell
[13:40:57 CET] <stephy-here> Do you a cool program to check to folders and remove all content in second folder that doesnt match with first folder?
[13:48:50 CET] <stephy-here> I found a really cool ms-dos command =)
[14:34:35 CET] <Pegasique> what's hte option to automatically cut width/height to what codec needs (like divisible by 2 or 4)?
[14:41:39 CET] <kerio> i think you add parameters to the size
[14:41:43 CET] <kerio> like
[14:41:47 CET] <kerio> size=w:h:4:4
[14:41:50 CET] <kerio> or something like that
[14:47:29 CET] <stephy-here> guys u know a f
[14:57:56 CET] <furq> Pegasique: if you mean automatically based on the other dimension, 720:-2 etc
[14:58:11 CET] <Pegasique> mhm
[14:59:49 CET] <Pegasique> ffmpeg -f gif -i "foo.gif" -crf 18 -pix_fmt yuv420p "bar.mp4" << foo.gif has 900x911 size, so ffmpeg returns error. i want to 'automatically' cut it to 900x910 or 900x908 if ffmpeg needs it
[15:02:48 CET] <Pegasique> or NxM -> (2*[N/2])x(2*[M/2]) kinda
[15:05:52 CET] <furq> -vf scale=h=-2
[15:06:22 CET] <furq> there's no magic way to cut to "whatever the codec needs", but in this case it's mod2
[15:06:40 CET] <furq> (also that's because of the pixel format, not the codec, but who cares)
[15:06:40 CET] <chuprin> hi. is there any way to get time when ffmpeg started encoding (add timestamp to log, maybe)? i do run ffmpeg from my application on remote machine through docker and i need to know when it was started precisely.
[15:06:43 CET] <BtbN> it's the pix format that needs that btw., not the codec.
[15:06:47 CET] <furq> hi
[15:14:16 CET] <Bene__> Hi guys, I try to convert from uncompressed AVI to MPEG-2 with bitrate settings of 1mbit/s vbr, max bitrate of 3mbit/s and min 0.5 mbit/s. using , "ffmpeg -i ReadySetGo_1920x1080_120fps_420_8bit_YUV.avi -c:v mpeg2video -b:v 1000k -maxrate 3000k -minrate 500k -qmax 50 -bufsize 1200k out.mkv" . I get an error message "RC-Buffer underflow" and the bitrate is constant about 4mbit/s and always higher than 3mbps. Do you know where the problem 
[15:14:54 CET] <Bene__> i tried similar with different containers such as mp4 and mpg
[15:17:16 CET] <BtbN> 1080p? As mpeg2? With 1Mbit/s?
[15:17:31 CET] <furq> yeah i think that error just means the maximum bitrate couldn't be hit
[15:17:44 CET] <furq> and i'm not surprised you can't get 1080p120 mpeg2 into 3mbit
[15:18:04 CET] <Hello71> hah, you don't say
[15:18:04 CET] <furq> 480p30 dvds are usually 2-3x that
[15:18:14 CET] <DHE> keep in mind DVDs aim for around 6 megabits for 480p content
[15:18:15 CET] <DHE> yeah
[15:18:20 CET] <Bene__> yeah, just for testing and comparing to h264 and h265
[15:18:30 CET] <Hello71> bad comparison
[15:18:31 CET] <furq> i'll save you some time: it sucks
[15:18:39 CET] <DHE> it's not even a contest. H264 can cut the bitrate in half compared to MPEG-2
[15:18:48 CET] <DHE> maybe more if you use slower presets and the like
[15:19:10 CET] <Hello71> but you still won't fit 1080p120 in 3 Mb/s
[15:19:16 CET] <furq> yeah x264 will normally cut 60-80% off a dvd source without noticeable quality loss
[15:19:26 CET] <Bene__> sure, was part of a university project
[15:19:32 CET] <DHE> at 1080p 120fps I would ballpark using MPEG-2 at 50 megabits to have a hope of looking good. H264 could probably do 20 megabits.
[15:19:59 CET] <DHE> just some random numbers off the top of my head. the title "ReadySetGo" makes me think it's high motion and maybe you need even higher
[15:20:09 CET] <furq> you'll want to use 2pass as well
[15:20:10 CET] <Bene__> so it's not possible to encode 1080p25 raw sequence to MPEG-2 1080p25 1mbit vbr?!
[15:20:43 CET] <Bene__> i already converted the yuv 120p file to uncompressed 25p avi
[15:20:43 CET] <BtbN> 1mbit and vbr contradict each other anyway. It's either vbr or cbr
[15:21:00 CET] <DHE> Bene__: it'd be a blurry smudge, if it works at all
[15:21:11 CET] <furq> 1080p25 is obviously going to be a bit easier, but even then i'm not surprised the encoder just can't hit the maxrate
[15:21:29 CET] <furq> maybe some other mpeg2 encoder would work
[15:21:41 CET] <DHE> the maxrate is too low. I'm going to seriously suggest 8 megabits to make something that's at least viewable.
[15:22:06 CET] <furq> you'd normally want ~10mbit x264 for 1080p25
[15:22:19 CET] <Bene__> i don't care about the quality, just testing and comparing the results
[15:22:24 CET] <furq> yeah i get that
[15:22:29 CET] <BtbN> 10mbit seems a bit excessive
[15:22:37 CET] <BtbN> for 1080p25 with x264
[15:22:43 CET] <furq> but i'm guessing the encoder doesn't know how to drop any more quality than it's currently doing
[15:22:58 CET] <furq> it's not a well-tested path really
[15:23:20 CET] <Bene__> and there is no other mpeg implementation than "mpeg2video" available in ffmpeg?!
[15:23:40 CET] <DHE> sure, there's mpeg1video
[15:23:43 CET] <furq> does ffmpeg support x262
[15:23:59 CET] <furq> i think it's mutually exclusive with x264 if you do that
[15:24:01 CET] <Bene__> using mpeg-2 not mpeg-1
[15:24:03 CET] <furq> so nobody does it
[15:24:20 CET] <DHE> but no, ffmpeg does not carry more than 1 encoder for the same codec. (with some exceptions when 3rd party encoders exist)
[15:24:42 CET] <Hello71> ogg
[15:24:54 CET] <Hello71> although technically ffmpeg has only one encoder
[15:25:11 CET] <BtbN> one native encoder
[15:25:18 CET] <Hello71> aac also has one
[15:25:34 CET] <Hello71> IIRC the native encoders for both are still crap quality
[15:25:37 CET] <furq> yeah this is why he added that caveat
[15:25:44 CET] <BtbN> the aac encoder is more than decent.
[15:26:02 CET] <Bene__> ok thanks, i achieved it using AME with the same settings, and the resulting bitrate seems to be more close to 1mbps. the resulting sequence is a hugh group of pixels, as i wanted
[15:26:17 CET] <furq> there's only ever one builtin encoder, plus any thirdparty encoders that are considered higher quality
[15:26:21 CET] <Hello71> huh. I do remember someone saying that ogg got a bad rap because of people using the builtin ffmpeg encoder
[15:26:26 CET] <furq> e.g. vorbis and libvorbis, mpeg4 and xvid, aac and fdk-aac etc
[15:26:34 CET] <Hello71> Bene__: that's not *useful* though
[15:26:44 CET] <furq> i mean it's useful for having proof that mpeg2 sucks
[15:26:47 CET] <furq> which i guess is what he wanted
[15:26:58 CET] <Bene__> i know
[15:27:00 CET] <Hello71> I thought there were more for aac.
[15:27:05 CET] <furq> there used to be
[15:27:11 CET] <furq> they got removed because the builtin aac encoder is quite good now
[15:27:25 CET] <Hello71> ah, so aac was improved
[15:27:29 CET] <Hello71> is ogg any better now?
[15:27:36 CET] <furq> faac and vo_aacenc got removed because of that and then there was an sbr aac lib that got removed because fdk is better
[15:27:37 CET] <Hello71> vorbis
[15:27:45 CET] <furq> no idea
[15:27:52 CET] <furq> probably not since vorbis is basically dead now
[15:28:11 CET] <Hello71> https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio says "The vorbis and wmav1/wmav2 encoders are not worth using."
[15:28:15 CET] <Hello71> so I suppose not
[15:28:28 CET] <furq> i'm not sure why there's a builtin vorbis encoder really
[15:28:45 CET] <BtbN> Because someone once submitted it, and now getting rid of it is hard.
[15:29:00 CET] <furq> that sounds about right
[15:29:03 CET] <Hello71> or not necessarily hard, but "nobody really wants to bother"
[15:29:12 CET] <BtbN> no, removing features is a clusterfuck
[15:29:31 CET] <BtbN> There are people who fight that with all they've got
[15:29:35 CET] <furq> even if it's strictly a project management issue, project management is hard
[15:29:46 CET] <furq> especially an open-source project of this size
[15:29:58 CET] <furq> just think about all the germans on the mailing list waiting to pounce
[15:30:04 CET] <Hello71> interestingly libav also still has it
[15:30:17 CET] <BtbN> well, for vorbis it's also that nobody really cares
[15:30:30 CET] <Hello71> isn't that what I said
[15:30:38 CET] <BtbN> But I can assure you, once someone will start an effort to remove/deprecate it, it will suddenly have lots of fans.
[15:31:50 CET] <furq> remember the halcyon days when we thought ffserver was going to be removed
[15:33:23 CET] <Hello71> I still don't understand, how are you *supposed* to do somewhat-scalable video streaming
[15:33:24 CET] <Bene__> how do i know which is the minimum possible bitrate for my encoding setting, it seems to be about 4mbps, but it's not specified in the ffmpeg man or anything i found
[15:33:37 CET] <Hello71> all I could find was ffserver and some GUI programs
[15:33:40 CET] <furq> there isn't a minimum bitrate
[15:33:44 CET] <Hello71> Bene__: it's not a useful number
[15:33:59 CET] <furq> you'll easily be able to hit 1mbit at 1080p25 if it's a static image
[15:34:03 CET] <Hello71> and it would have to be determined empirically
[15:34:10 CET] <Hello71> "nobody really wants to bother"
[15:34:22 CET] <BtbN> Hello71, nginx-rtmp is the only actually somewhat working open source solution I'm aware of.
[15:34:26 CET] <furq> yeah nginx-rtmp is good
[15:34:36 CET] <Bene__> ffmpeg mpeg2 encoder doesnt encode my seq with less than 3mbps
[15:34:52 CET] <Bene__> even when i specify minrate and maxrate
[15:35:00 CET] <BtbN> If you want to scale video streaming to huge audiences, you need something like HLS and a CDN
[15:35:21 CET] <Hello71> right, if I want like thousands of clients
[15:35:23 CET] <Bene__> when i set my b:v 1000k or less nothing changes
[15:36:22 CET] <Hello71> actually, that sounds not-that-useless
[15:36:29 CET] <Hello71> "reduce fps if max bitrate is being exceeded"
[15:37:07 CET] <Bene__> native is 25p, reducing would result in a not flowing playback
[15:37:16 CET] <Hello71> you don't have playback at all
[15:37:58 CET] <Bene__> i have playback, but with a resulting sequence with aquivalent quality as a 1mbit x264 sequence
[15:38:09 CET] <Bene__> which is not possible
[15:38:43 CET] <Bene__> and the input bitrate of the decoder shows a variable bitrate between 3-4mbps
[15:39:04 CET] <furq> like i said, you can easily hit 1mbit at 1080p25 if the input is a static image
[15:39:15 CET] <furq> the minimum bitrate the encoder will hit depends on the complexity of the input
[15:39:45 CET] <furq> at least in this case, other encoders probably have better ratecontrol at low bitrates
[15:40:07 CET] <Bene__> ok, so with the "mpeg2video" of ffmpeg i can't force a bitrate to be 1mbps
[15:40:30 CET] <furq> you can't guarantee it won't be exceeded
[15:41:01 CET] <Bene__> ok, do you know which implementation AME is using?
[15:41:11 CET] <furq> what's AME
[15:41:16 CET] <furq> adobe?
[15:41:17 CET] <Bene__> media encoder
[15:41:19 CET] <Bene__> adobe
[15:41:23 CET] <Bene__> yeah sorry
[15:41:24 CET] <BtbN> their own I guess
[15:41:28 CET] <furq> no idea, i didn't even know they had an mpeg2 encoder
[15:42:23 CET] <furq> cce, hc and tmpgenc are the only ones i've used
[15:43:31 CET] <furq> cce cost a few thousand dollars last i checked so you can be pretty sure adobe aren't bundling that
[15:43:49 CET] <Bene__> ok
[15:44:06 CET] <Bene__> thanks
[15:44:55 CET] <furq> fwiw you might get acceptable results with ffmpeg in 2-pass mode
[15:45:15 CET] <furq> not sure if it'll work here but that generally gives more accurate ratecontrol
[16:24:29 CET] <Amadiro> Evening. I have a weird .ts file (mpegts) that was spit out by my transcoder. It contains only 90 frames, of which one is an I-frame. It's only 720p and 2 seconds long, but it is almost 10MiB (!!!). Any recommendations for an ffprobe incantation or so that could shed some light on what is going on?
[16:25:23 CET] <Amadiro> The video itself is basically just a static image being shown on the screen (and at the end it fades into another image), so it's rather puzzling to me how this file is not just in the kilobyte-range.
[16:38:38 CET] <Amadiro> hm, seems the initial I-frame and the final P-frame are really big (half a megabyte and 300K, respectively) but also all the P and B-frames in the middle are unreasonably large (like 160k on average)
[16:42:09 CET] <DHE> encoded with x264? it might be worth looking at the stats provided by the encoder at the end
[16:42:27 CET] <DHE> also fades tend to be kinda bad for bitrate because it's not really a "motion picture"
[16:43:17 CET] <DHE> can you pastebin that stuff? I wanna see it
[16:52:22 CET] <Pegasique> <furq> -vf scale=h=-2 << what if both widht and height aren't divisible by two? scale=h=-2:w=-2 returns an error
[17:01:27 CET] <furq> -2 is relative to the other dimension
[17:01:40 CET] <furq> i don't think you can use negative values for both
[17:02:16 CET] <furq> you'd probably need something like scale="floor(w/2)*2:floor(h/2)*2"
[17:47:09 CET] <pbos> Does motion jpeg have different headers/different packing or anything than regular jpegs?
[17:50:07 CET] <pbos> or is it just a jpeg frame without a huffman table specified in the file?
[17:58:31 CET] <pbos> would like to find a mjpeg frame description
[17:58:40 CET] <pbos> with hexcodes and offsets
[18:01:11 CET] <pbos> e.g. to convert it to DHT do I just copy all segments but put a statid DHT entry into it?
[18:01:17 CET] <pbos> convert it to jpeg
[18:09:27 CET] <gaeta> Is there a better way to debug ffmpeg ssl streams? mine seems to not be working. https://paste.ee/p/1IdaR
[18:16:33 CET] <c_14> try upgrading your copy of ffmpeg or using a packet sniffer to check the stream
[18:24:56 CET] <gaeta> c_14: Am I not running the latest? 3.2.2.
[18:25:57 CET] <c_14> latest is git HEAD (though I tested with 3.2.2 and it works here so probably not that)
[18:29:44 CET] <furq> that works here but my build is using gnutls
[18:30:07 CET] <gaeta> https://usercontent.irccloud-cdn.com/file/tM482P47/capture2.pcap
[18:30:37 CET] <furq> http://vpaste.net/9aUg4 fwiw
[18:30:38 CET] <gaeta> Theres my pcap. Ive got it built with openssl, and it seems to work with curl -IL with the same openssl.
[18:31:13 CET] <gaeta> Im building it right now with gnutls
[18:34:26 CET] <gaeta> It works with gnutls. Now to debug why it wont work with openssl...
[18:36:11 CET] <c_14> disabled EC algorithms maybe?
[18:42:00 CET] <c_14> works here with openssl, so it's not like it doesn't work with openssl at all
[18:46:25 CET] <gaeta> c_14: what version of openssl do you have? `openssl version -a` `openssl list`
[18:47:31 CET] <c_14> https://pb.c-14.de/t/kng.Cq8TA9 https://pb.c-14.de/t/kng.OgumGW
[18:47:48 CET] <c_14> openssl list isn't a valid command so I just spat out the cipherlist
[18:49:36 CET] <gaeta> Pefect.
[19:08:28 CET] <sopparus> gaeta ffmpeg/opensl dont work with tls 1.2 or 1.1 if you dont use master
[19:14:36 CET] <abd5932> Hello. I would like to broadcast live stream with ffmpeg to a nginx server. Is it possible for that server to do simultaneously two things: 1. broadcast the stream to visitors and 2. broadcast the stream to another nginx server which in turn will serve it to visitors also? Thank you!
[19:17:42 CET] <kerio> abd5932: yep
[19:18:16 CET] <kerio> see the nginx-rtmp documentation for the "exec" directive
[19:18:33 CET] <abd5932> kerio: thank you for the quick response. where can I find docs about this setup?
[19:18:34 CET] <kerio> the idea is that you exec ffmpeg, telling it to pull from localhost, and telling it to send (without reencoding) to another server
[19:19:19 CET] <kerio> oh apparenlty
[19:19:20 CET] <kerio> apparently
[19:19:25 CET] <kerio> just "push"
[19:20:22 CET] <kerio> abd5932: https://github.com/arut/nginx-rtmp-module/wiki/Directives#push
[19:23:37 CET] <abd5932> kerio: thank you! which way is better on your opinion - "push in nginx from server A to B" or "pull in ffmpeg from localhost and send to the second server"?
[19:24:05 CET] <kerio> well, "push" is effectively the same
[19:24:36 CET] <furq> if you mean push vs exec_push then you should probably just push
[19:24:58 CET] <kerio> furq: exec_push just to restream somewhere else yea
[19:25:14 CET] <furq> if you actually mean pull then i'm not sure what you mean
[19:25:40 CET] <Diag> please excuse the stupidity of this question, is it possible to have ffmpeg pull in from a device, encode, then stream it out over the network?
[19:25:57 CET] <kerio> depends on the device?
[19:25:59 CET] <furq> you can stream to a streaming server
[19:26:06 CET] <furq> ffmpeg can't really broadcast streams
[19:26:18 CET] <furq> it sort of can but only to one client and only when a client is connected
[19:26:22 CET] <Diag> hmm
[19:26:39 CET] <__jack__> you can stream over mpegts (multicast)
[19:27:08 CET] <kerio> yeah but let's not pretend mpegts over multicast udp is viable beyond the closest segment of LAN
[19:27:18 CET] <furq> yeah if multicast works for you then great but it usually doesn't
[19:27:59 CET] <__jack__> hey, you didn't mention your needs :)
[19:28:08 CET] <furq> sure
[19:28:16 CET] <kerio> Diag: nginx-rtmp is pretty nice
[19:28:20 CET] <furq> i mean if multicast works then you don't need an external server
[19:28:23 CET] <kerio> but then again, i'm a nginx fanboy
[19:28:31 CET] <furq> nginx-rtmp is very nice
[19:28:57 CET] <__jack__> hls + nginx is fine too
[19:32:24 CET] <kerio> __jack__: but nginx-rtmp can do that too :<
[19:34:44 CET] <kerio> http://sprunge.us/TjPb
[19:34:47 CET] <kerio> this is what i ended up with
[19:35:25 CET] <furq> -strict -2?
[19:35:27 CET] <furq> get with it granddad
[19:35:30 CET] <kerio> furq pls
[19:35:34 CET] <kerio> is only ports
[19:35:36 CET] <furq> also -tune zerolatency
[19:35:45 CET] <kerio> oooh nice ffmpeg got updated
[19:35:51 CET] <kerio> alright i'm removing -strict -2
[19:35:56 CET] <furq> if you mean freebsd then yeah, it finally got bumped
[19:36:16 CET] <furq> but please don't use -tune zerolatency unless you have an actual use for it, which you don't, because this is rtmp and hls
[19:36:37 CET] <furq> it fucks over quality really badly in exchange for a few hundred ms at best
[19:36:38 CET] <kerio> :<
[19:36:53 CET] <kerio> how bout fuck you instead
[19:37:03 CET] <furq> i mean if you want your streams to look like shit then be my guest
[19:37:20 CET] <kerio> should i actually recompile ffmpeg for fdk_aac
[19:37:33 CET] <furq> you could probably use he-aac on the low quality stream
[19:37:39 CET] <furq> otherwise no
[19:37:44 CET] <kerio> furq: can i keep ultrafast
[19:37:47 CET] <furq> sure
[19:38:00 CET] <furq> use veryfast if you can, but ultrafast at least has a tangible benefit
[19:38:10 CET] <kerio> well
[19:38:16 CET] <kerio> i have a number of streamers that varies between 0 and 1
[19:38:18 CET] <furq> zerolatency is actively bad in all ways for most use cases that i see it cargo-culted into
[19:38:27 CET] <kerio> on a server with load average of 0.24
[19:38:43 CET] <kerio> and 4 cores with HT
[19:38:47 CET] <furq> iirc it increases cpu usage and it definitely massively increases bandwidth and/or reduces quality
[19:39:07 CET] <furq> actually not iirc it does definitely increase cpu usage by using slice threading
[19:39:29 CET] <furq> so it's much slower and looks much worse
[19:39:37 CET] <kerio> furq: what about the scaling thing
[19:39:38 CET] <furq> i'm not on a crusade against it or anything
[19:39:51 CET] <furq> i don't know why you're setting the fps
[19:39:57 CET] <kerio> furq: what if i'm streaming at 60
[19:40:00 CET] <kerio> for shits n giggles
[19:40:03 CET] <furq> true
[19:40:16 CET] <kerio> fps=30 is a noop if the source is already at 30 right
[19:40:20 CET] <furq> well then what if you're streaming 21:9? what about that
[19:40:25 CET] <kerio> furq: or 4:3
[19:40:28 CET] <furq> right
[19:40:31 CET] <kerio> how do i make it adaptable
[19:40:36 CET] <furq> 1280:-2
[19:40:58 CET] <furq> it is a noop and if you're streaming games then i guess it doesn't matter
[19:41:06 CET] <furq> i was thinking more about streaming 24/25/29.97fps content
[19:41:13 CET] <furq> in which case it's bad
[19:41:16 CET] <kerio> true
[19:41:40 CET] <kerio> furq: i guess i want to cap the fps
[19:41:45 CET] <kerio> and i also want to cap the resolution
[19:41:57 CET] <kerio> ...but what if i'm streaming with a SAR that's not 1:1
[19:41:59 CET] <kerio> D:
[19:42:14 CET] <furq> i would consider getting rid of the middle variant and using veryfast instead of ultrafast
[19:42:19 CET] <furq> you could probably take a bit off the bitrate if you did that
[19:42:41 CET] <kerio> furq: i already put in veryfast
[19:42:45 CET] <furq> oh ok
[19:42:49 CET] <kerio> but i want this to kinda match twitch
[19:43:04 CET] <furq> fair enough
[19:43:08 CET] <kerio> how do i scale up to 1280x720 keeping the aspect ratio?
[19:43:15 CET] <furq> still 1280:-2
[19:43:24 CET] <kerio> er
[19:43:25 CET] <kerio> sorry
[19:43:26 CET] <kerio> down to
[19:43:29 CET] <kerio> i don't want to upscale
[19:43:32 CET] <furq> oh
[19:43:54 CET] <furq> scale=max(h, 1280):-2
[19:43:58 CET] <kerio> wouldn't 1280:-2 downscale to 1280x1024 and the likes
[19:44:02 CET] <furq> or it might be in_h
[19:44:17 CET] <kerio> like
[19:44:18 CET] <furq> it'd downscale to 1280x960 if the source is 4:3
[19:44:40 CET] <kerio> i'd rather have 960x720 if the source is 4:3
[19:44:49 CET] <furq> scale=-2:max(h, 720)
[19:45:00 CET] <kerio> but what if i'm streaming 21:9 :D
[19:45:12 CET] <furq> i leave that as an exercise to the reader
[19:45:33 CET] <kerio> scale=w=1280:h=720:force_original_aspect_ratio=decrease
[19:45:40 CET] <furq> oh right yeah
[19:46:09 CET] <furq> i think that will still upscale 480p video though
[19:46:29 CET] <kerio> D:
[19:46:34 CET] <kerio> this is too hard
[19:46:48 CET] <furq> yeah it does
[19:47:11 CET] <furq> it gets much more complicated if you want to handle lower and higher dars than 16:9
[19:47:32 CET] <furq> besides you're only ever going to be streaming 3:4
[19:47:58 CET] <kerio> yeah it's either 4:3 or 16:9 probably
[19:48:03 CET] <kerio> i'd like it to work dynamically tho
[19:48:13 CET] <kerio> i could just use two different ingests tho
[19:49:50 CET] <kerio> furq: do i ever need anything more than 128kbps aac
[19:50:03 CET] <furq> youtube uses 128kbps aac for 4k iirc
[19:50:05 CET] <furq> so you're probably fine
[19:50:17 CET] <furq> as long as it's stereo ofc
[19:51:01 CET] <kerio> yea i'm not handling mono audio dynamically
[19:51:02 CET] <kerio> fuck that
[19:51:06 CET] <kerio> OBS only does stereo anyway
[19:51:10 CET] <furq> i meant 5.1
[19:51:17 CET] <furq> it doesn't matter if you encode mono at 128k
[19:51:19 CET] <kerio> pls
[19:57:05 CET] <MattWBP> Hello there all, I am stuck with something that I'm sure is meant to be simple - would anyone be kind enough to help point me in the right direction? Am at wits end.
[19:57:48 CET] <MattWBP> QUESTION : I am trying to use ffmpeg to convert a linear EXR image sequence into a Rec709 DnXHD (as lossless as possible).
[19:58:58 CET] <MattWBP> My results at current are very close, but there remains a slight colorshift (greens going slightly red) and wondered if anyone has experienced this too.
[19:59:52 CET] <ossifrage> Well that is annoying concat doesn't like whitespace in filenames: [concat @ 0x5621f7b11aa0] Unsafe file name 'blah blah.mp4'
[20:00:42 CET] <kerio> furq: i'm getting like 22 seconds of delay :<
[20:00:53 CET] <furq> well yeah that's hls
[20:00:54 CET] <ossifrage> Even with the source files being quoted
[20:01:28 CET] <furq> ossifrage: add -safe 0 before -i
[20:01:53 CET] <furq> i don't think it's spaces in filenames, iirc you're supposed to have file:// in concat lists
[20:01:56 CET] <ossifrage> furq, yeah google turne dthat off
[20:02:08 CET] <furq> google?
[20:02:29 CET] <kerio> furq: how do i reduce lag
[20:02:30 CET] <kerio> :<
[20:02:32 CET] <ossifrage> furq, yeah google found the '-safe 0'
[20:02:35 CET] <furq> with hls?
[20:02:40 CET] <MattWBP> Pastebin of my current command : http://pastebin.com/htvEJLwn
[20:02:42 CET] <furq> you don't use hls
[20:02:44 CET] <kerio> :(
[20:02:47 CET] <furq> or you use a lower keyframe interval
[20:02:59 CET] <furq> hls latency is basically guaranteed to be at least two gops
[20:02:59 CET] <ossifrage> My -i file just had "file 'blah blah.mp4'"
[20:03:13 CET] <furq> ofc shorter gops = more requests = more overhead etc
[20:03:24 CET] <kerio> furq: should i match gops and fragments
[20:03:29 CET] <furq> you have to do that anyway
[20:03:38 CET] <furq> fragments have to start on a gop boundary
[20:03:43 CET] <kerio> doesn't nginx have a fragment length
[20:03:58 CET] <furq> yeah but it can be ignored
[20:04:09 CET] <furq> if you set 1-sec fragments on a file with 10-sec gops you'll get 10-sec fragments
[20:04:55 CET] <furq> obviously one fragment can contain multiple gops
[20:05:05 CET] <furq> so it's not completely useless
[20:06:57 CET] <kerio> furq: so shouldn't i set the fragment length to 0
[20:06:59 CET] <kerio> or eps
[20:07:00 CET] <kerio> idk
[20:07:11 CET] <furq> you can set it to 1 if you want
[20:07:21 CET] <furq> your clients probably won't like it though
[20:07:29 CET] <kerio> why not
[20:07:30 CET] <kerio> :<
[20:07:43 CET] <furq> well with 10-second gops a long http request isn't going to hitch the stream
[20:08:20 CET] <furq> ofc what you could also do is just put the rtmp link on the page and say "please use a real protocol in a real player or else it'll be shit"
[20:08:23 CET] <kerio> i think OBS defaults to 2 sec gops
[20:08:34 CET] <kerio> ah but i don't want to expose rtmp
[20:08:36 CET] <furq> well yeah you might as well match that in nginx and see what the client experience is like
[20:08:52 CET] <kerio> furq: hold on didn't you say that the fragment length will still be aligned to boundaries
[20:08:59 CET] <furq> yeah
[20:09:07 CET] <kerio> so if i set an incredibly small fragment length, i'll get one gop per fragment
[20:09:07 CET] <furq> so if you have 10 second fragments they'll each contain 5 gops
[20:09:22 CET] <furq> and yeah
[20:09:32 CET] <furq> if you set a fragment length lower than the gop length you'll just get the gop length instead
[20:09:39 CET] <BtbN> sometimes also two for some inexplicable reason
[20:09:50 CET] <kerio> BtbN: that's why you set it below the gop length
[20:10:00 CET] <furq> BtbN: is that with fixed size gops
[20:10:16 CET] <BtbN> yes, but with nginx-rtmp, never tested ffmpeg itself.
[20:10:21 CET] <furq> weird
[20:10:27 CET] <furq> maybe a quirk in their muxer
[20:10:36 CET] <kerio> hls_fragment 2.220446049250313e-16;
[20:10:38 CET] <BtbN> Couldn't get it to generate two second segments, even though I set it to 1 second fragments
[20:10:47 CET] <BtbN> allways ended up with 4 seconds
[20:10:52 CET] <furq> with 2-second gops?
[20:10:53 CET] <furq> weird
[20:11:03 CET] <furq> i wonder if it's against the spec or something
[20:11:13 CET] <kerio> should i use ffmpeg to generate the hls then
[20:11:18 CET] <kerio> with exec_push
[20:11:32 CET] <furq> shrug
[20:11:37 CET] <BtbN> it worked fine except for that for me, and I just accepted it
[20:11:54 CET] <furq> i've tried really short gop lengths and the stream kept hitching
[20:12:11 CET] <furq> remember you have to reload the playlist and then download a new fragment once per fragment
[20:12:22 CET] <furq> sometimes the playlist just didn't update in time
[20:12:45 CET] <kerio> furq: yeah but i have http 2
[20:12:46 CET] <kerio> :^)
[20:12:47 CET] <furq> four seconds is probably about what you want
[20:13:23 CET] <kerio> playlist length?
[20:13:26 CET] <kerio> doesn't matter, right
[20:13:31 CET] <kerio> should be like 3*fragment
[20:14:01 CET] <furq> it does matter if you care about latency
[20:14:17 CET] <furq> if your playlist has 10 fragments then clients will start 10 fragments behind afaik
[20:14:25 CET] <furq> depending on how the player is implemented
[20:14:29 CET] <kerio> how do i realtime again?
[20:14:41 CET] <furq> you use rtmp
[20:14:45 CET] <kerio> no i mean in ffmpeg
[20:14:47 CET] <kerio> it's -re
[20:14:51 CET] <furq> oh right yeah
[20:16:46 CET] <crst> Hi guys, how is the thing called that uses as many processors,cores,threads available to speed things up, again? And if I recall correctly, it's not recommended to use this with ffmpeg, right? Why exactly, again?
[20:17:18 CET] <klaxa> a "cluster"?
[20:17:32 CET] <DHE> or just multitheading?
[20:17:39 CET] <crst> DHE: yes!
[20:17:58 CET] <DHE> a lot of the ffmpeg defaults will use as many cores as possible. turning them down is usually only necessary if you have a crazy number of CPUs/cores available
[20:19:04 CET] <crst> DHE: I've got a regular 4 core i7 with and often it's using 25% only.
[20:20:54 CET] <kerio> fun, nwo i've got outright empty frames
[20:20:57 CET] <kerio> *fragments
[20:21:36 CET] <kerio> yeah it's super choking on it
[20:22:23 CET] <kerio> furq: hold on i'm transcoding without setting keyframes
[20:22:24 CET] <kerio> D:
[20:23:55 CET] <kerio> does rtmp have adaptive bandwidth or whatever
[20:24:30 CET] <BtbN> it has somewhat intelligent frame dropping
[20:29:13 CET] <Diag> kerio: what does mpeg look like without keyframes lol
[20:29:25 CET] <Diag> id assume detail takes forever to come in
[20:29:59 CET] <kerio> Diag: no, without setting a short-ish keyframe interval
[20:30:02 CET] <kerio> and well
[20:30:07 CET] <kerio> that's what intraframe refresh does actually
[20:30:19 CET] <Diag> kerio: intrawho rewhat
[20:30:21 CET] <kerio> but that's for ludicrously low latency video
[20:30:34 CET] <kerio> basically you can have only p frames and no i frames
[20:30:53 CET] <kerio> by encoding the p frames in a way that there's enough information to decode a thin column of pixels without past information
[20:31:01 CET] <kerio> and you make this column of pixels scan the image
[20:31:13 CET] <Diag> aight you lost me
[20:31:23 CET] <kerio> you can effectively spread the keyframe over all the frames
[20:31:29 CET] <Diag> huh
[20:31:32 CET] <Diag> interesting
[20:31:37 CET] <Diag> filesize differ?
[20:35:47 CET] <DHE> no, but for streaming it means that rather than taking the packet size spike of a proper keyframe, you spread it over 5 (?) consecutive frames
[20:36:53 CET] <kerio> it also means that you can build a packet and immediately send it
[20:36:56 CET] <kerio> because you know how big it will be
[20:40:33 CET] <Diag> ah interesting
[20:41:57 CET] <fyroc> Hello, I am working on a schedular system for video streaming with FFMPEG. My question is, if I make changes to the playlist.txt file while the process is running, will ffmpeg see/do the changes?
[20:43:00 CET] <Diag> probably not
[20:43:09 CET] <Diag> (but dont take my word for it)
[20:44:24 CET] <DHE> what (de)muxer are you using for that? I'm not aware of anything that handles ".txt" by default
[20:44:44 CET] <DHE> but I would also expect that it does not
[20:45:49 CET] <fyroc> ffmpeg -f concat -i playlist.txt -c copy output -f mpegts udp://<ip>:<port>
[20:46:00 CET] <fyroc> Similar code that I am using.
[20:46:25 CET] <fyroc> In the playlist.txt is just a list of videos
[20:46:48 CET] <fyroc> The idea is to be able to scedhule my videos without having to end the process.
[20:47:23 CET] <fyroc> If my system can handle the schedule and just update the playlist.txt.. there will be no interuptions
[20:47:57 CET] <fyroc> Which is actually how a lot of shoutcast web auto djs does it.
[20:53:34 CET] <DHE> a source code scan suggests concat only reads its file list once on startup...
[20:54:08 CET] <fyroc> That's sad
[20:54:40 CET] <fyroc> I need a way to be able to schedule video streaming at specific times.
[20:54:42 CET] <DHE> as an alternative, you may be able to feed ffmpeg content from a pipe which can continuously send content in whatever format you're okay with and have ffmpeg do the heavy lifting
[20:57:37 CET] <fyroc> @DHE is there any documentation on piping?
[20:58:07 CET] <kerio> Diag: anyway, with intraframe refresh and slice-based threading you can get to barely more than 1 frame of latency
[20:58:19 CET] <Diag> hmm
[20:58:22 CET] <kerio> which is pretty impressive :o
[20:59:44 CET] <DHE> nothing specific. pipes are common under unix, even windows has some pipe support
[21:06:21 CET] <lacrymology> I'm looking at this https://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo, and I see this `-vf subtitles=video.mkv`... what's the -vf option mean?
[21:06:27 CET] <furq> video filter
[21:06:51 CET] <furq> https://ffmpeg.org/ffmpeg-filters.html
[21:06:53 CET] <furq> there's a few of them
[21:07:16 CET] <lacrymology> ah
[21:07:32 CET] <lacrymology> ok, let me see if this worked
[21:07:51 CET] <lacrymology> I'm using a 3rd party that USES ffmpeg and passes parameters along, not sure if it'll work
[21:08:16 CET] <lacrymology> I'm trying to watch something through chromecast
[21:10:58 CET] <Futter> Hello guys :) I have a DVB-T stream, which includes 4 channels. So if I want to convert one specific channel I need to specify the video and audio stream id for the -map argument. The problem is, that everytime I pipe the stream into ffmpeg the id's are changing. So I have 2 calls to ffmpeg -> 1) Pipe stream to ffmpeg and parse the id's from the output. 2) Pipe the stream to ffmpeg and use the gained id's for conversion. But 2) won't 
[21:11:56 CET] <BtbN> If the DVB provider is somewhat decent, the IDs shouldn't change.
[21:13:57 CET] <Futter> BtbN: It are the biggest german tv providers/channels :/ Are the id's send by the providers or is ffmpeg arbitrary setting them by itself?
[21:14:14 CET] <BtbN> they are sent with the stream, yes
[21:15:25 CET] <Futter> BtbN: Here at example 9 (https://trac.ffmpeg.org/wiki/Map) it says: "if you are receiving "live data" just specifying an index might not work because it can change from run to run"
[21:16:13 CET] <Futter> My stream is also a mpeg2-ts stream. And it really changes everytime I run ffmpeg again :( What could I do? Any trick?
[21:16:36 CET] <BtbN> look at example 8
[21:16:46 CET] <BtbN> It has -map 0:p:1344
[21:16:49 CET] <Futter> *sorry I meant example 8
[21:17:34 CET] <Futter> BtbN: But what does this do? Will it use the audio and video for the program 1344? Or will it only use the video?
[21:17:34 CET] <BtbN> can you paste the ffprobe output for your stream?
[21:17:43 CET] <BtbN> ffmpeg -i INPUT -map 0:p:1344 OUTPUT # pulls in both inputs from program 1344, channel "7 Digital" in this case
[21:17:43 CET] <Futter> Of course one second
[21:17:51 CET] <BtbN> it says what it does right there
[21:19:08 CET] <Futter> BtbN: Here it is: http://pastebin.com/uGmJE5eC
[21:19:44 CET] <BtbN> it has the program IDs right there. So, if you want for example just VOX HD, you do -map 0:p:16965
[21:19:46 CET] <Aerroon> hey, so i have a problem
[21:19:57 CET] <BtbN> And those IDs come right from the TV provider, they shouldn't ever change
[21:20:00 CET] <Aerroon> when i record my clips with OBS the audio and video tracks are sometimes of different length
[21:20:39 CET] <Aerroon> now video players deal fine with it by either having a static image if new frames (?) don't come up
[21:21:09 CET] <Futter> BtbN: Oh cool! Thank you very much! The solution was there, but I didn't understand it. Have a great day BtbN :)
[21:21:15 CET] <Aerroon> but if i demux with ffmpeg then the video track's length is somewhere between +1 seconds to -3 seconds different from the audio track's length
[21:21:32 CET] <Aerroon> is there a way for me to demux in a way where both tracks are the exact same length and still in sync?
[21:21:44 CET] <Aerroon> i know that it won't fix the video frames at the start, but the goal ist o just make editing easier
[21:22:07 CET] <BtbN> Aerroon, add -shortest
[21:22:29 CET] <Aerroon> so that one picks the shortest clip and keeps both at that length?
[21:22:36 CET] <Aerroon> thank you!
[21:22:37 CET] <BtbN> it stops encoding when the first stream ends
[21:22:47 CET] <BtbN> so it won't fix a misalign at the beginning
[21:22:48 CET] <Aerroon> but that's not the problem
[21:22:54 CET] <Aerroon> the ends of both tracks line up
[21:22:56 CET] <Aerroon> the beginnings don't
[21:23:36 CET] <BtbN> If you know how long the gap is, you can add -ss with that length
[21:23:48 CET] <Aerroon> well, this is like a daily task
[21:24:04 CET] <Aerroon> right now in editing software i just align it by the ends and then cut the fronts
[21:24:25 CET] <Aerroon> but this is annoying and i'd like to know if maybe there's a way i could pad the video or audio track at the front so they end up being equal length
[21:24:30 CET] <BtbN> sounds more like OBS is doing something weird, producing desynced output
[21:24:55 CET] <Aerroon> well i can't do anything about that at all
[21:25:02 CET] <Aerroon> it might very well not even be obs but quicksync
[21:25:20 CET] <BtbN> if you seek forward with -ss to a point where both audio and video tracks are running, you will have a clean start
[21:25:36 CET] <Aerroon> ahhhhhh that's actually a good idea
[21:25:42 CET] <Aerroon> i could just seek ahead 2 seconds in every demuxing
[21:26:00 CET] <Aerroon> and that should cover it in like 99% of cases
[21:26:07 CET] <Aerroon> thank you!
[21:27:35 CET] <NineChickens> o/
[21:31:51 CET] <NineChickens> bit of an issue/stupid question
[21:31:58 CET] <NineChickens> how do I install ffmpeg?
[21:32:24 CET] <c_14> OS?
[21:32:32 CET] <NineChickens> Win10
[21:32:34 CET] <DHE> that's highty platform depending. apt-get install ffmpeg  # though it may be an old version
[21:32:55 CET] <NineChickens> I downloaded the .tar.bz2 off of ffmpeg.org
[21:33:00 CET] <c_14> http://ffmpeg.zeranoe.com/builds/
[21:33:14 CET] <c_14> Or build it yourself with msys/mingw
[21:34:25 CET] <NineChickens> If I download it off of zeranoe do I just run ffmpeg.exe?
[21:34:56 CET] <c_14> yes
[21:36:36 CET] <NineChickens> aah ok
[21:36:42 CET] <NineChickens> >instant CTD
[21:36:45 CET] <NineChickens> goddammit
[21:36:56 CET] <c_14> eeeh
[21:37:00 CET] <c_14> You run it from a terminal
[21:37:02 CET] <c_14> There's no gui
[21:37:10 CET] <c_14> If you run the exe it'll spawn a terminal
[21:37:11 CET] <c_14> Then exit
[21:37:15 CET] <c_14> and then the terminal closes
[21:39:15 CET] <Diag> lol?
[21:39:20 CET] <Diag> couldnt stand no gui
[21:59:24 CET] <Futter> BtbN: If I do it with "-map 0:p:16961" I will get an error on the teletext stream. It says "Automatic encoder selection failed for output stream #0:2. Default encoder for format mp4 (codec none) is probably disabled. Please choose an encoder manually. Error selecting an encoder for stream 0:2" Where 0:2 is "    Stream #0:2[0x566](deu): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)"
[21:59:48 CET] <BtbN> Can probably just add -sn
[21:59:51 CET] <kerio> who should i bother for a problem in the demuxer of some movie files from a videogame? :3
[21:59:56 CET] <BtbN> if you don't want subtitles, that is
[22:00:14 CET] <BtbN> And/Or -c copy, if you don't want to transcode.
[22:04:22 CET] <Futter> BtbN: Yea :D -sn did the trick! Thank you again :)
[22:04:48 CET] <furq> i think you can mux dvb_teletext into mkv if you want to keep it
[22:05:06 CET] <BtbN> yeah, but you need -c copy for that, as there is no encoder for it, I think
[22:05:09 CET] <furq> yeah
[22:05:30 CET] <llogan> kerio: you could make a bug report if there isn't a related one already
[22:05:30 CET] <fyroc> Is there a piping example anywhere? I see a lot of piping examples for outputs but I need it to "ou may be able to feed ffmpeg content from a pipe which can continuously send content in whatever format you're okay with"
[22:11:10 CET] <llogan> ffmpeg -i - ... output
[22:11:32 CET] <llogan> you may have to add additional input options
[22:12:48 CET] <Futter> BtbN: Thank you! Aftet a time audio and video are not sync. anymore and I think the audio is faster. Here is are my arguments: http://pastebin.com/7g3yKMfu Is there anything I should change? I'm piping the output of a dvb-t stick to ffmpeg and then his ouput to a server.
[22:13:55 CET] <llogan> are you sure you need the "-r 25" and "-vsync 1"?
[22:13:56 CET] <BtbN> outputting mp4 to stdout doesn't seem like a good idea to me
[22:14:29 CET] <BtbN> And the reset_timestamps + vsync thing looks suspicious
[22:15:01 CET] <Futter> BtbN: The problem is, I need to display it in the html5 <video> tag in chromium. So Chromium only supports mp4/h.264. Therefore I did it
[22:15:15 CET] <BtbN> so output hls or dash, and play that
[22:15:38 CET] <BtbN> hls is a little less braindead
[22:15:45 CET] <Futter> BtbN: Okay, I will remove these arguments. Any argument to keep video and audio sync?
[22:16:11 CET] <Futter> BtbN: Oh ok, then I need to investigate a little more in HLS as I don't know anything about it.
[22:16:14 CET] <BtbN> doing nothing usually achives that
[22:16:57 CET] <Futter> BtbN: Ok. Do I need the "-b:a 128k -ac 2 -b:v 1024k?
[22:17:33 CET] <BtbN> sure, if you want that bitrate
[22:20:26 CET] <Futter> BtbN: Actually I just want 1) h.264 video format and  2) video and audio synchronously. The other arguments are actually just from different examples
[22:21:11 CET] <BtbN> if your transcode is running at full speed, so x1.00, you should be fine, if you get rid of the weird sync parameters
[22:21:24 CET] <BtbN> no idea how that botched mp4 behaves though
[22:28:03 CET] <kerio> llogan: even if it's one of those formats that literally only exists as a one-off thing
[22:28:18 CET] <kerio> ?
[22:29:27 CET] <Futter> BtbN: It starts like this: "ffmpeg -> frame=  335 fps= 55 q=19.0 size=    5733kB time=00:00:13.04 bitrate=3600.0kbits/s dup=142 drop=179 speed=2.13x    " And then it looks like this: "ffmpeg -> frame= 2391 fps= 27 q=20.0 size=   31411kB time=00:01:35.34 bitrate=2698.7kbits/s dup=142 drop=2235 speed=1.08x   "
[22:29:55 CET] <BtbN> yeah, that's about to be expected. As long as it never drops below 1.00x, you're fine.
[22:30:10 CET] <Futter> BtbN: Okay, thank you very much again :)
[22:59:31 CET] <stephy-here> guys
[22:59:37 CET] <stephy-here> why u talk like robotz ?:D
[23:02:18 CET] <iive> are you insulting our AI ?
[23:40:40 CET] <stephy-here> oh
[23:40:46 CET] <stephy-here> ai  overheated? :D
[23:41:21 CET] <Diag> Request timed out.....
[23:41:41 CET] Last message repeated 3 time(s).
[23:41:41 CET] <Diag> 100% Packet Loss
[23:57:10 CET] <llogan> kerio: sure. someone may find it interesting enough to poke.
[23:58:06 CET] <furq> depends what game it is really
[23:58:15 CET] <kerio> monkey island 3
[23:58:25 CET] <furq> well nobody's ever heard of that
[23:58:39 CET] <kerio> >:C
[23:59:06 CET] <kerio> i'm sorry, it's not a game for weebs furq
[23:59:10 CET] <furq> it's no bad rats is it
[23:59:49 CET] <kerio> anyway, it correctly identifies the file as a smush animation file
[23:59:56 CET] <kerio> but the video part has broken palettes
[23:59:59 CET] <kerio> and it doesn't find the audio
[00:00:00 CET] --- Tue Jan 24 2017


More information about the Ffmpeg-devel-irc mailing list