[00:43] <mikos_> hi there [00:43] <mikos_> i m running into an issue i fugured i would ask here in case anyone knows why: [00:44] <mikos_> so i m generating jpg and piping them into a named pipe [00:44] <mikos_> and have it piping to ffmpeg this way: [00:44] <mikos_> ffmpeg -y -f jpeg_pipe -s $SIZE -r 24 -i $FIFO -c:v copy out.mp4 [00:45] <mikos_> it works but for some reason it waits to generate ~100 jpg images before ffmpeg starts rendering [00:45] <mikos_> does anyone know why it doesn t start rendering as soon as the first jpg gets piped? [00:46] <mikos_> help would be apreciated :) [01:08] <c_14> x264 ? [01:14] <c_14> http://mewiki.project357.com/wiki/X264_Encoding_Suggestions#Encoder_latency [03:44] <grepper> https://trac.ffmpeg.org/wiki/FilteringGuide needs to use an array rather than 'eval' to keep #bash happy. [03:52] <c_14> hmm, not sure exactly what you mean [03:55] <c_14> Can you give me an example or something of what you mean? [03:55] <grepper> codec=(-vcodec libx264 -pix_fmt yuv420p -b:v 700k -r 25 -maxrate 700k -bufsize 5097k); ffmpeg -i "$infile" "${codec[@]}" ... etc [03:58] <c_14> http://sprunge.us/HJCe <- like this? [04:00] <grepper> quoting the array will keep the quoted elements separate, which is what you want in case of paths or file names with spaces etc. [04:01] <grepper> though it is not as relevant there [04:02] <c_14> Right, but other than that it's fine? [04:02] <grepper> not sure why you escaped the enclosing quotes [04:03] <c_14> The enclosing quotes around the filtergraph? [04:04] <grepper> yeah [04:04] <c_14> Right, just didn't get rid of those. [04:04] <c_14> Did now. [04:04] <grepper> okay [04:07] <c_14> Updated the pagee [04:07] <c_14> -e [04:07] <grepper> alternatively I guess you could escape the single quotes and put it in a plain var, then use the array for the full command [04:08] <grepper> probably that would be more common, ie. using the array for the full command [04:08] <grepper> but either is better than eval :) [04:09] <grepper> c_14: do you know how to use shell variable within a filter that needs to be single quoted? [04:10] <grepper> like: -vf "select='lt(mod(n\, 8991), 60)',setpts='N/(29.97*TB)'" <- using vars for the interval (8991) , # of frames (60) and fps [04:10] <grepper> obviously the vars won't expand with single quotes, tried swapping the single and double quotes unsucessfully [04:11] <c_14> drop the quotes and escape everything with '\' [04:11] <grepper> tried escaping the brackets and using double quotes [04:11] <grepper> oh [04:11] <grepper> hm, maybe I messed that up then [04:11] <grepper> thanks for the confirmation, I'll try again :) [04:12] <c_14> escaping can be very funky sometimes [04:12] <c_14> I've had filtergraphs with 5 layers of escapes before... [04:13] <grepper> heh [04:13] <grepper> yeah, I hate reading bash that is escaped all to hell, its like reading a complicated sed line [04:14] <relaxed> can't you call filtergraphs from a file? [04:14] <c_14> You won't get variables there though [04:15] <relaxed> ugh, right [04:16] <c_14> I've actually sometimes resorted to small python scripts over bash. Just because it saves me a layer of escapes. [04:24] <relaxed> yeah, or run sed/awk on the file but then you're using bash [04:25] <relaxed> I guess making filters useful and easy to use with a shell are mutually exclusive [04:29] <grepper> select1=("lt(mod(n\, $interval), $frames)") ; setpts1=("N/(${fps}*TB)"); ffmpeg -i "$infile" -vf select="'${select1[@]}'",setpts="'${setpts1[@]}'" -y %08d.png [04:29] <grepper> that worked with arrays okay [04:30] <c_14> mhm right, I keep forgetting that variables inside single quotes inside double quotes get expanded [04:32] <c_14> So you could probably -vf "select='lt(mod(n, $interval), $frames),setpts='N/(${fps}*TB)' [04:33] <c_14> probably anyway [04:36] <grepper> nope, tried that one [04:36] <c_14> mhm, k [04:39] <grepper> oh, it does work, was missing a quote mark [04:39] <grepper> -vf "select='lt(mod(n, $interval), $frames)',setpts='N/(${fps}*TB)'" [04:40] <c_14> oh, missed that [04:40] <grepper> bah, computer languages are soo picky, spoiled brats [04:41] <c_14> Computers do what you tell them to do, not what you want them to do. [04:42] <grepper> shame that [04:52] <grepper> cmd=(ffmpeg -i "$infile" -vf "select='lt(mod(n\, $interval)', setpts='N/($fps*TB)'" -y %06d.png) [04:56] <grepper> oops [04:56] <grepper> cmd=(ffmpeg -i "$infile" -vf "select='lt(mod(n\, $interval), $frames)', setpts='N/($fps*TB)'" -y %06d.png) [04:56] <grepper> echo ${cmd[@]} [04:56] <grepper> ffmpeg -i monkey.mpg -vf select='lt(mod(n\, 8991), 60)', setpts='N/(29.97*TB)' -y %06d.png [05:16] <xreal> Does ffmpeg has an "internal" benchmark ? [05:18] <grepper> -benchmark ? [05:18] <grepper> shows with ffmpeg --help long [05:21] <xreal> grepper: nice :) [05:23] <xreal> ffmpeg -benchmark_all doesn't do anything :) [05:27] <grepper> looks like it prints timing for each frame [05:29] <xreal> Pff, it's totally useless to compare performance. Okay, I'll do it the old way using "time" :) [06:03] <vivan> dunno what is -benchmark_all but -benchmark is real benchmark [06:03] <vivan> https://www.ffmpeg.org/ffmpeg-formats.html#null [06:08] <xreal> vivan: I don't get the sense of benchmark :) [06:08] <xreal> it does a normal decoding in this example to NULL [06:09] <c_14> -benchmark should (according to docs) print CPU time and max memory consumption after the encode finishes [06:10] <xreal> That's nothing I would expect from a benchmark :) [06:10] <xreal> but okay, thanks for the hint. [06:10] <c_14> What are you expecting? [06:10] <vivan> xreal: yes, it measures decoding speed [06:11] <xreal> That's the result: bench: utime=161.851s | bench: maxrss=36100kB [06:11] <c_14> ye, it took 161.851s user cpu time and used max 36100kB RAM [06:11] <xreal> /usr/bin/time is better, I think :D [06:18] <xreal> Can ffmpeg switch x264's constant quality to fixed bitrate while running? I mean, can you enter "zones" ? [06:23] <c_14> I don't think so. [06:23] <xreal> That would be great :( [06:24] <xreal> Highest bitrate for fast action scenes and low bitrate for end credits. [06:24] <c_14> crf should do that [06:25] <xreal> yeah, but i'd like to get to crf 40 for credits... [06:25] <c_14> you can also split the source up where you want to the nearest I-frame, encode each separately and concat with copy [06:25] <xreal> c_14: sounds good [06:26] <xreal> What range does crf work in ? [06:26] <xreal> like +/-4 ? [06:27] <c_14> hmm? [06:27] <c_14> What do you mean range? [06:28] <xreal> c_14: CRF raises or lowers QP for complex or non-compexe parts. [06:28] <c_14> Oh, that. erm [06:32] <c_14> I can't find any finite numbers, but I'd guess around +-4 [06:39] <xreal> Since libfaac is gone, is "-strict experimental -c:a aac" okay to use? [06:40] <grepper> c_14: backslashing the array quotes isn't going to work, you will end up with literal quotes around each element [06:40] <grepper> I'd put the full command into an array, like: http://pastebin.ca/2901272 [06:42] <meorom> hi all! [06:43] <meorom> I'm building ffmpeg for Windows follow link: https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC [06:43] <meorom> I use last rev of ffmpeg today is 73851 [06:45] <meorom> but I still get error [06:45] <meorom> e:\programming\c++\ffmpeg\libavutil\common.h(34) : fatal error C1083: Cannot open include file: 'inttypes.h': Invalid argument [06:45] <meorom> make: *** [doc/print_options.o] Error 1 [06:45] <meorom> in very many source file, why this file get error ? (other files not) [06:45] <c_14> grepper: fixed [06:45] <grepper> great [06:46] <meorom> could you please help me ? [06:46] <grepper> $in_file still not quoted, not needed in example, but if its for newbies ... [06:46] <c_14> meorom: can you pastebin your config.log ? [06:48] <c_14> grepper: fixed that as well [06:48] <meorom> I'm still a newbie of IRC, so...you mean paste all config.log content here ?? [06:48] <c_14> no [06:48] <meorom> so, what should I do ? [06:48] <c_14> pastebin it to pastebin.com or pastie.org or sprunge.us or ix.io [06:48] <c_14> and paste the link here [06:48] <meorom> ah, okey [06:48] <meorom> thanks [06:48] <xreal> c_14: Since libfaac is gone, is "-strict experimental -c:a aac" okay to use? [06:49] <c_14> It's fine [06:49] <c_14> libfdk-aac is better, but as long as you use a decent bitrate it should be ok [06:50] <xreal> the official binaries don't have libfdk-acc in Windows, I think ? [06:50] <c_14> No, building with libfdk-aac makes the build non redistributable [06:50] <meorom> c_14: http://pastebin.com/download.php?i=7VHvkX4b [06:50] <xreal> c_14: ;..-( [06:52] <c_14> meorom: did you install msinttypes ? [06:52] <meorom> yes [06:53] <meorom> msinttypes-r26 [06:54] <meorom> I don't know if I miss something, could you pls give a way to try ? [06:55] <grepper> finally the summary is dated now :) Where it starts with "Note that" [06:56] <c_14> meorom: try reading this: https://www.ffmpeg.org/platform.html#toc-Microsoft-Visual-C_002b_002b-or-Int... [06:57] <c_14> If that doesn't help, send as much information as you can (including all output etc) to the -user mailing list, or wait around a bit here for somebody with more windows knowledge. [07:00] <c_14> grepper: reworded [07:01] <grepper> "The command_line array" [07:02] <meorom> thanks c_14, I will try [07:02] <c_14> grepper: Yeah, I'll reword that later. [07:02] <grepper> cool [07:02] <grepper> just trying to contribute, not be picky [07:04] <c_14> It's fine. I just decided to check over the whole article later. Check if any info is outdated or could be reworded. [07:40] <mr_lou> http://stackoverflow.com/questions/27834184/making-a-blu-ray-video-album-fro... [08:15] <Naji> mr_lou this is annoying... you posted your problem on stackoverflow, so please stop the broadcasting [08:33] <Orly> hello? [08:34] <Orly> hello, hello? [08:39] <anshul__> hello [08:39] <tmh1999> Orly : just ask your question, someone will answer if they know/ when they're back to the keyboard. [08:41] <Guest32443> doesnt matter [08:42] <Guest32443> wondershare converter - metadata overwriter - fix Gamma Shift Bug in MOV files!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [08:42] <Guest32443> bye [08:56] <anshul_mahe> Guest27353: I was out of network, did u asked some question in between [09:09] <mr_lou> Naji, You should take a vacation if you get annoyed by someone posting the same url twice in two days. [09:18] <Naji> twice? [10:35] <cajone> HI Guys, I sped up a mp4 from 2hrs to 30mins using "setpts=0.25*PTS" which worked well but the converted video still contains the old time line and things its 2hrs long instead of 30mins, anyway I can fix this? [12:13] <Nebukadneza> heho [12:14] <Nebukadneza> i'm trying to extract all keyframes, and all frames-one-before-keyframe from a x264 video using ffmpeg. i've already succeeded in -vf select'ing keyframes, but the one-before-frame is giving me a little headache ;/ [13:29] <aleek> hi! Is there a way to change fps of a video file? I mean: I have video with 25fps, and I want to make it 50fps with times shorter time (total number of frames is the same) [13:39] <relaxed> aleek: 50 fps and half the duration? [13:41] <relaxed> try, ffmpeg -r 50 -i input -c copy output [13:42] <mr_lou> I used to use ffmpeg for scaling down videos to fit my cellphone, meaning lower resolution and less fps. Then suddenly it didn't work for some reason, so I began using HandbrakeCLI instead, with ffmpeg as parameter. </useless info> [13:44] <mr_lou> What I wanted to say with that, was that HandbrakeCLI could be another option: HandBrakeCLI -i input.mp4 -o output.mp4 -e ffmpeg -r 50 [13:45] <relaxed> ffmpeg should do it without issue. [13:46] <mr_lou> Yes [13:46] <mr_lou> There's a lot of that "should". ;-) [13:48] <relaxed> your cellphone issue is not likely ffmpeg's fault [13:49] <mr_lou> I'm not talking blame. Just saying, the command suddenly didn't work. [13:49] <mr_lou> Maybe some lib was broke, or what do I know. [13:50] <mr_lou> But whatever it was, HandbrakeCLI apparently didn't care. [13:51] <mr_lou> And ffmpeg is working for me fine now. Using it a lot to create blu-ray files these days. [13:51] <termos> Hi. I am using av_read_frame and sometimes I get an AVPacket that is empty (size == 0 and data == NULL), how should I handle such a situation? [13:51] <relaxed> yeah, it's the cat's meow [13:51] <termos> Right now I'm just skipping it [14:38] <Mavrik> termos, hmm, what's your input? [14:39] <termos> it's an rtmp that contains two streams: h264 video and aac audio [14:40] <Mavrik> hmm [14:42] <termos> If I don't skip the empty packages and pass them into decode+encode functions I get a very unstable output [14:43] <termos> I only have empty input packages on one of my streams though, the rest are working fine [14:45] <termos> I tried not ignoring the empty packages and pass them through a AVThreadMessageQueue and after poping the queue before decode+encode there are no empty packages, I wonder if there is some magic in this thread queue [14:46] <termos> The thing is I have implemented by own thread queue that has some more features that I like (like reading the number of elements), but of course it doesn't magically remove the empty packages [14:57] <Mavrik> mhm [16:39] <Fjorgynn> :D [18:36] <Phlarp> Is there anyway to control character spacing / font kerning in FFMPEG drawtext filters? [18:54] <c_14> None I know of besides editing the font. [18:55] <relaxed> probably through fonts.conf [18:56] <relaxed> if you have fontconfig support [18:56] <c_14> If there is, I couldn't find any documentation for it... (not that that means anything) [19:02] <relaxed> using ass subs might be easier if you need that much control [19:21] <JEEB> aegisub for actual subtitle creation and then the libass filter for rendering them on top of video [19:50] <justinX> anyone heard of a (tv) player that shows some added random character at the end of the last line in a subtitle when viewing? [19:51] <justinX> maybe I have to add an extra CRLF at the last line in the .srt file... [20:05] <smo_> hi, is it possible to covert and pipe a stream in hls ? [20:05] <smo_> -i myhttpurl -> to hls [21:07] <grepper> wow, looping through with -ss before the -i INFILE is 25 times faster than using the 'select' filter to output a chunk of frames (pngs) at intervals. [21:14] <grepper> is there any reason to prefer the select filter looping if I am just outputting pngs ? [21:15] <c_14> select is frame-exact [21:15] <c_14> -ss is usually timestamp-exact [21:15] <grepper> but probably not off by more than a frame or 2 ? I could live with 'close' at that speed. [21:16] <grepper> I guess if the timestamps are messed up ... [21:16] <c_14> If you don't use -codec copy, it should get the exact frame at that timestamp [21:17] <c_14> -ss will be fine most of the time [21:18] <grepper> okay, thanks. Now to figure out a way to programmaticly determine if the user's ffmpeg is new enough to benefit for the new accurate seeking with -ss on input. [21:18] <grepper> ffmpeg -h long 2>&1|grep -q accurate_seek [21:18] <c_14> You could just check the version string [21:18] <grepper> if their ffmpeg has -accurate_seek it is probably okay? [21:19] <grepper> yeah, tough with version string if they use git [21:19] <c_14> mhm, lemme check [21:20] <c_14> ye, if it has -accurate_seek it should be fine [21:29] <grepper> c_14: awesome, thanks so much. Been hoping this would be added/possible for many years, haven't really checked recently. [21:29] Action: grepper gotta go out, bbiab [21:39] <jirido> Hi.. I would need a test picture film for to set corect color adjustment in vlc and cant find any.. So i got the idea to make one with ffmpeg from ONE image i have.. Could you say if it is posible and eventualy how? [21:42] <c_14> You have the picture and want to make a video out of it? [21:43] <c_14> https://trac.ffmpeg.org/wiki/Create%20a%20video%20slideshow%20from%20images#... [21:43] <jirido> Yes! [21:44] <jirido> I found some PM5544 test image films but they all blury [21:45] <jirido> Thanx [22:47] <bofh> Hello all. Does anybody know what is the way to override limitation of 32 channels for amix? I need to merge 20-50 audio streams into one [22:47] <c_14> Merge 32 into one, then merge the output from that with the remaining streams? [22:48] <bofh> yeah, that is what I was thinking about - merge chunks of streams [22:48] <bofh> but it's not possible to do without an intermediate file? [22:48] <c_14> nah, should work [22:49] <bofh> you mean piping? [22:49] <c_14> -filter_complex '[0:0][0:1][0:2]amix[foo];[foo][0:3][0:4][0:5]amix[out]' [22:49] <bofh> hm! [22:50] <bofh> I already have a very complex filter [22:50] <bofh> perhaps I could split it into several chunks [00:00] --- Sat Jan 10 2015
participants (1)
-
burek