[01:01] <Snowleaksange> ok got video x264 flv video streaming working to my browser [01:01] <Snowleaksange> not yet audio tho [01:01] <Snowleaksange> last major issue w ffmpeg upgrade for osx [01:01] <Snowleaksange> FFMpeg: Crushing your soul for an entire weekend every 2 years in exchange for streaming capabilities [01:02] <Snowleaksange> if i can finish audio encoding, some minor guess_format issue, and windows porbability by tonight, ill have upgraded ffmpeg in a single weekend [01:05] <Snowleaksange> i msut admit the code and the binary build distribution both seems more professional [01:05] <Snowleaksange> as does the resampling lib [01:34] <rjp421> Snowleaksange, streaming to a server? [02:33] <Logicgate> Hey guys, is closed captioning stored in a separate file or it is extractable from an actual video [02:49] <rcombs> Logicgate: "closed captioning" is used to mean a lot of things, some of which are correct meanings of that term. What are you referring to, more specifically? [02:53] <Hello71> strictly speaking, closed captioning must be stored separately [02:53] <Hello71> or else it's just captioning. [02:56] <rcombs> Hello71: captions can definitely be stored in the same file as the video they accompany and still be closed [02:56] <rcombs> just as long as they're not burned into the video stream [02:58] <Hello71> "separately", not "separate file" [02:58] <Hello71> one file is still separately ;) [02:59] <rcombs> ah, I misparsed [03:00] <Hello71> poor wording. :) [03:26] <DjMadness> i seam to be having issues doing any sort of video playback, ie mplayer2 does not do any playback, same with dragonplayer the image is shown when i fast forward, but the actual playback does not happen (in xbmc the audio plays but there is a black screen where the video should be), has anyone heard of this before and is there a solution to this ? [03:27] <DjMadness> hard to explain 100% its like the video is paused in mplayer2 and dragonplayer [04:01] <oxez> hello, is there a parameter that would let me grab my second monitor (1920x1080, +1920 on X axis) and resize on the fly? The --video_size switch only changes the area that's grabbed, it does not resize [04:01] <oxez> ffmpeg -r 30 -f x11grab -i :0.0+1920,0 -q:v 1 output.avi -- that's what I'm using right now [05:16] <krabador> hi people, i've http://pastie.org/8763696 [05:16] <krabador> when i try to compile xbmc git [05:28] <llogan> krabador: install yasm [05:29] <krabador> llogan, i'm using archlinux x86_64 [05:29] <llogan> oxez: use the scale video filter as an output option: -vf scale=1280:-1 [05:29] <krabador> and i've ffmpeg installed [05:30] <llogan> oxez: http://ffmpeg.org/ffmpeg-filters.html#scale [05:30] <llogan> krabador: the If you think configure made a mistake... [05:30] <llogan> is from FFmpeg [05:35] <krabador> llogan, thanx [05:35] <krabador> i installed yasm [05:35] <krabador> and it works [05:35] <llogan> it's probably not using your ffmpeg [05:36] <llogan> but downloading the source and compiling it just for xbmc. [05:36] <llogan> --enable-external-ffmpeg would have been worth a try [05:36] <llogan> or just use xbmc from community repo [05:37] <krabador> llogan, i tried, before asking here [05:37] <krabador> to use --enable-external-ffmpeg [05:37] <krabador> but nothing [05:37] <krabador> llogan, i'm compiling the git , because radeon vdpau support [05:37] <llogan> did you also add "export PKG_CONFIG_PATH=/usr/lib/ffmpeg-compat/pkgconfig:$PKG_CONFIG_PATH"? [05:38] <krabador> no [05:38] <llogan> that's from xbmc PKGBUILD, but the path would be your ffmpeg path [05:39] <llogan> perhaps moddifying xbmc from ABS would have been a better method [05:40] <llogan> than xbmc-git. anyway, #archlinux is probabaly a more appropriate channel for this since it's not really a FFmpeg issue. [05:40] <llogan> or #xbmc [05:40] <krabador> llogan, yuo help me , you don't know how much, to understand the problem [05:41] <krabador> llogan, light years more than #archlinux, and #xbmc [05:42] <Snowleaksange> hmm frame->data == NULL in mp3lame_encode_frame [05:42] <llogan> krabador: i tend to also look at the PKGBUILDS in the official repositories before using a similar package in AUR [05:42] <llogan> or make my own if the AUR stuff is retarded [05:42] <krabador> llogan, i look at PKGBUILD of xbmc-git on aur [05:42] <Snowleaksange> somehow magically different params in mp3lame_encode_frame then my call to avcodec_encode_audio2 [05:43] <krabador> and i installed all dependencies inside it [05:43] <llogan> i guess the maintainer should also add yasm as a dependency. [05:43] <krabador> yes [05:44] <krabador> with yasm, my configure is gone right [05:44] <krabador> <llogan> or make my own if the AUR stuff is retarded --- that's what i want learn , ad this time [05:48] <llogan> krabador: you can adopt and maintain a simple package. that's a good way to learn. [05:49] <krabador> llogan, with git, you mean? [05:50] <llogan> no, i meant a package from AUR. i assumed you wanted to learn how to write PKGBUILD [05:51] <krabador> yes [05:51] <krabador> i was wrong, excuse me. [08:06] <sara> How I do wirte scrip for rip dvd while when I click right on inpute file , ffmpeg get name of file automatic as input in comman line ? [08:08] <sara> Is anybody here ? [09:10] <sspiff> hi, I'm trying to decode teletext subtitles, and I'm getting subtitles out, but they seem to contain nothing. [09:11] <sspiff> format is 0 (which I think is image based?), and there are 0 rects... [09:12] <cbreak> https://gist.github.com/cbreak-black/39e971057667d86d85f3, this crash has cost me hours of pain... [09:12] <cbreak> it really does seem though that there is a bug in ffmpeg as suspected. [09:17] <cbreak> so, updated it to an even smaller test case [09:26] <cbreak> originally my code was nicely wrapped C++ with real objects, RAII for memory management and so on. [09:26] <cbreak> this test case is just a stripped down version, I am aware it leaks resources. [09:29] <cbreak> the ffmpeg I use is built without optimization so it is probably not a bug in the optimizer [09:46] <Snowleaksange> windows portability went smooth [09:46] <Snowleaksange> ffmpeg 90% upgraded [09:48] <ubitux> cbreak: can you submit a bug report? [09:49] <ubitux> well, let me test first.. [09:52] <ubitux> cbreak: btw, av_malloc [09:53] <ubitux> i can reproduce the problem though [09:53] <cbreak> what's with av_malloc? [09:53] <ubitux> malloc will have align [09:53] <ubitux> but yeah it doesnt help [09:53] <ubitux> just a moment [10:02] <ubitux> cbreak: reproduced with http://pastie.org/8764613 [10:02] <ubitux> looks indeed fishy [10:03] <cbreak> it works if I disable avx/avx2 and mmx [10:06] <cbreak> it was quite troublesome to isolate, because in my real code, it randomly worked, and only broke on about 1% the frames. [10:06] <cbreak> (Maybe because the C++ code overallocated some data buffers for efficiency) [10:07] <ubitux> i'm trying to reproduce with ffmpeg [10:08] <cbreak> I didn't manage that [10:12] <ubitux> yeah seems not reproducible for some reason [10:12] <ubitux> probably because avpicture_alloc doesn't allocate enough padding while other builtins do [10:13] <cbreak> there should not be need for any padding :/ [10:14] <ubitux> i'm going to open a ticket [10:19] <ubitux> arrh trac locked. [10:20] <ubitux> cbreak: try to call av_image_alloc() instead [10:20] <ubitux> with an align of 32 or something [10:30] <cbreak> ubitux: the memory I get from new is 4kb aligned I think [10:30] <cbreak> exactly 375 pages [10:32] <cbreak> hmm. no. [10:34] <cbreak> 1125 pages of course [10:37] <cbreak> I guess that's the problem: if the image size is an exact multiple of the page size, then there will be no invalid-but-still-readable memory after the data, so even an off-by-one crashes. [11:23] <ubitux> cbreak: http://trac.ffmpeg.org/ticket/3413 [11:24] <cbreak> thanks. I think the problem is not in the allocation but the out-of-bound access [11:25] <sspiff> is there any example code to using/configuring the teletext subtitle decoder? Do I need to do something special somehow? I'm using a minimally adapted test program based on doc/examples/demuxing_decoding.c, which worked fine for DVB subtitles. [11:25] <cbreak> after all, even with highly aligned storage it fails here [11:26] <ubitux> cbreak: align is about the padding [11:26] <cbreak> my input is page-padded [11:27] <cbreak> the input consumes an exact number of pages [14:44] <sspiff> How can I change the options associated with a priv_class of a codec? [14:45] <sspiff> I'm assuming codec->priv_class shouldn't be accessed directly? [15:29] <julienb> Hello the room [15:29] <julienb> I contact you because i would like to know if it's possible to cut videos from the end with ffmpeg. [15:33] <Keshl> Yes, easily, just specify -t (seconds) for however long you want a video to last. [15:34] <ubitux> "from the end" is not easy [15:34] <julienb> kesh1, what i want to do is declare an offset 10mn from the end [15:34] <ubitux> ffmpeg is "stream based" [15:34] <julienb> and then cut 10mn [15:34] <ubitux> there is often no end [15:34] <ubitux> and in a lot of formats, you can't tell when the end is [15:35] <ubitux> so you have to obtain an (estimation/fast accurate-duration/slow) in a first pass [15:35] <julienb> they are all mp4 format [15:35] <ubitux> also duration of the container doesn't always match duration of the streams [15:35] <ubitux> so... per case. [15:36] <julienb> so it's not possible to do that? [15:36] <ubitux> it is, on a per case basis [15:37] <Keshl> It's possible, but you'll essentially have to go through the video twice. First ffmpeg has to figure out where the end (and thus, "ten minutes before") actually is. [15:37] <Keshl> As for how to do that, I haven't got a clue. xwx.. [15:38] <ubitux> julienb: try ffprobe -v error -of flat -show_entries format=duration:stream=duration foobar.mp4 [15:38] <julienb> ok thanks [15:38] <ubitux> this will give you all the estimated/stored durations in the format [15:38] <ubitux> they might not be accurate [15:38] <ubitux> deal with that [15:38] <julienb> i will try it ubitux [15:39] <julienb> ubitux i have to replace format and duration to something? [15:40] <julienb> in your line command [15:40] <ubitux> no [15:40] <ubitux> just copy paste the command with your input [15:40] <julienb> ok [15:40] <ubitux> you'll get what i mean [15:41] <ubitux> julienb: http://pastie.org/pastes/8767231/text [15:41] <ubitux> this is what i get here [15:41] <ubitux> as you can see, each stream has a different duration [15:41] <ubitux> and the presentation (format) duration is one of them [15:41] <ubitux> not the smallest, no the biggest... [15:42] <julienb> Unrecognized option 'of' [15:42] <julienb> Failed to set value 'flat' for option 'of' [15:42] <ubitux> you're not up-to-date [15:43] <ubitux> anyway, when you have that value you substract the time you want and ffmpeg -ss ... -i foobar.mp4 -c copy out.mp4 [15:43] <julienb> i have to update my ffmpeg version? [15:44] <julienb> oh yes with that value i can do what i want with the normal command [15:45] <julienb> this value is in second? [15:47] <ubitux> yes [15:47] <ubitux> and yes [15:48] <ubitux> what ffmpeg version are you running? [15:50] <julienb> second i will tell you [15:53] <julienb> ubitux: 0.10.6 on gentoo distrib [15:53] <ubitux> this is more that 2 years old [15:54] <julienb> oh [16:03] <Taiko3615> Hi :-) somebody here ? [16:04] <Taiko3615> I am using ffmpeg in an android application, and I would need some help to optimise a command line. Here's what I currently use : libffmpeg.so -y -i compiledAndMusic.mp4 -i overlay_video_720p.png -filter_complex overlay -strict -2 compiledWithO [16:05] <Taiko3615> But sadly the encoding takes wayyyyy too long, like 10 minutes for a 25s video, (0,9 fps) is there a way to optimise it ? Thanks !!! [16:05] <Taiko3615> libffmpeg.so -y -i compiledAndMusic.mp4 -i overlay_video_720p.png -filter_complex overlay -strict -2 compiledWithOvelray.mp4 [17:43] <SianaGearz> helloes. would you like to recommend me a codec? or give me some guidelines to design one myself possibly. my requirements: encoding performance: can tage ages, that's OK; decoding: must be frugal enough for 200MHz SH4 at SD resolution. bonus points for extra CPU time left over :P decent compression is a goal. [17:44] <SianaGearz> preferably without too much tendency for blockiness. [17:46] <SianaGearz> i guess snow is kinda slow? [17:59] <Taiko3615> Hmm.. I guess not so many active ffmpeg guys here. [17:59] <Taiko3615> mostly people asking questions [18:51] <jluttine> for testing, i'm using these four png files: http://users.ics.aalto.fi/jluttine/ffmpeg/ [18:51] <jluttine> (identical files) [18:51] <Taiko3615> do you know a bit of java ? [18:51] <jluttine> and then: ffmpeg -r 1 -i test%01d.png test.mpg [18:51] <jluttine> Taiko3615: me? a bit [18:51] <Taiko3615> because I use a java library that calls ffmpeg. here is the function that create a slideshow [18:51] <jluttine> i've tried other formats too: mpg, mp4, avi [18:51] <Taiko3615> public Clip createSlideshowFromImagesAndAudio (ArrayList<Clip> images, Clip audio, Clip out, int durationPerSlide, ShellCallback sc) throws Exception [18:51] <Taiko3615> { [18:51] <Taiko3615> final String imageBasePath = new File(mFileTemp,"image-").getCanonicalPath(); [18:51] <Taiko3615> final String imageBaseVariablePath = imageBasePath + "%03d.jpg"; [18:51] <Taiko3615> [18:51] Last message repeated 1 time(s). [18:51] <Taiko3615> ArrayList<String> cmd = new ArrayList<String>(); [18:51] <Taiko3615> [18:51] <Taiko3615> [18:51] <Taiko3615> String newImagePath = null; [18:51] <Taiko3615> int imageCounter = 0; [18:51] <Taiko3615> [18:51] <Taiko3615> Clip imageCover = images.get(0); //add the first image twice [18:51] <Taiko3615> [18:51] <Taiko3615> cmd = new ArrayList<String>(); [18:51] <Taiko3615> cmd.add(mFfmpegBin); [18:51] <Taiko3615> cmd.add("-y"); [18:51] <Taiko3615> [18:51] <Taiko3615> cmd.add("-i"); [18:51] <Taiko3615> cmd.add(new File(imageCover.path).getCanonicalPath()); [18:51] <Taiko3615> [18:51] <Taiko3615> if (out.width != -1 && out.height != -1) [18:51] <Taiko3615> { [18:51] <Taiko3615> cmd.add("-s"); [18:51] <Taiko3615> cmd.add(out.width + "x" + out.height); [18:51] <Taiko3615> } [18:51] <Taiko3615> [18:51] <Taiko3615> newImagePath = imageBasePath + String.format(Locale.US, "%03d", imageCounter++) + ".jpg"; [18:51] <Taiko3615> cmd.add(newImagePath); [18:51] <Taiko3615> [18:51] <Taiko3615> execFFMPEG(cmd, sc); [18:51] <Taiko3615> [18:51] <Taiko3615> for (Clip image : images) [18:51] <Taiko3615> { [18:51] <Taiko3615> cmd = new ArrayList<String>(); [18:51] <Taiko3615> cmd.add(mFfmpegBin); [18:51] <Taiko3615> cmd.add("-y"); [18:51] <Taiko3615> [18:51] <Taiko3615> cmd.add("-i"); [18:51] <Taiko3615> cmd.add(new File(image.path).getCanonicalPath()); [18:51] <Taiko3615> [18:51] <Taiko3615> if (out.width != -1 && out.height != -1) [18:51] <Taiko3615> { [18:51] <Taiko3615> cmd.add("-s"); [18:51] <Taiko3615> cmd.add(out.width + "x" + out.height); [18:51] <Taiko3615> } [18:51] <Taiko3615> [18:51] <Taiko3615> newImagePath = imageBasePath + String.format(Locale.US, "%03d", imageCounter++) + ".jpg"; [18:51] <Taiko3615> cmd.add(newImagePath); [18:51] <Taiko3615> [18:51] <Taiko3615> execFFMPEG(cmd, sc); [18:51] <Taiko3615> [18:51] Last message repeated 1 time(s). [18:51] <Taiko3615> } [18:51] <Taiko3615> [18:51] <Taiko3615> //then combine them [18:51] <Taiko3615> cmd = new ArrayList<String>(); [18:51] <Taiko3615> [18:51] <Taiko3615> cmd.add(mFfmpegBin); [18:51] <Taiko3615> cmd.add("-y"); [18:51] <Taiko3615> [18:51] <Taiko3615> cmd.add("-loop"); [18:51] <Taiko3615> cmd.add("0"); [18:51] <Taiko3615> [18:51] <Taiko3615> cmd.add("-f"); [18:51] <Taiko3615> cmd.add("image2"); [18:51] <Taiko3615> [18:52] <Taiko3615> cmd.add("-r"); [18:52] <Taiko3615> cmd.add("1/" + durationPerSlide); [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add("-i"); [18:52] <Taiko3615> cmd.add(imageBaseVariablePath); [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add("-strict"); [18:52] <Taiko3615> cmd.add("-2");//experimental [18:52] <Taiko3615> [18:52] <Taiko3615> String fileTempMpg = new File(mFileTemp,"tmp.mpg").getCanonicalPath(); [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add(fileTempMpg); [18:52] <Taiko3615> [18:52] <Taiko3615> execFFMPEG(cmd, sc); [18:52] <Taiko3615> [18:52] <Taiko3615> //now combine and encode [18:52] <Taiko3615> cmd = new ArrayList<String>(); [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add(mFfmpegBin); [18:52] <Taiko3615> cmd.add("-y"); [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add("-i"); [18:52] <Taiko3615> cmd.add(fileTempMpg); [18:52] <Taiko3615> [18:52] <Taiko3615> if (audio != null && audio.path != null) [18:52] <Taiko3615> { [18:52] <Taiko3615> cmd.add("-i"); [18:52] <Taiko3615> cmd.add(new File(audio.path).getCanonicalPath()); [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add("-map"); [18:52] <Taiko3615> cmd.add("0:0"); [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add("-map"); [18:52] <Taiko3615> cmd.add("1:0"); [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add(Argument.AUDIOCODEC); [18:52] <Taiko3615> cmd.add("aac"); [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add(Argument.BITRATE_AUDIO); [18:52] <Taiko3615> cmd.add("128k"); [18:52] <Taiko3615> [18:52] <Taiko3615> } [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add("-strict"); [18:52] <Taiko3615> cmd.add("-2");//experimental [18:52] <Taiko3615> [18:52] <Taiko3615> cmd.add(Argument.VIDEOCODEC); [18:52] <Taiko3615> [18:52] <Taiko3615> if (out.videoCodec != null) [18:52] <Taiko3615> cmd.add(out.videoCodec); [18:52] <Taiko3615> else [18:52] <Taiko3615> cmd.add("mpeg4"); [18:52] <Taiko3615> if (out.videoBitrate != -1) [18:52] <Taiko3615> { [18:52] <Taiko3615> cmd.add(Argument.BITRATE_VIDEO); [18:52] <Taiko3615> cmd.add(out.videoBitrate + "k"); [18:53] <impy> hmm [18:53] <Taiko3615> sorry... here is the paste bin http://pastebin.com/qN5BZiGv [18:53] <impy> That killed my irc client :s [18:53] <impy> better :) [18:53] <Taiko3615> lool sry... [18:53] <jluttine> Taiko3615: ok, thanks.. :) anyway, i really would prefer getting this to work on the command line with ffmpeg [18:54] <impy> Taiko3615: no worries. [19:10] <llogan> Taiko3615: is the overlay adding a significant amount of time to the process? [19:10] <llogan> you can stream copy the audio instead of re-encoding it with: -acodec copy [19:10] <llogan> you can use a faster encoding preset (assuming you have libx264 support) [19:21] <Taiko3615> I tweaked the preset and reached a pretty decent speed :-) [19:21] <Logicgate> Does anyone know about closed captioning [19:22] <Logicgate> Is there a way to convert SRT (SubRip Title) to SCC (Scenarist Closed Captioning) [19:22] <Taiko3615> My last issue is about the size of the overlay, I'll try to fix it myself first ;-) [19:22] <llogan> Taiko3615: you can add the scale filter to scale the image to be overlaid. [19:25] <Taiko3615> ffmpeg -y -i compiled.mp4 -vf scale=1280x720 -i payday.mp3 -i /overlay_720p.png -filter_complex overlay -acodec aac -b:a 192k -y -cutoff 15000 -s 1280x720 -t 3.984 -vcodec mpeg4 -strict -2 compiledAndMusic.mp4 [19:26] <Taiko3615> The overlay has a size of 720p, but the initial video input is bigger [19:26] <Taiko3615> the resulting video has the right size, but the overlay is not fullscreen [19:29] <Taiko3615> e.g. compiled.mp4 (the first input) is bigger than 720p, overlay.png is 720p, and the resulting compiladAndMusic.mp4 is 720p. Sadly, on the resulting video the overlay is sized down. How can I specify to first resize compiled.mp4 to 720p, then add the overlay? [19:32] <Taiko3615> Logicgate, to convert subtitles, I would use a third party software. Like http://www.3playmedia.com/services-features/tools/captions-format-converter/ (never tried it, but seems to do the job) [19:33] <llogan> Taiko3615: you should put all filters in one filterchain: ffmpeg -i video.mp4 -i image.png -filter_complex "[1:v]scale=320:-1[fg];[0:v][fg]overlay=W-w-10:H-h-10[out]" -map "[out]" output.mp4 [19:33] <llogan> s/filterchain/filtergraph [19:34] <Taiko3615> thanks llogan ! I'll try that :-) [19:46] <Taiko3615> Works like charm ! Awesome :-D Thank !!! [21:49] <JodaZ> how do i see the pts ffmpeg is generating ? [22:48] <Logicgate> http://pastebin.com/Qzd945xm [22:48] <Logicgate> I'm trying to extract the subtitle streams from an MOV [22:48] <Logicgate> and that's the error I get [23:00] <Logicgate> here are the streams for that video [23:00] <Logicgate> http://pastebin.com/7Sr231yg [23:33] <relaxed> -map:0:s:1 srt is wrong [23:37] <relaxed> Logicgate: example from the man page: ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt [23:44] <zh1> CLI video editing that doesn't include trial and error, playing video or audio, any? [23:55] <llogan> zh1: i don't understand your question. [00:00] --- Tue Feb 25 2014
participants (1)
-
burek