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

burek burek021 at gmail.com
Wed Jan 10 03:05:01 EET 2018


[00:01:27 CET] <alexpigment> GuiToris: anyway, unless you're having a problem, it's probably easier to use the concat demuxer rather than the concat protocol, so that you don't have to deal with the intermediate files
[00:02:37 CET] <adrusi> I've had the stream running for an hour with mpv and I haven't heard any distortion yet, I think abandoning ffplay may have been the solution
[00:02:45 CET] <adrusi> thanks everyone
[00:03:19 CET] <GuiToris> alexpigment, I've converted them into mkv, that command still won't work
[00:03:31 CET] <GuiToris> I'll try the other solution
[00:03:40 CET] <GuiToris> I saw there are 3
[00:03:52 CET] <alexpigment> GuiToris: i think the key that you're missing is that the method you used only with with MPEG TS files
[00:03:54 CET] <alexpigment> not mkv, not mp4
[00:04:10 CET] <alexpigment> so yes, try the steps under the concat demuxer instead
[00:04:26 CET] <alexpigment> *only works, rather
[00:05:54 CET] <GuiToris> alexpigment, this one, right ? ffmpeg -f concat -safe 0 -i mylist.txt -c copy output
[00:06:14 CET] <alexpigment> yes
[00:07:31 CET] <GuiToris> alexpigment, this one works, the previous one nay
[00:07:54 CET] <alexpigment> that seems to be consistent with the documentation :)
[00:08:56 CET] <GuiToris> I think I usually used this method, in the beginning I didn't like it though, -safe 0 was not included and it didn't really work
[00:09:19 CET] <alexpigment> there should be a map on this page
[00:09:26 CET] <alexpigment> of scenarios where each method will and won't work
[00:09:53 CET] <alexpigment> but there isn't ;)
[00:09:59 CET] <GuiToris> I guess I tired the other method as well and worked at that time, no clue what happened to it
[00:10:25 CET] <alexpigment> yeah, a lot of it *usually* comes down to if you're re-encoding or not
[00:10:31 CET] <alexpigment> if you're copying, it's very specific
[00:11:19 CET] <GuiToris> I usually reencode, copy often makes defective files
[00:11:57 CET] <alexpigment> well, if the files change format from clip to clip, it'll definitely cause problems
[00:13:38 CET] <GuiToris> alexpigment, can I cut at keyframes? This is a frequent problem for me. ffmpeg -i file -ss 00:01:00 output and it starts with black most of the time
[00:13:54 CET] <GuiToris> that's an other reason why I like reencoding
[00:14:12 CET] <alexpigment> you mean can you cut *between* keyframes?
[00:14:49 CET] <alexpigment> if so, no. you'll want to re-encode. i generally use VideoRedo though, as it's a "smart cutter". it only encodes the incomplete GOPs at the beginning and end
[00:16:06 CET] <GuiToris> alexpigment, I may not have enough knowledge about this, I thought I wanted to cut at keyframes
[00:16:22 CET] <alexpigment> if you cut at keyframes, everything should be fine, i would think
[00:17:30 CET] <therage3> all right, figured it out.
[00:17:40 CET] <therage3> apparently they used level 5 compression for the FLAC file
[00:21:51 CET] <GuiToris> alexpigment, isn't there an option to cut at the closest keyframe?
[00:22:45 CET] <GuiToris> alexpigment, that would be okay if it's not perfectly 00:01:00
[00:22:50 CET] <alexpigment> put the -ss option before the input
[00:25:08 CET] <GuiToris> alexpigment, I tried but it didn't help, if I don't reencode it usually starts with black picture
[00:25:25 CET] <GuiToris> alexpigment, I'll try once more, maybe I'm wrong
[00:26:21 CET] <alexpigment> a black picture is really too vague for me to know what's going on there
[00:26:43 CET] <alexpigment> it's either starting between keyframes, or it's starting at the beginning of the file, or [other possibility]
[00:27:03 CET] <alexpigment> but -ss [time] before -i [file] should go to the nearest keyframe before the specified time
[00:27:14 CET] <sfan5> wasn't that behaviour changed?
[00:27:17 CET] <alexpigment> now if you have really long GOPs, who knows where that point could be
[00:27:34 CET] <alexpigment> sfan5: if it was, i didn't know about it
[00:27:53 CET] <alexpigment> [also, i'm not a dev or an authority, so i'm not implying that i *should have* known about it]
[00:29:49 CET] <GuiToris> nono, you are right, it starts betwen keyframes, that's my problem
[00:29:58 CET] <GuiToris> I'd like to avoid this
[00:30:33 CET] <GuiToris> I've tried, it's still awkward
[00:30:53 CET] <GuiToris> If I reencode the video it's much smoother
[00:31:39 CET] <alexpigment> GuiToris: well, i think frame accuracy is important, so I understand wanting to re-encode
[00:31:48 CET] <alexpigment> still, that's why i use a smart cutter, because it's the best of both worlds
[00:31:51 CET] <alexpigment> sadly there's not a free one
[00:32:13 CET] <alexpigment> but hell, i've got my $70 worth and then some
[00:32:19 CET] <alexpigment> anyway, gotta run
[00:32:54 CET] <GuiToris> ok, thank you for your help alexpigment
[01:53:43 CET] <pally> The following command will convert an animated gif to an mp4
[01:53:46 CET] <pally> ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4
[01:54:09 CET] <pally> I'd like to lookup what 'iw' means.
[01:54:17 CET] <c_14> input_width
[01:54:20 CET] <c_14> it's just a shorter alias
[01:54:55 CET] <pally> c_14 the documentation is kinda big, do you know on which section/page I can look this stuff up?
[01:54:58 CET] <furq> !filter scale @pally
[01:54:58 CET] <nfobot> pally: http://ffmpeg.org/ffmpeg-filters.html#scale-1
[01:55:17 CET] <c_14> right there
[01:55:26 CET] <pally> thanks guys!
[01:59:09 CET] <pally> while we are at it, what could possibily go wrong if we didn't scale=trunc(iw/2) * 2: trunc(ih/2)*2
[01:59:33 CET] <pally> intuition tells me it is the thing to do, but what'd happen if we don't?
[01:59:56 CET] <furq> it would bail out with an error
[02:00:01 CET] <furq> yuv420p requires mod2 dimensions
[02:00:09 CET] <furq> you can just do scale=floor(iw/2)*2:-2 though
[02:00:15 CET] <furq> or trunc or whatever
[02:01:16 CET] <furq> i thought you might be able to do -2:-2 but apparently not
[02:02:33 CET] <furq> also i meant "it might bail out with an error", obv if the input is mod2 then that's fine
[02:23:53 CET] <hendry> hi, how do I convert  33729 kb/s (from ffprobe) to Mbps? Google says 269.832 Megabit per second which is wrong, no?
[02:25:05 CET] <spaam> hendry: its in kilobits
[02:25:29 CET] <spaam> hendry: 33729 / 1000  to get mbps  :)
[02:26:07 CET] <hendry> how does one distuingish between kilobits and kilobytes then?
[02:26:39 CET] <therage3> b and B
[02:26:42 CET] <therage3> respectively
[02:27:02 CET] <spaam> what therage3 said.
[02:27:13 CET] <hendry> when i put 33729 kb/s in Google, Google thinks they are kilobytes though ?
[02:27:23 CET] <hendry> https://twitter.com/kaihendry/status/950532227242307586
[02:27:40 CET] <therage3> also, what some people do is use an "i" (as in "kiB") to explicitly state that powers of 2 are being used, as is customary in computing
[02:27:47 CET] <therage3> instead of powers of 10, used elsewhere in science
[02:28:44 CET] <hendry> so Google basically interprets kb/s in correctly here?
[02:28:46 CET] <kerio> on the one hand, powers of 10 in computer science don't make much sense, and are ofter just used to embiggen numbers for the purpose of marketing
[02:29:05 CET] <kerio> on the other hand, SI prefixes are not really a matter of opinion
[02:29:07 CET] <hendry> so Google basically interprets kb/s incorrectly here? they assume kb/s is kB/s
[02:30:23 CET] <furq> yeah you need to type out kilobit for google to make sense of it
[02:30:24 CET] <spaam> yes.
[02:30:52 CET] <furq> or Kb works too
[02:31:09 CET] <furq> just not kb for some reason
[02:32:20 CET] <therage3> Kb makes my eyes bleed, though; the "k" is _never_ supposed to be uppercase (regardless of it standing for 1000 or 1024)
[02:32:29 CET] <hendry> i usually use Google for my unit conversions and now I've lost faith a bit here. Are there good alternatives?
[02:35:01 CET] <furq> you can understand google being a bit loose with it
[02:35:16 CET] <furq> it would be annoying if it interpreted mb as millibits
[02:46:07 CET] <hendry> so in youtube's bitrate guide https://support.google.com/youtube/answer/1722171?hl=en the unit of Mbps = Mega BIT per second
[02:46:41 CET] <furq> well yeah
[02:46:46 CET] <furq> b is bit, B is byte
[02:47:12 CET] <furq> i think google just get enough people never pressing shift in the google search box that they correct for the more common one
[02:47:13 CET] <therage3> that's the usual convention; a bunch of societies and organizations have that standardized
[02:47:22 CET] <therage3> (that B is byte, b is bit, I mean)
[02:54:52 CET] <pally> hey furq
[02:55:44 CET] <pally> Earlier, you explained to me that it is yuv420p that requires mod2 dimensions.
[02:55:47 CET] <pally> https://unix.stackexchange.com/questions/40638/how-to-do-i-convert-an-animated-gif-to-an-mp4-or-mv4-on-the-command-line
[02:56:06 CET] <furq> yeah that's wrong
[02:56:31 CET] <pally> The answer says "MP4 videos using H.264 need to have dimensions that are divisible by 2"
[02:56:36 CET] <furq> ^
[02:56:43 CET] <pally> furq, which one is it?
[02:56:58 CET] <furq> oh
[02:57:09 CET] <furq> that answer you posted is wrong, i mean
[02:57:11 CET] <furq> the thing i said is right
[02:57:21 CET] <pally> furq, :-) alright.
[02:58:11 CET] <pally> While for what I want to achieve, animated_gif->mp4, doesn't require me to learn about the technical details
[02:58:35 CET] <therage3> another example of having to be careful when reading things online
[02:58:40 CET] <pally> I am writing down notes about that command so I can reference it later and still make sense of it.
[02:58:48 CET] <therage3> what's particularly troubling is that that's the highest rated answer on there
[02:58:56 CET] <furq> well the command is technically all fine
[02:58:59 CET] <furq> just the explanation is wrong
[02:59:01 CET] <therage3> so one tends to think "oh ok this must be right"
[02:59:04 CET] <therage3> but it isn't
[02:59:24 CET] <furq> after a while you learn to disregard any ffmpeg-related information you found online that isn't on ffmpeg.org
[02:59:26 CET] <therage3> I swear, when googling things, you need to have this mental filter thing
[02:59:37 CET] <furq> excluding the ffmpeg wiki obviously
[03:00:14 CET] <furq> although at least the wrongheaded stuff on the ffmpeg wiki is usually easy to spot
[03:00:19 CET] <pally> IRC is my friend; though, sometimes I get the *treatment* in certain rooms
[03:00:19 CET] <pally> haha
[03:00:26 CET] <furq> generally you can tell it's wrong because the page title contains the word "streaming"
[03:00:37 CET] <therage3> lol
[03:01:26 CET] <furq> i'm pretty sure we all know that most unofficial ffmpeg information is wrong and that the official docs are a bit dense
[03:02:37 CET] <furq> i don't mind answering elementary questions as long as it doesn't end up with someone trying to get me to do an entire day's work for them
[03:02:42 CET] <furq> unless they want to give me their day's wages
[03:03:34 CET] <pally> It's okay, I make minimum wage.  haha... j/k
[03:04:35 CET] <hendry> why do video bitrates and internet speeds use kilobits instead of kilobytes? is there a particular technical reason?
[03:06:15 CET] <furq> probably because bigger numbers sound more impressive
[03:06:38 CET] <furq> 100Mbps sounds way more impressive than 12.5MBps
[03:09:04 CET] <c3r1c3-Win> Because way back in the day stuff ran so slowly that you measured stuff in bits, among other reasons.
[03:30:01 CET] <hendry> when i use ffmpeg to convert a raw video, and the result is a much lower bit rate. 142 Mbps to 33 Mbps... how can I trust or know there is no drop in quality?
[03:30:35 CET] <hendry> Original: https://www.youtube.com/watch?v=7Gy68_6mxOs FFmpeg processed: https://www.youtube.com/watch?v=RNSN3BTV_dA
[03:30:45 CET] <teratorn> hendry: raw video is huge.. isn't that to be expected?
[03:31:17 CET] <hendry> teratorn: well, I'm confused since Youtube says my result should be 53-68 Mbps
[03:31:36 CET] <hendry> so if ffmpeg produces a lower bit rate, how I screwed up!?
[03:31:50 CET] <hendry> sorry, *have* i screwed up?
[03:31:53 CET] <teratorn> what is your command-line?
[03:33:01 CET] <hendry> https://github.com/kaihendry/recordmydesktop2.0/blob/master/htmlvideo#L36
[03:33:13 CET] <hendry> ffmpeg -y -i "${input}" -movflags +faststart -pix_fmt yuv420p -c:v libx264 $output // basically
[03:36:05 CET] <furq> i'm surprised it's that big to be honest
[03:36:19 CET] <hendry> furq: the raw video ? or the processed?
[03:36:23 CET] <furq> the encoded video
[03:36:26 CET] <furq> that's a lossy encode
[03:36:38 CET] <furq> the only way to know you're not losing quality with a lossy encode is with your eyes
[03:36:55 CET] <hendry> it is a 4k 50FPS video. isn't 33 Mbps reasonable ?
[03:36:55 CET] <furq> or not losing an amount of quality you'd care about
[03:36:59 CET] <furq> i guess
[03:37:02 CET] <Durandal> Where does youtube say this thing about 53-68 mbps?
[03:37:04 CET] <furq> i'm surprised the original is so small then
[03:37:21 CET] <hendry> Durandal: https://support.google.com/youtube/answer/1722171?hl=en
[03:37:22 CET] <furq> that can't possibly be rawvideo
[03:37:36 CET] <furq> 2160p50 rawvideo will be over 1gbps
[03:37:44 CET] <hendry> furq: when i saw raw video, i mean the video I capture on my GH5's sdcard.
[03:37:47 CET] <furq> oh
[03:37:52 CET] <hendry> furq: what term should I be using ?
[03:37:59 CET] <furq> idk i assume that's h264
[03:38:07 CET] <furq> depends on the camera
[03:38:12 CET] <furq> you can probably just upload that straight to youtube
[03:38:17 CET] <Durandal> yeah
[03:38:22 CET] <furq> or rather you can definitely do that, you should probably do that
[03:38:40 CET] <alexpigment> you can safely assure that any quality you lose before uploading will be a drop in the bucket compared to what youtube does with it ;)
[03:38:51 CET] <furq> youtube 4k isn't that bad
[03:38:56 CET] <furq> although idk if it does 4k50
[03:38:57 CET] <alexpigment> so yeah, save time, upload your direct video
[03:39:08 CET] <alexpigment> if you care about quality, vimeo is a better spot
[03:39:20 CET] <hendry> well, my use case here is that I produce 5GB files. Family videos. I want to archive them. Lots of 5GB files are stressing out my storage.
[03:39:33 CET] <alexpigment> archiving to youtube?
[03:39:39 CET] <hendry> I noticed if I run ffmpeg -y -i "${input}" -movflags +faststart -pix_fmt yuv420p -c:v libx264, over the files, I can make the file 1GB roughly
[03:39:50 CET] <Durandal> Squash them using HEVC
[03:39:54 CET] <teratorn> unless i'm wrong raw 4k 3840x2160 yuv420 video should be 4746Mbps
[03:40:07 CET] <hendry> alexpigment: currently I archive things to S3
[03:40:09 CET] <furq> hevc will take a real long time
[03:40:15 CET] <Durandal> well, true
[03:40:21 CET] <hendry> alexpigment: i am not sure I can trust Youtube with private family videos? maybe i should
[03:40:23 CET] <Durandal> but it would probably reduce those to 6-8Mbps
[03:40:26 CET] <alexpigment> you should specify a CRF tbh
[03:40:27 CET] <furq> uh
[03:40:32 CET] <furq> that seems incredibly unlikely
[03:40:32 CET] <Durandal> -c:v libx265 -x264-params crf=25
[03:40:42 CET] <alexpigment> crf 25 is too low imho
[03:40:44 CET] <Durandal> okay maybe I'm incredibly stingy with quality then
[03:40:47 CET] <alexpigment> set it to at least crf 20
[03:40:54 CET] <furq> 20 for x265?
[03:40:59 CET] <alexpigment> no, x264
[03:41:09 CET] <furq> i assume that should have been -x265-params
[03:41:18 CET] <Durandal> 20 with x265 is "high quality" for me
[03:41:34 CET] <furq> hendry: you might want to downscale them if you want to save size
[03:41:44 CET] <furq> maybe drop to 1440p or so
[03:41:53 CET] <hendry> well, i am not keen to make crf tweaks if I am struggling to tell these apart: Original: https://www.youtube.com/watch?v=7Gy68_6mxOs FFmpeg processed: https://www.youtube.com/watch?v=RNSN3BTV_dA
[03:41:56 CET] <alexpigment> man, i'll just say it. buy a bigger hard drive. stop all this re-encoding nonsense
[03:42:09 CET] <hendry> furq: i prefer to keep the resolution
[03:42:13 CET] <alexpigment> sorry, i don't agree with throwing away quality because of some cheap decision today
[03:42:13 CET] <furq> hendry: you can't really compare them on youtube unless that's where you plan on archiving them
[03:42:24 CET] <furq> youtube reencodes to a much lower bitrate
[03:42:24 CET] <hendry> is HEVC a good option for archival with ffmpeg ?
[03:42:27 CET] <alexpigment> you bought a camera that does 4k. buy a hard drive
[03:42:35 CET] <hendry> furq: i plan to archive to S3 tbh
[03:42:38 CET] <Durandal> It's what I do
[03:42:43 CET] Action: Durandal shrugs
[03:42:46 CET] <furq> yeah don't pay any attention to what youtube does then
[03:42:49 CET] <furq> compare the originals
[03:43:01 CET] <furq> ideally on a big screen
[03:43:13 CET] <hendry> furq: is a MBP 2016 Retina screen good enough?
[03:43:19 CET] <furq> well it's not very big
[03:43:24 CET] <Durandal> probably too dense, yeah
[03:43:30 CET] <furq> other than that it's a good enough panel
[03:43:39 CET] <Durandal> throwing the picture onto a 50" TV will really bring out the quality differences
[03:43:45 CET] <friki> Hi! I'm trying to ffplay audio from stdin but even with -loglevel trace ffplay doesn't show mutch info. Something like that: "./myradiocommand | ffplay -i -". I think it may be related to pipe buffer...
[03:43:47 CET] <furq> if you have a 4k tv with a good panel then yeah
[03:43:50 CET] <hendry> oh crap nuts, I don't have one of those
[03:43:50 CET] <furq> that's a much better thing to use
[03:44:04 CET] <Durandal> given your situation the retina is probably fine though
[03:45:21 CET] <Durandal> friki what is producing the audio stream? and is it just raw waveform?
[03:45:22 CET] <hendry> but back to archival and small file sizes. Is HEVC usable? Or does it take way longer than H264? Or has some other down sides I should be aware of?
[03:45:29 CET] <friki> It works in case I do: ./myradiocomand > /tmp/audo.ts & ffplay -i /tmp/audio.ts
[03:45:40 CET] <alexpigment> hendry: it takes a lot longer
[03:45:45 CET] <furq> hevc is much slower than x264 veryslow if you want it to actually beat x264 veryslow
[03:46:01 CET] <furq> you can use fast settings with hevc but you'll end up with worse results than x264
[03:46:04 CET] <friki> Durandal: it's a mpegts format. Also tested: "... | ffplay -f mpegts -i -"
[03:46:09 CET] <furq> and a much harder to decode and less compatible format
[03:46:21 CET] <furq> it's only worth hevc if you're prepared to encode at 2fps
[03:46:24 CET] <furq> +using
[03:46:27 CET] <alexpigment> if your goal is to not lose quality, don't re-encode. your source is already lossy. you're going to do more harm than good. the file sizes may be big on your macbook, but are small on a $100 4tb hard drive
[03:46:43 CET] <alexpigment> save your time
[03:46:46 CET] <furq> $100 seems like a bit of a bargain for 4TB
[03:47:06 CET] <alexpigment> ok, $120 for a better 4tb hard drive
[03:47:10 CET] <Durandal> I think costco had 6Tb for $129 on christmas
[03:47:10 CET] <furq> but yeah the originals aren't THAT big for 4k50
[03:47:16 CET] <alexpigment> hgst deskstar nas is good for that price range
[03:47:44 CET] <hendry> i'm tired of USB drives and maintaining a NAS. I'm uploading to S3, but I am keen not to pay 5x than I need to
[03:48:21 CET] <alexpigment> hendry: i question your value system. but okay
[03:48:29 CET] <alexpigment> [i'm done here. sorry guys]
[03:49:18 CET] <furq> i mean
[03:49:32 CET] <furq> you could just stick them all on a usb disk, never plug it in, and then have a transcoded copy somewhere you can view easily
[03:49:46 CET] <furq> google photos is basically private youtube with unlimited storage
[03:49:55 CET] <furq> in that it uses the youtube backend and transcodes everything unless you pay them
[03:50:28 CET] <friki> Durandal: Also tested: "... | tee audio.ts | ffplay -f mpegts -i -". The audio.ts file grows as spected, and is playable while ffplay still freezed reading the pipe:
[03:50:31 CET] <hendry> last time i looked at google photos, it was even more painful to upload to than Youtube
[03:50:40 CET] <hendry> (from the CLI)
[03:50:58 CET] <furq> i wrote a tool to upload to google photos but i never finished it because it's kind of awful
[03:51:07 CET] <furq> but it's better than that garbage node.js tool that you probably ended up using
[03:51:21 CET] <hendry> and then getting it back? at least with youtube, there is youtube-dl
[03:51:35 CET] <hendry> and a well defined URL
[03:51:37 CET] <furq> well yeah that's why i'm suggesting keeping the originals on cold storage somewhere
[03:51:46 CET] <hendry> the URLs that Google photos produce are a bit worrisome
[03:51:51 CET] <furq> they change a lot as well
[03:52:05 CET] <furq> i've spent more time on this than i'd care to admit lol
[03:52:21 CET] <furq> it's just standard google stuff where it changes all the time and they don't document it or offer any support
[03:52:32 CET] <furq> and also things keep breaking in minor ways that they never acknowledge
[03:52:37 CET] <furq> like the drive integration never works properly
[03:53:07 CET] <furq> but if you just want a lower-quality copy that you can view easily then it's a decent solution
[03:53:18 CET] <furq> if you want that to be your master copy then obviously not
[03:54:27 CET] <hendry> well, i'd like to use at as some backup (second copy?) of the stuff I place in S3. S3 would be stuff I goto when I want to start editing in FCPX.
[03:56:43 CET] <friki> Durandal: the stream is produced using "tzap" (dvb-t receiver)
[03:57:11 CET] <furq> 		err = errors.New(estatus.ErrorMessage.AdditionalInfo.UploaderService_GoogleRupioAdditionalInfo.CompletionInfo.CustomerSpecificInfo.Message)
[03:57:21 CET] <furq> reading the source code for this google photos tool is reminding me why i never finished it
[04:02:03 CET] <raytiley_> Is it possible to capture just closed caption data from a live source such as decklink?
[04:03:38 CET] <friki> raytiley_: what's a "closed caption"?
[04:04:15 CET] <raytiley_> text data in the VANC
[04:06:27 CET] <friki> never tested, sorry. I use to capture decklink video+16audio with bmdtools ( https://github.com/lu-zero/bmdtools )
[04:06:50 CET] <friki> .. and pipe it to ffmpeg
[04:07:12 CET] <raytiley_> looks like ffmpeg has support for it: https://github.com/FFmpeg/FFmpeg/commit/b6cf66ae1c4986f6d788a17233a6609b346c6aa6#diff-85d763f3ac2af7a5af5c506d70c878c7
[04:07:22 CET] <raytiley_> just not sure on how to structure a command to exercise it
[04:11:38 CET] <friki> raytiley_: I never read VANC.. Maybe ffprobe show an extra "track"?
[04:14:58 CET] <friki> raytiley_: may be it works -> "ffmpeg -i [...deck stuff...] -vn -an -f srt subtitle.srt"
[04:15:27 CET] <raytiley_> i'll give that a whirl
[04:16:06 CET] <Djfe> Hi, how can I escape space characters from window titles when trying to use gdigrab to record only a specific window on windows?
[04:52:20 CET] <Snuggle> Heya! I'm trying to install the latest version of ffmpeg-full-nvenc (1:3.4.1-2) from the AUR but I'm getting an error during the configure stage. "ERROR: Rockchip MPP is outdated, please get a more recent one."
[04:52:49 CET] <Snuggle> rockship-mpp is also on the latest AUR version (20171218-1)
[05:47:26 CET] <ruto_> Hello. When i use ffmpeg util, i can get device list by "ffmpeg -f dshow -list_devices true -i dummy". How i can get this list by using api? I not completely understand, what i need write to url param in avformat_open_input function in this case.
[10:54:21 CET] <fps> hmm, i still wonder how i can intercept ffmpeg log messages in a simple way
[11:18:20 CET] <Nacht> Anyone happen to know how to use basic auth then using -method PUT ?
[11:43:51 CET] <Nacht> Hmmm. Damn, looks like HLS -> FTP doesn't quite fully work. Can't delete the old files
[11:58:18 CET] <bencoh> ??
[11:58:36 CET] <bencoh> ah, I see
[13:17:32 CET] <interserve> hello
[13:17:53 CET] <interserve> trying to compile ffmpeg on ubuntu
[13:17:56 CET] <interserve> i get
[13:17:57 CET] <interserve> ERROR: libtheora not found
[13:18:35 CET] <interserve> how to install libtheora
[13:19:45 CET] <klaxa> sudo apt-get install libtheora-dev
[13:21:29 CET] <interserve> thank you klaxa
[13:21:36 CET] <klaxa> :)
[13:21:49 CET] <interserve> is there anything i should do before
[13:21:52 CET] <interserve> cd ~/ffmpeg_sources && \
[13:21:53 CET] <interserve> wget -O ffmpeg-snapshot.tar.bz2 http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
[13:21:53 CET] <interserve> tar xjvf ffmpeg-snapshot.tar.bz2 && \
[13:21:53 CET] <interserve> cd ffmpeg && \
[13:21:53 CET] <interserve> PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
[13:21:54 CET] <interserve>   --prefix="$HOME/ffmpeg_build" \
[13:21:55 CET] <interserve>   --pkg-config-flags="--static" \
[13:21:57 CET] <interserve>   --extra-cflags="-I$HOME/ffmpeg_build/include" \
[13:21:59 CET] <interserve>   --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
[13:22:03 CET] <interserve>   --extra-libs="-lpthread -lm" \
[13:22:05 CET] <interserve>   --bindir="$HOME/bin" \
[13:22:07 CET] <interserve>   --enable-gpl \
[13:22:09 CET] <interserve>   --enable-libass \
[13:22:11 CET] <interserve>   --enable-libfdk-aac \
[13:22:13 CET] <interserve>   --enable-libfreetype \
[13:22:15 CET] <interserve>   --enable-libmp3lame \
[13:22:17 CET] <interserve>   --enable-libopus \
[13:22:19 CET] <interserve>   --enable-libtheora \
[13:22:21 CET] <interserve>   --enable-libvorbis \
[13:22:23 CET] <interserve>   --enable-libvpx \
[13:22:25 CET] <interserve>   --enable-libx264 \
[13:22:27 CET] <interserve>   --enable-libx265 \
[13:22:29 CET] <interserve>   --enable-nonfree && \
[13:22:33 CET] <interserve> PATH="$HOME/bin:$PATH" make && \
[13:22:35 CET] <interserve> make install
[13:22:37 CET] <interserve> hash -r
[13:22:39 CET] <interserve> in order to not get any misiing error
[13:25:42 CET] <bencoh> you should post to pastebin instead of "flooding" chan :)
[13:26:24 CET] <bencoh> and ... you'd need to install relevant libs (with their -dev packages in case your distribution has such a thing)
[13:52:35 CET] <hendry> i want to create a webp where each minute of video is a frame. Got as far as: ffmpeg -i MVI_3713.MP4 -vcodec libwebp -vf fps=1/60,scale=320:180 -loop 0 output.webp # but it doesn't appear to work. Just static
[13:53:41 CET] <BtbN> Well, with 1/60 fps you will have a new frame every 60 seconds
[14:18:40 CET] <ntrrgc> Do you know any way to encode a testcase where the greatest generated PTS-DTS difference is something big, like 8 frames?
[15:04:26 CET] <raytiley_> Can anyone give me a pointer on how to construct the following command to capture closed caption data as a srt file.
[15:04:46 CET] <raytiley_> ffmpeg -f decklink -format_code Hp29 -i "DeckLink Mini Recorder" test.srt
[15:05:19 CET] <raytiley_> Full output https://www.irccloud.com/pastebin/d2fwxKIT/decklink-srt-full-output.txt
[15:35:36 CET] <SortaCore> hey folks, (C++) if I am using a null codec for copying packets directly from a live stream into a mp4, do I still have to flush the mp4 container? e.g. av_interleaved_write_frame(videoFileFormatContext, NULL)
[15:35:45 CET] <SortaCore> null AVCodec, that is
[15:45:18 CET] <DHE> SortaCore: no, just write the trailer and close it.
[16:21:27 CET] <tommy``> guys i got an error no such filter "subtitles" how can i install?
[16:23:30 CET] <jkqxz> tommy``:  Build with --enable-libass
[16:24:10 CET] <tommy``> jkqxz i've installed on osx using "brew install ffmpeg"
[16:26:52 CET] <SortaCore> pkt->pts = pkt->dts = pkt->pts + pkt->dts + ost->last_mux_dts + 1 - FFMIN3(pkt->pts, pkt->dts, ost->last_mux_dts + 1) - FFMAX3(pkt->pts, pkt->dts, ost->last_mux_dts + 1);
[16:27:01 CET] <SortaCore> o.o
[16:27:39 CET] <alexpigment> tommy'' brew install ffmpeg --with-libass
[16:28:02 CET] <alexpigment> https://trac.ffmpeg.org/wiki/CompilationGuide/macOS <-- shows additional options to add to the command
[16:28:24 CET] <alexpigment> or just run brew info ffmpeg to see those same options
[16:28:53 CET] <tommy``> ok try now tx
[16:29:13 CET] <SortaCore> DHE: is there any codecs that need that null in the AvFormatContext, or is it just the streams that need nulls to flush?
[16:29:32 CET] <SortaCore> ...every time I write a message on here I read it back and go "you are misusing terminology so badly"
[16:29:49 CET] <DHE> yes... yes you are
[16:29:57 CET] <alexpigment> tommy'' for what it's worth, brew install ffmpeg is a pretty minimal installation. i personally had to put a lot of --with commands on mine to get the features i needed
[16:30:11 CET] <DHE> AVFormatContext does not require an explicit stream flush. just write your trailer when you're done and close any IO involved
[16:30:57 CET] <tommy``> oh ok alexpigment
[16:31:55 CET] <SortaCore> so never send null to AVFormatContext?
[16:36:02 CET] <raytiley_> Any one point me in the direction of capturing caption data from decklink? ffmpeg -f decklink -format_code Hp29 -i "DeckLink Mini Recorder" test.srt Looking through the source I feel like it's possible, but I'm having trouble wrapping my head around all the side data stuff in regards to stream mapping.
[16:56:18 CET] <Fyr> guys, how can I remove a particular metadata, like title?
[17:08:13 CET] <dystopia_> ffmpeg -i file.blah -map_metadata -1 -c:v copy -c:a copy new_file.blah
[17:45:27 CET] <tommy``> guys is possible use both cpu and gpu during a simple encoding?
[17:47:55 CET] <kepstin> nobody has yet made a cpu+gpu hybrid encoder that convincingly outperforms a pure cpu encoder or a dedicated hardware encoder.
[17:48:05 CET] <kepstin> for common high compression lossy codecs
[17:49:23 CET] <kepstin> (iirc on some older nvidia cards, hevc is done using hybrid encoding? can't remember for sure)
[17:50:05 CET] <kepstin> but they only did that because they didn't have a full hardware encoder ready yet.
[17:51:36 CET] <kepstin> that's the other thing to note - the "gpu encoders" aren't actually running using the gpu compute - they're dedicated video encoder hardware that's separate from the main gpu cores.
[18:13:25 CET] <DHE> x264 has opencl partial offload. performance varies from my own testing from -20% to +20%... at the end of the day best to not bother.
[18:29:56 CET] <BtbN> Split the file in two, and encode one half with nvenc or something, and the other with x264, then concat?
[18:38:16 CET] <alexpigment> BtbN: haha
[18:38:54 CET] <bencoh> :D
[18:39:41 CET] <alexpigment> in reality, the only benefit would be to let the GPU do some sort of filtering that already needs to be done. like scaling or deinterlacing, for example. the encoding itself should be done on the CPU if you have the time/resources, otherwise on the GPU's hardware encoder if you need low very low CPU usage
[18:59:13 CET] <Fyr> dystopia_, it's an example on stripping all metadata.
[18:59:21 CET] <Durandal> Fyr: you can also just set the metadata to an empty string
[18:59:23 CET] <Fyr> I need only a few keys.
[18:59:24 CET] <Durandal> -metadata title=""
[18:59:27 CET] <Durandal> will remove the title
[18:59:32 CET] <Fyr> thanks
[19:15:31 CET] <tomtomb> Hello everybody.. I got a quick ffmpeg question, I'm trying to convert an xdcam video to xdcam with a different audio codec (-acodec pcm_s24le)
[19:16:11 CET] <tomtomb> Hello everybody.. I got a quick ffmpeg question, I'm trying to convert an xdcam video to xdcam with a different audio codec (-acodec pcm_s24le), it works fine... however if I'm adding a TRIM to it (-ss, -to) the video loses sync with the audio.. has anybody encountered something like that?
[19:19:10 CET] <Fyr> tomtomb, https://superuser.com/a/682534
[20:03:06 CET] <tomtomb> Fyr, is it possible to apply a trim video filter, and then -vcodec copy? I want to keep the same codec, just trim it
[20:03:20 CET] <tomtomb> it seems like it's transcoding when I try the -vf trim filter
[20:05:12 CET] <Fyr> tomtomb, trim is a filter, it means transcoding.
[20:05:55 CET] <Fyr> tomtomb, you have to use -ss and -t and concat without transcoding.
[20:06:21 CET] <tomtomb> I understand. when I use that - the audio goes out of sync
[20:06:38 CET] <Fyr> try to use some options like -avoid_negative_ts and -async.
[20:07:09 CET] <Fyr> and/or -itsoffset and silent audio.
[20:10:59 CET] <tomtomb> Fyr, are you talking about adding a permanent offset ?
[20:11:44 CET] <Fyr> yes
[20:12:01 CET] <tomtomb> it doesn't seem like the drift is permanent,
[20:12:16 CET] <tomtomb> as you go along the file and trim a later part, the offset gets much bigger
[20:12:47 CET] <Fyr> =(
[20:13:42 CET] <tomtomb> it does solve if I re-encode the video, not just the audio... however - that's not a good solution...
[20:14:31 CET] <kepstin> hmm, i wonder if ffmpeg just doesn't handle the case of transcoding 1 stream and copying another correctly. Because when transcoding, -ss is frame-accurage, but when copying it goes from the nearest keyframe instead
[20:15:51 CET] <tomtomb> kepstin, so the best solution is first trim the file with -vcodec copy and -acodec copy, and then reencode it -vcodec copy and a different audio codec?
[20:16:12 CET] <kepstin> tomtomb: I honestly don't know if that would work any better/worse, but it might be worth a try.
[20:16:45 CET] <tomtomb> actually, it does work if I do it in 2 phases, was just thinking if it's possible to save the time and run ffmpeg just once :)
[20:23:05 CET] <thresh> going to reboot videolan server which is hosting ffmpeg git right now, due to meltdown.
[20:24:34 CET] <c_14> might want to also mention this on -devel
[20:25:10 CET] <thresh> thanks c_14
[20:27:41 CET] <thresh> the machine is up, things should be back to normal
[20:28:28 CET] <andres_> hi, I have a video with audio that only starts at second 11 (while the video starts at 0), and it's causing playback issues on some web players. Is there any way to pad the first 11 seconds with muted audio so the issue doesn't happen anymore?
[20:29:23 CET] <andres_> I have this issue with several videos at different timestamps, so if someone has a solution to not "hardcode" 11 seconds that would be great
[20:40:40 CET] <furq> andres_: you can do the first bit with -af adelay but it needs you to provide the timestamp
[20:40:48 CET] <furq> you could potentially get that from ffprobe beforehand
[20:41:04 CET] <furq> also this implies reencoding the audio
[20:42:02 CET] <andres_> reencoding the audio is fine
[20:43:38 CET] <andres_> I was thinking maybe there is a solution to "merge" muted audio that lasts forever with the original audio?
[20:44:10 CET] <andres_> that way, the part where the audio doesn't exist gets mapped to muted audio instead
[20:45:06 CET] <c_14> amix anullsrc with shortest?
[20:45:09 CET] <c_14> not sure that'll work though
[20:45:17 CET] <c_14> because timestamps
[20:45:22 CET] <c_14> but it's worth a shot
[20:45:56 CET] <alexpigment> assume ffmpeg reads the audio delay correctly, it seems like you could just do ffmpeg -i [infile] -c:v copy -c:a aac [outfile]
[20:46:13 CET] <alexpigment> substitute aac with whatever format you'd like, and add a -b:a value as necessary
[20:46:24 CET] <andres_> that's already what I'm doing
[20:46:28 CET] <c_14> -filter_complex 'anullsrc[ap];[ap][0:a]amix=duration=shortest'
[20:46:38 CET] <andres_> but the audio starts at the same time and that's a problem
[20:46:54 CET] <c_14> alexpigment: that won't fill audio samples, ffmpeg will just add the offset to the output
[20:47:10 CET] <alexpigment> oh gotcha. i just assumed it would hardcode silence to the beginning
[20:47:18 CET] <alexpigment> since you're forcing a re-encode
[20:47:36 CET] <alexpigment> but yeah, i guess that seems like a leap that ffmpeg probably wouldn't make (to insert actual silence)
[20:50:04 CET] <andres_> -filter_complex 'anullsrc[ap];[ap][0:a]amix=duration=shortest' just starts the audio earlier (so 0 instead of 11), but then the audio is off-sync with the video
[20:51:18 CET] <c_14> mhm
[20:52:10 CET] <alexpigment> well, at the very least, it seems like you could demux, create silence audio with anullsrc for x number of seconds, concat the two audio files, then remux with the video
[20:52:34 CET] <furq> the "x number of seconds" part is the bit he wants to avoid
[20:52:36 CET] <alexpigment> but i'm guessing there would be some trial and error with the times
[20:52:38 CET] <furq> otherwise you can just use adelay
[20:52:48 CET] <alexpigment> i guess i'm missing something then
[20:52:52 CET] <andres_> actually I have another question
[20:53:01 CET] <alexpigment> i read above, but there's something i'm missing
[20:53:14 CET] <andres_> If I add muted audio for 1 second at the very beginning, what will happen?
[20:54:01 CET] <andres_> I'm creating HLS so my problem is to not have any audio in the first 2 seconds, because players don't pick it up and think there's no audio at all
[20:54:35 CET] <furq> that'll desync the audio
[20:54:59 CET] <andres_> mmmh
[20:55:16 CET] <furq> you could maybe add a blank audio stream to the first segment
[20:55:22 CET] <furq> assuming the delay is always at least one segment
[20:55:30 CET] <andres_> well I guess I'll have to hardcode -af adelay at first, just to make sure it works
[20:55:32 CET] <furq> you'd have to postprocess that obviously
[20:55:39 CET] <furq> also idk what that'll actually do
[20:56:03 CET] <alexpigment> out of curiosity, why is there missing audio at the beginning? is this because of MOV cue sheets?
[20:56:13 CET] <alexpigment> if so, i think you can have ffmpeg either honor or not honor though
[20:56:14 CET] <alexpigment> *those
[20:56:35 CET] <furq> well it's presumably in sync with the delay
[20:56:36 CET] <andres_> I don't know about MOV cut sheets
[20:56:47 CET] <furq> so if he just gets rid of the delay then that's no good
[20:56:52 CET] <alexpigment> furq: oh this is a live feed situation
[20:57:14 CET] <furq> i assumed it was just a source file with a hardcoded delay
[20:57:19 CET] <alexpigment> right
[20:57:26 CET] <alexpigment> which would usually imply cue sheets, right?
[20:57:27 CET] <furq> i guess either works though
[20:57:30 CET] <furq> and uh
[20:57:35 CET] <furq> you can have a hardcoded stream delay in mpegts
[20:57:37 CET] <furq> and presumably other stuff
[20:57:43 CET] <alexpigment> but 11 seconds?
[20:57:47 CET] <furq> shrug
[20:58:02 CET] <furq> i've never encountered mov cue sheets, it could well be that
[20:58:21 CET] <alexpigment> so mov cue sheets cut the audio accurately, but they only cut the video at I frames
[20:58:24 CET] <alexpigment> or IDR frames
[20:58:36 CET] <alexpigment> so if you don't honor the cue sheet, you get an audio desync
[20:59:06 CET] <andres_> wait ffprobe says that start_time is 0 for the audio as well
[20:59:21 CET] <andres_> but somehow my first few HLS segments don't have audio
[20:59:33 CET] <andres_> it's detecting a sample rate of 0 and that's why it's failing
[20:59:46 CET] <alexpigment> well, that'll do it :)
[20:59:58 CET] <furq> that sounds like fun
[21:00:05 CET] <furq> presumably ffprobe on the first segment shows an audio stream then
[21:00:08 CET] <furq> just a broken one
[21:00:59 CET] <andres_> yes actually is there one but it's just garbage
[21:01:27 CET] <furq> are you transcoding the audio for hls
[21:01:31 CET] <furq> if so then that's weird
[21:01:33 CET] <andres_> yes
[21:02:10 CET] <andres_> that's my audio part for my ffmpeg command: -c:a aac -ar 48000 -ac 2 -b:a 192000 -ar 48000
[21:02:15 CET] <andres_> nothing fancy
[21:05:22 CET] <andres_> when I ffprobe the first segment, it has 0 channels and a sample rate of 0
[21:05:46 CET] <andres_> I thought it was because it had no audio, am I wrong about that?
[22:52:59 CET] <alexpigment> does anyone have any idea if the meltdown/spectre patches for win7 on a haswell-e chip would cause a significant encoding slowdown?
[22:53:28 CET] <alexpigment> i can't find any windows 7 specific benchmarks
[23:01:43 CET] <jkqxz> Should be pretty much irrelevant.  Encoding is entirely compute-bound and will make very few context switches.
[23:07:46 CET] <alexpigment> jkqxz: well that's good to know
[23:08:04 CET] <alexpigment> i had read one article implying that win7/8 systems with haswell and earlier would be hit the worst
[23:08:19 CET] <alexpigment> and experience slowdowns that "most people would notice" according to intel
[23:08:20 CET] <alexpigment> :(
[23:08:48 CET] <JEEB> on *nix IIRC it depended on how much syscalls are utilized
[23:09:28 CET] <alexpigment> yeah i'm also kinda curious what's going to happen after updating my haswell macbook air
[00:00:00 CET] --- Wed Jan 10 2018



More information about the Ffmpeg-devel-irc mailing list