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

burek burek021 at gmail.com
Tue Feb 9 02:05:01 CET 2016


[01:33:52 CET] <jleclanche> OT: does anyone know an audio-only container format that can have subtitles?
[01:53:15 CET] <J_Darnley> mp3 and some karaoke hack
[01:53:28 CET] <furq> depends what you mean by audio-only
[01:53:38 CET] <furq> m4a can contain subtitles but it can also contain video
[01:54:08 CET] <J_Darnley> furq: how is it that we always turn up in unison?
[01:54:20 CET] <furq> i'm stalking you
[01:56:18 CET] <furq> do you remember the other day when you received that package full of headless barbie dolls covered in dried blood and wrapped in barbed wire
[01:56:23 CET] <furq> that was from me <3
[01:56:34 CET] <J_Darnley> ah
[01:56:37 CET] <J_Darnley> that was fun
[01:56:50 CET] <furq> it wasn't my blood though. i'm not stupid
[02:01:00 CET] <TD-Linux> furq, oops! thanks for the protip for next time
[03:15:00 CET] <votz> How can seek (-ss) come before piped input? 'cat foo.mp4 | ffmpeg -ss 0 -i - -c:copy out.mp4' fails, while both 'ffmpeg -ss 0 -i foo.mp4 -c:copy out.mp4' (seek from file) and 'cat foo.mp4 | ffmpeg -i - -c:copy out.mp4' (pipe no seek) succeed. foo.mp4's moov atom is at the head of the file.
[03:15:33 CET] <votz> JEEB: ping (re: acvonv 11.4 vs ffmpeg keyframe behavior)
[11:45:29 CET] <tp_> ofcourse it will fail, or be very slow seeking atleast
[11:46:51 CET] <tp_> try using -ss after '-i -'
[12:20:31 CET] <markvandenborre> pzich: thx for you reply to my webm live stream encoding
[12:20:39 CET] <markvandenborre> I did google before
[13:13:23 CET] <Ccdc_DuckZ> hello, I have single frames saved as jpg or png in a directory and I have to create an animated gif out of those - I followed the video_encode_example() function and I think I have most of the code up
[13:15:16 CET] <Ccdc_DuckZ> I'm still missing the part where I fill the frame->data part, and I'm wondering if I can avoid doing the jpg/png decoding myself, any ideas? can ffmpeg do that itself? I found this http://stackoverflow.com/questions/3527584/ffmpeg-jpeg-file-to-avframe but maybe it's outdated? because I can't find av_open_input_file in the docs
[13:39:37 CET] <Ccdc_DuckZ> this guy https://ffmpeg.org/pipermail/libav-user/2011-July/000428.html also uses the same function... what am I missing?
[13:41:34 CET] <Mavrik> Ccdc_DuckZ, yes, just initialize a JPEG/PNG decoder like you would any other
[13:41:43 CET] <Mavrik> see decode_example.
[13:44:32 CET] <Ccdc_DuckZ> Mavrik: ok, thanks
[13:45:13 CET] <Ccdc_DuckZ> Mavrik: and I'm guessing I also have to build with enable-decoder=png and enable-decoder=???
[13:45:45 CET] <Ccdc_DuckZ> jpeg2000? mjpeg? libopenjpeg?
[13:47:02 CET] <Mavrik> iirc mjpeg handles all jpeg decoding
[13:47:07 CET] <Mavrik> jpeg2000 is a different format.
[13:49:54 CET] <Ccdc_DuckZ> great, I'll try to implement all that, thanks! :)
[14:32:55 CET] <DHE> I have a video being processed (live source) and some kind of error has caused the AC3 decoder to just go haywire and stop processing audio. It just produces some kind of tone now. Is there a way to reset the decoder on-the-fly? (code modifications are okay)
[15:44:33 CET] <mk1> hello there. I'm trying to get the exact time of an intra frame (h264) using ffprobe -read_intervals 119%#1. This usually worked but one video returns an empty array instead of the I-frame
[15:44:51 CET] <mk1> ffprobe -print_format json -select_streams v:0 -show_frames -read_intervals 119%+#1 test.avi
[15:44:56 CET] <mk1> any ideas/pointers?
[16:27:07 CET] <termos> is there a way to extract the encoding level in the C API? I keep getting -99 value from AVCodecContext::level for some reason, even after the codec is opened
[16:27:30 CET] <JEEB> that's probably an encoding-only value
[16:27:47 CET] <JEEB> I don't think such format-specific information is stored in the generic avcodec stuff
[16:29:59 CET] <termos> yes I want the x264 level of the profile I'm using
[16:30:27 CET] <termos> I see it being printed in the FFmpeg output as "profile Main, level 3.1" but I don't know how to get that 3.1 value in code
[16:30:48 CET] <JEEB> see what ffmpeg.c is doing?
[16:30:53 CET] <JEEB> or whatever part is printing that stuff :)
[16:31:04 CET] <JEEB> and it's not x264, but AVC or H.264
[16:31:08 CET] <JEEB> x264 is the encoder
[16:32:07 CET] <termos> yes but this is the encoder output, I'm setting main profile and no level so it seems to default to 3.1 in this case
[16:32:41 CET] <termos> the input is in High profile, also h264
[16:33:04 CET] <JEEB> libx264 sets the profile and level to the lowest one your settings and content match
[16:38:33 CET] <termos> do you know how I can read out the level that libx264 set?
[16:44:34 CET] <DHE> levels are about decoder capabilities. you'd need to analyze the video in terms of number of reference frames (at least) to measure what a video's level is
[16:45:14 CET] <DHE> you're supposed to specify the level capability of your decoder and x264 will adjust your encoder settings to meet the requirements
[16:52:55 CET] <termos> ah I see
[16:55:02 CET] <DHE> same thing for the profiles. "baseline" means a number of things like "no b-frame support". x264 will tweak your settings if you're in violation if you specify "-profile:v baseline" but if you just happen to input baseline-compatible settings, all is fine
[16:55:13 CET] <termos> I still can not figure out how FFmpeg arrives at some level value or how to get it out of the C API. I guess I need to read the source to see how it's printed
[16:55:59 CET] <termos> or I'm guessing it's libx264 that arrives at some level value
[16:57:31 CET] <DHE> there is a table of levels in the x264 source, sorted by decoder capability. x264 goes through the list looking for the first match that meets the encoder settings
[16:57:59 CET] <DHE> the reverse is used when you specify a level parameter - the table is consulted to see the limits, then your reference frames are lowered to meet the calculated limit
[16:58:46 CET] <DHE> https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels  Human-readable table
[17:03:16 CET] <termos> okey I see, thanks. I found out where the level string is generated, it's generated like this: snprintf( level, sizeof(level), "%d.%d", h->sps->i_level_idc/10, h->sps->i_level_idc%10 );
[17:03:50 CET] <termos> seems to be based on some index in the table you are talking about
[17:04:33 CET] <Bluez_> hi guys
[17:05:04 CET] <Bluez_> does anyone know of a concise example on how to put raw h264 and raw AAC frames in to a container without re-encoding etc?
[17:06:23 CET] <termos> the thing I want to do is to generate the CODECS attribute for my HLS playlists as explained in the table under #11 here: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
[17:07:27 CET] <kepstin> termos: easiest way? pick a profile that's the highest your encoder will ever output, then statically put that in the CODECS attribute
[17:07:59 CET] <kepstin> profile/level
[17:08:39 CET] <termos> I have some constrained baseline level 1.2 encodings as well, I guess that will make those unplayable on most of it's intended devices
[17:09:20 CET] <DHE> what devices? even modern iphones will do a lot better than that. baseline at such a low level shouldn't be a big deal these days
[17:11:32 CET] <termos> we've had complaints from customers from africa as well as eastern europe with some really shitty cell phones
[17:16:23 CET] <kepstin> well, if you're encoding to a specific level, then you're passing options to x264 to set that level, so you already know what it is and don't really need to pull it out afterwards...
[17:17:07 CET] <DHE> agreed. if you have known limits, tell x264 what they are and it will conform to it
[17:17:10 CET] <kepstin> I guess the only case where you might need to find it out is if you have some old pre-encoded files that you don't know what profile/level they fit in.
[17:18:15 CET] <DHE> if it's encoded with x264 then you can usually use 'strings' on the file and find the encoding settings out of the video fairly easily
[17:18:21 CET] <termos> hm that's a good point, we don't set the level now it's just calculated by x264 based on I guess resolution and bitrate etc.
[17:21:37 CET] <termos> would still be nice to know what level it's setting as it's the minimal the stream fits in
[17:23:20 CET] <DHE> just try the strings thing
[17:45:49 CET] <Che-Anarc> Are stdout references to 'Audio:' omitted from 'Metadata' output with files / content that do not have an audio stream?
[17:54:36 CET] <Che-Anarc> It would seem so  ... just tried it with a couple of files.
[18:40:44 CET] <andrey_utkin> why ffmpeg-created MPEG  TS files always have start_time ~1.46s, which is not possible to shift to 0 even with "-avoid_negative_ts make_zero" ?
[18:53:44 CET] <ac_slater> hey all. When I mux h264 to mpegts and stream over udp, the video briefly freezes *every second* when playing with any ffmpeg based decoder (mpv, ffplay) and VLC. The log on the player says that H.264 does not have RBSP. Would this be doing it?
[18:54:23 CET] <ac_slater> my command line is `ffmpeg -i test.h264 -f mpegts udp://127.0.0.1:9999` ... when test.h264 was encoded with libx264 some time ago
[18:54:53 CET] <BtbN> don't use raw h264 if you can avoid it.
[18:55:49 CET] <ac_slater> BtbN: what if my source is the output of an h264 encoder? Should I still mux the input to a container?
[18:56:58 CET] <BtbN> What h264 encoder is there that's not part of ffmpeg which outputs raw h264?
[18:57:45 CET] <ac_slater> BtbN: I'm creating out. The issue I mentioned regarding the mpegts streaming skipping happens with all of the h264 encoders I can find (vdpau, libx264, and my own)
[18:57:50 CET] <ac_slater> I'm creating one *
[18:58:33 CET] <ac_slater> my issues, I believe, are either with the mpegts muxer, or ffmpeg's udp output
[18:58:42 CET] <BtbN> could be almost everything. Package loss, missing extradata, ..
[18:59:02 CET] <ac_slater> BtbN: this is localhost, which on linux promises no loss
[18:59:30 CET] <BtbN> so that also happens if you encode or stream copy with ffmpeg itself?
[18:59:41 CET] <DHE> still not promised. the UDP buffer could potentially still overflow
[18:59:42 CET] <andrey_utkin> ac_slater: is RTP packetization an option?
[18:59:57 CET] <ac_slater> BtbN: yes
[19:00:17 CET] <ac_slater> DHE: I'm forcing packet size smaller than loopback's MTU
[19:00:28 CET] <ac_slater> andrey_utkin: the freeze/skip even happens with RTP
[19:00:38 CET] <BtbN> try tcp, if that works, your UDP setup is the issue
[19:01:29 CET] <andrey_utkin> ac_slater: how do you catch the stream? with ffmpeg/ffplay?
[19:01:41 CET] <DHE> ac_slater: got nothing to do with it. if the receiver process doesn't recv() packets fast enough then your udp socket will drop packets. the advantage is these are counted
[19:01:47 CET] <andrey_utkin> you should try increasing receiving buffer
[19:02:05 CET] <andrey_utkin> there are two options about that for udp
[19:02:07 CET] <ac_slater> DHE: that is true
[19:02:18 CET] <ac_slater> DHE: the video bitrate is 500kbit/s
[19:02:49 CET] <ac_slater> actually I've made an important observation
[19:03:08 CET] <ac_slater> with ffplay, either streaming or local file, I get the skipping every one second on the dot
[19:03:28 CET] <ac_slater> with mpv, it prints out "Invalid video Timestamp" every second on the dot but plays smoothly
[19:03:50 CET] <ac_slater> do I need +genpts?
[19:07:05 CET] <andrey_utkin> ac_slater: i'd looked at http://ffmpeg.org/ffmpeg-protocols.html#udp and added this to receiving side before -i: -buffer_size 10000000 -fifo_size 100000
[19:07:18 CET] <DHE> raw h264 has no timestamps
[19:07:19 CET] <ac_slater> andrey_utkin: I'll try it, thanks mate
[19:07:30 CET] <ac_slater> DHE: but mpegts does
[19:29:56 CET] <ac_slater> So, I guess I'm not generating correct timestamps for the mpegts muxer
[19:30:07 CET] <ac_slater> not sure how, but the mpegts demuxer is the thing that's freezing/pausing
[19:31:11 CET] <andrey_utkin> ac_slater: drop us a pair of ffmpeg commands which reproduce your issue, if you can
[19:31:57 CET] <andrey_utkin> sorry, gotta go offline for few minutes
[19:32:34 CET] <ac_slater> andrey_utkin: will do, and a test file
[19:32:36 CET] <ac_slater> thanks all
[19:37:00 CET] <andrey_utkin> ac_slater: best if you achieve generation of test media file/stream with ffmpeg itself :)
[19:37:20 CET] <ac_slater> exactly, lavfi testsrc is what I try to replicate with
[19:43:09 CET] <kbarry> Is it possitle to produce the visualization thats seen in ffplay, but faster than real-time
[19:44:40 CET] <kbarry> IE, i have a 10 second clip, would like to produce what the waveform/visual would look like had I played it in real-time
[19:44:52 CET] <andrey_utkin> so does anybody have an idea why MPEG TSes always have start_time 1.46s?
[19:47:16 CET] <andrey_utkin> kbarry: http://ffmpeg.org/ffmpeg-filters.html#showwaves ?
[19:51:24 CET] <ac_slater> audrey_utkin: it looks like my encoder is causing it. Doing `ffmpeg -f lavfi -i testsrc ... -c:v libx264 .... -f mpegts udp://....` works wonderfully. when `-c:v myh264encoder` ... things get hairy
[20:16:23 CET] <ac_slater> Dan,
[20:16:25 CET] <ac_slater> ooops
[20:41:55 CET] <andrey_utkin> answering myself. "-mpegts_copyts 1" avoids delay. Still unclear why is it here by default - no comments in code or doc
[21:31:58 CET] <kbarry> andrey_utkin Thanks for the link. I tried that but didnt get what i expected. When I use "ffplay" the default visual (i don't know what its called) that is what i want to produce.
[21:33:03 CET] <durandal_1707> kbarry: showspectrum?
[21:33:16 CET] <durandal_1707> i mean filter of that name
[21:36:45 CET] <kbarry> So, in ffplay, i ca generate what i am experiencing as the "default output" using  "ffplay -i input.mp3 -showmode 2"
[21:38:26 CET] <andrey_utkin> 2, rdft -- show audio frequency band using RDFT ((Inverse) Real Discrete Fourier Transform)
[21:39:40 CET] <kbarry> right,
[21:39:49 CET] <kbarry> just trying to figure out how to do that with ffmpeg
[21:39:51 CET] <andrey_utkin> looks that's not a filter
[21:40:00 CET] <andrey_utkin> it's coded right in ffplay.c
[21:42:50 CET] <kbarry> https://trac.ffmpeg.org/wiki/FancyFilteringExamples
[21:43:33 CET] <C0nundrum> WHats the best way to capture an m3u8 stream ?
[21:44:00 CET] <kbarry> C)nundrum its HLS, You are trying to record it?
[21:44:50 CET] <C0nundrum> I'm recording to a browser playable format what i use is ffmpeg -i "http://sourcemedia.com:1935/live-origin/67b88_aac/playlist.m3u8" -vcodec copy -acodec copy -bsf:a aac_adtstoasc -f mp4 "E:\capture 2-8-2016 3.25 PM.mp4"
[21:45:59 CET] <C0nundrum> the problem that i have is 1.ffmpeg doesn't seem to try to reconnect and i end up with alot of 30sec-1min recordings 2. if it is iterrupted, the whole file is useless. 3.when playing in browser there are parts where the time keep moving but the image is still.
[21:46:21 CET] <C0nundrum> I tried recording using  flv to avoid the broken vidoes if iterruped but i end up with video and no sound
[21:47:00 CET] <DHE> why not use hls.js ?
[21:47:33 CET] <C0nundrum> also btw i'm not live streaming just save a stream to disk
[21:49:12 CET] <C0nundrum> ffprobe shows the input as http://i.imgur.com/H8Yvk2s.png
[21:49:25 CET] <C0nundrum> any ideas for solve any of these problems ?
[21:49:30 CET] <C0nundrum> solving*
[21:53:55 CET] <durandal_1707> kbarry: its showspectrum filter
[21:54:47 CET] <kbarry> durandal_1707: I'm getting an error (lemme paste)
[21:55:23 CET] <C0nundrum> kbarry ?
[21:55:40 CET] <C0nundrum> are there any connection settings for ffmpeg
[21:55:47 CET] <C0nundrum> like for reconnects
[21:56:07 CET] <kbarry> C0nundrum: I'm kinda new to ffmpeg myself
[21:56:22 CET] <kbarry> IF yo play it in ffplay, do you end up with disconnectivity?
[21:56:35 CET] <kbarry>  durandal_1707 http://pastebin.com/ZCLPRHBq
[21:56:58 CET] <kbarry> I am probably using bad syntax,
[21:57:03 CET] <kbarry> And just don't know it
[21:57:48 CET] <durandal_1707> kbarry: showspectrum returns video
[21:58:05 CET] <durandal_1707> kbarry: if you want picture use showspectrumpic, but you need recent ffmpeg
[21:58:46 CET] <durandal_1707> by default showspectrumpic use different options, it shows axes and such
[21:59:16 CET] <kbarry> Hmmm.
[21:59:47 CET] <kbarry> I'm getting
[21:59:50 CET] <kbarry> "no such filter"
[22:00:01 CET] <durandal_1707> kbarry: you need newer ffmpeg
[22:00:18 CET] <kbarry> Lemme change subjects for a moment,
[22:00:29 CET] <kbarry> I don't seem to understand the outpuit from ffmpeg -version
[22:01:14 CET] <durandal_1707> kbarry: showspectrumpic was added in last day of 2015 year
[22:02:40 CET] <kbarry> ok, updating
[22:19:58 CET] <explodes> Any tips as to why repeatedly seeking (5 times per second) would lag? It's either my code, or something with av_seek_frame...
[22:31:47 CET] <Rnuomer> hey~ I've looked all over the first page of a google search results and I can't find out if there's a way to capture just one x11 window even if it goes behind another window or moves?
[23:28:45 CET] <derekprestegard> hello, if I want to convert a sequence of standard full range (0-255) sRGB JPEGs into a video using full range bt709, how can I do this? sRGB is very similar to bt709 except the gamma is a bit different. Is there a filter that can do this conversion?
[23:31:10 CET] <andrey_utkin> derekprestegard: maybe try -filter:v filter=pix_fmts=bt709
[23:31:21 CET] <andrey_utkin> oops
[23:31:31 CET] <andrey_utkin> -filter:v format=pix_fmts=bt709
[23:32:23 CET] <derekprestegard> pretty sure bt709 isnt a pixel format?
[23:32:29 CET] <kepstin> derekprestegard: as far as I know, the ffmpeg command line tool should be automatically adding filters to perform any needed color space conversions.
[23:32:30 CET] <derekprestegard> the pixel format in the output video would be yuv420p
[23:32:54 CET] <c_14> derekprestegard: use the zscale filter
[23:32:56 CET] <derekprestegard> okay
[23:33:47 CET] <derekprestegard> c_14: whats the benefit of this?
[23:36:17 CET] <c_14> zscale/z.img was built to correctly scale/transform whereas swscale was built to do it quickly
[23:38:38 CET] <derekprestegard> c_14: interesting, I take it this is an ffmpeg patch and not included in official builds. Any word on where I can get a precompiled build so I can mess around without building a windows or mac binary?
[23:41:11 CET] <derekprestegard> nm looks like the zeranoe builds have this included :D
[00:00:00 CET] --- Tue Feb  9 2016


More information about the Ffmpeg-devel-irc mailing list