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

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


[00:03:05 CET] <yeryry> I'm trying to use rtmp with ffplay under Windows, and it seems that the parameter parsing doesn't properly understand " " around a parameter, and still splits it at a space. Is there some other syntax for this, or maybe this is a windows-build anomaly or something?
[05:36:39 CET] <solrize> current master with default config gets many compilation warnings like:
[05:36:42 CET] <solrize> libavcodec/h264_cavlc.c:605:46: warning: array subscript is above array bounds [-Warray-bounds]
[05:36:42 CET] <solrize>              ((type*)block)[*scantable]= level[i]; \
[05:36:42 CET] <solrize>                                               ^
[05:36:45 CET] <solrize> should i care ?
[07:12:59 CET] <c_14> solrize: as long as "many" isn't several hundred/thousand and it doesn't break compilation you can probably ignore them
[07:13:11 CET] <solrize> hmm ok thanks
[07:13:19 CET] <solrize> it might have been a dozen or so
[07:13:45 CET] <c_14> Oftentimes they're false positives that require more effort to get rid of than they're worth.
[07:26:23 CET] <solrize> fair enough
[10:57:54 CET] <Shadow42085> ffmpeg can not find libass which i compilied myself and installed it
[10:58:51 CET] <__jack__> Shadow42085: find, for compiling, or at runtime ?
[10:59:14 CET] <Shadow42085> during ./configure
[10:59:14 CET] <__jack__> in any case, seems to be a location issue
[10:59:24 CET] <__jack__> (at runtime, ldconfig)
[11:00:06 CET] <Shadow42085> its saved at /usr/local/lib/ass
[11:00:39 CET] <__jack__> Shadow42085: any interesting stuff at the tail of config.log ?
[11:02:04 CET] <Shadow42085> I will pastebin the log
[11:04:45 CET] <Shadow42085> www.pastebin.com/Xq9S8dd
[11:07:18 CET] <Shadow42085> its even in /usr/local/lib
[11:07:32 CET] <__jack__> This page has been removed!
[11:08:52 CET] <Shadow42085> www.pastebin.com/jXq9S8dd
[11:08:58 CET] <Shadow42085> forgot one letter
[11:09:25 CET] <JEEB> see config.log
[11:09:37 CET] <JEEB> that should tell you what it tried to check for and how it failed
[11:11:07 CET] <Shadow42085> i pastebin the log and i can make heads or tails of since I installed libass by compiling it
[11:11:56 CET] <Shadow42085> the compile process with libass had no errors
[11:12:16 CET] <Shadow42085> unless i didnt compile it right
[11:12:29 CET] <Shadow42085> i am running Slackware
[11:19:12 CET] <Shadow42085> so jack any ideas
[11:24:17 CET] <__jack__> Shadow42085: well, how did you installed libass ? its located on /usr/local/lib/ass, or /usr/local/lib ? pkg-config looks for that: check_pkg_config libass ass/ass.h ass_library_init
[11:24:21 CET] <relaxed> Shadow42085: PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure ...
[11:24:34 CET] <__jack__> according to man-page, pkg-config search .pc files, find them
[11:28:44 CET] <Shadow42085> i compiled it using ./configure then make then make install
[11:41:53 CET] <Shadow42085> libass.pc is in /usr/local/lib/pkgconfig
[11:45:52 CET] <Shadow42085> so do i need to include /usr/local/lib in my confiure ptch
[11:46:00 CET] <Shadow42085> path?
[11:49:16 CET] <relaxed> Shadow42085: run ffmpeg's configure like the following,  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure <enable ffmpeg external libs here>
[11:52:25 CET] <Shadow42085> there we go
[11:52:56 CET] <Shadow42085> so i need to make pkg-config to look there as well?
[11:54:05 CET] <Shadow42085> i mean to say add /usr/local/lib/pkgconfig to pkg-config search paths?
[11:54:26 CET] <relaxed> PKG_CONFIG_PATH=/usr/local/lib/pkgconfig tells it to look there
[11:55:04 CET] <Shadow42085> is there a way to tell it to do that automanically?
[11:55:53 CET] <BtbN> use propper packages instead of manualy installing stuff in non-default paths.
[11:56:00 CET] <Shadow42085> its compiling now so will know soon
[11:56:47 CET] <Shadow42085> well some of the files are not part of the repos
[11:59:19 CET] <Shadow42085> and I am not using slackbuild or sbo those just reaks of what I am used to in debian/ubuntu, Arch, FreeBSD
[12:00:01 CET] <Shadow42085> it will be easier to compile once some of these packages become part of slacks repos
[12:00:32 CET] <Shadow42085> not as a slackbuild or easy mode builds
[12:02:02 CET] <andrey_utkin> do H.264 B-frames reference _following_ I-frames? If yes, can this be worked around somehow so that I could remove the following GOP entirely or replace it?
[12:02:42 CET] <BtbN> they probably can, but usualy don't.
[12:04:21 CET] <andrey_utkin> Thanks for replying! What could I check in ffmpeg code (I mean patching libavcodec) to printout whether this happens? Or which free utilite is available to view this information of media file?
[12:13:32 CET] <jkqxz> andrey_utkin:  That's more an x264 question rather than an ffmpeg question, I think (for the changing behaviour, at least).  What are you actually trying to do?  (Do you have a broken decoder which doesn't work on some conforming streams?)
[12:15:13 CET] <andrey_utkin> jkqxz, I am implementing timerange-wise transcoder/remuxer for video files. The current approach is to replace GOPs, and I wonder can it end up with breaking B-frames which reference _next_ I-frame which was replaced.
[12:15:33 CET] <andrey_utkin> so far I haven't noticed this
[12:15:57 CET] <andrey_utkin> but those B-frames feel dangerous in this regard
[12:16:30 CET] <andrey_utkin> so I wonder if there could be a "bitstream filter" to make such B-frames usual P-frames for example :)
[12:18:51 CET] <__jack__> yep, reencode :p
[12:19:42 CET] <jkqxz> Those B frames are after the I frame in stream/decode order anyway (but not in display order), so won't you already be removing them when splicing?
[12:22:44 CET] <andrey_utkin> oh indeed. So given B-frame is demuxed before the I-frame, B cannot reference the I... so my concern is not real
[12:23:11 CET] <Mavrik> andrey_utkin, IDR frames are what you're looking for
[12:23:57 CET] <andrey_utkin> Mavrik, is there a way to distinguish IDR frames in ffmpeg API?
[12:23:58 CET] <jkqxz> As long as you never rearrange the stream order, then yes you are always ok on this problem.
[12:24:13 CET] <Mavrik> andrey_utkin, no idea
[12:24:17 CET] <Mavrik> check libx264.c
[12:25:26 CET] <andrey_utkin> thanks, will check
[12:25:55 CET] <andrey_utkin> so is it safe to assume that GOPs (I-frame + all following non-I-frames sequence) are self-contained and can be replaced? Or this is true only in terms of "IDR-frame + all following non-IDR-frames sequence"?
[12:26:50 CET] <Mavrik> Only true in terms of IDR frames.
[12:27:05 CET] <Mavrik> Frames that follow an IDR frame may not reference frame before an IDR frame.
[12:27:31 CET] <jkqxz> No.  There still might be something after another I frame which references something in the section you've removed.
[12:27:56 CET] <jkqxz> (Unless the end of the section is also at an IDR frame.)
[12:29:06 CET] <jkqxz> That is, you can have exactly the same problem as you initially described at the end as well as at the beginning.
[12:29:14 CET] <Mavrik> Indeed.
[12:29:24 CET] <Mavrik> So essentially you slice on IDR boundaries.
[12:30:00 CET] <jkqxz> (And you aren't saved by decode order, because the problematic frame is after the next I frame in decode order but before in display order.)
[12:34:09 CET] <andrey_utkin> ok so the problem is actually about P/B frames which may reference previous GOPs?
[12:34:56 CET] <Mavrik> "GOP" is a useless distinction when dealing with H.264 streams.
[12:35:12 CET] <jkqxz> If you have a well-defined GOP structure, yes.  (The problem is really that H.264 allows arbitrary referencing and there isn't any external information to work out what's going on.)
[12:35:17 CET] <Mavrik> All the references care about is frame count and existence of IDR frames.
[12:35:44 CET] <Mavrik> Usually a GOP is bounded by a pair of IDR frames, but static GOPs aren't really a thing.
[12:39:06 CET] <andrey_utkin> great, thank you so much for support. Is anybody of you ok to consult me further in person on this subject, if the need arise? I am happy to pay. Asking on IRC sucks when it's weekend or an evening or nigh, that's why I'd like more stable contact with people who can consult me.
[12:39:23 CET] <jkqxz> (H.265 solves this problem by introducing lots of different NAL unit types to distinguish these cases - the specific case here is exactly RASL frames, which you can then see as a NAL unit type and drop easily.)
[12:45:20 CET] <||arifaX> I want to create a 'silent' mp3 on windows. I tried ffmpeg.exe -ar 48000 -t 60 -f s16le -acodec pcm_s16le -i NUL -acodec libmp3lame -aq 4 "C:\temp\test.mp3" but it does not work, any ideas how to get /dev/zero in place here using Windows?
[12:50:56 CET] <||arifaX> found it myself, thanks anyway: ffmpeg.exe -f lavfi -i anullsrc=r=44100:cl=mono  -t 60 -q:a 9 -acodec libmp3lame "C:\temp\test.mp3""
[12:53:16 CET] <andrey_utkin> arifaX, you could use ffmpeg -f lavfi -i aevalsrc=0 ...
[12:53:26 CET] <andrey_utkin> See http://ffmpeg.org/ffmpeg-filters.html#aevalsrc
[12:55:11 CET] <||arifaX> andrey_utkin: you are right, works, too! - Thanks saves some bits in code :)
[13:08:45 CET] <andrey_utkin> __jack__ > yep, reencode :p
[13:08:45 CET] <andrey_utkin> I wonder if this is possible to reencode just one non-key H.264 frame, so that it still correctly references other frames which are already encoded and which are left unmodified. Of course converting it to I-frame should work.
[13:23:56 CET] <jkqxz> andrey_utkin:  It is certainly possible in theory, but I don't know of any tools which would help you do it.  x264 does not have a way to get the stateless single-frame encode (given reference frames, etc.) which you need here.
[13:25:13 CET] <jkqxz> Encoding it entirely as IDR would be easier (just put the single frame into x264), but will also inflate the bitstream by probably an unreasonably large amount.
[14:34:30 CET] <hseg> Hi. How do I get a dump of the encodings used on a file?
[14:35:27 CET] <hseg> What I'm trying to do is the following. Windows Movie Maker only likes some of my .VOB files, so I'm trying to figure out what commonalities exist between the videso
[14:36:23 CET] <BtbN> I'd guess it only likes the ones that are not "encrypted"
[14:37:47 CET] <firewated> ffprobe can output json i think
[14:37:52 CET] <hseg> I have some logs from a while back when I first started this project: This works: http://sprunge.us/WjeB, This doesn't: http://sprunge.us/QjZF And this one has another error: http://sprunge.us/gLhB
[14:38:16 CET] <hseg> The comments below give the bitrates seen among other files with similar output
[14:39:18 CET] <hseg> I note that the first group have 4-digit bitrates, whereas the third group have 6-digit bitrates.
[14:39:44 CET] <swaggerboi> Hello
[14:40:02 CET] <swaggerboi> Could somebody please compile the latest ffmpeg for Windows with --enable-libass ?
[14:40:13 CET] <swaggerboi> I don't have MinGW or Cygwin installed at the moment.
[14:40:23 CET] <swaggerboi> And I really need this to hardcode some subtitles.
[14:40:57 CET] <J_Darnley> http://ffmpeg.org/download.html
[14:41:14 CET] <BtbN> Did zeranoe stop building with libass?
[14:41:37 CET] <hseg> Ah, seems that I was using ffprobe to obtain these logs
[14:42:26 CET] <hseg> Doh. Can't be ffprobe, given that the logs start with the line "ffmpeg version..."
[14:42:29 CET] <J_Darnley> hseg: I see no obvious reason why one works and the other two don't
[14:42:44 CET] <BtbN> It's Windows Movie Maker after all
[14:43:01 CET] <BtbN> It doesn't need good reasons not to work.
[14:43:17 CET] <hseg> Yeah. Problem is I already have quite a bit of work invested in Movie Maker
[14:43:29 CET] <hseg> I suppose I'd have less trouble with Cinerella?
[14:43:38 CET] <BtbN> remux to something else then and try your luck again.
[14:43:50 CET] <swaggerboi> J_Darnley is there a command to list installed libraries in ffmpeg?
[14:43:55 CET] <BtbN> The worst thing with WMM is that it can only output to shitty wmv
[14:43:59 CET] <J_Darnley> ./ffmpeg
[14:44:06 CET] <J_Darnley> or just ffmpeg in this case
[14:44:20 CET] <J_Darnley> they're always printed
[14:45:31 CET] <swaggerboi> Oh wow, seems like I already have libass
[14:45:35 CET] <swaggerboi> Carry on fellas
[14:45:38 CET] <swaggerboi> thanks
[14:47:00 CET] <hseg> The three differences I can find between the first and second paste are the presence of bt470bg in the parentheses following yuv420p, a max of 9282kb/s vs. 4756kb/s on the video stream, and a max of 384kb/s vs 256kb/s on the audio stream
[14:47:43 CET] <hseg> The third paste in addition also has messages of the form "Invalid frame dimensions 0x0"
[14:48:58 CET] <J_Darnley> did I miss that?
[14:49:29 CET] <J_Darnley> i see
[14:49:45 CET] <J_Darnley> I guess it just has a little junk at the begining
[14:50:06 CET] <J_Darnley> You'll see that ffmpeg gets it right (probably)
[14:50:18 CET] <hseg> ?
[14:50:35 CET] <J_Darnley> Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, bt470bg), 720x576 [SAR 16:15 DAR 4:3], max. 9282 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
[14:51:24 CET] <hseg> So how do I transcode so that bt470bg is dropped, video max is dropped to 4756kb/s and audio max is dropped to 256kb/s
[14:51:26 CET] <hseg> ?
[14:51:40 CET] <J_Darnley> Why would you want to do that?
[14:51:58 CET] <Mavrik> Yeah, don't drop color space definition, it'll make colors f00
[14:51:59 CET] <J_Darnley> -b:v and -b:a
[14:52:23 CET] <hseg> Because that's what the working files look like
[14:52:54 CET] <Mavrik> Having color space defined isn't going to make a file nonworking.
[14:53:25 CET] <hseg> Although... There are a couple of files that seem to work since the last time I checked, so I'll check what they look like
[14:54:44 CET] <hseg> OK, they have *very* different metadata than I was expecting.
[14:59:17 CET] <hseg> Blergh. OK, let's step back. What I want is a program that will permit me to concatenate and temporally crop video files, and a program that will allow me to create a DVD from video files, with that funky chapter thing.
[14:59:26 CET] <hseg> Any suggestions, given that WMM is crap?
[15:00:11 CET] <firewated> temporarily crop?
[15:00:26 CET] <J_Darnley> I don't know about the dvd creating thing but I might use ffmpeg to do the rest.
[15:00:56 CET] <hseg> i.e. delete from time 10:20 to 12:40
[15:01:49 CET] <hseg> Preferably, the program would be graphical in order to permit viewing the video I'm editing while I'm editing it.
[15:02:20 CET] <hseg> My osmotic knowledge suggests Cinerella would be a match for this job.
[15:03:47 CET] <firewated> i probably wouldn't do any of it with ffmpeg because then you'd be encoding twice
[15:04:09 CET] <BtbN> WMM encodes to WMV, that's even worse.
[15:04:36 CET] <BtbN> And that's what lossless intermediate codecs are for
[15:05:37 CET] <firewated> i assumed the video would be too big to store in a lossless format
[15:06:46 CET] <BtbN> There is no such thing as "too big"
[15:06:59 CET] <BtbN> Only too small disks
[15:07:20 CET] <BtbN> Or not enough of them
[15:07:22 CET] <hseg> So what are you suggesting?
[15:09:22 CET] <andrey_utkin> how to trigger h264_parse as breakpoint? I run "-c copy" and "-c rawvideo" commands on MP4/H.264 file, using --enable-debug --disable-stripping statically-linked ffmpeg binary, but my breakpoint is never triggered. Any clue?
[15:09:40 CET] <hseg_> Sorry, connection dropped. You were saying?
[15:11:41 CET] <firewated> unless you have enough storage to store the video(s) you're working on in a lossless format, you're better of just doing everything in a program in one go
[15:14:04 CET] <BtbN> Most professional video editing tools probably unpack to a huge intermediate format anyway
[15:19:49 CET] <firewated> know any good intermediate formats btw? i usually use huffyuv
[15:24:15 CET] <hseg_> Egads. All I wanted was to concatenate and crop some videos. I don't know what my options are, I don't know what the various formats are, and I don't know whether I should care.
[15:24:45 CET] <hseg_> Sorry, I'm just getting frustrated at this seemingly-simple project becoming one hell of a yak-shaving exercise.
[15:24:45 CET] <J_Darnley> If you want to use some graphical tool then go ahead.
[15:24:59 CET] <hseg> Any recommendations?
[15:25:07 CET] <J_Darnley> no
[15:25:13 CET] <J_Darnley> I haven't used one for years
[15:25:14 CET] <hseg> Cinelerra OK?
[15:26:03 CET] <hseg> Dammit, they don't build for windows.
[15:26:41 CET] <hseg> How would you do this without graphical tools?
[15:27:33 CET] <firewated> i don't know how you'd do the chapter graphics and stuff, but the clipping and concatenating is pretty simple
[15:27:37 CET] <J_Darnley> probably ffmpeg's concat demuxer and select filter
[15:28:03 CET] <J_Darnley> or I would go back to avisynth
[15:28:15 CET] <hseg> Have no idea what you mean by that.
[15:28:28 CET] <hseg> Can skip the DVD part for now.
[15:32:08 CET] <firewated> there's a page for concatenating https://trac.ffmpeg.org/wiki/Concatenate
[15:32:46 CET] <firewated> for clipping you can use the arguments "-ss" to specify start time and "-to" to specify end time of a clip you want to extract from a video
[15:36:32 CET] <hseg> OK... So I cut and paste the videos together using that... then transcode to some output format, then find a dvd solution?
[15:37:14 CET] <firewated> yep
[15:39:26 CET] <hseg_> Damn connection.
[15:39:53 CET] <hseg_> OK. Any suggestions on output format? Caveats I should be aware of?
[15:41:25 CET] <firewated> i'd recommend h264 and mp4 with the parameter -crf=18 so you don't lose much detail between encodes
[15:41:44 CET] <firewated> maybe even lower than -crf=18 for the intermediate encodes, and 18 for the final one
[15:43:16 CET] <hseg_> What's -crf?
[15:43:57 CET] <firewated> https://trac.ffmpeg.org/wiki/Encode/H.264
[15:44:17 CET] <firewated> i don't know the technicals but 18 it says 18 is visually lossless and the lower the higher the quality
[15:44:55 CET] <hseg_> OK, not really sure what I'm doing here.
[15:45:32 CET] <firewated> if you don't specify anything, the output is likely to look noticeably worse than your source
[15:48:18 CET] <hseg> Still confused. This is not a domain I'm comfortable in.
[15:51:48 CET] <J_Darnley> If you're going to make a dvd of the output then use mpeg2video!
[15:52:05 CET] <J_Darnley> There's even a handy -target option for just that case.
[15:52:54 CET] <firewated> does it matter what the intermediate format is?
[15:53:41 CET] <J_Darnley> Yes
[15:53:59 CET] <J_Darnley> Only a crap dvd authoring program will blindly encode the input video
[15:54:42 CET] <J_Darnley> And as an intermediate format I would not suggest crf 18
[15:56:40 CET] <firewated> lol, how about saying what you would actually suggest and why
[15:57:09 CET] <J_Darnley> Fucking higher quality.
[15:57:24 CET] <J_Darnley> crf 18 is a final quality level
[15:57:41 CET] <J_Darnley> And I wouldn't be doing this in the first place.
[15:58:35 CET] <hseg> Guys... This is getting really confusing for me
[15:59:04 CET] <J_Darnley> Then I'll piss off
[16:00:14 CET] <hseg> So I'll ask this once and for all: How do I concatenate a heterogeneous collection of videos and obtain one video file in a recommended format, and what format would you recommend?
[16:00:16 CET] <hseg> J_Darnley: I appreciate your input, but I'm getting confused and frustrated.
[16:01:37 CET] <andrey_utkin> hseg: 1) Reencode clips to same file format, video resolution, video framerate, video codec settings (e.g. default ones). 2) Use concat demuxer to obtain merged video.
[16:02:35 CET] <hseg> OK. What format do you suggest?
[16:04:42 CET] <Fjorgynn> wmv
[16:04:44 CET] <jkqxz> The intermediate format should ideally be lossless to avoid compounding errors from differences in encoding schemes.
[16:04:58 CET] <foonix> for intermediate format? something lossless like utvideo, ffvhuff, ffv1 ...
[16:05:08 CET] <jkqxz> ffv1 is the ffmpeg answer to this, though it also supports a lot of random other intermediates used by other programs.  If you are only using ffmpeg, use ffv1.
[16:05:40 CET] <foonix> i think you can play all of them on windows with LAV filters oke
[16:06:08 CET] <hseg> OK. So ffmpeg -i file.vob -f ffv1 on all file.vob, then use https://trac.ffmpeg.org/wiki/Concatenate to concat the files I want?
[16:07:13 CET] <jkqxz> Yes.
[16:09:43 CET] <hseg_> Thank you. Once I've obtained the final concatenated video, what do I transcode it to?
[16:12:20 CET] <jkqxz> After your other operations (cropping, etc.)?  Generally H.264 with CRF selected based on your quality/size requirements, though it depends what you are going to do with the completed video.
[16:12:59 CET] <andrey_utkin> hseg: you don't need any special intermediate format. You can just prepare your clips in the desired format and codec (at last this is true for e.g. H.264 and VP8 codec and file formats such as MPEG TS, MP4, WEBM, Matroska)
[16:13:39 CET] <andrey_utkin> at concatenation step and after it, you don't need to reencode/transcode it
[16:14:08 CET] <hseg> andrey_utkin: Unsure what you mean. Keep in mind the originals are heterogeneous.
[16:14:09 CET] <hseg> I'm going to be making a DVD with the concatenated video file as one of the chapters.
[16:14:52 CET] <hseg> (In fact, I'm gathering up several heterogeneous collections into the various chapters of the DVD, but that's irrelevant data)
[16:15:51 CET] <andrey_utkin> hseg i am not experienced exactly in making DVD
[16:16:16 CET] <andrey_utkin> but i think my point is generally applicable unless some very specific issue with selected format/codec
[16:16:19 CET] <jkqxz> A traditional 2000-era DVD?  I think there are settings to make exactly the right thing (MPEG-2, etc.) for specific constraints of the medium, but I'm not familiar with them.
[16:17:56 CET] <hseg> Again, I don't need much fanciness. All I want is that the chapters will follow one another when playing back the DVD, and that there be a chapter selection menu.
[16:17:57 CET] <andrey_utkin> "Keep in mind the originals are heterogeneous." - in my offer, first step is to reencode so there's no more heterogenity.
[16:18:12 CET] <hseg> I don't care about the graphics of the menu
[16:18:25 CET] <hseg> OK. What do I reencode to? ffv1?
[16:19:07 CET] <techtopia> "Past duration 0.999977 too large"
[16:19:15 CET] <techtopia> i see hundreds of these errors
[16:19:18 CET] <techtopia> what do they mean?
[16:19:56 CET] <foonix> so .ts or .m2ts with chapters using mpeg2+ac3 is probably what you want to achieve, hrmz for menu you need some authoring software
[16:22:00 CET] <foonix> hmmz otoh ifo+vobs are probably needed for the standalone player ;/
[16:23:08 CET] <hseg> How about mp4+h.264?
[16:23:18 CET] <foonix> thats not DVD
[16:23:49 CET] <foonix> but it would be much better if you can use something actual h264+aac mp4/mkv ...
[16:25:53 CET] <hseg> Well, DVD flick seems to support mp4+h.264, so I think I'll go with that.
[16:28:57 CET] <hseg> How do I do that though?
[16:31:08 CET] <esby> I got a random question i have lpcm mp4 files from my gh4 panasonic camera. they use pcm_s16be (twos / 0x736F7774) for the audio.
[16:31:57 CET] <esby> i can transcode them to mkv files, but i can't do the reverse operation, as ffmpeg says that pcm_s16be is not supported in the mp4 container.
[16:32:22 CET] <andrey_utkin> hseg: for step one: for x in clips/*; do ffmpeg -i $x -codec:v libx264 -codec:a aac clips_prepared/$x.mp4; done
[16:32:34 CET] <esby> so are the panasonic mp4 files legit according to the mp4 format? is this some king of bugs? or is there an hack to do the reverse operation ?
[16:33:52 CET] <JEEB> raw audio was only recently standardized in 14496-12
[16:34:00 CET] <JEEB> and I'm not sure if what you're seeing is legit according to that
[16:34:03 CET] <hseg> andrey_utkin: And then ffmpeg -f concat -i chapterN.txt -c copy chapters/chapterN.mp4 ?
[16:34:07 CET] <JEEB> it could be something done a la mov
[16:35:20 CET] <hseg> andrey_utkin: With some ffmpeg -i chapterN.mp4 -ss starttime -to endtime chapterN-segment.mp4 to cut out unwanted bits?
[16:35:50 CET] <JEEB> according to comments it seems like lavf only supports muxing raw PCM into mov
[16:36:11 CET] <JEEB> that said, I haven't tried because I've never had the requirement for LPCM in ISOBMFF
[16:36:51 CET] <hseg> And what's the difference between -c:v -codec:v and -vcodec?
[16:39:44 CET] <JEEB> -vcodec is oldest and the former two are newer ways of noting it with a suffix
[16:39:51 CET] <JEEB> -c:v is just the most short one
[16:40:10 CET] <JEEB> the suffix capabilities were added to a lot of other things as well
[16:40:39 CET] <JEEB> with "codec" it used to be there in the form of special parameters like {a,v,s}codec, but other options might have not had it
[16:40:44 CET] <J_Darnley> Someone thought that the options weren't complicated enough.
[16:40:49 CET] <hseg_> Ah, OK. Is the command sequence I posted correct?
[16:41:47 CET] <J_Darnley> it should work
[16:42:04 CET] <hseg> Well, you can never have too many equivalent ways of specifying the same option. Seemingly equivalent, but slightly different options, now...
[16:42:11 CET] <hseg> Excellent.
[16:42:38 CET] <esby> JEEB: thanks for the comments.
[16:42:43 CET] <hseg> Hopefully, it will Just Work (TM)
[16:43:52 CET] <hseg> So to recap: ffmpeg -i $x -codec:v libx264 -codec:a aac clips_prepared/$x.mp4, then ffmpeg -f concat -i chapterN.txt -c copy chapters/chapterN.mp4 and I should be good to go?
[16:44:37 CET] <esby> JEEB: so the quick fix/hack would be reencoding the audio for now i guess if an mp4 format is needed as final result ?
[16:44:59 CET] <J_Darnley> hseg: it should work
[16:45:26 CET] <hseg> Gotta go now.
[16:45:27 CET] <J_Darnley> esby: the usual suggestion is to use mov if you want pcm, otherwise encode into a format mp4 supports
[16:45:37 CET] <hseg> Excellent. Thank you so much.
[16:49:33 CET] <esby> J_Darnley: i want to keep the mp4 format, i don't use mov usually, since the person on the other end can't use mkv.
[16:49:50 CET] <esby> but maybe using mov could be a work around, dunno actually, never used it
[16:53:35 CET] <esby> anyway, not sure the mp4 conversion will be possible
[16:54:05 CET] <esby> s/mp4/mov/
[18:31:57 CET] <__raven> hi
[18:49:29 CET] <__raven> do you know about a way to do a r128 (loudness) plot of a livestream?
[18:55:24 CET] <ethe> https://ffmpeg.org/ffmpeg-filters.html#ebur128-1 maybe?
[18:59:45 CET] <ethe> __raven if you take a look at the first example, that should give you some guidance on what you're trying to achieve
[19:05:42 CET] <podman> hmm, so using NVENC doesn't seem much faster than not
[19:06:26 CET] <BtbN> depends entirely on your settings
[19:07:06 CET] <podman> BtbN: true. I also can't seem to get it to work with 60fps video :\
[19:07:16 CET] <BtbN> 4K stuff?
[19:07:35 CET] <BtbN> anything up to 1080p shouldn't be an issue to get 60 fps with, if you don't select the most demanding quality settings
[19:07:52 CET] <podman> I'm downscaling to 1080p from 4k60fps
[19:08:13 CET] <BtbN> I'd guess nvenc is not the slow part in that, but the downscaling is
[19:08:25 CET] <podman> but i'm getting "Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height"
[19:08:34 CET] <podman> works fine with libx264 though
[19:10:22 CET] <podman> oh, nvm, it had problems with the video filter for some reason
[19:11:48 CET] <podman> was having problems with the scale filter. shrug
[19:12:41 CET] <__raven> ethe: yes thats nearly bang on tnx :)
[19:16:17 CET] <podman> BtbN: not really sure, but it doesn't seem to make enough of a difference to be worth exploring further as far as I can tell
[19:16:48 CET] <BtbN> if downscaling 4K is already slower than your CPU can handle encoding with x264, sure
[19:18:03 CET] <podman> BtbN: Yeah, just limited by EC2 Hardware I guess
[19:20:12 CET] <podman> The CPU on the G2 instances is a bit slower than the C4 instances
[19:20:15 CET] <podman> that might be the issue
[19:24:00 CET] <podman> I guess for some kinds of video where it might be faster. hmm
[19:26:52 CET] <BtbN> it's not about beeing faster anyway
[19:27:21 CET] <podman> faster transcoding speed was my goal
[19:30:00 CET] <kepstin> imo: if you want faster transcoding, use a faster x264 preset and/or throw more cpu at it. If you want to transcode video while the cpu's busy doing something else, use nvenc
[19:30:57 CET] <podman> kepstin: makes sense. i guess I just thought that maybe nvenc would be a little more efficient. it does seem to be in some cases
[19:31:22 CET] <BtbN> you trade lower CPU usage for worse quality, nothing more
[20:05:08 CET] <noxee> Hi, I'm writing an IP camera streaming program using Qt and QtAV for video playback (QtAV uses ffmpeg as its underlying playback library). The cameras should all be streaming with the following settings:
[20:05:08 CET] <noxee> - Video codec: H.264
[20:05:08 CET] <noxee> - Resolution: 1280x720
[20:05:08 CET] <noxee> - Max FPS: 7
[20:05:08 CET] <noxee> - GOP: 14
[20:05:10 CET] <noxee> - VBR: high
[20:05:12 CET] <noxee> The issue I'm having is that the streams become choppy (I believe either skipping frames or trying to catch up) after varying lengths of time. Apparently QtAV supports all the options in the libavformat/options_table.h and I'm currently using the following format options:
[20:05:16 CET] <noxee> fmt_opt["tune"] = "zerolatency,fastdecode";
[20:05:18 CET] <noxee> fmt_opt["video_size"] = "1280x720";
[20:05:20 CET] <noxee> fmt_opt["pixel_format"] = "yuv420p";
[20:05:22 CET] <noxee> fmt_opt["probesize"] = 4096;
[20:05:24 CET] <noxee> I'm quite new to all of this so I'm not 100% what I'm doing and I've been trying to work with the developer of QtAV to try and resolve the issues but I'm trying to do some additional troubleshooting to see if I can resolve the issue myself so any suggestions would be greatly appreciated.
[20:06:33 CET] <llogan> i don't know what QtAV is, but are you using the ffmpeg cli tool?
[20:07:35 CET] <kepstin> noxee: are you just decoding and displaying the video, or are you transcoding it?
[20:07:55 CET] <noxee> I'm just trying to decode and display it
[20:09:42 CET] <noxee> llogan: This is the QtAV project https://github.com/wang-bin/QtAV it's not using the cli tool
[20:09:59 CET] <J_Darnley> If you're just decoding then changing encoding settings won't help
[20:11:48 CET] <kepstin> and setting video size and pixel format on an input usually doesn't make sense, that should be autodetected by the format unless you're doing raw video.
[20:12:41 CET] <kepstin> what protocol is the camera using for streaming? Are you having any issues with cpu usage or network bandwidth as a bottleneck?
[20:13:21 CET] <__raven> ethe: is this lavfi "pipeable" anyway?
[20:13:47 CET] <noxee> ah crap, one additional not, they cameras are all being re-streamed through evostream and they're coming out as an rtsp stream
[20:14:20 CET] <noxee> cpu usage on the machine seems fine (when the application is running and streaming 18 cameras it's only using about 50% overall) network bandwidth should be alright as well
[20:15:23 CET] <noxee> when I playback through something like VLC there doesn't seem to be any choppiness to the playback. It only seems to happen when I'm using QtAV (and by extensions ffmpeg) and the application has been running for a little while (choppiness doesn't usually happen straight away)
[20:16:23 CET] <kepstin> well, vlc is also using ffmpeg for decoding :)
[20:16:48 CET] <kepstin> (although i dunno if the network code is different; the display code almost certainly is)
[20:16:53 CET] <noxee> well that's a positive, eliminates one variable
[20:25:34 CET] <noxee> what does the option "use_wallclock_as_timestamps" do exactly. Does it just set the computers clock as the clock for ffmpeg to use for timing?
[20:27:22 CET] <kepstin> noxee: looks like instead of using the timestamps read from the format, it rewrites the timestamps by setting them to the time that a particular frame was read. Its exact effect might depend on the input format, not sure
[20:28:06 CET] <kepstin> probably not something generally useful; most of the formats where it would be useful (e.g. screengrabbers) do that anyways.
[20:28:09 CET] <noxee> ok thanks
[20:43:37 CET] <noxee> so this is a sample of the log output of the application running http://pastebin.com/gN8AskNh. I've not just got the format hash set to:
[20:43:38 CET] <noxee>     fmt_opt["tune"] = "zerolatency,fastdecode";
[20:43:38 CET] <noxee>     fmt_opt["probesize"] = 200000;
[20:44:13 CET] <noxee> that output also only has four cameras involved
[20:45:32 CET] <kepstin> noxee: That 'tune' option makes no sense. It's not an input option - it's not even a format option. It's an option for the x264 encoder.
[20:45:34 CET] <furq> those are encoding settings
[20:45:41 CET] <furq> yeah. what he said
[20:46:01 CET] <kepstin> that said, it should just be ignored, I think.
[20:46:02 CET] <noxee> ah ok, I was just going off what was in the documents for the QtAV library
[20:49:12 CET] <noxee> also I forgot to mention it's using VA-API for hardware accelerated decoding and it's set the display mode to "X11" and the copymode to "ZeroCopy"
[22:29:17 CET] <ethe> __raven what do you mean?
[22:34:31 CET] <__raven> ethe: -f lavfi -i "amovie=master.ts,ebur128=video=1:meter=18 [out0][out1]" i would need any way to use it "realtime" but amovie does not seem to work with pipes or localhost stream or something. any idea?
[22:34:59 CET] <ethe> you can use ffmpeg and pipe it into another command
[22:35:35 CET] <__raven> yes i tried but it does not work at place of master.ts
[22:37:56 CET] <kepstin> why are you using -f lavfi there? you could better do that with a plain -i and -filter_complex, which would let you use a pipe or stdin
[22:38:56 CET] <__raven> kepstin: sry i am new to such kind of filter. how would that r128 "generator" look like then?
[22:39:51 CET] <kepstin> this should be equivalent: -i master.ts -filter_complex '[0]ebur128=video=1:meter=18[out0][out1]'
[22:40:05 CET] <kepstin> except that you can replace the filename with e.g. - to read stdin
[22:40:27 CET] <kepstin> might need to add some -map later in your command-line tho, i'd have to see the whole thing
[22:45:32 CET] <__raven> kepstin: hm that syntax only gives me Failed to set value 'ebur128=video=1:meter=18 [out0][out1]' for option 'filter_complex': Option not found :(
[22:46:32 CET] <kepstin> __raven: ummm.... what ffmpeg version are you running?
[22:46:48 CET] <kepstin> (first line of the output should say)
[22:47:15 CET] <__raven> ffplay version 2.7.6-0ubuntu0.15.10.1
[22:47:43 CET] <kepstin> oh, you're using ffplay, not ffmpeg?
[22:48:13 CET] <kepstin> hmm. kind of a pity that ffplay doesn't have the -filter_complex option
[22:48:25 CET] <__raven> just a moment
[22:48:57 CET] <kepstin> if you're running on linux, and you want to read from stdin, you can always do hack of "amovie=/dev/stdin,..."
[22:50:25 CET] <kepstin> but i'm not totally sure that'll work with ffplay, since it might try to read keystrokes for commands (like seeking, quit, etc) from stdin.
[22:51:09 CET] <__raven> kepstin: no ffmpeg would be just fine. i want to merge the plot with a video into a pip later
[22:51:40 CET] <__raven> Output pad "out0" with type video of the filter instance "Parsed_ebur128_0" of ebur128 not connected to any destination
[22:51:51 CET] <__raven> this is with ffmpeg and -filter_complex
[22:52:25 CET] <kepstin> yeah, you'll want to add the two options "-map out0 -map out1" to the ffmpeg command to say to use those two filter pads in the output file
[22:55:30 CET] <__raven> oh but stdin does work for the moment
[23:05:32 CET] <__raven> kepstin: seems to work so far tnx :) i just have to find a way to buffer/cache it right
[00:00:00 CET] --- Tue Feb 23 2016


More information about the Ffmpeg-devel-irc mailing list