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

burek burek021 at gmail.com
Thu Jun 16 02:05:01 CEST 2016


[00:02:56 CEST] <Regda> computer: https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/image_sequence#Filename_patterns
[00:03:44 CEST] <computer> thanks Regda
[00:03:57 CEST] <computer> i will give it a read after i see the result of your commands :-)
[00:14:05 CEST] <computer> Regda: it works but it does not play continues, i am hoping it is my computer and not the compression
[00:14:41 CEST] <Regda> continues ?
[00:15:13 CEST] <computer> i have 501 frames but i think only 10 play
[00:15:25 CEST] <computer> inbetween them the video seems to paus
[00:16:17 CEST] <Regda> i dunno how you record them...
[00:16:29 CEST] <Regda> so i cant help with that
[00:16:44 CEST] <Regda> but you cant try to force with additional parameters
[00:16:46 CEST] <Regda> https://ffmpeg.org/ffmpeg-codecs.html
[00:17:40 CEST] <computer> i have 501 images and i used your command to fuse them into an 18 second video
[00:17:53 CEST] <computer> i will restart my computer and see if it works better
[00:18:01 CEST] <Regda> lol no
[00:18:51 CEST] <Regda> if i'm not wrong the default is 25frames
[00:19:00 CEST] <Regda> so 501/25=20
[00:19:23 CEST] <Regda> maybe thats the reason
[00:20:11 CEST] <computer> Regda: hmmm 20 seconds, that seems about right
[00:22:22 CEST] <computer> Regda: what would you recoomend to be the best compression?
[00:23:23 CEST] <Regda> ehm
[00:24:01 CEST] <Regda> i use the preset "placebo" :D
[00:24:13 CEST] <computer> Regda: what is that? :-)
[00:24:20 CEST] <Regda> i need to go now, its late
[00:24:52 CEST] <Regda> you should read the doc, you can use google and the browsers search funktion to search in it
[00:25:07 CEST] <computer> ok, thank you very much  :-)
[01:28:48 CEST] <andrey_utkin> "make: *** [doc/Makefile:77: doc/fate.txt] Error 1" on current git head master. Known issue?
[01:29:07 CEST] <c_14> the actual error is probably above that somewhere
[03:01:29 CEST] <hexafluoride> I can't limit maximum bitrate :(
[03:01:47 CEST] <hexafluoride> ffmpeg -i in.mp4 -b 1m -maxrate 1m -minrate 1m -bufsize 1m -r 25 -strict -2 out.mp4
[03:01:53 CEST] <hexafluoride> those are my options
[03:02:01 CEST] <hexafluoride> but the bitrate climbs to 4 mbit/s and stays there
[03:27:58 CEST] <DHE> hexafluoride: you want M, not m.
[03:28:04 CEST] <DHE> mega vs milli
[03:28:17 CEST] <hexafluoride> DHE, oh
[03:28:37 CEST] <hexafluoride> yeah, that seems to work, thanks
[04:50:42 CEST] <chovy> when i use -map 0:a:9 -map 0:v:9 it works but the audio fades in and out.
[05:29:27 CEST] <CoJaBo> I have encountered a first today: A word-wrapped webm
[05:29:48 CEST] <blb> CoJaBo: nice
[05:29:58 CEST] <blb> i don't know what that means
[05:30:39 CEST] <CoJaBo> blb: Exactly what it sounds like
[05:30:59 CEST] <CoJaBo> blb: Any lines in the webm that are too many characters long, are word-wrapped
[05:31:48 CEST] <CoJaBo> Apperently, Firefox does not like this, even tho every other video tool (ffmpeg, VLC, etc) on the planet reads it just fine.
[05:32:24 CEST] <blb> what the f-
[05:33:37 CEST] <CoJaBo> .......yeh. this is the life of a legacy application programmer.
[05:33:45 CEST] <CoJaBo> In the name of all that is good and rightous, how did this ever even work= >_>
[05:34:57 CEST] <blb> i would happily deem that file as corrupt and move on :D
[05:36:10 CEST] <CoJaBo> blb: That's been happening to every file sent over that app since 2004
[05:36:31 CEST] <blb> XD
[05:37:38 CEST] <CoJaBo> <_<
[05:38:04 CEST] <CoJaBo> I only noticed it today, because Firefox alone will not play word-wrapped videos
[06:52:42 CEST] <Prelude2004c> hey guys.. question because i am super confused and i figure you guys know this stuff inside out... so i am grabbing live feeds from a multicast network ( say 10 channels inputs pushing 300Mbit/s ) .. all is well until i head up to 14 streams ( CPUs are good interupts are good.. ) pushing 350Mbit/s... ( all different sources and differnet ffmpeg sessions ) .. looking at /proc/net/udp.. i see drops there... where are these drops coming
[06:52:42 CEST] <Prelude2004c> from ? both linux and ubuntu tell me its an application issue.. how can it be an application issue?
[06:53:10 CEST] <Prelude2004c> each ffmpeg sessions is it's own so i am super confused about that and why it would be happening and they keep saying its ffmpeg.. i am not sure i am sold on that .. any input would be appreciated
[10:23:35 CEST] <Fyr> guys, I've converted to DTS (with experimental flag) and found out that it doesn't work.
[10:23:45 CEST] <Fyr> is it possible to make it playable?
[10:24:33 CEST] <durandal_170> Fyr: playable with what?
[10:26:23 CEST] <Fyr> with a player
[10:26:47 CEST] <Fyr> no player can play DTS audio converted with FFMPEG.
[10:27:08 CEST] <Threads> can you name the players ?
[10:27:27 CEST] <Fyr> Potplayer, MPC-HC
[10:27:29 CEST] <Fyr> AIMP
[10:32:31 CEST] <Threads> Fyr mpc-hc plays dts file encoded with ffmpeg fine here
[10:33:10 CEST] <Fyr> what can I say?
[10:33:30 CEST] <Fyr> I see it doesn't.
[10:34:12 CEST] <Threads> bin/ffmpeg/ffmpeg.exe -i test.m4a -acodec dts -ac 2 -strict -2 test.dts
[10:34:15 CEST] <Threads> what i used
[10:34:59 CEST] <Fyr> .dts is a container?
[10:35:32 CEST] <Threads> yes
[10:36:39 CEST] <Threads> Audio: DTS 48000Hz stereo 1411kbps [A: dts, 48000 Hz, stereo, 1411 kb/s]
[10:40:31 CEST] <Fyr> Threads, could you check it with MKV?
[10:42:19 CEST] <Threads> encode it to mkv you mean ?
[10:42:21 CEST] <Threads> sure
[10:42:40 CEST] <Fyr> pack it into MKV. =)
[10:42:50 CEST] <Fyr> encoding is a bit different thing.
[10:43:56 CEST] <Threads> ohh you mean mux it into mkv
[10:44:16 CEST] <Fyr> right
[10:44:28 CEST] <Threads> ffmpeg mux or mkvmerge mux ?
[10:46:50 CEST] <Fyr> any
[10:47:54 CEST] <Threads> plays fine here
[10:48:35 CEST] <Fyr> ok, I'll download the latest version.
[10:49:50 CEST] <Fyr> found some changes it avcodec/dca:
[10:49:51 CEST] <Fyr> https://github.com/FFmpeg/FFmpeg/commit/6c44696b3d504eb87d60915919074da530cd379f
[10:49:56 CEST] <Fyr> may, this is the case.
[10:51:12 CEST] <Fyr> Threads, do you happen to know if it's DTS-HD, DTS-MA, or DTS-Core?
[10:51:22 CEST] <Threads> the one i encoded ?
[10:51:58 CEST] <nifwji2> guys
[10:52:25 CEST] <nifwji2> I just found a guy who doesn't understand that he needs to copy the link and then remove the spaces
[10:52:26 CEST] <nifwji2> http://puu.sh/ptpmU/206167ecdc.png
[10:52:54 CEST] <nifwji2> this person is 26 years old
[10:53:02 CEST] <nifwji2> and has been using deviantart for 8 years
[10:54:04 CEST] <nifwji2> I guess he might have a sensible reason for why he didn't think to remove the spaces
[10:54:42 CEST] <Threads> might not be use to copying links and removing spaces
[10:54:57 CEST] <nifwji2> I guess is doesn't happen very often
[10:55:22 CEST] <nifwji2> this might actually be the first time I have ever actually posted a llink with spaces in it.
[10:56:06 CEST] <nifwji2> I should have added a message telling him to remove the spaces
[10:56:14 CEST] <nifwji2> when I first posted it
[10:57:52 CEST] <Threads> Fyr i just found something intresting
[10:58:03 CEST] <Fyr> what is it?
[10:58:24 CEST] <Threads> muxing to mkv with dts it plays fine in mpc-hc but not in vlc
[10:58:54 CEST] <Threads> muxing with ffmpeg mkv with dts to mkv plays fine in mpc-hc but not in vlc i mean
[10:59:00 CEST] <nifwji2> I haven't used vlc since that time it sttarted playing videos one an angle with intense glitches
[10:59:07 CEST] <nifwji2> I couldn't fix it
[10:59:08 CEST] <Threads> but muxing with mkvmerge it plays fine in vlc and mpc-hc
[10:59:12 CEST] <nifwji2> so I just got a better media player
[10:59:19 CEST] <Fyr> funny
[10:59:46 CEST] <Fyr> I'll mux with mkvtoolnix.
[11:02:46 CEST] <Threads> Fyr http://i.imgur.com/ja1krm7.png you will see the diffrence
[11:02:49 CEST] <Threads> dont know why tho
[11:04:10 CEST] <Fyr> =/
[11:10:38 CEST] <odigem> hi
[11:10:47 CEST] <odigem> maybe offtopic question
[11:11:06 CEST] <odigem> but how to create headers for mp3 file?
[11:23:35 CEST] <JoshX> g'day.. does anyone know if it would be possible to add a SEI header to a x264 stream every x frames while copying the stream?
[11:23:47 CEST] <JoshX> so would it be possible to do it after demux en before mux?
[11:23:54 CEST] <JoshX> or do i need to re-encode?
[11:24:13 CEST] <JoshX> seems silly to decode x264 ad the header and encode x264 again :)
[11:24:23 CEST] <JoshX> but not sure if the first option is possible
[11:27:39 CEST] <jkqxz> It wouldn't be too bad to make a bitstream filter to do it?  You would have to write the SEI NAL unit yourself, but it would just splice straight in before the slice data in every frame you want to add it to.
[11:47:03 CEST] <Fyr> Threads, do you happen to know if FFMPEG's DTS is DTS-MA?
[11:50:37 CEST] <Threads> i dont think it is
[11:52:23 CEST] <Fyr> then, how to convert WAV into DTS-MA?
[11:54:52 CEST] <Threads> you might have to use something else
[11:55:09 CEST] <Fyr> ok, what tool would you recommend?
[11:55:30 CEST] <JoshX> jkqxz: that sounds about right, i'm just not the best c coder in the world.. i can read the code an figure out where to do it,  but writing the actual code might be a problem..
[11:55:42 CEST] <JoshX> jkqxz: i have budget available for someone to do it though :)
[11:56:08 CEST] <JoshX> the second thing is, i need this yesterday :)
[11:56:37 CEST] <JoshX> if anyone is interested, PM me :)
[11:57:16 CEST] <Threads> Fyr i wouldnt know i rarely use dts myself
[11:57:23 CEST] <Fyr> =(
[11:57:23 CEST] <Threads> either aac or ac3 for me
[12:04:25 CEST] <Fyr> do people use OPUS?
[12:04:48 CEST] <furq> i don't think there is a free dts-hd encoder
[12:05:20 CEST] <furq> you'd be looking at paying about $2000
[12:05:43 CEST] <Fyr> for the first and the last time I need to convert a WAV into DTS-MA.
[12:05:57 CEST] <furq> are you authoring a blu-ray or something
[12:06:24 CEST] <Fyr> downmixing a Bluray audio
[12:08:15 CEST] <Threads> why not use ac3 if its downmixing
[12:08:26 CEST] <Threads> unless its for your own collection
[12:08:26 CEST] <furq> or regular dts
[12:08:35 CEST] <Threads> yeah or just plain dts
[12:08:51 CEST] <furq> or LPCM if you need it to be lossless
[14:08:38 CEST] <Fyr> does FFMPEG adds +genpts automatically?
[15:02:16 CEST] <viric> Hello ffmpeg
[15:02:55 CEST] <viric> Why enabling nvenc requires "enable-nonfree", while adding vdpau not? Both load a nonfree dynamic lib at runtime; ffmpeg is not linked with it at build time
[15:09:12 CEST] <Fyr> maybe, this is the only way how gpl wannabees get orgasm.
[15:10:05 CEST] <jkqxz> NVENC used to require (and therefore created a derivative work of) a nonfree header, which definitely made it nonfree.
[15:10:54 CEST] <DHE> it still doesn't?
[15:42:45 CEST] <awisrf> Hi, I try to copy the video and audio stream of a h264/aac encoded file exactely between 2 h264 key frames.
[15:42:45 CEST] <awisrf> My strategy is to first look for the starting key frame using ffprobe. In my case the first frame of
[15:42:45 CEST] <awisrf> ffprobe -read_intervals 00:19:08%00:19:19 -select_streams v -show_frames file.mp4
[15:42:45 CEST] <awisrf> gives me the starting key frame at pkt_pts_time=1148.040000 .
[15:42:45 CEST] <awisrf> Then I try to copy exactly from that key frame to the next one:
[15:42:46 CEST] <awisrf> ffmpeg -y -ss 1148.040000 -i file.mp4 -t 0 -c copy -avoid_negative_ts 1 out.mp4
[15:42:48 CEST] <awisrf> What actually happens is that the segment before 1148.040000 is copied to out.mp4.
[15:42:50 CEST] <awisrf> Am I doing something wrong? I also tried to extract a differen segment using the same strategy - that worked correctly.
[15:42:53 CEST] <awisrf> Thanks
[15:43:45 CEST] <ababhya> I'm trying to break the RTP packets into smaller fragments before ffurl_write sends the data (in ffserver.c inside http_send_data around line 2679)
[15:44:25 CEST] <ababhya> But when breaking the packets into smaller fragments, I don't see the video on streaming it. Is there some header or trailer info that I may need to add ?
[15:44:41 CEST] <viric> jkqxz: DHE: I read nvEncodeAPI.h and seems bsd
[15:45:19 CEST] <viric> jkqxz: DHE: it doesn't include anything else.
[15:48:53 CEST] <ababhya> I have even tried adding the version number as the header but still no output when I open the stream in VLC
[15:49:05 CEST] <ababhya> Anyone , help ?
[15:49:54 CEST] <jkqxz> viric:  It wasn't in earlier versions.  (Presumably you are using an old version of ffmpeg here: the current version requires a recent NVENC header and consequently does not depend on nonfree.)
[15:50:10 CEST] <ababhya> certaindestiny: Anything you can help with ?
[15:50:35 CEST] <viric> jkqxz: 3.0
[15:53:35 CEST] <ababhya> jkqxz: sorry to interrupt. But can you help me with the issue ?
[15:56:23 CEST] <jkqxz> viric:  <http://git.videolan.org/?p=ffmpeg.git;a=commit;h=bc4137d4aa3a75bbbbc6b20c6710d07b50dab0a9>
[15:59:25 CEST] <jkqxz> ababhya:  I don't know anything about ffserver, sorry.  (Not sure anyone does, it's pretty much orphaned.)
[16:06:43 CEST] <viric> jkqxz: great! Thank you
[16:07:28 CEST] <nifwji2> ok guys
[16:07:49 CEST] <nifwji2> does anyone know a way of encoding a video form a bunch of images.
[16:08:02 CEST] <nifwji2> and keep colour from becoming blurry.
[16:08:13 CEST] <nifwji2> because I have a bunch of really simple low resolution animations.
[16:08:21 CEST] <viric> By the way, I have some digitzed vhs videos where the interlaced lines seem horizontally slightly shifted
[16:08:42 CEST] <nifwji2> and when there is a 1 pixel thin outline
[16:08:48 CEST] <nifwji2> it appears really ugly
[16:08:53 CEST] <viric> Is there any filter that can help with that shift?
[16:09:03 CEST] <nifwji2> black and white pixels are perfect.
[16:09:04 CEST] <viric> (line sync problem? I don't know a name for it)
[16:09:40 CEST] <nifwji2> I am using libvpx
[16:09:56 CEST] <nifwji2> because I plan on uploading these to 4chan.
[16:10:16 CEST] <nifwji2> the imperfect encoding is one of the problems I am hoping to fix.
[16:10:22 CEST] <nifwji2> the batch decoding still won't work
[16:10:32 CEST] <nifwji2> since my for loop isn't working.
[16:10:36 CEST] <nifwji2> it is loo[ping.
[16:10:50 CEST] <nifwji2> but after the first time it no longer recognises the contents of the loop
[16:11:02 CEST] <nifwji2> so it just returns a bunch of errors.
[16:11:09 CEST] <furq> viric: there are avisynth scripts that fix chroma shift, if that's what you mean
[16:11:11 CEST] <nifwji2> because it cannot find a file it literally just opened.
[16:11:21 CEST] <viric> furq: I don't think it is only chroma shift
[16:11:33 CEST] <viric> furq: that would mean not using ffmpeg, then
[16:11:46 CEST] <furq> you can use an .avs as an ffmpeg input on windows
[16:11:53 CEST] <furq> i assume you can use vapoursynth on *nix
[16:12:29 CEST] <viric> never heard of vapoursynth before...
[16:13:02 CEST] <furq> it seems nice but i'm not sure if all avisynth plugins will work
[16:13:23 CEST] <viric> I could build avisynth in gnu some time ago...
[16:14:05 CEST] <furq> i only really use it for deinterlacing and the occasional attempt at restoring a shitty dvd master
[16:14:07 CEST] <viric> furq: this https://github.com/avxsynth/avxsynth
[16:14:12 CEST] <viric> furq: aha, ok
[16:14:31 CEST] <furq> and yeah i only use it on windows
[16:14:37 CEST] <furq> i'm not sure that qtgmc will even work with vapoursynth
[16:15:08 CEST] <furq> or whether vapoursynth does multithreading, which is pretty much essential
[16:15:12 CEST] <viric> I might use it with wine, maybe
[16:15:57 CEST] <viric> shouldn't these modules be easy to port to ffmpeg filters?
[16:16:48 CEST] <furq> the actual deinterlacer that qtgmc uses (nnedi3) has already been ported to ffmpeg
[16:16:59 CEST] <furq> but libavfilter doesn't support frame-based multithreading, so it's incredibly slow
[16:17:11 CEST] <viric> ok
[16:17:49 CEST] <viric> I don't like much to deinterlace, though. It usually means half the fps
[16:18:41 CEST] <furq> most deinterlacers have the option to output double the framerate
[16:19:35 CEST] <viric> then it would be heavier for the video compression, not?
[16:19:37 CEST] <viric> and play
[16:21:10 CEST] <furq> compression doesn't usually suffer too badly
[16:21:26 CEST] <furq> i usually halve the framerate though, most sources look wrong at double the framerate
[16:32:38 CEST] <ababhya> jkqxz: I was thinking that it might be problem with rtp format. because ffurl_write calls rtp_write internally.
[16:34:55 CEST] <ababhya> jkqxz: Some header or trailer that I might be missing.
[17:02:08 CEST] <ArboreSign> plop
[17:19:30 CEST] <thewonderer11> I'm confused about what I'm seeing with ffplay. I have a YUV file that is 1 grayscale frame. The file size is 262144 bytes, the frame is 512x512.
[17:19:45 CEST] <thewonderer11> The command I'm running is: ffplay -video_size 512x512 -pixel_format gray out.yuv.
[17:20:37 CEST] <thewonderer11> But the frame appears in 4 tiles in the display, as opposed to a single 512x512 image.
[17:20:47 CEST] <thewonderer11> Why might this be?
[17:36:41 CEST] <BtbN> thewonderer11, are you sure it's 512x512?
[17:37:05 CEST] <thewonderer11> I assume so, the file is 262144 bytes.
[17:37:08 CEST] <BtbN> gray corrosponds to AV_PIX_FMT_GRAY8, so 8bpp, which should be correct for your frame size.
[17:37:31 CEST] <BtbN> If there are 4 files, it would seem like it's just 256x256
[17:37:32 CEST] <thewonderer11> BtbN: I can only assume that the file has not been properly populated with a 512x512 image...
[17:37:57 CEST] <BtbN> You wouldn't get 4 perfect tiles if you started in the middle of a frame though
[18:15:55 CEST] <jkqxz> DHE:  Does your tearing issue still happen if you disable B-frames (so there is no encode delay)?  A plausible explanation for what you have is that you are somehow reusing the frames too early, while they are still meant to be held by the encoder (it has not finished with a frame until it's actually unreferenced, and that need not happen until several frames later, and not necessarily in the order you pass
[18:16:01 CEST] <jkqxz> them to the encoder).
[18:17:19 CEST] <DHE> jkqxz: I tried with tune=zerolatency to get that effect, no love
[18:17:47 CEST] <DHE> and it's a strange thing that only affects certain sources and it's sporadic. might be several per second, might go 5 seconds without issue
[18:17:57 CEST] <DHE> no idea what's going on
[18:19:21 CEST] <DHE> I posted to libav-user asking for help
[18:35:57 CEST] <jkqxz> DHE:  It is rather strange.  Something to try would be to mprotect(PROT_READ) frames when they are meant to be read-only (when held by the encoder notably).  That would then segfault if something tried to write to them when it shouldn't.
[18:37:56 CEST] <DHE> jkqxz: seems unlikely. there is a bit of a pattern - scene changes tend to cause it to happen more often.
[18:38:03 CEST] <DHE> but it's still hit and miss
[18:40:27 CEST] <jkqxz> Scene changes are more complex to encode, I guess (so timing is different).  They would also make it more visible, though, so it could be the other way around.
[18:40:55 CEST] <DHE> yeah, I'm at a loss
[18:41:15 CEST] <DHE> right now I"m dealing with something else, the encoder will have to wait
[20:13:45 CEST] <DHE> jkqxz: you win a cookie for being probably right
[20:13:53 CEST] <DHE> (trying the mprotect thing now)
[20:27:52 CEST] <DHE> jkqxz: you nailed it
[20:43:39 CEST] <CoJaBo> So I'm not even sure how to describe this latest problem.. I'm trying to get ffmpeg to somehow repair a feed from a streaming server, so that I can play it in a browser. The problem is.. unless I catch the *very start* of the feed, the result is unplayable by anything but the original client. The stream is MP4. How.. exactly could I start with this?
[20:46:25 CEST] <Mavrik> huh, does that mean you miss the start of MP4 file?
[20:47:12 CEST] <CoJaBo> Yes; though I believe the start is somehow conveyed to the client (otherwise, this could not be possible?), but definitely not anything from the start to the current position
[20:49:54 CEST] <ArboreSign> Bonjour francophone ?
[20:50:50 CEST] <Mavrik> CoJaBo, well, not having SPS/PSS from the start of the file would cause exactly your issues :)
[20:50:55 CEST] <nick0> Hey, what's the difference between libavresample and libswresample?
[20:51:11 CEST] <CoJaBo> Mavrik: Yeh, but I'm not sure how to get there :/
[20:51:34 CEST] <Mavrik> Well, go slap the idiot who used MP4 for such streaming setup?
[20:51:54 CEST] <CoJaBo> I've tried simply writing the whole file to the server, and seeking with -ss to the current page, but even then ffmpeg gets ahead of current the end of file and quits >_>
[20:56:06 CEST] <CoJaBo> Mavrik: And believe me, if I ever encounter the guy who wrote this, I intend to give him a piece of my mind; yesterdays issue was that even played from the start, even web-compatible formats would not play in-browser.
[20:56:18 CEST] <CoJaBo> Mavrik: The cause? The server was word-wrapping the video stream.
[20:56:41 CEST] <Mavrik> ugh.
[20:56:58 CEST] <Mavrik> What's your use-case?
[20:57:37 CEST] <CoJaBo> Get the client app to run without requiring an ancient Firefox
[20:58:14 CEST] <CoJaBo> Unfortunately, browsers are much more picky about video errors than the NPAPI client :/
[20:58:52 CEST] <CoJaBo> The word-wrap issue was present from at least 2004, but I discovered it for the first time yesterday evening
[20:59:14 CEST] <Mavrik> And how are you doing that? What's your video source and into what are you changing it when streaming_
[20:59:16 CEST] <Mavrik> ?
[21:00:34 CEST] <CoJaBo> The server generates a stream, and I want to play that in a browser. There are more options than MP4, but I'm not sure the non-MP4 formats are any better..
[21:01:05 CEST] <Mavrik> You should use HLS then.
[21:01:15 CEST] <Mavrik> Any reason why you're not using that?
[21:01:42 CEST] <CoJaBo> Because HLS came out in 2009
[21:01:52 CEST] <CoJaBo> And the server never added support :/
[21:02:25 CEST] <furq> all you need for hls is an httpd
[21:03:03 CEST] <CoJaBo> It may be acceptable to convert the stream *to* HLS, but my source options are fairly fixed
[21:03:05 CEST] <furq> if you need to send the stream to a remote server then nginx-rtmp supports that, assuming you're not locked into using your current server for entertaining business reasons
[21:03:47 CEST] <Mavrik> HLS + DASH is pretty much only streaming thing that kinda works on most modern browsers
[21:04:25 CEST] <furq> https://github.com/dailymotion/hls.js/
[21:04:30 CEST] <CoJaBo> It actually does work good enough with the MP4, the problem is just that it obviously is not restartable :/
[21:04:32 CEST] <furq> you'll need that for desktop browser support for hls
[21:04:49 CEST] <furq> is this a live stream or a vod stream
[21:05:10 CEST] <CoJaBo> Live stream; the server supports VOD, but it uses the same mechanism
[21:05:24 CEST] <furq> well vod would probably actually work
[21:05:42 CEST] <furq> i have no idea how the live streaming is working
[21:05:57 CEST] <CoJaBo> Yeh, with VOD I catch the start, but that feature seems to be unused anyway >_>
[21:08:10 CEST] <CoJaBo> How likely is it to work if I slap the header of the file before the current position, and feed that to ffmpeg.. that may literally be my only option
[21:08:36 CEST] <furq> where's the server getting the stream from
[21:09:08 CEST] <CoJaBo> Other client apps, I believe
[21:09:27 CEST] <furq> i take it it's not something you can replicate with ffmpeg
[21:09:39 CEST] <CoJaBo> It has to interoperate with everything else :/
[21:10:14 CEST] <Mavrik> CoJaBo, it won't just work
[21:10:16 CEST] <furq> i also take it that it's using some homegrown mp4 muxer
[21:10:23 CEST] <Mavrik> MOOV atom carries data index.
[21:10:40 CEST] <furq> and not something like libavformat which will make it easy to just switch to flv or mpegts
[21:10:44 CEST] <Mavrik> And you can't just slap it on without knowing what's in the file or restream files if you don't get the SPS/PSS
[21:10:45 CEST] <CoJaBo> Mavrik: They are fragmented MP4s, I think.
[21:10:56 CEST] <Mavrik> Well, then you'll need to grab the fragment header
[21:10:59 CEST] <Mavrik> And remux it yourself.
[21:11:13 CEST] <Mavrik> This is why using MP4s is dumb vs. MPEG-TS for example
[21:11:25 CEST] <CoJaBo> Is the header repeated if I miss the start, or do I *always* need the start?
[21:11:56 CEST] <Mavrik> MP4 does not repeat headers.
[21:11:59 CEST] <Mavrik> It's not a streaming format.
[21:13:11 CEST] <Mavrik> So you'll have to properly catch those
[21:15:01 CEST] <CoJaBo> At the beginning, right?
[21:15:15 CEST] <CoJaBo> Is there some overview of the format/structure?
[21:15:33 CEST] <CoJaBo> I am able to have something catch the start and write out the header data I need to rebuild from there on..
[21:25:50 CEST] <Regda> can someone help me understanding how to handle with the Format stream specifiers ?
[21:26:02 CEST] <DHE> what do you mean?
[21:26:31 CEST] <Regda> take a look at the first answer here: http://superuser.com/questions/508859/how-can-i-specify-how-long-i-want-an-overlay-on-a-video-to-last-with-ffmpeg
[21:27:03 CEST] <Regda> i know what is meant with [1:v] [0:v] ... but i trouble with the fade and overlay
[21:27:30 CEST] <Regda> i dunno exactly how it works so i cant combine them :/
[21:28:03 CEST] <DHE> all the filters are documented here: https://ffmpeg.org/ffmpeg-filters.html
[21:28:17 CEST] <Regda> i know the filters thats not the problem
[21:29:14 CEST] <Regda> my problem is more understanding when i have to combine 2 streams to one and send them to another input
[21:29:38 CEST] <Regda> as example:
[21:30:12 CEST] <DHE> "[1:v]fade=out:96:24:alpha=1[wm]" means that 1:v goes through a fade filter, and the output will be named [wm] for whenever it is next used. in the superuser example it's used in the very next item
[21:30:23 CEST] <Regda> i have multiple images at the first -i option and one image (e.g. a watermark) at the second -i option
[21:30:46 CEST] <Regda> so the first is 0:v and the watermark is 1:v..
[21:31:30 CEST] <Regda> my problem is now that i want to overlay the watermark from frame 0 to frame e.g. 90
[21:31:42 CEST] <Regda> and i have 30fps
[21:32:01 CEST] <Regda> then i want to fade out the watermark
[21:32:20 CEST] <Regda> my problem is to combine the overlay and the fade filter
[21:33:00 CEST] <kepstin> well, you just feed an output from one filter into an input on the other...
[21:33:30 CEST] <furq> [1:v] fade=out:270:300 [wm]; [0:v][wm] overlay [out]
[21:34:19 CEST] <CoJaBo> Mavrik: ..how do i do that?
[21:34:49 CEST] <Regda> so i have to use overlay after the fade ? uhm but why ?
[21:35:06 CEST] <furq> because overlay combines the two streams
[21:35:18 CEST] <furq> you can't apply a filter to one of the two streams after they've been combined
[21:35:35 CEST] <kepstin> you could do the overlay first, then apply the fade to the result of the overlay if you prefer, it's up to you...
[21:36:56 CEST] <Regda> if i combine 2 streams to one does it create a new third stream or will the both first streams be unavailable then ?
[21:37:37 CEST] <furq> it creates a new stream
[21:38:11 CEST] <Regda> e.g. the overlay uses 0:v and wm, so is wm and 0:v then unavailable ?
[21:38:21 CEST] <Regda> hm
[21:38:22 CEST] <Regda> ok
[21:39:01 CEST] <furq> they're still available but afaik if you apply filters after overlay in the chain, they won't apply to the overlay output
[21:39:16 CEST] <furq> i can't say i've ever tried, though
[21:42:51 CEST] <Regda> so it is importent to modify the 1:v before "overlay", is that the reason why fade stands befor overlay ?
[21:43:30 CEST] <furq> yeah
[21:44:45 CEST] <Regda> and what if the second -i is only a picture (lets say a png rgb24), can i do 1:0 instead of 1:v too ?
[21:45:24 CEST] <furq> sure
[21:45:40 CEST] <Regda> if i do 1:v will the image then be 25fps (because default) or will it be 30fps like the output (i forced the output to 30fps)
[21:45:49 CEST] <Regda> hm ok
[21:46:20 CEST] <furq> it makes no difference whether you use 1:v or 1:0 if that's the only video stream in the input
[21:46:22 CEST] <kepstin> by default, a single image input will be a 1-frame video at 25fps. You can override this with various input options
[21:46:56 CEST] <kepstin> e.g. "-framerate 30 -loop 1 -t 3 -i overlay-image.png" will make an input that's 30fps, 3 seconds long, of the same image being looped.
[21:47:15 CEST] <furq> if the image is being used as an overlay then it repeats forever by default
[21:47:23 CEST] <furq> so it'll be whatever framerate your output is
[21:48:54 CEST] <Regda> because this 1-frame 25fps default, i've read that the fade filter (i use frames instead of time) uses the frames to fade, what if the stream has only 1 frame because its a picture ?
[21:49:22 CEST] <Regda> and then there is the problem that the image is rgb24 ... ok its a png but png has no alpha
[21:49:50 CEST] <Regda> i want to fade out the image so that the video behind it will be visible and not fading the image to black or other color
[21:50:13 CEST] <furq> https://ffmpeg.org/ffmpeg-filters.html#fade
[21:51:47 CEST] <furq> [1:v] format=rgba,fade=out:270:300:alpha=1 [wm]
[21:52:15 CEST] <furq> or just save it as a 32-bit png
[21:55:16 CEST] <Regda> png does not support alpha as channel but it can be converted....i am confused with that doc
[21:55:18 CEST] <Regda> https://ffmpeg.org/ffmpeg-filters.html#format-1
[21:55:31 CEST] <Regda> there stands it supprots only pix_fmts
[21:55:45 CEST] <Regda> *supports
[21:55:46 CEST] <furq> png does support alpha and rgba is a pix_fmt
[21:55:55 CEST] <Regda> ah ok
[21:55:57 CEST] <furq> although it doesn't matter what png supports
[21:56:10 CEST] <furq> it's already been converted to rawvideo by this point
[22:09:07 CEST] Action: DHE bangs his head against the wall for being an idiot...
[22:10:13 CEST] <CoJaBo> ..ha, so the "MP4 files" this thing is returning, are actually webm. I am just now noticing this somehow :/
[22:10:46 CEST] <furq> didn't you say this hasn't been worked on since 2009
[22:11:28 CEST] <CoJaBo> I don't know anymore; but yeh, it does support webm apperently >_>
[22:12:28 CEST] <CoJaBo> I'm assuming I'll still have the same problem tho won't I, its streaming formats that aren't streamable so I need to.. somehow save the header and remux?
[22:17:39 CEST] <CoJaBo> ..oh hell
[22:17:47 CEST] <CoJaBo> For some silly reason, I thought the "video/mp4" string the client passed to the server was a mime type; it is not.
[22:19:44 CEST] <CoJaBo> It sets the stream type to just "video", which gives EITHER mp4 OR webm, depending on wind direction and phase of the moon :/
[22:20:04 CEST] <CoJaBo> So now, on top of all this nonsense, I have to implement both of these :/
[22:23:31 CEST] <Regda> hm the fade not working, maybe i done somthing wrong on another point :/
[22:31:11 CEST] <Regda> i've pasted my command here: http://pastebin.com/4rEKHfEd
[22:31:58 CEST] <Regda> maybe it is because i force it with rgb24 before the filter_complex
[22:32:52 CEST] <Regda> or because i use overlays rgb format instead of yuv....
[22:33:05 CEST] <Regda> hm so or so the overlay works, but not the fade
[22:37:44 CEST] <furq> you're using the same start and end frame on the fade
[22:37:58 CEST] <furq> if you want it to fade out for 90 frames then it should be 90:180
[22:38:30 CEST] <Regda> oh then i missunderstand it
[22:38:40 CEST] <furq> i'm also not sure if it provides any benefit to use enable for overlay
[22:39:05 CEST] <furq> it probably doesn't hurt though
[22:40:57 CEST] <furq> you also don't need -pix_fmt or -video_size before the inputs, the image2 demuxer will figure that out
[22:41:07 CEST] <furq> those are only needed for raw bitmap data and such
[22:44:00 CEST] <Regda> hm i changed fade=out:90:90:alpha=1 to fade=out:90:180:alpha=1
[22:44:03 CEST] <Regda> but it does not work
[22:44:38 CEST] <Regda> the image quickly disapears after 6sec (think its the frame 180)
[22:46:05 CEST] <Regda> in the doc stands "Fade out the last 45 frames of a 200-frame video" and the given code is fade=out:155:45
[22:46:16 CEST] <furq> yeah i guess 90:90 is right
[22:46:48 CEST] <Regda> but if this is not wrong where is my failure ? :/
[22:47:29 CEST] <Regda> the png images which are used by -i %06d.png are all rgb24
[22:47:37 CEST] <Regda> 24bit not 32
[22:48:00 CEST] <Regda> the logo.png is 24bit too
[22:48:06 CEST] <furq> you might need -loop 1 before watermark.png
[22:48:17 CEST] <furq> since you're applying the fade before the overlay
[22:55:43 CEST] <Regda> uhm where i have to use it :/
[22:55:49 CEST] <Regda> *exactly
[22:56:04 CEST] <furq> before -i src\Logo.png
[22:59:01 CEST] <Regda> hm i found it only as filter in the doc
[22:59:18 CEST] <furq> https://www.ffmpeg.org/ffmpeg-formats.html#image2-1
[22:59:47 CEST] <Regda> ah ok
[23:01:03 CEST] <Regda> hm there is somthing wrong
[23:01:48 CEST] <Regda> ffmpeg renders to much frames (currently over 3400 frames but i have only 1100)
[23:02:05 CEST] <furq> oh yeah you need -shortest as well
[23:02:09 CEST] <Regda> and it raises the message Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[23:02:19 CEST] <Regda> but i have set it to 1024
[23:02:32 CEST] <Regda> shortest as well ?
[23:02:55 CEST] <furq> add -shortest before the output filename
[23:03:11 CEST] <Regda> can you give me a link again ?
[23:03:55 CEST] <furq> https://www.ffmpeg.org/ffmpeg.html#Advanced-options
[23:04:22 CEST] <furq> -loop 1 loops that input file forever, so you need -shortest to stop encoding when the other input is finished
[23:04:52 CEST] <CoJaBo> What does -ss 0 as an output option do exactly?
[23:05:50 CEST] <furq> ignores any input with negative timestamps
[23:05:55 CEST] <furq> so usually nothing, but potentially something
[23:08:38 CEST] <CoJaBo> My command line atm is: ffmpeg -ss 10 -i - -ss 0 -c copy test.webm
[23:09:08 CEST] <CoJaBo> The "goal", I think, is to repair the timestamps. That does make it play, but I'm actually not 100% sure how yet >_>
[23:09:52 CEST] <CoJaBo> The input file is the first few K of the source file, an arbitrary amount skipped, then the remainder of the source file
[23:10:07 CEST] <CoJaBo> Stupid, but it's what I have to work with <_<
[23:11:02 CEST] <CoJaBo> Actually, I have -noaccurate_seek before each -ss; tho I don't know if that does anything not pointless
[23:11:30 CEST] <CoJaBo> before the first ss*
[23:13:04 CEST] <Regda> it doesn not work
[23:13:16 CEST] <Regda> i've stopped it at frame 6633
[23:14:10 CEST] <furq> pastebin the full command
[23:16:30 CEST] <Regda> http://pastebin.com/8Qr9TJSv
[23:17:06 CEST] <CoJaBo> Is there a saner way to regenerate messed up timestamps, or does -ss 0 actually accomplish this?
[23:17:44 CEST] <furq> maybe -fflags +genpts
[23:18:49 CEST] <CoJaBo> That creates an output file that actually crashes VLC. Cool.
[23:18:58 CEST] <CoJaBo> >_>
[23:21:15 CEST] <spirou> are there a flag for ffprobe to make it show the total size for each stream?
[23:21:44 CEST] <spirou> so it could tell me "the audio for this file takes xxx MB"
[23:22:15 CEST] <furq> Regda: get rid of -shortest and add :shortest=1 to the overlay filter
[23:24:39 CEST] <spirou> when converting a file with ffmpeg it shows "video:14773kB audio:560kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.180090%" can I make ffprobe show that information for an existing file?
[23:26:44 CEST] <CoJaBo> spirou: I'm not sure you can get all that info without reading the whole file..
[23:27:11 CEST] <spirou> yeah it is fully ok if it takes some time to collect the info
[23:28:40 CEST] <CoJaBo> You could do it with ffmpeg-  ffmpeg -i crash.bmps -f null -
[23:29:04 CEST] <CoJaBo> I'm not certain that's the *best* way tho, but it will read the whole file and dump all the usual stats
[23:29:56 CEST] <spirou> ok
[23:34:03 CEST] <spirou> CoJaBo: yeah that works. what does the parameters actually mean? -f is supposed to be "Force output file format" what is the "-" at the end?
[23:34:40 CEST] <Mavrik> Standard out.
[23:34:43 CEST] <CoJaBo> spirou: -f null forces it to use the "null" format (which writes the frames to an internal loop)
[23:34:52 CEST] <Mavrik> Or pipe or whatsit.
[23:35:16 CEST] <CoJaBo> - is just standard out (needed only because ffmpeg will bail if an output file is unspecified, even tho there is none with -f null)
[23:35:24 CEST] <spirou> aha
[23:36:10 CEST] <CoJaBo> spirou: I believe you can also add -c copy before -f for even more speed in this instance
[23:37:14 CEST] <Regda> furq: ok it works thanks for it but i dont understand the reason why i have to add loop and shortest
[23:37:25 CEST] <CoJaBo> I'd compare the results and see before relying on that tho lol; -c copy didn't work for me, because I was reproducing a bug with the decoder
[23:37:59 CEST] <spirou> ok yeah so it won't try to convert the codec formats inside
[23:38:52 CEST] <Regda> furq: and then there is the problem that thread_queue_size 1024 seems to be ignored, i get  "Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)" on the first and second pass
[23:43:50 CEST] <spirou> It gives a strange warning though, "[null @ 0xaab8840] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead." but I guess I can just ignore that
[23:49:35 CEST] <spirou> CoJaBo: (and yeah without the -c copy it would report the wrong values, it would give what the sound size would have been if encoded with pcm_s16le instead, 66MB instead of 0.5MB in my file)
[00:00:00 CEST] --- Thu Jun 16 2016


More information about the Ffmpeg-devel-irc mailing list