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

burek burek at teamnet.rs
Wed Sep 4 03:05:05 EEST 2019


[02:45:41 CEST] <fleabeard> hello friend's, I'm trying to take a 3 hour video I snagged from youtube and break it down into 5 minute video segments with ffmpeg CLI. I'd like to be able to do this without having to re-encode the video/audio and hope there is just a 'fast copy' option to make this quick. Would anyone have any experience doing this?
[02:46:58 CEST] <fleabeard> I would like to be able to split the video based on time segments, so minutes 00:00:00 to 00:05:00 then the next video starts @ 00:05:00 to 00:10:00 etc etc
[03:07:27 CEST] <another> https://ffmpeg.org/ffmpeg-all.html#segment_002c-stream_005fsegment_002c-ssegment
[03:07:29 CEST] <furq> fleabeard: -i foo.mp4 -c copy -f segment out%02d.mp4
[03:07:40 CEST] <furq> -segment_time 5:00
[03:07:55 CEST] <furq> it won't be exactly 5:00 if you're copying but youtube uses short gops so it won't be too far off
[03:35:03 CEST] <mozzarella> how do i sppeed up a video?
[03:37:19 CEST] <nicolas17> https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video
[03:51:39 CEST] <mozzarella> nicolas17: it's not working
[03:51:56 CEST] <mozzarella> [Parsed_setpts_0 @ 0x56105f2abd80] [Eval @ 0x7fffd18970f0] Invalid chars 'TS' at the end of expression '60.0PTS'
[03:52:17 CEST] <nicolas17> you missed the asterisk to multiply
[03:52:37 CEST] <mozzarella> shit
[03:53:23 CEST] <nicolas17> but that will slow down the video, to speed it up 60x you want PTS/60 (or PTS*0.016666 :P)
[03:55:06 CEST] <mozzarella> shiiiiiittttttttt
[03:55:57 CEST] <mozzarella> how long is it going to take?
[03:57:15 CEST] <furq> you can do it without reencoding the video
[03:57:23 CEST] <mozzarella> how
[03:57:31 CEST] <furq> certainly for h264, maybe for other formats
[03:57:34 CEST] <furq> or codecs rather
[03:58:58 CEST] <furq> mkvmerge -o out.mkv --default-duration 0:1234fps --fix-bitstream-timing-information 0:1 in.mkv
[03:59:09 CEST] <furq> where 0 is the video track and 1234fps is the target framerate
[03:59:50 CEST] <furq> with that said if you want to speed it up 60x then you probably also want to drop 59/60 frames in which case reencoding won't take long
[04:00:11 CEST] <furq> a 5000fps video probably isn't going to work great
[04:01:10 CEST] <nicolas17> in my experience when you try to speedup by as much as 60x and reencode, decoding the input takes longer :P
[04:01:27 CEST] <nicolas17> but I don't remember what encoding -preset that was
[04:02:00 CEST] <furq> anyway you'll want -vf setpts=PTS/60,fps=60
[04:02:05 CEST] <furq> otherwise you'll end up with a 5000fps video again
[04:02:20 CEST] <furq> and if you have audio then -af atempo=60
[04:02:37 CEST] <furq> or just -an because it'll sound terrible
[04:09:12 CEST] <Cypriot> hi alll
[04:45:36 CEST] <mozzarella> why is it taking forever?
[12:30:34 CEST] <lain98> Strange issue. I'm compiling ffmpeg from source but the shlib is missing a symbol which is there in the source code. av_bsf_flush
[12:32:42 CEST] <lain98> ok it is there
[13:50:40 CEST] <markfilipak> Does ffmpeg do real 2-3 pull-down?
[13:57:50 CEST] <BtbN> If you tell it to
[13:58:35 CEST] <markfilipak> can you describe 2-3 pull-down (link to, is fine).
[14:02:18 CEST] <markfilipak> This is 2-3 pull-down: [A/a][B/b][B/c][C/d][D/d]
[14:02:44 CEST] <markfilipak> Right? Field based? Right?
[14:26:47 CEST] <Cypriot> anyone?
[14:27:17 CEST] <pink_mist> anyone what?
[14:27:53 CEST] <Cypriot> hi just curius using linux and using this command   >>>  ffmpeg -i input.mkv -c copy -c:a aac -movflags +faststart file-1.mp4
[14:28:16 CEST] <Cypriot> its already working but i would like to know how can i use this command for whole all directory
[14:28:49 CEST] <BtbN> you run it for every file in it, pretty much
[14:28:51 CEST] <Cypriot> i have 22 mkv files but want to change them mp4 is it possible to make its easy
[14:28:58 CEST] <BtbN> use shell scripting if you don't want to do it manually
[14:29:19 CEST] <Cypriot> any examples?
[14:29:20 CEST] <BtbN> Also, you will either want to not transcode the audio, or specify at least some quality for the audio encode
[14:30:12 CEST] <Cypriot> thx
[16:18:00 CEST] <lain98> how can i turn off everything related to tls when building from source code. i did do --enable-protocol=file and hoped that it would turn off tls stuff but i get linking error when link my application with libav*
[16:18:32 CEST] <lain98> undefined reference to gnutls.....
[16:20:49 CEST] <JEEB> if you want to control dependencies better use --disable-autodwtect
[16:21:21 CEST] <JEEB> thatbway gnutls or so will not get autodetected and enabled, among other things :p
[16:22:01 CEST] <DHE> I'm seeing all the SSL libraries are default [no] anyway...
[16:22:33 CEST] <DHE> unless you're on OSX
[16:23:06 CEST] <DHE> or windows..
[16:23:15 CEST] <lain98> im on linux
[16:38:00 CEST] <lain98> disable-autodetect might have fixed it
[16:41:02 CEST] <JEEB> DHE: gnutls can be autodetected if the license otherwise is matching, I think?
[16:41:07 CEST] <lain98> still building
[16:41:19 CEST] <JEEB> but yes, disable-autodetect disables everything but what are considered "system" dependencies
[16:41:33 CEST] <JEEB> which can be an "interesting" distinction since I think zlib/iconv/etc are considered such
[16:41:43 CEST] <JEEB> (By the configure script at the moment)
[16:42:00 CEST] <JEEB> but still, while imperfect disable-autodetect *does* help
[16:43:35 CEST] <lain98> ah, it didnt fix it
[16:44:57 CEST] <JEEB> then either you have not cleared/hit make install to update your sysroot
[16:45:03 CEST] <lain98> if my application isnt using any symbol that might need tls stuff, idk why the linker is trying to look fir those symbols too
[16:45:04 CEST] <JEEB> or some other dependency you do have enabled brings it in
[16:45:16 CEST] <lain98> i built in a fresh root
[16:45:40 CEST] <JEEB> does gnutls become enabled in configure's log?
[16:47:16 CEST] <JEEB> if you really want to be sure you can build with make V=1 but at this point I'm starting to have doubts about it being FFmpeg itself that's bringing gnutls in
[16:47:34 CEST] <JEEB> or if it is, it's an old build that you're attempting to link against or so
[16:47:43 CEST] <lain98> i'm using these options --prefix=/usr/local --disable-static --disable-all --disable-autodetect --disable-iconv --enable-shared --enable-avformat --enable-avcodec --enable-avfilter --enable-protocol=file --enable-demuxer=mov,matroska,avi --enable-bsf=h264_mp4toannexb,hevc_mp4toannexb,mpeg4_unpack_bframes
[16:47:45 CEST] <JEEB> also I hope you're not trying to utilize the build root as your sysroot :P
[16:47:53 CEST] <lain98> its 4.2
[16:49:39 CEST] <lain98> earlier i was linking with 3.4.2 and that works
[16:49:52 CEST] <lain98> but then i tried to upgrade to 4.2
[16:50:38 CEST] <lain98> my application doesnt have anything related to tls
[16:51:11 CEST] <JEEB> I can build here a normal build with --disable-autodetect and nothing else, and I bet I won't have gnutls there even if available
[16:52:06 CEST] <JEEB> I will actually now do that on this darn laptop :P
[16:52:48 CEST] <JEEB> will add --enable-shared --disable-static to mimic your setup a bit more
[16:52:51 CEST] <JEEB> but it shouldn't matter
[16:54:57 CEST] <lain98> thanks JEEB
[16:55:16 CEST] <JEEB> ok, configure output at least looks as expected
[16:55:17 CEST] <JEEB> http://up-cat.net/p/1b74a07b
[16:55:21 CEST] <JEEB> waiting for teh compile to finish
[17:02:14 CEST] <JEEB> lain98: http://up-cat.net/p/5dcc6d5a
[17:02:50 CEST] <JEEB> did same for just tls too
[17:03:31 CEST] <JEEB> if I check with asound that gets in because that's linked to one of the libs because "system library and thus why would one want to disalbe it?"
[17:04:57 CEST] <JEEB> if it had gnutls linked there somewhere it'd have "libgnutls.so.30" there somewhere
[17:05:50 CEST] <lain98> hmm really strange
[17:06:23 CEST] <lain98> ill dig more and let you guys know if its something in ffmpeg
[17:06:24 CEST] <JEEB> that's why I said that you most likely have something in your sysroot, aka the place your application's build system is looking at :P
[17:06:35 CEST] <lain98> yeah could be
[17:08:02 CEST] <JEEB> I recommend using something in your $HOME as the --prefix and using a symlink system to have a set of sysroots; every time you start anew you make a directory with the date and symlink that to ~/ownapps/application_sysroot or whatever it is you're going to use :)
[17:08:17 CEST] <JEEB> the only negative part is that with shared libs you have to use LD_LIBRARY_PATH during runtime
[17:08:23 CEST] <JEEB> but I think that's rather minor
[17:08:31 CEST] <JEEB> for linking PKG_CONFIG_PATH should have you covered
[17:08:42 CEST] <JEEB> (or PKG_CONFIG_LIBDIR for cross-compilation)
[17:08:52 CEST] <JEEB> PATH appends and LIBDIR overrides
[17:09:11 CEST] <JEEB> wihch is different from how PATH works, thus why I mention it :P
[17:21:41 CEST] <classsic> hi, is there a protocol to send multiple input to one output? like ffmpeg -i rtmp....-i rtmp....-vcodec .....rtmp.../output, and then -map 0:v -map 1:v...etc
[17:25:05 CEST] <another> you can mux multiple streams in certain containers
[17:26:39 CEST] <classsic> yes, like mkv, there is a network protocol?
[17:26:45 CEST] <classsic> mpegts?
[17:27:46 CEST] <another> mpegts is a container. not sure if it supports multiple video streams
[17:28:14 CEST] <JEEB> it does
[17:28:19 CEST] <JEEB> it even has the concept of programs
[17:28:31 CEST] <JEEB> so you have a separate program for the separate set of streams
[17:29:00 CEST] <another> is a program a set of streams?
[17:29:05 CEST] <JEEB> yes
[17:29:09 CEST] <another> ay
[17:29:24 CEST] <JEEB> you give the muxer an option which contains the definitions of which streams go to which program
[17:30:02 CEST] <saml> how can I tell if yadif filter will produce a frame or not?
[17:30:16 CEST] <saml> or, check if video has at least one interlaced frame or not
[17:31:35 CEST] <saml> ffmpeg -i input.mp4 -filter_complex yadif -frames:v 1 -c:v png -an a.png     outputs no file.
[17:31:51 CEST] <saml> so, I only want to deinterlace if input file is interlaced
[17:32:18 CEST] <JEEB> you can see if a frame is coded interlaced or not, you will not be able to figure if the frame contains interlaced content or not
[17:32:44 CEST] <JEEB> see the deint option in https://www.ffmpeg.org/ffmpeg-all.html#yadif-1
[17:47:25 CEST] <lain98> ok so i made it work
[17:47:59 CEST] <lain98> i had to purge every every libav*dev library installed by the package manager
[17:48:17 CEST] <JEEB> sounds like pkg-config picked the system one
[17:48:49 CEST] <lain98> i did manually check pkg-config and it was picking from my build
[17:48:52 CEST] <JEEB> or just linker if you don't like pkg-config to figure out link flags :P
[17:48:53 CEST] <lain98> i used prefix
[17:49:16 CEST] <lain98> i do use prefix-path
[17:49:38 CEST] <lain98> well now i just have to live with the fact that i cant install mpv or vlc from the package manager :)
[17:50:22 CEST] <JEEB> why not? the pc files and non-SONAME solibs should only be in the dev packages :)
[17:50:35 CEST] <JEEB> but aanyways, glad you've got it handled
[17:51:03 CEST] <saml> Why would     ffmpeg -i input.mp4 -filter_complex yadif -frames:v 1 -c:v png -an a.png      not generate output file for some input.mp4?
[17:51:15 CEST] <lain98> package manager will pull the libraries packaged by ubuntu
[17:51:18 CEST] <lain98> ?
[17:51:31 CEST] <JEEB> a normal non-dev package should not pull in the -dev packages at least
[17:51:41 CEST] <JEEB> but yea, I use a distro without FFmpeg, vlc or mpv packaged :)
[17:52:15 CEST] <lain98> and the dev library is a dependency i think because when i removed the dev libraries they also removed mpv and vlc
[17:52:21 CEST] <lain98> wihch is strange
[17:52:32 CEST] <JEEB> it definitely shouldn't
[17:54:05 CEST] <lain98> its okay i can live without vlc/mpv thanks JEEB
[18:08:10 CEST] <DHE> <JEEB> DHE: gnutls can be autodetected if the license otherwise is matching, I think?  # --enable-gnutls          enable gnutls, needed for https support if openssl, libtls or mbedtls is not used [no]
[18:08:48 CEST] <DHE> which I assume means that if --enable-gnutls is not specified then it defaults to disabled. it's the same for the other 3rd party SSL libs, only schannel (windows) and securetransport (osx) are autodetected
[18:37:38 CEST] <^Neo> can anyone recommend a strategy for probing multicast streams to get consistent behaviour from the results other than arbitrarily increasing fps_probe_size, max_analyze_duration or probesize?
[18:37:52 CEST] <^Neo> are we able to probe the score that probing returns?
[18:46:31 CEST] <DHE> what's wrong with it? I've always found that any errors from ffprobe have been accurate (ie. the stream is actually busted)
[18:49:00 CEST] <^Neo> oh, looking at FPS
[18:49:09 CEST] <^Neo> sometimes a stream comes back at 29.97 sometimes as 59.94
[18:49:21 CEST] <^Neo> if I increase the probe size then it's mostly consistent
[20:27:58 CEST] <JEEB> was there a way in ffprobe to limit the probe to a single frame?
[20:30:35 CEST] <ChocolateArmpits> read_intervals?
[20:32:52 CEST] <JEEB> so something like +#1
[00:00:00 CEST] --- Wed Sep  4 2019


More information about the Ffmpeg-devel-irc mailing list