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

burek burek021 at gmail.com
Thu Feb 22 03:05:01 EET 2018


[00:01:32 CET] <alexpigment> ok, well short of an answer to that, the maximum bitrate for AVC baseline at level 5.0 is 135Mbps
[00:01:44 CET] <alexpigment> not saying it should fail, but it's at least out of spec there
[00:01:49 CET] <solidus-river> i left it at default for now so whatever is in FF_PROFILE_H264_BASELINE
[00:01:55 CET] <solidus-river> let me kneck what is in there
[00:02:36 CET] <solidus-river> i'm encoding to a filename under .mkv but afaik it sjust the encoder that matters as far as determining the type of stream and people use .avi / .mk4 / mp4 interchangably for h.264 encoded video
[00:03:29 CET] <alexpigment> oh sorry; i was looking at the raw paste data and saw that you've commented out that mpeg1 section where the 400000 bitrate was specified
[00:03:30 CET] <alexpigment> nm ;)
[00:03:46 CET] <solidus-river> bit rate is 2000000 from the defaults
[00:04:56 CET] <solidus-river> happy someone looked at the paste, i'm swatting at fly's over here trying to think of what it could be
[00:05:01 CET] <Mista_D> Any advice on extarcting Dolby's dialnorm values please?
[00:15:57 CET] <alexpigment> Mista_D: since no one is answering, maybe you can figure out where that value is stored in the file
[00:16:32 CET] <alexpigment> for example, go into a program like Adobe Audition, create a small sample and save it to ac3 with the default -31
[00:16:33 CET] <Mista_D> alexpigment: going through hex dump in 3.. 2.. 1..... (:
[00:16:38 CET] <alexpigment> :)
[00:16:51 CET] <alexpigment> ok, glad to see you had the same thought
[00:17:27 CET] <alexpigment> i can at least confirm that in audition, two files at -31 are identical, so you can rely on the only thing changing being the dialnorm value
[00:21:26 CET] <kerio> wait, there's a maximum bitrate?
[00:22:12 CET] <alexpigment> kerio: are you talking about H.264?
[00:22:24 CET] <alexpigment> if so, there are maximum bitrates per level
[00:22:24 CET] <solidus-river> lol, that was enlightening, used the function to convert error codes into strings... "Uknown Error Occured"
[00:25:03 CET] <solidus-river> so.. it looks like the stock encoding example provided in the docs only works for mpeg1 video
[00:25:17 CET] <solidus-river> https://ffmpeg.org/doxygen/trunk/encode_video_8c-example.html
[00:25:24 CET] <solidus-river> fails for h.264
[00:25:51 CET] <solidus-river> with an unknown error at avcodec_open2
[00:26:17 CET] <solidus-river> wow, thats from 2001 though, is that the most recent :?
[00:26:33 CET] <JEEB> the example was first created then
[00:26:43 CET] <JEEB> it wouldn't compile if nobody touched it since :)
[00:26:56 CET] <solidus-river> heh, k, so that at least rules that out
[00:27:00 CET] <solidus-river> so.. where do i go from here :?
[00:27:08 CET] <solidus-river> i have an unknown error thrown by the example provided in the docs
[00:27:43 CET] <JEEB> yea I wouldn't be surprised if not much more than making sure it compiles was done :)
[00:27:55 CET] <JEEB> after all, we have functions to get black images in AVFrames for example
[00:28:04 CET] <JEEB> while this exacmple wants to have its own
[00:28:08 CET] <JEEB> among other things
[00:28:48 CET] <JEEB> someone clearly poked it at some point with that preset setting, though
[00:28:58 CET] <JEEB> but yea, I wish we had more tests covering the examples
[00:29:04 CET] <solidus-river> huh... that leaves me at a dead end
[00:31:01 CET] <JEEB> heh, the transcoding.c example seems newer
[00:31:07 CET] <JEEB> but it utilizes the old functions it seems?
[00:31:17 CET] <JEEB> not that they stopped working of course
[00:31:50 CET] <JEEB> of course the transcoding.c example also contains a lot of stuff a very basic use case wouldn't need (but might quickly start needing)
[00:31:53 CET] <JEEB> like filtering
[00:32:48 CET] <JEEB> also generally I recommend picking the encoder with a string
[00:32:54 CET] <JEEB> so that if you want libx264 specifically, you pick it
[00:33:10 CET] <JEEB> (also it lets you have a parameter from command line or something to set the encoder)
[00:35:10 CET] <JEEB> also start your own thing from simple stuff
[00:36:05 CET] <solidus-river> well, the mpeg1 route works
[00:36:16 CET] <solidus-river> but is not viable because its super low quality / artifact ridden
[00:36:35 CET] <solidus-river> i don't know how to go simpler than that
[00:36:36 CET] <JEEB> no, I mean step by step :P
[00:37:44 CET] <JEEB> avformat and opening input, reading packets. then for testing purposes you can use av_find_best_stream to pick a stream of the type you want to train with first. then you initialize and open a decoder for that stream's decoder
[00:37:55 CET] <JEEB> then feed AVPackets to that, and wait for an AVFrame to appear
[00:39:07 CET] <JEEB> then initialize an encoder of your choice by either using the function that takes in a string, or avcodec_find_encoder() with the AVCODEC define
[00:39:15 CET] <JEEB> *AVCodecID
[00:39:45 CET] <solidus-river> well its hard coded to AV_CODEC_ID_H264
[00:39:57 CET] <solidus-river> i'm not decoding anything, i'm writing frames from an opengl context to the video
[00:40:13 CET] <solidus-river> using sws to resample from rgb to yuv, thats working for the mpeg side
[00:40:27 CET] <solidus-river> but the error seems way early before any of that happens
[00:40:28 CET] <JEEB> well you have something that produces you AVFrames :P
[00:40:45 CET] <JEEB> well for H.264 you probably want libx264 anyways
[00:41:00 CET] <solidus-river> is that not what ffmpeg uses?
[00:41:06 CET] <solidus-river> all i really want is a lossless format
[00:41:14 CET] <JEEB> it can use that but I have no idea how you're trying to pick your encoder
[00:41:34 CET] <JEEB> I could read the example but I'd rather have you tell me how you're doing it and check if it fails or not.
[00:41:50 CET] <JEEB> as in, if you are actually getting a valid AVCodec
[00:41:55 CET] <JEEB> (from an AVCodecID or so)
[00:42:20 CET] <solidus-river> i am getting a valid one
[00:42:22 CET] <solidus-river> its id is 47
[00:42:26 CET] <solidus-river> which is h264
[00:42:38 CET] <JEEB> well you get a pointer to an encoder with avcodec_find_encoder then
[00:42:47 CET] <solidus-river> yes
[00:42:54 CET] <JEEB> and you can print the name of the encoder enc_codec->name
[00:43:02 CET] <solidus-river> and i do :) i have a debugger open and have it paused right above where it fails
[00:43:51 CET] <solidus-river> h264_nvenc
[00:43:59 CET] <JEEB> have fun with that
[00:44:06 CET] <solidus-river> ?
[00:44:19 CET] <JEEB> that is why I recommend just asking for the encoder with the string
[00:44:37 CET] <JEEB> if you just ask for H.264 it will give you whatever happens to be first alphabetically or whatever
[00:44:51 CET] <solidus-river> ahh, where do i even find valid strings?
[00:44:52 CET] <JEEB> which in your case was nvidia's hwthing, which can have extra fun
[00:45:05 CET] <solidus-river> i also don't have an nvidia card
[00:45:15 CET] <JEEB> yea, which explains why it fails hard
[00:45:26 CET] <solidus-river> speed is not important to me in this
[00:45:28 CET] <JEEB> the component gets built as long as you have the headers
[00:45:37 CET] <solidus-river> yuck, i used to have an nvidia card
[00:46:08 CET] <JEEB> it even gets enabled for android builds even with --disable-autodetect I think
[00:46:09 CET] <JEEB> :P
[00:46:19 CET] <solidus-river> where do i find a list of valid codec names then?
[00:46:22 CET] <JEEB> thankfully that's going away with the removal of the headers
[00:46:59 CET] <JEEB> I'm pretty sure you can list them all, but in your case you can just use libx264 (and switch whenever you want to something else)
[00:47:26 CET] <solidus-river> so literally avcodec_find_encoder_by_name("libx264");
[00:47:52 CET] <JEEB> yes, I think that might actually be it
[00:48:07 CET] <JEEB> and it gives you the AVCodec pointer, or nullptr
[00:50:06 CET] <JEEB> also if you're writing new code I definitely recommend you utilize this stuff as I've found it to be much more fun than the separate video/audio/etc encoding functions https://www.ffmpeg.org/doxygen/trunk/group__lavc__encdec.html
[00:50:23 CET] <solidus-river> hmm, that returns a nullptr
[00:50:35 CET] <JEEB> do you have libx264 wrapper built into your FFmpeg?
[00:50:47 CET] <JEEB> after all, it requires libx264 and --enable-gpl --enable-libx264
[00:51:14 CET] <solidus-river> yikes, maybe not :? not sure how to check, i should have saved out that print statement at the end of building
[00:51:32 CET] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavcodec/libx264.c;h=12379ff76364760b8d95a35f9d8a7a3711729fa9;hb=HEAD#l1044
[00:51:51 CET] <JEEB> solidus-river: I think there's a list of AVCodecs somewhere, so you can loop through them
[00:52:11 CET] <JEEB> but if you've called av_register_all then most likely it just isn't there unless there are typos
[00:53:10 CET] <solidus-river> probably not there, darn, does this mean I'd need to compile and linke again libx264 as well?
[00:53:43 CET] <JEEB> well if you have the x264 headers and library (and the pkg-config file) then only FFmpeg recompilation is needed
[00:53:55 CET] <solidus-river> i'm building in a super janky way (in MSYS2) and using lib.exe to convert stuff to dlls
[00:54:18 CET] <JEEB> yea, the configure script under native windows is really slow
[00:54:35 CET] <JEEB> I've given up on it and using a mingw-w64 cross compiler under lunix, although I think even WSL is faster?
[00:54:54 CET] <solidus-river> yep, and if i'm thinking about this right that means i'd need to install libx264 / compile it in my MSYS2 environment
[00:54:55 CET] <furq> you might be better off just using the zeranoe shared builds until you have something ready for release
[00:55:07 CET] <solidus-river> convert the output to .dll's with lib.exe
[00:55:43 CET] <JEEB> --enable-shared should already give you DLLs, if you want .lib files you can always generate them from the .def files
[00:56:00 CET] <JEEB> although the .dll.a files seem to be linkable with MSVC as well
[00:56:01 CET] <furq> actually nvm those don't actually include the external libs
[00:56:08 CET] <solidus-river> for some reaoson the --enabled-shared provided dll's failed at runtime for me
[00:56:14 CET] <solidus-river> i had to regenerate them manually
[00:56:30 CET] <JEEB> dunno, worked for me at least. although the toolchain can be widely different
[00:56:58 CET] <solidus-river> it had problems working out entry points in a couple of em
[00:57:25 CET] <solidus-river> huh, maybe i'm hitting my head against a brick wall
[00:57:34 CET] <JEEB> well, we're talking about possible bugs or whatever in your toolchain so unfortunately I don't think it makes sense to discuss that further :P
[00:57:41 CET] <solidus-river> surely there must be a simpler lossless codec
[00:57:48 CET] <JEEB> there's multiple
[00:57:57 CET] <JEEB> huffyuv, utvideo
[00:58:03 CET] <JEEB> (ffv1 is nice but slow)
[00:58:16 CET] <JEEB> Ut Video is the one with support for various media frameworks
[00:58:18 CET] <furq> ffv1 is the only one that'll come close to x264 in terms of compression
[00:58:26 CET] <furq> also all of those plus ffvhuff are builtin
[00:58:45 CET] <kerio> ffvhuff is just huffyuv with more pixel formats
[00:58:55 CET] <furq> nah it actually compresses better in my experience
[00:58:58 CET] <furq> and is faster
[00:59:04 CET] <kerio> and possibly with even less support?
[00:59:06 CET] <solidus-river> is playback fairly widely supported for those formats?
[00:59:10 CET] <furq> less, not even less
[00:59:14 CET] <furq> huffyuv is fairly well supported
[00:59:15 CET] <kerio> hah, fuck no it's not
[00:59:16 CET] <furq> ffvhuff is not
[00:59:24 CET] <kerio> (in general)
[00:59:38 CET] <furq> well yeah "fairly" is relative when it comes to video editors
[00:59:39 CET] <kerio> ffv1 is standard
[00:59:47 CET] <JEEB> ffv1 is standard for archival
[00:59:51 CET] <furq> huffyuv is definitely better supported than ffv1
[00:59:57 CET] <JEEB> but it doesn't have plugins for editors etc yet
[00:59:59 CET] <JEEB> IIRC
[01:00:02 CET] <furq> right
[01:00:20 CET] <kerio> just add more ssd and work with raw video :^)
[01:00:29 CET] <JEEB> even though the Ut Video format isn't that great compressibility wise, the author really worked hard WRT the plugins
[01:00:41 CET] <JEEB> you have everything from VfW, DShow, MF to QT
[01:00:41 CET] <solidus-river> sounds like libx264 it is! this'll be fun
[01:00:55 CET] <JEEB> well even lossless H.264 is /not/ widely supported
[01:01:03 CET] <solidus-river> later today i'm going to try to cross compile vulkan between msys2 and windows native
[01:01:10 CET] <solidus-river> developing on windows is a PITA
[01:01:12 CET] <JEEB> and it isn't supported in editors
[01:01:15 CET] <kerio> i wouldn't bet on anything but ffmpeg to read lossless h264
[01:01:34 CET] <kerio> granted, i wouldn't bet on anything but ffmpeg to read a whole bunch of media formats
[01:01:44 CET] <JEEB> like, I bet that if you are encoding lossless you want to do something with the stuff later
[01:01:47 CET] <kerio> but that's because the world is a sad place
[01:01:53 CET] <solidus-river> well, the problem i'm trying to solve is i need to write out high quality 2 - 4 second videos of medical scan visualizations
[01:02:14 CET] <JEEB> what is the stuff that has to play that?
[01:02:16 CET] <kerio> four SECONDS?
[01:02:21 CET] <kerio> rawvideo
[01:02:23 CET] <solidus-river> A WHOLE FOUR SECONDS
[01:02:28 CET] <kerio> hold on whats the framerate
[01:02:39 CET] <solidus-river> determined by the user, i have it default to 60
[01:02:48 CET] <kerio> so it's normal 4 seconds
[01:02:52 CET] <kerio> use rawvideo
[01:02:59 CET] <JEEB> basically, what is the use case of that generated video
[01:03:03 CET] <JEEB> that generally limits you the most
[01:03:14 CET] <JEEB> what is it going to be played in etc
[01:03:23 CET] <solidus-river> doctors need to be able to use it to discuss the scan with patients and eachother
[01:03:54 CET] <solidus-river> but tbh i think this is a bloated feature, they can already output .png's and if i were a doctore I'd really prefer a still of what someones trying to talk to me about than a video
[01:04:24 CET] <JEEB> basically you'd have to know in what on earth that stuff is going to be played in
[01:04:32 CET] <JEEB> or you'd have to standardize on what something gets played in
[01:05:09 CET] <solidus-river> well, h.264 is widely supported afaik
[01:05:15 CET] <JEEB> lossy one is
[01:05:18 CET] <JEEB> lossles is not
[01:05:21 CET] <JEEB> *lossless
[01:05:36 CET] <JEEB> you see what I'm trying to make you think about?
[01:05:47 CET] <solidus-river> yeah
[01:05:56 CET] <kerio> solidus-river: is this something that eyeballs are going to look at
[01:06:05 CET] <solidus-river> i should leave it as mpeg1 and get them to tell me what the goal is
[01:06:07 CET] <kerio> or is this something that will be used for maths
[01:06:15 CET] <solidus-river> kerio, eyeballs
[01:06:21 CET] <solidus-river> the math is all in program via settings etc
[01:06:22 CET] <kerio> -c:v libx264 -crf 18
[01:07:07 CET] <JEEB> to be honest he could even go lower just in case :P
[01:07:35 CET] <JEEB> and of course depends on if all noise has to be kept
[01:07:48 CET] <JEEB> if the requirement is lossless then H.264 is out of the scope unless he specifies something like mpv
[01:07:49 CET] <solidus-river> so i shoudl stil very much tackle the libx264 problem thats actually going to be fun, as frustrating as it is, i like expanding my comfort with / understanding of cross compilation
[01:07:52 CET] <JEEB> as The Player
[01:09:32 CET] <kerio> mpv as the player is cheating
[01:09:42 CET] <solidus-river> heh, switching my encoder to "rawvideo" output something, however vlc has no clue how to play it
[01:09:50 CET] <kerio> hold on, vlc is the player?
[01:09:59 CET] <kerio> you're doing something wrong with your container i think
[01:10:08 CET] <kerio> vlc should be able to read most things
[01:10:10 CET] <kerio> including rawvideo
[01:10:52 CET] <solidus-river> i might be missing the whole container step then :? i'm specifying rawvideo as the desired codec and just writing those frames to a file i'm ending in .mkv
[01:11:10 CET] <JEEB> if you don't have avformat there somewhere you're dumping stuff out as-is
[01:11:14 CET] <JEEB> raw bit stream
[01:11:20 CET] <JEEB> which is not how you do things usually
[01:11:25 CET] <JEEB> (yes, the example sucks)
[01:12:44 CET] <solidus-river> hmm, i'm using ecode_video2 to get packets and i write them to the dest file
[01:13:21 CET] <kerio> "rawvideo" frames are just... the pixels?
[01:13:41 CET] <JEEB> there was an example that did avformat_alloc_output_context2 and avio_open2 if !(output_ctx->oformat->flags & AVFMT_NOFILE)
[01:14:06 CET] <solidus-river> definitely not linking against libavformat though so.. time to figure that out :D
[01:14:18 CET] <JEEB> pkg-config --libs libavformat, was it?
[01:14:34 CET] <JEEB> with PKG_CONFIG_PATH set to your prefix/lib/pkgconfig
[01:15:48 CET] <solidus-river> i have it included to link against (i went down the cmake rabbit hole and made a quick n dirty find package for ffmpeg)
[01:15:56 CET] <solidus-river> i'm just not including or using it
[01:18:13 CET] <solidus-river> wierd that it was about to play mpeg1 video without any sort of muxer involved
[01:18:25 CET] <JEEB> well a lot of things can probe it out
[01:18:32 CET] <JEEB> like FFmpeg's libraries
[01:18:34 CET] <solidus-river> wait, i'm in completely the wrong place, i don't have any audio track
[01:18:38 CET] <JEEB> which quite likely VLC fell back on
[01:18:59 CET] <JEEB> so you just got lucky your string of bytes could be probed as raw MPEG-1 :P
[01:19:12 CET] <JEEB> not all formats support being probed out
[01:19:41 CET] <JEEB> also raw video streams literally have no frame rate generally
[01:19:47 CET] <JEEB> (and cannot be seeked in)
[01:19:50 CET] <JEEB> so just use a container
[01:21:15 CET] <solidus-river> sorry, i'm lost in the ffmpeg documentation, i keep ending op on cli man page like documentation not documentation on the software side of things
[01:21:43 CET] <solidus-river> i dont want a muxer i just want a container? is that a keyword from doxygen? its wierd that the libavformat documentation page just references git log and the authors
[01:21:55 CET] <nigelchen> Does anyone here know how I would convert a 32bit PCM to 16bit PCM?
[01:21:59 CET] <solidus-river> oo, ihaven't been  in the developer documentation
[01:21:59 CET] <nigelchen> through the commandline
[01:23:31 CET] <JEEB> solidus-river: a muxer is a thing that puts things into a container
[01:23:58 CET] <JEEB> solidus-river: just `git grep "avformat_new_stream" -- doc/examples/`
[01:24:03 CET] <JEEB> those are using avformat for muxing
[01:24:13 CET] <JEEB> there's multiple examples in ther
[01:24:28 CET] <JEEB> take a good look at each of them and try to see which of them are utilizing parts you require
[01:25:00 CET] <JEEB> anyways, past 2am here so going to sleep
[01:25:17 CET] <solidus-river> cool, thanks for the help and pointers, i'll dive in!
[01:28:18 CET] <JEEB> and the generated doxygen on ffmpeg.org is generally *very* useful
[01:28:18 CET] <JEEB> https://ffmpeg.org/doxygen/trunk/group__lavf__encoding.html
[01:28:45 CET] <JEEB> googling site:ffmpeg.org doxygen "trunk" KEYWORD
[01:28:51 CET] <JEEB> usually leads to good stuff
[01:28:54 CET] <JEEB> trunk = master
[01:29:27 CET] <JEEB> you generally should always follow the latest documentation, and only work around things IFF you are using some older version and you hit a thing that has been changed since
[01:29:33 CET] <JEEB> (of which lately there are not too many)
[01:29:39 CET] <JEEB> anyways, g'night
[04:54:06 CET] <kota1> ...so i'm getting a type mismatch in my filtergraph.
[04:54:25 CET] <kota1> I've got an mkv input file with audio and video streams, and I'm running it through trim
[04:54:43 CET] <kota1> I'd like to overlay the audio from that file with audio from an mp3 file I have
[04:55:16 CET] <kota1> so I've done [0]trim=3:28.5[vid]; [vid:a][music]amerge[vidmusic]
[04:55:34 CET] <kota1> But it can't link the filters, because apparently [vid:a] is a video stream?
[04:56:25 CET] <kota1> https://pastebin.com/2zstFkY1
[05:28:29 CET] <kota1> Ah. trim is a video filter
[05:28:33 CET] <kota1> there's atrim for audio
[05:28:35 CET] <kota1> :V
[05:42:37 CET] <furq> i'm surprised vid:a even works
[05:43:05 CET] <akkad> is there any support for 3d videos?
[05:43:16 CET] <furq> define support
[05:44:24 CET] <akkad> camera drops it into video with dual circles. and it can join them into a monoscopic video. looking if such support exists in ffmpeg
[05:44:32 CET] <akkad> stiching
[05:49:00 CET] <furq> the stereo3d filter will convert between 3d formats (or from 3d to 2d)
[05:49:04 CET] <furq> but that won't fix the fisheye
[05:49:18 CET] <furq> you can use lenscorrection for that but it's non-trivial
[05:51:55 CET] <akkad> ok thanks. figured it was still a ways off
[05:52:16 CET] <akkad> will just do a few ffts in lisp until it does what I want :p
[05:52:16 CET] <furq> there are some third-party filters that are supposed to unwarp vr videos
[05:52:26 CET] <furq> but you'd need to build ffmpeg with them yourself
[05:53:09 CET] <akkad> ok makes sense
[05:53:11 CET] <akkad> thanks
[06:22:36 CET] <SortaCore> slightly dumb scenario but
[06:23:04 CET] <SortaCore> what's the best codec for file size, given it's an audio file that has an internal loop?
[06:23:11 CET] <SortaCore> think those "extended" songs on YT
[06:23:45 CET] <furq> i'm not aware of any codec that handles that
[06:24:18 CET] <furq> unless you want to cut the loop and embed it in an ft2 module
[06:25:19 CET] <SortaCore> I just would have expected MP3 and compressing formats to notice the repeat
[06:25:29 CET] <SortaCore> ...although I can understand why they wouldn't
[06:25:49 CET] <furq> you could maybe try pcm and rar
[06:27:23 CET] <furq> but yeah the only formats i know of which would handle that as you want are emulated and tracked formats
[06:27:44 CET] <furq> i'm guessing neither of those are any use to you
[06:28:05 CET] <furq> (or just not worth the effort)
[06:41:17 CET] <Fyr> guys, do players play well 100 fps video?
[06:41:34 CET] <Fyr> I'm sure for VLC and PotPlayer, what about the others?
[07:16:48 CET] <kepstin> Fyr: some players have trouble playing video with framerates higher than the screen refresh rate, but really I'd expect most modern players to do something reasonable.
[09:35:24 CET] <caim> Hello again :)Maybe a bit unrelated to ffmpeg not sure I'm looking to determine a stream status from m3u8 file. Is this a good indication of the stream status #EXT-X-MEDIA-SEQUENCE:189 it seems to change every n seconds. Can calculate the different between 2 deltas.  I'm assuming this value doesn't change if the stream is down ?
[09:38:31 CET] <caim> or maybe can use ffprobe instead but not sure if it works for both hls and rtmp streams
[09:47:05 CET] <DHE> an HLS liveliness validator for a livestream?
[09:47:32 CET] <caim> yes i confirm it works for m3u8 streams also but the command hangs if ran on a stream that's down it just displays the opening {
[09:47:35 CET] <caim> ffprobe -v quiet -print_format json -show_streams rtmp://example.com/stream
[09:56:29 CET] <caim> is there a timeout on rtmp ? I'm waiting for almost 5 minutes for ffprobe to fail on rtmp://<ip>:1935/live1/<stream>
[14:44:25 CET] <SortaCore> speaking of m3u8, I have issues with that - the final part is downloaded too late, after the stream ends and the provider stops streaming it
[14:48:54 CET] <Nacht> So it's not downloaded too late, it's stopped too early
[15:39:43 CET] <SortaCore> well, no
[15:39:54 CET] <SortaCore> on a browser downloading the same stream, it plays the stream until the end
[15:40:33 CET] <SortaCore> on ffmpeg downloading it to file, it can't download the last part, and the final couple minutes or so of the stream isn't downloaded
[15:41:40 CET] <SortaCore> it had a 404 iirc, but a browser was being screen-recorded in another room and didn't have problems
[15:52:21 CET] <Fyr> guys, I need to burn subtitles, however, the text must be at the top-left corner of the video. is there a simple way to move text there?
[15:58:15 CET] <relaxed> subtitle type?
[16:02:04 CET] <Fyr> relaxed, any
[16:02:30 CET] <Fyr> guys, why does FFMPEG replace the default font with another?
[16:02:32 CET] <shtomik> Hi guys, I'm using sample from examples/transcoding.c, but after transcoding I get spoiled sound, but sometimes error: more samples than frame size (avcodec_encode_audio2), but in this example I have a filter graph, that convert audio sample fits, channel layout and sample rate, what am I doing wrong?
[16:04:43 CET] <shtomik> how to change packet size, if there is required?
[17:35:47 CET] <foo> I want to get the highest quality audio from an mp4 video. Is this the best way to get that? ffmpeg -i video.mp4 video.mp3
[17:35:57 CET] <foo> I imagine there may be a format better than mp3
[17:36:21 CET] <furq> -i foo.mp4 -c copy foo.m4a
[17:37:07 CET] <foo> err, actually, just realized this code I'm passing the resulting file to can only handle wav, ogg, and mp3
[17:37:18 CET] <foo> furq: between those 3 formats, do you have a suggestion?
[17:37:24 CET] Action: foo makes note m4a is the way to go when able
[17:37:44 CET] <furq> well no keeping the original is the way to go when able
[17:37:56 CET] <furq> if you have to transcode then -c:a libvorbis foo.ogg
[17:38:09 CET] <foo> furq: thank you, I see
[17:39:07 CET] <foo> ah, and are we talking -i foo.mp4 -c copy -c:a libvorbis foo.ogg ?
[17:39:10 CET] <foo> probably ditch -c copy
[17:39:20 CET] <furq> yes
[17:39:41 CET] <foo> aha, progress: Automatic encoder selection failed for output stream #0:0. Default encoder for format ogg (codec theora) is probably disabled. Please choose an encoder manually.
[17:39:44 CET] <foo> Error selecting an encoder for stream 0:0
[17:39:50 CET] <foo> I do have libvorbis installed
[17:40:03 CET] <furq> oh
[17:40:05 CET] <furq> add -vn
[17:40:55 CET] <foo> heh, now that says Unknown encoder 'libvorbis' - but brew install libvorbis says I have it
[17:40:59 CET] <foo> furq: appreciate your help! Getting closer
[17:41:19 CET] <furq> does it show up in ffmpeg -version
[17:41:42 CET] <foo> furq: negative
[17:42:09 CET] <foo> hmm, wonder if I need to rebuild ffmpeg with libvorbis support? Current version probably installed via brew
[17:42:14 CET] <furq> yeah
[17:42:33 CET] Action: foo does brew install ffmpeg --with-libvorbis
[17:42:48 CET] <furq> you probably want --with-libopus as well
[17:42:59 CET] <furq> i assume whatever this is only supports vorbis, but .ogg could also be opus
[17:43:01 CET] <furq> which is better
[17:43:14 CET] <foo> furq: aha, thank you, will add that
[18:33:18 CET] <gh0st3d> Hey guys. Quick expalantion, I'm trying to create a video from animated HTML and merge it with another video. My current code successfully creates a 10s clip from a static image and merges it with the second video. I found a blog post that shows a command to create a video from animated HTML but can't seem to merge that command with mine
[18:33:51 CET] <gh0st3d> here's a paste... the top line is my existing command for the static image... the second line is the command from the blog post.... the third line is the one I tried to merge them into
[18:33:57 CET] <gh0st3d> https://apaste.info/cthE
[18:34:27 CET] <gh0st3d> when I run the third line, it starts running successfully and after hitting 10s it never ends and starts jumping up by minutes in duration
[18:42:31 CET] <furq> gh0st3d: move -t 10 after -i -
[18:45:42 CET] <gh0st3d> cool, that did the trick. Is the "-preset superfast" in the correct spot in that command? It runs terribly slow, and I wasn't sure if that's due to the nature of capturing screenshots while making the video or if it's not registering the superfast setting
[18:52:39 CET] <furq> that all looks correct
[18:54:17 CET] <ChocolateArmpits> Do some filters simply not support zmq? I'm trying to issue commands to sendcmd via zmq, but it's failing everytime
[18:55:52 CET] <durandal_1707> ChocolateArmpits: only filters that list commands in documentation
[18:56:06 CET] <durandal_1707> ChocolateArmpits: which filter?
[19:07:20 CET] <Fyr> guys, when burning subtitles, they somehow blink when change. is there a way to avoid this?
[19:08:44 CET] <Fyr> the text goes from 00:00.00 to 00:00.99, 00:01.00 to 00:01.99 etc.
[19:08:45 CET] <Fyr> is it the reason of blinking?
[19:09:39 CET] <Fyr> should I set a pause between them or remove it completely, like:
[19:09:39 CET] <Fyr> 00:00.00 to 00:01.00, 00:01.00 to 00:02.00
[19:09:39 CET] <Fyr> ?
[19:12:33 CET] <JEEB> generally prev.end == next.start is what you would want if you don't want a small point where there's nothing there
[19:12:36 CET] <JEEB> IIRC
[19:13:56 CET] <Fyr> thanks
[19:14:07 CET] <Fyr> now it's not blinking.
[19:15:54 CET] <Fyr> guys, when burning subtitles, FFMPEG replaces the font with another one. is it normal? it writes that it changes it from NotoSans-Regular.ttf, which is installed, to Roboto-Medium.ttf, which is also installed.
[19:16:57 CET] <JEEB> are you specifying a font in the filter?
[19:17:04 CET] <JEEB> (since I guess you're not doing ASS)
[19:17:10 CET] <Fyr> I tried to orce it, but it didn't work out.
[19:17:19 CET] <JEEB> I think most of that stuff is done by freetype anyways
[19:17:59 CET] <Fyr> it writes:
[19:17:59 CET] <Fyr> >>Using font provider fontconfig
[19:18:23 CET] <JEEB> ok, so it uses libass and not only freetype
[19:18:39 CET] <JEEB> FFmpeg -> vf_subtitles -> libass -> (freetype+fontconfig)
[19:18:53 CET] <JEEB> you probably want -v debug to see what's going on?
[19:19:02 CET] <Fyr> ok
[19:19:45 CET] <JEEB> you probably want to stop it in the middle since -v debug does spam a lot
[19:21:54 CET] <Fyr> >>fontselect: (NotoSans-Regular.ttf, 400, 0) -> /usr/share/fonts/truetype/Roboto-Medium.ttf, 0, Roboto-Medium
[19:24:28 CET] <JEEB> do you have a fontconfig index?
[19:24:40 CET] <Fyr> JEEB, what is that?
[19:24:48 CET] <JEEB> it has the index of all installed fonts
[19:24:55 CET] <JEEB> if it's not up to date it will not pick up a font
[19:25:17 CET] <Fyr> how do I update it on openSUSE?
[19:25:25 CET] <JEEB> no idea
[19:25:28 CET] <relaxed> fc-cache -f -v
[19:25:32 CET] <JEEB> also you have to have your fonts all around
[19:25:43 CET] <JEEB> in the directory that fontconfig indexes
[19:26:08 CET] <JEEB> relaxed: yea, the distros just tend to have their own UIs for installing fonts etc
[19:27:05 CET] <Fyr> relaxed, it's recached, however, the problem remains.
[19:27:36 CET] <relaxed> use fc-list and see if the right font is listed
[19:28:00 CET] <bodqhrohro> How many outputs does geq filter have?
[19:28:12 CET] <Fyr> relaxed, it's in the list.
[19:28:24 CET] <relaxed> where is NotoSans-Regular.ttf ?
[19:28:36 CET] <Fyr> relaxed, /usr/share/fonts/truetype/NotoSans-Regular.ttf: Noto Sans:style=Regular
[19:29:47 CET] <Fyr> relaxed, now it works, thanks.
[19:31:06 CET] <ChocolateArmpits> durandal_1707, trying to change the commands parameter for sendcmd filter
[19:31:13 CET] <relaxed> bodqhrohro: does the output of "ffmpeg -h filter=geq" tell you?
[19:31:23 CET] <ChocolateArmpits> by sending new command via zmq
[19:34:35 CET] <bodqhrohro> relaxed: hmm, it tells there is one, so why it fails with [out] appended giving "Filter geq has an unconnected output"?
[19:35:00 CET] <bodqhrohro> The whole command: ffmpeg -t 5 -i video.mp4 -lavfi '[0:v]geq=p(W-X\,Y)[out]' result.avi
[19:38:30 CET] <relaxed> -lavfi 'geq=p(W-X\,Y)'
[19:41:11 CET] <relaxed> bodqhrohro: -vf '[0:v]geq=p(W-X\,Y)[out]' works
[19:42:52 CET] <durandal_1707> ChocolateArmpits: zmq is alternative to sendcmd filters
[19:43:12 CET] <durandal_1707> they do same stuff
[19:43:38 CET] <ChocolateArmpits> durandal_1707, I want to use them together, so that I wouldn't have to send multiple zmq commands, but rather just one with multiple actions defined through sendcmd
[19:45:44 CET] <ChocolateArmpits> in my specific case I want to toggle the "enable" parameter for the volume filter and overlay filter
[19:46:03 CET] <ChocolateArmpits> currently it only works by sending two commands one after the other for each of the filters
[19:46:21 CET] <ChocolateArmpits> it works, but I imagined sendcmd to be possibly more elegant
[19:49:57 CET] <bodqhrohro> relaxed: I found out that adding `-map '[out]'` is enough; -vf would be probably hard to deal with when extending the chain. Thank you anyway
[21:01:23 CET] <colekas> 0
[23:23:51 CET] <colekas> hello friends, I'm looking at AC3 decoding and ebur128 loudness calculation
[23:25:03 CET] <colekas> the one AC3 stream I have has a dialnorm of -24, however the short term loudness calculation of "ffmpeg -threads auto -nostats -i blah.ts -vn -map 0:1 -filter_complex ebur128=peak=true -f null -" shows a momentary loudness that's close to the dialnorm
[23:25:39 CET] <colekas> from my understanding, the dialnorm and the momentary loudness should not meet, but rather the dialnorm should apply a -7dB shift to the audio to get the "true" audio loudness
[23:26:14 CET] <colekas> with the command above, is my ac3 decoder applying the dialnorm such that when the audio is being measured through the ebur128 that it has already been normalized?
[23:29:38 CET] <atomnuker> yes, you need to disable drc, look at ffmpeg -help decoder=ac3
[00:00:00 CET] --- Thu Feb 22 2018


More information about the Ffmpeg-devel-irc mailing list