[Ffmpeg-devel-irc] ffmpeg.log.20170302
burek
burek021 at gmail.com
Fri Mar 3 03:05:01 EET 2017
[00:01:14 CET] <llogan> -crf and -b:v are mutually exclusive. use only one. probably a 98% chance you should use -crf instead of -b:v.
[00:06:35 CET] <chandoo> what is this mean "Invalid UE golomb code"
[00:07:38 CET] <chandoo> i have lot of this errors as well "[NULL @ 04dc7ba0] RTP: missed 128 packets"
[00:09:22 CET] <RossW> Thanks for that... I started with an early ffmpeg which didn't use crf and I had to fiddle bitrate, so that was legacy...
[00:09:54 CET] <RossW> and about to get back to the code, telephone interruptions here, and it really kills my train of thought :(
[00:13:08 CET] <chandoo> [Parsed_overlay_11 @ 061d4480] [framesync @ 059cb368] Buffer queue overflow, dropping.
[00:13:25 CET] <chandoo> i have lot of these errors while getting rtsp feed from my cameras
[00:16:55 CET] <ShaneVideo> I have a growing TS file and I want to capture the last 5 seconds and continue recording until stopped. Filming baseball, trying to get a few seconds of "buffer" before the actual record command is sent. I'm trying to use -sseof -00:00:05 and -re but it never catches up to live
[00:17:26 CET] <RossW> ok, so I've messed up. With your offered line, where do I set the x/y position of the overlayed image/logo (as opposed to the timestamp)? I've used:
[00:17:33 CET] <RossW> ffmpeg -f image2pipe -r 25 -vcodec mjpeg -i - -i watermark.png -filter_complex [0:v][1:v]drawtext='%{pts\:hms}':x=w/2:y=h/2:fontcolor=white:box=1:boxcolor=black,overlay=(main_w*(1-0.95)):(main_h*(1-0.95)) -vcodec libx264 -crf 30 -movflags +faststart output.mp4
[00:17:52 CET] <RossW> and get:
[00:17:53 CET] <RossW> Either text, a valid file or a timecode must be provided
[00:18:00 CET] <RossW> Error initializing filter 'drawtext' with args '%{pts\:hms}:x=w/2:y=h/2:fontcolor=white:box=1:boxcolor=black'
[00:18:06 CET] <RossW> Error initializing complex filters.
[00:18:06 CET] <RossW> Invalid argument
[00:26:17 CET] <RossW> http://pastebin.com/raw/CzKJBL5H
[00:27:47 CET] <llogan> change "drawtext='%{pts\:hms}'" to "drawtext=text='%{pts\:hms}'"
[00:27:54 CET] <llogan> also 2.8.6 is old
[00:29:51 CET] <Jonno_FT1> I'm trying to use drawtext, and I get Key 'boxborderw' not found.
[00:30:11 CET] <RossW> ok, that changed things. Now its complaining about the font. I best work out where they are :)
[00:31:33 CET] <thebombzen_> Jonno_FT1: what's the full command and output?
[00:32:22 CET] <Jonno_FT1> thebombzen_: http://pastebin.ws/fvd4lo
[00:33:33 CET] <RossW> seems none were installed, which surprises me. Just building a fonts port now...
[00:35:05 CET] <thebombzen_> Jonno_FTW: full command and output
[00:35:09 CET] <thebombzen_> not just error message
[00:35:12 CET] <Jonno_FTW> ok
[00:35:56 CET] <Jonno_FTW> thebombzen_: http://pastebin.ws/cz7j2h
[00:36:18 CET] <thebombzen_> use FFmpeg, not Libav
[00:36:30 CET] <Jonno_FTW> well it's the one that comes on ubuntu 14.04
[00:36:46 CET] <thebombzen_> well then buildit yourself
[00:37:00 CET] <faLUCE> hello. Does MPEG-TS support MJPEG codec?
[00:37:00 CET] <Jonno_FTW> ok
[00:37:04 CET] <Jonno_FTW> is that the problem then?
[00:37:06 CET] <thebombzen_> we're not going to provide support here for a two-year-old version of a fork
[00:37:16 CET] <Jonno_FTW> fair enough
[00:37:49 CET] <thebombzen_> I have no idea if it's the problem, but it's a two-year-old version of a fork, so it's really not worth putting in the effort to try to figure it out
[00:38:07 CET] <thebombzen_> because it's possible that it's a bug that has since been fixed, or has been fixed in FFmpeg
[00:38:15 CET] <thebombzen_> faLUCE: yes
[00:38:33 CET] <faLUCE> thebombzen_: thnks
[00:38:48 CET] <thebombzen_> if you ever want to test it, try ffmpeg -f lavfi -i testsrc -c:v CODEC_NAME -f mpegts -y /dev/null
[00:38:54 CET] <thebombzen_> (or NUL on windows instead of /dev/null)
[00:39:17 CET] <thebombzen_> if it doesn't, it'll whine that it doesn't work
[00:40:38 CET] <RossW> http://pastebin.com/raw/9M43qrMi <-- llogan/fflogger.
[00:43:13 CET] <thebombzen_> faLUCE: although with mpegts I think you can technically put anything in it
[00:43:39 CET] <thebombzen_> the issue is "will the video player play it"
[00:45:56 CET] <llogan> RossW: you forgot your overlay before drawtext: "[0:v][1:v]overlay,drawtext..."
[00:46:26 CET] <llogan> you were trying to provide two inputs to drawtext but it can only accept one input
[00:46:52 CET] <RossW> llogan: how do I specify then the location of the overlay (graphic) x/y, compared to the text of the timestamp?
[00:46:54 CET] <llogan> see "ffmpeg -h filter=drawtext" for details and/or "man ffmpeg-filters"
[00:47:23 CET] <llogan> you have to set that in overlay
[00:48:36 CET] <llogan> oh, you had overlay in there. move it so it is first. it will be someone simpler that way
[00:48:57 CET] <RossW> so -filter_complex [0:v][1:v]overlay,drawtext=fontfile(blah blah blah)boxcolor=black,overlay=(x):(y)..... ???
[00:49:07 CET] <llogan> you only need one overlay
[00:49:14 CET] <llogan> remove the end one
[00:49:28 CET] <RossW> right...
[00:53:05 CET] <llogan> Jonno_FTW: download this https://johnvansickle.com/ffmpeg/ or use this https://launchpad.net/~mc3man/+archive/ubuntu/trusty-media or follow this https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
[00:53:23 CET] <RossW> brilliant! Now I just have to go back and understand how/why/what :)
[00:53:55 CET] <RossW> Really appreciate the help, it's a steep learning curve, esp when I get interrupted every 11 seconds!
[00:54:02 CET] <llogan> you'll get the hang of it
[00:54:18 CET] <RossW> with help of the quality you guys just showed, I'm sure I will!
[00:55:02 CET] <llogan> next step is to use a non-ancient ffmpeg
[00:55:38 CET] <RossW> with the pts environment variable, can I start it from a specific time (other than 00:00) ??
[00:56:04 CET] <RossW> yes, I'll try to get the source for a later version and compile it. I'm currently running in a production environment.
[00:57:25 CET] <llogan> apparently pts takes up to 3 arguments and the second is the offset.
[00:57:27 CET] <Duality> any ideas why ffmpeg reads in a big piece of data before sending it out (on stdout in my case ?
[00:57:32 CET] <RossW> Hmm, if I change the "pts\:hms" to "pts\:hm" it breaks. I only want hours:minutes.
[00:58:24 CET] <llogan> you may have to use hms
[01:09:12 CET] <furq> RossW: pts\:gmtime\:%H\\:%M
[01:15:41 CET] <RossW> furq: thanks - any thoughts on how I can make it not increment at the default rate? Specifically, if I have (say) 1 frame per *minute*??
[01:19:20 CET] <RossW> yeah, my version must be too old...
[01:19:22 CET] <RossW> [Parsed_drawtext_1 @ 0x809433660] %{pts} requires at most 2 arguments
[01:19:30 CET] <RossW> doesn't like a 3rd.
[01:22:36 CET] <Jonno_FTW> I'm having trouble building ffmpeg
[01:23:06 CET] <Jonno_FTW> I get the error: "ERROR: libass not found using pkg-config", even though libass.pc is in my $PKG_CONFIG_PATH directory
[01:23:33 CET] <Jonno_FTW> and "pkg-config --cflags libass" gives the right output
[01:43:12 CET] <iive> Jonno_FTW: anything relevant in config.log ?
[01:45:05 CET] <cahoots_> hi, how can i rewrite the timestamp for each frame to convert a video from 29.97 fps to 30fps, essentially slowing it down about 1/1000
[01:46:04 CET] <cahoots_> i want to alter the fps with a minimal change to the video itself. or if i simply set both the fps and the length, would that be the same?
[01:46:51 CET] <Jonno_FTW> iive: not really
[01:47:12 CET] <iive> it should give the exact error...
[01:47:21 CET] <iive> and exact arguments used.
[01:47:58 CET] <Jonno_FTW> iive: here's the last few lines: http://pastebin.ws/5pmtz0
[01:49:50 CET] <iive> looks like missing symbols. are you on slackware?
[01:49:55 CET] <Jonno_FTW> ubuntu
[01:51:25 CET] <iive> it seems like this is glib function(s)
[01:53:34 CET] <Jonno_FTW> hm
[01:55:00 CET] <iive> libharfbuzz.so seems to need them. I see glib-2.0 header includes in the compile commands.
[01:55:25 CET] <iive> but no special link paths for glib.
[01:56:47 CET] <Jonno_FTW> iive: nano chopped off the lines, here's the full thing: http://pastebin.ws/bdmjkz
[02:04:27 CET] <iive> yes, these show -lglib-2.0
[02:05:06 CET] <iive> check if you have this library in the 64 library directory. e.g.
[02:05:35 CET] <iive> ls -l /usr/lib/x86_64-linux-gnu/libglib-2.0*
[02:06:29 CET] <Jonno_FTW> I do
[02:08:17 CET] <Jonno_FTW> /usr/lib/x86_64-linux-gnu/libglib-2.0.so -> /lib/x86_64-linux-gnu/libglib-2.0.so.0
[02:09:36 CET] <iive> is there more?
[02:09:47 CET] <Jonno_FTW> /usr/lib/x86_64-linux-gnu/libglib-2.0.a
[02:10:39 CET] <iive> the first one is symbolic link. the file is in another directory, chec it with:
[02:11:00 CET] <iive> ls -l /lib/x86_64-linux-gnu/libglib-2.0*
[02:11:19 CET] <Jonno_FTW> /lib/x86_64-linux-gnu/libglib-2.0.so.0 -> libglib-2.0.so.0.4002.0
[02:11:54 CET] <iive> is that all?
[02:12:03 CET] <Jonno_FTW> yes
[02:12:40 CET] <iive> this is another symlink, but it points in the same directory. It points to libglib-2.0.so.0.4002.0 file
[02:12:53 CET] <iive> that file is the actual library
[02:13:52 CET] <iive> you might want to reinstall/repair glib-2.0 package
[02:40:42 CET] <Jonno_FTW> so the error messabout pkg-config is wrong?
[02:53:55 CET] <iive> Jonno_FTW: the message is misleading
[02:54:46 CET] <iive> ffmpeg configure gets the parameters from pkg-config and tries to build a test program, the program fails to build with them.
[02:55:30 CET] <iive> you seem to be missing a file... maybe it got lost during power down, maybe something removed it...
[02:56:51 CET] <iive> sorry gtg
[02:56:58 CET] <Jonno_FTW> thanks for the help
[02:57:15 CET] <iive> the package system should be able to get that file
[02:57:46 CET] <iive> but it might not be the only one. check `apt-get` options
[02:58:45 CET] <iive> btw, i asked you if you use slackware, because it is the only distribution i know that doesn't check for package dependencies.
[03:00:06 CET] <Jonno_FTW> I fixed it, was aproblem with libglib being old
[03:42:44 CET] <Jonno_FTW> okay I build ffmpeg completely now
[03:43:06 CET] <Jonno_FTW> When I make my mp4 there's a few blank seconds at the end of the file with no audio
[03:45:11 CET] <mani36> hi firstly congrats. i am a final year from iit varanasi, india. i found your ideas interesting. i am good with cpp. in particular i want to work on ambisonic decoder.
[03:46:37 CET] <mani36> i need little help to complete the qualificationtask
[06:20:55 CET] <Jonno_FTW> I made a thing using ffmpeg!: https://github.com/jonnoftw/album2mp4
[06:42:09 CET] <_jam> I'm seeing the wrong "encoder" tag when I use ffprobe on an ffmpeg created mp3 using "-codec:a libmp3lame". It reports "Lavf56.25.101" instead of the approprate version of LAME. I couldn't find a bug on the tracker about this, but I don't have the capability to run the latest git version at this time to check if it is still a problem
[06:42:43 CET] <_jam> applies to both constant bitrate and variable bitrate files
[06:46:02 CET] <thebombzen_> _jam: the encoder tag is attached to the container, not the bitstream
[06:46:14 CET] <thebombzen_> in this cause the bitstream was muxed into the container by Libavformat
[06:47:31 CET] <_jam> thebombzen_: In the stream section, it also says encoder = "Lavc56.26"
[06:48:43 CET] <thebombzen_> well that's because it was encoded by was libavcodec. in this case libavcodec delegated the encoding to the linked version of LAME but libavformat sees the libavcodec as the encoder
[06:49:10 CET] <thebombzen_> because it sort of was. ffmpeg.c asked libavcodec to encode mp3, lavc said "LAME, you do it" and then reponsed to ffmpeg.c "sure thing"
[06:49:46 CET] <_jam> ok, I understand the technical argument, but it seems misleading to consumers of the file
[06:49:55 CET] <thebombzen_> realistically, this isn't a problem, because libmp3lame afaik is the only mp3 encoder that libavcodec has
[06:50:06 CET] <thebombzen_> so any mp3 file that lists "lavc" as its encoder had to be encoded with LAME
[06:50:17 CET] <thebombzen_> if you really care that much you can just set it manually
[06:50:37 CET] <thebombzen_> especially since there is very little reason nowadays to encode mp3 so it's really not an issue
[06:50:56 CET] <_jam> ok
[06:51:18 CET] <_jam> thanks for the quick response
[06:51:18 CET] <thebombzen_> keep in mind that you have to weight "ease of change" to "impact of change" to decide whether it's worth changing, because to change it, SOMEONE has to do it
[06:51:41 CET] <thebombzen_> in this case it might be fairly easy but it's so low-impact that it's really not worth someone's time. and if it is, they'll do it.
[06:51:50 CET] <_jam> yea, i understand that might not be a trivial change to make
[06:53:51 CET] <k-man> how can i tell ffpmeg to write a filename ending in a different extention to what it would normaly use?
[06:53:56 CET] <k-man> like m4b instead of m4a
[06:55:02 CET] <thebombzen_> rename the file you use as output
[06:55:18 CET] <thebombzen_> it won't autorecognize the format by file extension so you have to tell it the format with the -f option
[06:55:30 CET] <thebombzen_> e.g. -f ipod out.m4b
[06:55:33 CET] <thebombzen_> instead of out.m4a
[06:55:55 CET] <k-man> ah thanks
[06:56:06 CET] <k-man> thats the clue i was looking for thanks
[07:00:32 CET] <k-man> where can i find a list of the format names?
[07:36:01 CET] <c_14> ffmpeg -formats
[07:36:21 CET] <c_14> https://ffmpeg.org/general.html#File-Formats
[07:48:18 CET] <thebombzen_> keep in mind that some demuxers have generalized names
[07:48:31 CET] <thebombzen_> given that webm is a special subset of matroska, the demuxer for both is matroska,webm,
[10:23:47 CET] <hron84> Hi! I have a problem with streaming RTMP with FFMPEG. If I stream a video, it randomly cuts the last few seconds (terminates the video before the end) and starts the next one. I use -re switch in playing a video, I am not totally sure it can cause this issue.
[10:33:11 CET] <thebombzen_> hron84: you should use -re on the command sending video to the rtmp server, not command receiving video from the rtmp server
[10:34:09 CET] <thebombzen_> -re tells ffmpeg to read a file on the filesystem in realtime so the output will (ideally) go in realtime as well. useful for sending a file to a streaming server
[10:34:50 CET] <thebombzen_> do not use -re for a live device because the whole point of it is to slow down filesystem reading to realtime. it cause cause buffering issues if you use -re from a live stream or a grab device
[10:37:34 CET] <hron84> thebombzen: this is what i'm doing
[10:37:44 CET] <hron84> I playing video with FlowPlayer
[10:38:00 CET] <hron84> i used wrong word, i use -re in streaming.
[10:59:42 CET] <chuckleplant> Good day all, I have implemented an h264 decoder and I've finally been able to cross-compile (for windows) with nvenc and cuvid enabled.
[11:00:11 CET] <chuckleplant> I asked this a week or so ago.. forgot to take notes.. but how can I make my decoder use cuvid?
[11:00:19 CET] <chuckleplant> It's based on this one http://roxlu.com/2014/039/decoding-h264-and-yuv420p-playback
[11:01:13 CET] <chuckleplant> My question was whether it was possible to select the cuvid decoder when creating the codec context.. iirc answer is no? Is it selected automatically?
[11:04:09 CET] <chuckleplant> Now I remember, there was "avcodec_find_decoder_by_name"
[11:04:30 CET] <chuckleplant> Can I make it fallback to cpu if it fails to find it?
[11:06:57 CET] <BtbN> Just use the normal find decoder if it doesn't find h264_cuvid or whatever you use
[11:07:30 CET] <chuckleplant> I used pCodec = avcodec_find_decoder(AV_CODEC_ID_H264);
[11:07:52 CET] <chuckleplant> And I'm not sure that one will ever pick the h264_cuvid decoder
[11:08:19 CET] <BtbN> hardware decoders are never prefered
[11:08:30 CET] <chuckleplant> My current machine does not have an Nvidia card, however the ffmpeg build does support cuvid. So if I search by name, the decoder is found. On runtime it does not work though
[11:08:51 CET] <BtbN> you'll have to fall back if it fails to initialize
[11:09:55 CET] <chuckleplant> which is the call that should fail? avcodec_alloc_context3?
[11:10:17 CET] <BtbN> The one which calls init in the decoder
[11:12:34 CET] <chuckleplant> ok, I see, avcodec_open. Thanks!
[11:20:08 CET] <tested> how to burn srt file i tried but media player/web player didn't pick it
[11:23:03 CET] <tested> anyone?
[11:34:50 CET] <chuckleplant> BtbN: I'm finding it hard to find API documentation on using hw decoders. All that comes up is for ffmpeg.exe itself. Is there any known resource I can start on? My goal is to decode via cuvid, and render the resulting stream via OpenGL. I'm trying to avoid copying back to RAM from GPU ram when decoding frames
[11:35:11 CET] <BtbN> cuvid works just like any other decoder
[11:35:24 CET] <BtbN> There is no special treatment needed if you don't want hardware frame output
[11:35:52 CET] <BtbN> For copying frames to OpenGL you need to utilize CUDA
[11:36:15 CET] <BtbN> And implement the get_format callback to get the cuvid decoder to output cuda frames
[11:57:18 CET] <chuckleplant> BtbN: Thanks!
[13:24:07 CET] <IamTrying> http://paste.ubuntu.com/24095661/ - how do i make it as WebM?
[13:25:00 CET] <IamTrying> do you -c:v libx264 -c:a libvo_aacenc -b:v 256k -b:a 32k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://localhost/show/$name_low change it with -crf 23 -f webm?
[13:25:39 CET] <BtbN> rtmp is flv
[13:26:44 CET] <IamTrying> BtbN: i need the RTMP to DASH for WebM
[13:26:51 CET] <IamTrying> using nginx-rtmp
[13:27:04 CET] <BtbN> what?
[13:27:21 CET] <BtbN> you can't stream webm via rtmp, the protocol is basically flv over tcp.
[13:27:30 CET] <BtbN> If you want nginx to output dash, you have to do that in nginx
[13:28:08 CET] <IamTrying> NO but here what they did then BtbN http://wiki.webmproject.org/adaptive-streaming/instructions-to-do-webm-live-streaming-via-dash
[13:28:56 CET] <BtbN> They are not using nginx or rtmp at all there
[13:30:23 CET] <IamTrying> http://paste.ubuntu.com/24095674/ - BtbN this is my nginx settings. but it wont work in Chrome cause there is no FLash anymore so i need to tell the ffmpeg in line 22 to convert it into WebM or am i completely wrong on that
[13:30:50 CET] <BtbN> again: rtmp is only flv
[13:31:01 CET] <BtbN> If you want dash output, you have to do that separately via nginx.
[13:31:29 CET] <BtbN> and you already have hls there from the looks of it. So why not just use that?
[13:31:49 CET] <IamTrying> BtbN: HLS have still the FLV stream?
[13:31:55 CET] <BtbN> what?
[13:32:04 CET] <IamTrying> and Google do not support Flash
[13:32:14 CET] <BtbN> I have no idea what you are talking about.
[13:32:31 CET] <BtbN> flv is an old flash container, yes. But it has nothing to do with the flash player.
[13:33:30 CET] <IamTrying> http://paste.ubuntu.com/24095674/ - BtbN line 61 , line 66 should work with http://www.jplayer.org/? officially they support "HTML5: mp3, mp4 (AAC/H.264), ogg (Vorbis/Theora), webm (Vorbis/VP8), wav and Flash: mp3, mp4 (AAC/H.264), rtmp, flv" but with jplayer its not working in Google
[13:33:47 CET] <IamTrying> BtbN: when i play same stream in old Chromium 38 it works but not anymore in new where Flash is removed
[13:33:58 CET] <BtbN> So use some proper player that does not use flash
[13:34:11 CET] <BtbN> Or just build your own with hls.js or something
[13:34:29 CET] <IamTrying> OK
[13:34:32 CET] <IamTrying> thank you
[18:10:35 CET] <furq> http://images.anandtech.com/graphs/graph11170/85898.png
[18:10:37 CET] <furq> wtf is "x264 3.0"
[18:11:25 CET] <JEEB> probably the version of the benchmark package
[18:12:10 CET] <furq> well that's some useful information
[18:22:06 CET] <relaxed> nice results
[18:24:01 CET] <furq> they're not all that positive for amd
[18:24:12 CET] <furq> looks like a decent choice for the price though
[18:24:41 CET] <furq> if nothing else it looks good enough that intel might have to respond to it with something other than hysterical laughter
[18:25:17 CET] <relaxed> indeed
[18:27:18 CET] <tftb> Hi! I'm getting getting really bad audio quality trying to record a screencast of an embedded video on a web page. The sound kind of chops every other second. My command line and relevant info here: http://pastebin.com/8rj4XH9U
[18:28:04 CET] <tftb> I'm on OS X Sierra with ffmpeg 3.2.4.
[18:44:32 CET] <JEEB> tftb: which audio encoder gets used?
[19:19:43 CET] <faLUCE> Hello. when I stream flv on RTMP, who adds timestamps? flv or RTMP container?
[19:20:10 CET] <JEEB> RTMP is not a container
[19:20:15 CET] <JEEB> RTMP is a protocol that contains FLV
[19:20:34 CET] <faLUCE> JEEB: yes, but does it add timestamps, like rtp?
[19:21:15 CET] <JEEB> no fucking idea, as far as I know mostly the FLV timestamps are used
[19:21:37 CET] <faLUCE> I suspect there's a duplication of timestamps
[19:22:31 CET] <JEEB> well FLV timestamps have a very small timebase
[19:22:34 CET] <JEEB> I think like 1000 or so
[19:23:05 CET] <Mavrik> yp
[19:26:08 CET] <faLUCE> it would be interesting to understand if there's a redundancy of timestamps in that stuff
[19:26:52 CET] <faLUCE> for example: does RTMP work with "raw" h264 frames?
[19:27:43 CET] <JEEB> RTMP is an Adobe thing and documented by Adobe
[19:27:58 CET] <JEEB> as far as I can see RTMP is a thing purely to contain FLV
[19:28:06 CET] <JEEB> and FLV supports AVC
[19:28:16 CET] <faLUCE> I see
[19:39:17 CET] <kepstin> my impression was that rtmp and flv are rather similar, flv is sort of a serialized file version of rtmp data :/
[19:39:50 CET] <kepstin> but they're definitely very closely related
[20:31:20 CET] <faLUCE> kepstin: but both have timestamps. I don't understand why
[20:33:48 CET] <faLUCE> rtp doesn't need a container because rtp has timestamps. http doesn't need timestamp because it wants a container (mpegts for example). Why the hell RTMP+flv have two timestamps?
[20:35:37 CET] <kepstin> faLUCE: I don't think anyone here can explain the decisions that the people at adobe made in their proprietary protocol.
[20:37:28 CET] <JEEB> does the protocol really have timestamps as well? anyways, adobe's docs would explain any reasoning if there is any :P
[21:36:04 CET] <faLUCE> <JEEB> does the protocol really have timestamps as well? anyways, adobe's docs would explain any reasoning if there is any :P <---- but this channel is a shorter way to know it :-) :-)
[21:36:37 CET] <JEEB> no, not this channel
[21:37:36 CET] <faLUCE> JEEB: maybe some libav developer would answer....
[21:38:16 CET] <xtina> Hey guys. I'm trying to figure out if the following problem is solvable
[21:38:39 CET] <xtina> I'm livestreaming w/ ffmpeg while tethered to my phone. Unfortunately I can't guarantee consistent speeds of over 1Mbps
[21:39:12 CET] <xtina> I've tried specifying a constant bitrate, but this never works
[21:39:41 CET] <xtina> When I DON'T specify a bitrate, the stream runs at >1x speed and elevated bitrates for the first 10s of stream as it clears the video/audio buffers that accumulated while ffmpeg was starting up
[21:40:21 CET] <JEEB> with libx264 you set maxrate and bufsize
[21:40:27 CET] <xtina> If I specify a bitrate (e.g. 800kbps) then ffmpeg runs at that bitrate even at the beginning, so it can't send data >1x speed and clear out the buffers at the first 10s of the stream
[21:40:31 CET] <JEEB> which limits the encoder to maxrate over bufsize
[21:40:38 CET] <xtina> this causes the audio buffer to fill and causes overruns.
[21:42:07 CET] <xtina> JEEB: oh, fascinating!
[21:42:09 CET] <xtina> that's perfect
[21:42:24 CET] <DHE> unfortunately you are going to need to guarantee something, but libx264 can meet that requirement if you specify it properly.
[21:42:43 CET] <DHE> usually -b:v 800k -maxrate:v 800k -bufsize:v 400k (= 1/2 second buffering allowed)
[21:42:57 CET] <JEEB> xtina: so you have your primary rate control (be it CRF or some ABR or whatever) and then you limit that with maxrate and bufsize
[21:43:20 CET] <JEEB> still won't help you if you get a wonky off latency
[21:43:26 CET] <xtina> DHE: so with those settings i can get up to 1.2Mbps
[21:43:36 CET] <xtina> JEEB: got it
[21:43:41 CET] <JEEB> and some internal buffers go wee-wee, but it can help you with the rate control
[21:43:44 CET] <xtina> does that only work if it's ffmpeg doing the encoding?
[21:43:51 CET] <JEEB> anything using libx264
[21:43:51 CET] <xtina> what if i'm passing encoded audio/video into ffmpeg for muxing/streaming
[21:44:03 CET] <JEEB> since it's a libx264 parameter (among other things)
[21:44:08 CET] <xtina> i see
[21:44:08 CET] <DHE> xtina: imagine you have a bucket containing 400 kilobits of H264 data. It fills at a rate of 800 kbit, but any single frame is allowed to take all the bits it needs to make a frame out of what's available in the bucket. the down side is that taking too many bits now may starve frames later.
[21:44:17 CET] <DHE> so you would NOT want to mix this with -tune:v zerolatency
[21:44:28 CET] <JEEB> xtina: if you don't control the encoder then good luck and have fun
[21:45:48 CET] <xtina> got it, i think i understand. thanks, both, i'll test it out
[21:45:58 CET] <DHE> or the more traditional way of looking at it, as long as you preload 1/2 second of the video before playback, a playing running at 800k won't run out of buffer. (using my above numbers)
[21:46:31 CET] <xtina> right
[21:47:08 CET] <xtina> OK. gonna exit but i'll try those params. thank again
[22:07:15 CET] <bencc1> I have mkv from screen capture using ffmpeg
[22:07:24 CET] <bencc1> large parts of it has no change in the screen
[22:08:00 CET] <bencc1> is there a way to encode to mp4 while reducing the file size in the parts that has no change?
[22:08:18 CET] <furq> any decent codec will do that anyway
[22:08:36 CET] <furq> you could encode it vfr to get rid of the duplicate frames entirely
[22:08:40 CET] <furq> with -vsync vfr
[22:10:07 CET] <bencc1> this is what I currently use:
[22:10:07 CET] <bencc1> ffmpeg -i in.mkv -c:v libx264 -preset medium -crf 23 -vf format=yuv420p -r 25 -c:a aac -strict experimental -b:a 96k -movflags +faststart out.mp4
[22:10:16 CET] <bencc1> so I should just add -vsync vfr?
[22:10:34 CET] <bencc1> ffmpeg -i in.mkv -c:v libx264 -preset medium -crf 23 -vf format=yuv420p -vsync vfr -r 25 -c:a aac -strict experimental -b:a 96k -movflags +faststart out.mp4
[22:13:50 CET] <furq> you'll need a filter to remove duplicates as well
[22:13:50 CET] <bencc1> furq: this is how I use it ^^ ?
[22:14:03 CET] <bencc1> "-vf -vsync vfr" ?
[22:14:36 CET] <furq> !filter mpdecimate
[22:14:36 CET] <nfobot> furq: http://ffmpeg.org/ffmpeg-filters.html#mpdecimate
[22:15:15 CET] <bencc1> so I need both "-vsync vfr" and "-vf mpdecimate" ?
[22:15:33 CET] <bencc1> maybe the default codec params should give me good enough result as you said at the beginning?
[22:15:42 CET] <furq> yes, and probably
[22:15:52 CET] <bencc1> ok, so I won't complicate things
[22:15:52 CET] <bencc1> thankgs
[22:15:57 CET] <furq> slower codec presets will do a better job of compressing that
[22:17:21 CET] <bencc1> -preset slow or veryslow?
[22:17:27 CET] <furq> sure
[22:17:28 CET] <bencc1> compared to -preset medium?
[22:17:40 CET] <ronagy> I'm getting a lot of buf_size warnings when trying to read a dnxhd raw stream
[22:17:41 CET] <bencc1> I'll check the difference between the presets. thanks
[22:17:45 CET] <furq> there's also -preset slower
[22:17:51 CET] <ronagy> looking at the code I can see that ff_raw_read_partial_packet is probably used to read out packets
[22:17:51 CET] <furq> and placebo, but don't use that
[22:17:59 CET] <bencc1> slower is between slow and veryslow?
[22:18:12 CET] <furq> yeah
[22:18:19 CET] <ronagy> but I'm not seeing how the packets is combined into the buf_size dnxhd_decode_header expects>?
[22:19:15 CET] <JEEB> there's usually a parser between demuxer and decoder
[22:19:45 CET] <JEEB> in case non-full packets can come out of a demuxer
[22:21:10 CET] <ronagy> and where is that parser in case of dnxhd?
[22:21:53 CET] <JEEB> libavcodec/dnxhd_parser.c I would guess
[22:22:14 CET] Action: JEEB did a quick `find . -iname '*dnxhd*'` in the root FFmpeg dir
[22:22:42 CET] <ronagy> ah, don't know how I missed that! thanks
[22:23:49 CET] <alexpigment> hello everyone. I'm trying to cross-compile for Windows on Ubuntu 16.04 using ffmpeg-windows-build-helpers. i can compile just fine for Win64, but Win32 fails every time with "ERROR: libass not found using pkg-config". others have this issue, but none of the suggestions on google seem to help
[22:24:28 CET] <JEEB> 3rd party build script, go ask for support from the people maintaining those scripts
[22:25:05 CET] <alexpigment> jeeb. that's fair, i suppose. immediately after getting the error it said to come here, so i figured this wasn't anything to do with the script
[22:25:12 CET] <alexpigment> anyway, thanks for your help
[22:26:46 CET] <bencc1> "-threads 1" will ensure I only use one cpu core?
[22:27:14 CET] <bencc1> I have several parallel transcoding jobs and I don't want one to affect others
[22:30:17 CET] <alexpigment> general ffmpeg question: is it possible to compile a shared ffmpeg that incorporates both 8-bit and 10-bit x265? i'd ideally like to have it automatically switch to 10-bit when a command line triggers 10-bit via a profile like main10
[22:32:31 CET] <JEEB> alexpigment: I thought that was just about building with the high bit depth mode enabled, since a high bit depth x265 would be able to output 8-10bit
[22:32:37 CET] <JEEB> (and 12bit nowadays)
[22:33:08 CET] <alexpigment> jeeb: as far as I can tell, you can't do 8-bit on a 10-bit x265
[22:33:13 CET] <alexpigment> this is certainly true with static builds
[22:33:38 CET] <alexpigment> 10-bit HEVC is required (among other parameters) for 4k HDR
[22:34:12 CET] <alexpigment> so obviously, it would be ideal to save space and not have two sets of ffmpeg shared just for x265 8-bit and 10-bit
[22:34:45 CET] <furq> i don't think that's right
[22:35:05 CET] <alexpigment> furq: do you mind elaborating?
[22:35:11 CET] <furq> x264 is either/or
[22:35:25 CET] <furq> but i'm pretty sure x265 can still do 8-bit output if you build with high bit depth enabled
[22:36:17 CET] <furq> you can also build a shared ffmpeg which does 8/10-bit x264 by having two copies of libx264.so and abusing LD_LIBRARY_PATH
[22:36:43 CET] <JEEB> yes, it's just not as optimized since you can't ignore the >8bit stuff, if I recall correctly. and yes, x264 is (currently) limited to one bit depth, but they're having patches on the mailing list for 8 and 10 bit capabilities in a single binary
[22:38:06 CET] <alexpigment> jeeb, ok thanks for the confirming that for me. do you a link somewhere about the patches?
[22:38:29 CET] <furq> i assume that refers to the x264 binary and not the lib
[22:39:01 CET] <alexpigment> for what it's worth, i just did a test and i tried to set "Main" HEVC profile on a 10-bit version of ffmpeg and it errors out. setting it to main10 works.
[22:39:02 CET] <JEEB> pretty sure it was the lib too
[22:39:14 CET] <JEEB> alexpigment: that might be in the libavcodec wrapper
[22:39:27 CET] <JEEB> x265 at least the command line encoder is capable of both 8bit and 10bit
[22:39:37 CET] <JEEB> alexpigment: did you try -pix_fmt yuv420p instead of the profile?
[22:39:53 CET] <alexpigment> i did yesterday, but i'll try again
[22:39:53 CET] Action: JEEB hasn't looked at the libx265 wrapper
[22:40:30 CET] <alexpigment> jeeb: yep, same error when specifying yuv420p
[22:40:40 CET] <alexpigment> it assumes yuv420p10le i believe
[22:42:56 CET] <JEEB> anyways, I'd say the libx265 wrapper needs work then, and libx264 when the multi-bit-depth changes get in
[22:43:29 CET] <alexpigment> k, well i appreciate the heads up
[22:43:53 CET] <furq> i imagine you can use the LD_LIBRARY_PATH trick for libx265 as well
[22:43:54 CET] <alexpigment> i'll check back in in a few months and see if the status has changed
[22:44:44 CET] <alexpigment> furq: i'm a bit of a noob when compiling. i'm only compiling my own because zeranoe seems oblivious to the fact that the only selling point for 4K TVs is HDR and therefore 10-bit is required ;)
[22:44:52 CET] <furq> oh, zeranoe
[22:45:02 CET] <alexpigment> do you mind elaborating on the LD_LIBRARY_PATH trick?
[22:45:08 CET] <furq> well if you're on windows then there is no such thing
[22:45:26 CET] <alexpigment> i'm compiling on ubuntu, but compiling for win64 and win32
[22:45:45 CET] <furq> it's a way to force loading of different shared libs at runtime
[22:45:51 CET] <furq> so it'll only work if you're running on *nix
[22:46:03 CET] <alexpigment> ok, so this is after compilation
[22:46:04 CET] <alexpigment> gotcha
[22:46:06 CET] <furq> i don't think there's any windows analogue
[22:50:07 CET] <alexpigment> has anyone had much experience rendering with libx265 on a system with lots of logical cores (e.g. 8-cores/16-threads or more)? the speed on my i7-3770 is really slow, and i'm not sure how much improvement i'd see going to an 8-core i7
[22:50:50 CET] <alexpigment> and of course, nvenc and qsv are both way too primitive to use in place of x265
[22:51:14 CET] <ronag> This looks like a bug in ffmpeg, no? https://gist.github.com/ronag/b83250c84dcb0397e97fe21dda9f0a30 report ticket?
[22:51:48 CET] <ronag> I'm muxing to dnxhd, pipe to ffmpeg, demux ffmpeg
[22:51:49 CET] <ronag> "Invalid data found when processing"
[22:53:50 CET] <gp5st> hello. I'm trying to create an HLS fileset from a video `ffmpeg -i input.mp4 -b:v 256k -flags -global_header -map 0:0 -map 0:1 -s 640x480 -f segment -segment_time 4 -segment_list_size 0 -segment_list vp8/stream.m3u8 vp8/stream%05d.webm` but it's only creating the first file and encoding the whole video to it and not creating the m3u8 file. is there something stupid I'm (not) doing?
[22:54:36 CET] <slalom> oh wow, i've been doing HLS stuff lately and was hoping someone else would talk about it at some point
[22:55:02 CET] <slalom> i gave up on it though because it couldn't create the iframe_index, so i broke down and we are licensing unified-streaming stuff for the HLS part
[22:55:21 CET] <slalom> if you're on osx you can use apple's HLS tools on the commandline for it too
[22:56:06 CET] <slalom> let me look at how far i got
[22:56:13 CET] <slalom> you're not specifying hls
[22:56:18 CET] <gp5st> slalom: linux and bsd here
[22:56:29 CET] <gp5st> sorry, I'm new to this all, iframe_index?
[22:56:48 CET] <slalom> it's another file that's created that for whatever reason our stremaing server needs/uses
[22:56:51 CET] <slalom> streaming*
[22:57:07 CET] <slalom> real HLS packagers that aren't ffmpeg create it
[22:57:48 CET] <furq> webm over hls?
[22:57:53 CET] <furq> that doesn't seem like something that'll work
[22:59:13 CET] <slalom> ffmpeg -i Episode_10.mov -profile:v high -level 4.0 -b:v 8600k -c:a aac -b:a 128k -start_number 0 -hls_flags split_by_time -hls_time 10 -hls_list_size 0 -hls_playlist_type vod -hls_segment_filename fileSequence%%d.ts -f hls prog_index.m3u8
[22:59:24 CET] <slalom> is the last thing i was working on
[23:00:03 CET] <gp5st> this all seems to work for ff and mpeg4, but chromium doesn't seem to have mpeg4 support
[23:00:26 CET] <gp5st> furq: oh :(
[23:01:31 CET] <slalom> gp5st: you're using the normal muxer
[23:01:34 CET] <slalom> segmenter
[23:01:42 CET] <slalom> have you tried using the actual hls stuff
[23:01:57 CET] <slalom> in ffmpeg i mean
[23:02:14 CET] <gp5st> slalom: not really, because I don't know what I'm doing :-|
[23:02:23 CET] <alexpigment> i always assumed HLS required an F4V container for H.264 - maybe i'm wrong on that
[23:02:33 CET] <furq> hls is mpegts
[23:02:44 CET] <furq> or fmp4, recently, but i doubt anything supports that yet
[23:02:53 CET] <furq> it does require h264 and aac though
[23:03:12 CET] <furq> gp5st: what are you actually trying to do
[23:03:26 CET] <gp5st> furq: I was trying to get this to work in chromium
[23:03:33 CET] <alexpigment> furq - you're right. i was thinking of another type of streaming that's done through flash
[23:03:39 CET] <furq> you're thinking of rtmp
[23:03:42 CET] <gp5st> though, I guess most people have chrome and h264 should work?
[23:03:51 CET] <furq> does h264 not work in chromium
[23:04:06 CET] <gp5st> furq: no, it doesn't, hence my experiment here
[23:05:35 CET] <furq> there are apparently windows chromium builds with h264 and aac enabled
[23:05:44 CET] <furq> and on linux it just uses the system ffmpeg libs afaik
[23:06:09 CET] <furq> but if you're not doing livestreaming then just convert it to webm the usual way
[23:08:44 CET] <gp5st> furq: eh, I think I can just do h264 and call it a day
[23:17:30 CET] <peetah> hi, I may have found a closed source software using ffmpeg without a word in its documentation and various licence documents
[23:18:01 CET] <durandal_170> peetah: name?
[23:18:22 CET] <peetah> as ffmpeg is licensed under LGPL is should only be a matter of adding relevant notices
[23:19:01 CET] <peetah> but from my understanding libpostproc, which they include as a dll along other ffmpeg dlls, is under GPL
[23:19:14 CET] <peetah> therefore it makes their sofware GPL as well
[23:19:17 CET] <peetah> am i right ?
[23:20:16 CET] <furq> yeah
[23:20:21 CET] <peetah> durandal_170: no name for now, I want to be 100% sure about my claims
[23:21:21 CET] <furq> is it commercial software
[23:21:31 CET] <durandal_170> does it have build flags ?
[23:22:13 CET] <peetah> how can I check this ? this is a windows only software: can it be checked by grepping something in the dll
[23:22:17 CET] <peetah> ?
[23:22:40 CET] <furq> if it's bundled with an ffmpeg binary then you can check that
[23:23:18 CET] <peetah> here is what I get : FFmpeg version N-72662-g7be0f48
[23:23:51 CET] <durandal_170> peetah: whats bellow that?
[23:23:54 CET] <furq> there should be build options below that
[23:25:08 CET] <peetah> i got this by grepping FFmpeg from the output of `strings postproc-53.dll`
[23:25:15 CET] <furq> grep enable
[23:25:51 CET] <peetah> among all, there is --enable-gpl !
[23:26:09 CET] <furq> you can't build libpostproc without enable-gpl so that's no great surprise
[23:26:27 CET] <peetah> --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame
[23:26:33 CET] <peetah> --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs
[23:26:39 CET] <peetah> --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
[23:27:05 CET] <furq> a bunch of external gpl libs as well
[23:27:16 CET] <furq> so yeah if this is closed source then they're 100% in violation
[23:27:26 CET] <furq> (ianal)
[23:27:31 CET] <peetah> yes but they don't seem to be included in the soft distribution
[23:27:46 CET] <furq> did you download those dlls from them
[23:27:55 CET] <furq> if you did then they need to publish the source
[23:28:11 CET] <furq> if you have to provide your own ffmpeg libs then that's not so simple
[23:28:18 CET] <peetah> They distribute their software to their client on a CD
[23:28:33 CET] <furq> they have to make the source available on request then
[23:29:42 CET] <peetah> they do not seem to follow any of the advices given at https://www.ffmpeg.org/legal.html
[23:29:50 CET] <furq> shock horror
[23:30:22 CET] <furq> they definitely need to be providing ffmpeg sources
[23:30:28 CET] <peetah> does the use of libpostproc implies that their distributed software must be GPL ?
[23:30:33 CET] <furq> i forget the specifics around whether they need to provide the source to their application, but i suspect they do
[23:30:55 CET] <furq> i know there are ways around that with lgpl ffmpeg, but i don't think those apply to the gpl
[23:31:13 CET] <durandal_170> peetah: they have libx264 and thats gpl
[23:31:52 CET] <furq> yeah if they're building with --enable-gpl then they're linking to gpl software
[23:32:18 CET] <furq> or loading it at runtime, but i don't think the gpl makes a distinction
[23:37:49 CET] <peetah> a search for x264 gives dlls from visioforge, libvlccore, swresample and swscale
[23:40:46 CET] <peetah> I really don't want to mess by accusing them on wrong basis, because their soft is really great in their domain, and the developers team is very open to suggestions, reactive and full of respect for its users base
[23:41:39 CET] <furq> these things happen by accident sometimes
[23:42:00 CET] <furq> if you want to be respectful then let them know privately
[23:42:45 CET] <peetah> I'm sure this is more a 'We have no clue about what those licences implie' rather than 'gimme it's free'
[23:43:39 CET] <peetah> durandal_170: do you have a legal team that is used to deal with these cases ? or are you relying on EFF or others ?
[23:43:55 CET] <furq> if you're saying half the libs they're building with aren't being distributed then it sounds like someone just enabled a bunch of build flags which aren't needed
[23:44:07 CET] <furq> in which case they might not even need to build with enable-gpl
[23:44:46 CET] <durandal_170> peetah: trac bug report
[23:46:49 CET] <peetah> ok so I'll contact them privately first, and then if things can't be solved, I will file a bug report on trac
[23:47:13 CET] <peetah> durandal_170 , furq: thanks for your advices
[00:00:00 CET] --- Fri Mar 3 2017
More information about the Ffmpeg-devel-irc
mailing list