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

burek burek021 at gmail.com
Sun Feb 12 02:05:01 CET 2012


[00:06] <xp99work> ah found the answer
[00:06] <xp99work> I need to enable libswscale
[00:09] <SvenL-> xp99work, to get ffmpeg binary ?
[00:09] <SvenL-> or only ffplay ?
[00:09] <xp99work> ffmpeg I think
[00:09] <xp99work> and ffplay appears to need it to
[00:09] <SvenL-> yes
[00:09] <xp99work> that explains things
[00:09] <SvenL-> but I can't find the dev for swscale on ubuntu
[00:10] <SvenL-> uh, forget it, they're here
[00:12] <xp99work> so apparently x264 needs libswscale as well
[00:12] <xp99work> but if I want ffmpeg to encode h.264 it needs the x264 library
[00:12] <xp99work> but ffmpeg provides the libswscale library
[00:12] <SvenL-> no you can install it
[00:13] <xp99work> so what do I compile first? grr
[00:13] <SvenL-> apparently
[00:15] <SvenL-> try apt-cache search libswscale
[00:20] <hydrox24> Can someone help me with using ffmpeg to convert a V4L2 stream into a file?
[00:20] <xp99work> I'm compiling both from source
[00:20] <xp99work> so its a chicken and egg problem
[00:21] <xp99work> I need to compile ffmpeg to get libswscale
[00:21] <vadim> xp99work: 1. x264; 2. ffmpeg
[00:21] <xp99work> but then the flag for libswscale in x264 says it cant find it, so it doesnt get compiled in
[00:22] <hydrox24> I want to use ffmpeg to turn a V4l stream into a file, but using a asimple "ffmpeg -i /dev/video1 file.avi' gives me this error: /dev/video1: Invalid data found when processing input
[00:23] <xp99work> so should I not need swscale for x264 when I'm just going to need the x264 library for ffmpeg?
[00:24] <vadim> xp99work: i followed this instructions to build ffmpeg, worked likemagic http://ubuntuforums.org/showthread.php?t=786095
[00:58] <Freakshow> jeez... what's the moderator time frame for the ffmpeg-user list?
[00:59] <sacarasc> 5-6 months, give or take 6 months.
[01:27] <Freakshow> haha
[01:27] <Freakshow> nice
[01:28] <tiglionabbit> I have some h264 video and I want to lower the detail and put it at baseline profile.  How do I do that?  Also, when I just use -vcodec libx264 it comes out looking really interlaced
[01:30] <tiglionabbit> effectively I want it to be playable on an iphone.  I've seen some guides that show you what options to give ffmpeg for this, but some of those options no longer exist, and ffmpeg doesn't report that it's using baseline profile...  not sure how to set that
[01:41] <tweek__> is there a way to specify multiple outputs with multiple timecodes on one ffmpeg run?
[01:42] <tweek__> e.g., ffmpeg -i foo.mpg -vframes 500 -vcodec copy -acodec copy 1.mpg -vframes 1000 -vcodec copy -acodec copy 2.mpg
[01:42] <tweek__> where 1.mpg would have the first 500 frames, 2.mpg would have the first 1000
[01:43] <tweek__> the hope being that ffmpeg doesn't need to decode the first 500 frames again to get to the next 500
[01:44] <tweek__> or ... wait, ffmpeg outputs the frame number while it's doing all of this doesn't it
[02:00] <pasteeater> Freakshow: ping me if you have a message to be moderated in ffmpeg-user
[02:00] <pasteeater> right now there is only spam
[02:00] Action: pasteeater purges spam
[02:02] <pasteeater> tiglionabbit: ffmpeg -i input -c:v libx264 preset -medium -vpre ipod640 -crf 24 -c:a libfaac -aq 100 output.mp4
[02:02] <pasteeater> *-preset medium
[02:06] <tiglionabbit> pasteeater: oo I didn't know there were options specifically for iOS.  I got it working decently on my iPad with -deinterlace -acodec libfaac -vcodec libx264 -channels 2 -vprofile baseline
[02:09] <tiglionabbit> pasteeater: what is -crf 24?
[02:12] <tiglionabbit> constant rate factor.  Ok.  Lower means higher quality + larger size
[02:13] <Freakshow> thanks pasteeater, I shot you a pm with the subject line, etc.
[02:24] <SvenL-> pasteeater, do you use frei0r filters ?
[02:26] <SvenL-> I get this error " Invalid filterchain containing an unlabelled output pad: "frei0r=curves:0.5:y:0.1:2:y:0.58;0.19#0;0""
[02:26] <SvenL-> curves as a special parameter with a string
[02:35] <bwbass> I'm feeding ffserver from ffmpeg that is getting its input through a pipe from mplayer that's streaming from vlc on my home pc... but cant get any output.  User agents connect with 200 ok status, but no data
[02:37] <bwbass> I also get warnings about the format not being seekable, missing extradata, and errors writing the output header
[02:38] <goddard> can i use ffmpeg on all cpu/threads to increase speeds?
[02:39] <bwbass> goddard - you can use '-threads <num of threads>', right?  when I do this it seems to spread the load among my cpu cores
[02:43] <goddard> ok Awesome!
[03:04] <goddard> whats better h264 or mpeg4/divx?
[03:04] <iive> h264
[03:06] <iive> but its features come at price.. it needs more processing power. not much. about 30% more cpu.
[03:07] <goddard> iive: i can live with that
[03:07] <goddard> :D
[03:07] <iive> hw to decode it is becoming more common.
[03:14] <goddard> im using 8 threads to do this video and it still isn't even using all my memory
[03:15] <goddard> how do i gauge speed?
[03:16] <goddard> size over time?
[03:20] <iive> decoding rarely uses a lot of memory
[03:21] <iive> maybe about 17-18 times the size of one frame (yv12 -> width*height*12/8
[03:22] <iive> )
[03:23] <iive> each thread may use one more frame
[03:23] <goddard> i see
[03:25] <iive> x264 encoder may use a little more memory, especially if it stores a lot of frames and other encoding data (like mbtree)
[06:46] <Ginks> how can I reverse a video?
[06:47] <Ginks> I have a watermark .mov the fades in, I want to make a copy of it in reverse so it's fading out, then sandwhich them together
[06:48] <relaxed> Ginks: output all the frames as png and reverse their order
[08:29] <Ginks> relaxed, happen to be around?
[08:53] <vadim_> hi 2 all
[08:54] <vadim_> any expert in ffmpeg-0.10 here? :)
[09:01] <bwbass> feeding a remote ffserver (vlc [http]-> mplayer [pipe]-> ffmpeg [http ffm]-> ffserver), responds with 200/OK, but no data gets streamed... suggestions?
[09:03] <vadim_> could someone provide an example of ISMV usage (ffmpeg-0.10)?
[09:04] <bwbass> ...using this on remote box: mplayer -dumpstream http://my home ip:8086 -dumpfile - | ffmpeg -loglevel debug -i - http://127.0.0.1:8090/feed1.ffm
[09:06] <bwbass> getting these errors and no data gets served: "No extradata present" "Error writing output header"
[09:38] <mbn_18> Hi, Kinda general Q. Sometimes when I am converting video the output has strips like quality. Where I can read what the cause and how to avoid this?
[12:14] <Amnesia> question, I converted a avi file to dvd mpeg
[12:14] <Amnesia> and used the video filters pan and ass
[12:15] <Amnesia> and when I play it on my laptop with mplayer everything's fine, but when I play it on my dvd player, there are green pieces on the top and the bottom
[12:15] <Amnesia> does that sound familiar to anyone?
[12:40] <Amnesia> anyone?
[13:11] <zap0> yes
[13:22] <xelxebar> Hello good ffmpeg sirs
[13:22] <xelxebar> Anyone actually up and about here?
[13:22] <Mavrik> nope.
[13:22] <Mavrik> all asleep.
[13:23] <xelxebar> seems like the prudent action at this hour
[13:23] <Mavrik> at 1 pm? O.o
[13:24] <xelxebar> you would be in GMT+1 time zone?
[13:24] <xelxebar> I've actually got a video editing issue here. Would you mind helping me give a crack at it?
[13:25] <zap0> i can probably already guess it.... has it anything to do with trying to edit encoded video?
[13:26] <Mavrik> xelxebar, shoot, even though I don't do much editing :)
[13:26] <xelxebar> lol. well, if you include cutting up VOB files and stitching them back together, then yes
[13:26] <xelxebar> doing that itself isn't so difficult, but I ran into two issues
[13:29] <xelxebar> 1. one of the subtitle streams I wanted happened to not be recognized by ffmpeg and friends (despite VLC seeing it; reference bugs #386 and #598?)
[13:29] <xelxebar> http://ffmpeg.org/trac/ffmpeg/ticket/386
[13:29] <xelxebar> http://ffmpeg.org/trac/ffmpeg/ticket/598
[13:30] <xelxebar> however, I was able to sort of get around it by using dd instead
[13:31] <xelxebar> the second problem is that when I cat the VOB clips together, the resulting video sort of goes random-blocks for a brief moment when going from one clip to the next
[13:32] <xelxebar> this I'm not sure how to resolve
[13:32] <Mavrik> are you cutting them up without reencoding?
[13:33] <xelxebar> ffmpeg SOURCE.VOB -ss START_TIME -t LENGTH -codec copy -o FILE.VOB
[13:33] <xelxebar> basically that
[13:34] <xelxebar> I have some -map guys thrown in, but that makes no difference
[13:34] <Mavrik> yeah
[13:34] <Mavrik> that's because you're not cutting on iframe boudaries
[13:34] <Mavrik> and you get corruption between cut and first iframe in 2nd video
[13:35] <xelxebar> I thought that might be going on, and then tried -g 1
[13:36] <xelxebar> I did that to the source vid and then did the clipping on the resulting vids
[13:36] <xelxebar> didn't see any difference
[13:36] <xelxebar> and also tried making sure my source time and length time were multiples of half seconds didn't seem to make a difference either
[13:37] <xelxebar> (I read that mpeg2s  have iframes every half second...)
[13:38] <xelxebar> so I'm confused somewhere
[13:38] <xelxebar> is there a way to explicitly force cutting on iframes?
[13:39] <xelxebar> or force a partial reencoding, so the cut then becomes on an iframe boundary
[13:39] <xelxebar> ?
[13:39] <xelxebar> that would be better
[13:46] <xelxebar> Any thoughts, Marvik?
[13:46] <peng-1> hey guys, trying to screencast but my 3d rendering is playing up
[13:47] <peng-1> whats the best codec to use for recording the 3d desktop ?
[13:50] <zap0> you mean a real desktop. with pens and paper and paper clips and scissors and...
[13:55] <peng-1> a 3d desktop
[13:56] <peng-1> lol
[13:56] <peng-1> ive synced audio but im not satisfied with the clarity of huffuv
[13:59] <Mavrik> xelxebar, sorry, lunch
[14:00] <Mavrik> xelxebar, sadly, I don't know of a way to force ffmpeg to cut on i-frame limits
[14:00] <Mavrik> that's usually a domain of editing software... ffmpeg is a bad editing software :(
[14:02] <xelxebar> :( well, what would you recommend in its stead?
[14:05] <Mavrik> no idea, sorry. I'm mostly in video transcoding/delivery business, don't really know the video editing tools :(
[14:08] <xelxebar> :(
[14:53] <vadim_> could someone provide an example of ISMV usage (ffmpeg-0.10)?
[15:31] <burek> xelxebar, -g 1 will give you all key frames i guess
[15:31] <burek> in that case you could use uncompressed video instead :)
[15:32] <xelxebar> thanks, burek, though I did try that
[15:32] <xelxebar> basically just made a -g 1 version of source video
[15:32] <burek> peng-1 has a good idea for a tutorial :) how to record the screen, not just 1 desktop :)
[15:33] <xelxebar> I noticed that there was no size difference between the -g 1 version and original
[15:33] <xelxebar> which surprised me
[15:33] <xelxebar> and then when I made my edits& no difference
[15:34] <xelxebar> I mean, when I cut out the clips and sewed them together, the artifacts remained
[15:34] <burek> if you need to concatenate videos, the best would be to ask the people who develop the video codec that you use
[15:34] <burek> in both videos
[15:35] <burek> they can tell you how you can do that without pain
[15:35] <burek> if you can't do that, uncompress both videos, join them, and recompress
[15:36] <xelxebar> they are VOBs ripped from a DVD
[15:36] <xelxebar> so cat works
[15:37] <xelxebar> I seriously doubt that's where the artifacts are getting introduced
[15:38] <burek> well, if it works, you wouldn't be here, would you :D
[15:38] <burek> afaik, only mpegs work with cat
[15:38] <burek> but mostly, not always
[15:39] <xelxebar> VOB is a container with mpeg streams
[15:39] <burek> the rest of the video codecs mostly don't work
[15:39] <burek> well i guess you hit that minor group, outside of "mostly" mpegs :)
[15:40] <burek> google first for some vob concatenation/splitter
[15:40] <xelxebar> if you do then you'll get cat
[15:40] <xelxebar> the command line tool
[15:40] <xelxebar> it works fine
[15:41] <xelxebar> hold up
[15:41] <xelxebar> let me run a quick test on the original VOBs
[15:41] <xelxebar> I'll cat 2 of them together and see if any artifacts pop up
[15:41] <xelxebar> but I'm thinking they won't
[15:42] <xelxebar> I suspect that something I'm doing in the cutting process is causing the artifacts in the glued-together video
[15:43] <xelxebar> since the artifacts only appear at the clip boundaries
[15:43] <xelxebar> interestingly, you can even cut up VOBs with dd
[15:43] <xelxebar> which is sort of ridiculous
[15:44] <xelxebar> afaict, in my case, the results are the same with dd and ffmpeg if I just do a straight -codec copy
[15:48] <xelxebar> ok
[15:49] <xelxebar> I just cat-ed two of the original VOBs together
[15:49] <bloger> how to specify timebase denominator?
[15:49] <xelxebar> and there was 0 artifacting on the boundary between the originally separate files
[15:50] <xelxebar> bloger, timebase denominator?
[15:50] <bloger> xelxebar: trying to convert, "timebase 333667/10000000 not supported by MPEG 4 standard".
[15:51] <bloger> xelxebar: "max admitted value for the timebase denominator is 65535"
[15:52] <xelxebar> yeah& i thought the timebase was something provided in the file's metadata
[15:54] <bloger> xelxebar: I dont have such file and have no idea how create.
[15:54] <xelxebar> maybe you could try setting the framerate yourself?
[15:54] <xelxebar> -r
[15:54] <xelxebar> -r 333667/10000000
[15:54] <xelxebar> that's sort of a wild guess, but...
[15:54] <xelxebar> yeah, the metadata would be in the header of the original file or something
[15:55] <xelxebar> and this wouldn't happen to be an avi would it?
[15:56] <bloger> xelxebar: as I understand, he want smaller value - "333667/10000000 not supported". I set "1/25" and got another problem - bitrate tolerance too small
[15:57] <bloger> xelxebar: input file is avi
[15:58] <xelxebar> try 1/30?
[15:58] <Mavrik> bloger, give us your full ffmpeg command line and output in a pastebin (use the one where you set framerate manually)
[15:58] <xelxebar> 1/33, I mean
[15:59] <Mavrik> it'll make our job easier since we'll know what you actually have.
[16:00] <xelxebar> ^ the reasonable way to go about troubleshooting :P
[16:01] Action: Mavrik points at ChanServ message at join.
[16:04] <bloger> xelxebar: http://sprunge.us/GJOV
[16:06] <Mavrik> bloger, first of all, you should really use libxvid or something like that to encode to H.263
[16:06] <Mavrik> bloger, second of all, try using -bt 300k parameter and tune it to set bitrate tolerance
[16:09] <bloger> Mavrik: please tell me suitable command line key for libxvid
[16:10] <Mavrik> -vcodec libxvid?
[16:12] <bloger> Mavrik: :-( with libxvid and "bt 300k" I got `[Eval @ 0xbf982a08] Undefined constant or missing '(' in 'acodec'`, `Invalid framerate value: -acodec`
[16:12] <Mavrik> huh
[16:13] <Mavrik> show full command line, you mistyped something
[16:14] <bloger> Mavrik: fixed. I forgot to remove empty "-r".
[16:14] <bloger> but why "-vcodec mpeg4" does not work?
[16:15] <Mavrik> it works... just badly :P
[16:15] <bloger> oh
[16:15] <Mavrik> it's an internal mpeg-4 encoder which isn't as good as xvid
[16:17] <bloger> I did use "mpeg4" always and everywhere. It was first problem.
[16:23] <bloger> thanks for help
[17:45] <relaxed> Ginks: I'm around
[18:20] <norbert_> hi, I'm trying to use ffmpeg2theora to convert an .mp4 file to .ogv
[18:21] <norbert_> it works for the audio, but the only kind-a because the video seems to be "stuck" every x seconds for a very short time
[18:21] <norbert_> it's a screen recording and I move the cursor around on the screen
[18:21] <norbert_> and the mp4 is fine, but the ogv shows the cursor moving find and every x seconds the cursor location isn't updated and it's stuck
[18:21] <norbert_> then the video continues normally, and so it goes on
[18:22] <norbert_> I tried changing the bitrate and -v 10 and double pass, but none of these things fixed this
[18:22] <norbert_> any ideas?
[18:24] <Mavrik> wait, you're using ffmpeg or ffmpeg2theora?
[18:24] <norbert_> well, there is nobody in #ffmpeg2theora, so I decided to check here, but now that you mention it... if ffmpeg can do what I want, then I'm happy ;)
[18:25] <norbert_> ffmpeg usually needs so many parameters
[18:25] <norbert_> like 10 or something to get the conversion right
[18:25] <norbert_> ffmpeg2theora is just $ ffmpeg2theora file.mp4
[18:25] <norbert_> and then you get a file.ogv
[18:25] <Mavrik> yeah, but it also uses 3 releases old ffmpeg ;)
[18:25] <norbert_> although in this case I'm not happy with the result
[18:26] <norbert_> I think I compiled the latest version myself
[18:26] <Mavrik> theora has a terrible encoder though :\
[18:26] <norbert_> norbert at ren:~$ ffmpeg2theora|grep Xiph.Org
[18:26] <norbert_> ffmpeg2theora 0.28 - Xiph.Org libtheora 1.1 20090822 (Thusnelda)
[18:26] <Mavrik> norbert_, I did have experience with ffmpeg2theora creating awfully broken videos
[18:26] <Mavrik> so it MIGHT be that
[18:26] <norbert_> hum... ok :|
[18:27] <Mavrik> if you can tell what you're trying to achieve maybe we can come up with a workaround :)
[18:27] <tweek__> is there a way I can have ffmpeg almost identically preserve all contents of an MPEG-2 file, basically copying it while decoding it?
[18:28] <Mavrik> tweek__, uhm... what? :)
[18:28] <Mavrik> tweek__, what are you trying to do?
[18:28] <tweek__> my goal is to use ffmpeg to generate a frame index, capturing the frame number it spits out to stdout while dumping the video contents to a pipe
[18:28] <norbert_> Mavrik: I have an .mp4 file and I want an .ogv file so I can use it on a webpage (html5 <video> tag)
[18:28] <tweek__> I'd just read from that pipe and increment a counter for every byte I get
[18:28] <tweek__> then check stdout on another thread to find the frame number
[18:29] <Mavrik> tweek__, ah, "copy" codecs do what you want
[18:29] <Mavrik> your video will get remuxed though
[18:29] <tweek__> then I'd have a pretty good estimate of what bytecode maps to what frame
[18:29] <Mavrik> norbert_, we're using WebM instead of Theora for web just because it causes less problems... but otherwise you could try encoding it with new ffmpeg 0.10 with libtheora/vorbis
[18:30] <tweek__> yeah, what I'm using now is ffmpeg -y -i foo.mpg -acodec copy -vcodec copy -scodec copy -sameq -copyts -copytb -map_metadata 0:0 -map_chapters 0:0 -f mpeg bar.mpg
[18:30] <tweek__> the source video is 2.6G, the target is 2.5G
[18:30] <tweek__> so I'm almost there
[18:31] <Mavrik> tweek__, can you show the output? stream mappings?
[18:31] <norbert_> Mavrik: about "causes less problems"... what did you run into? is WebM supported by all browsers on GNU/Linux, Windows and Mac?
[18:31] <Mavrik> I don't see anything missing there (-sameq is probably redundant though)
[18:31] <Mavrik> norbert_, it has better quality, encoder and support... and it's supported by "most" browsers that support Theora (Firefox 3.6 being the exception I think)
[18:32] <norbert_> it it a free codec, as in freedom?
[18:32] <Mavrik> norbert_, HTML5 world started to move towards WebM since Theora development stopped
[18:32] <Mavrik> norbert_, so they claim :)
[18:32] <norbert_> maybe I could just use that, if ffmpeg can easily give me one when I input this mp4
[18:32] <Mavrik> norbert_, it uses VP8 video codec (by Google, should be patent-free) with Vorbis audio in WebM container (which is a Matroska fork)
[18:33] <tweek__> http://codepad.org/uwff0M9e
[18:33] <norbert_> I'm just used to using ffmpeg2theora because all I need to do is pass the mp4 file
[18:33] <Mavrik> norbert_, http://en.wikipedia.org/wiki/HTML5_video#Table
[18:33] <tweek__> looks like there's another stream that isn't being copied?
[18:33] <Mavrik> norbert_, http://www.virag.si/2012/01/webm-web-video-encoding-tutorial-with-ffmpeg-0-9/
[18:34] <Mavrik> if those help
[18:34] <tweek__> HTML5 world started to move towards WebM because they woke up one day
[18:34] <Mavrik> if not... then ffmpeg2theora developer is probably the right place to annoy
[18:34] <tweek__> took a shower
[18:34] <tweek__> brushed their teeth
[18:34] <tweek__> and suddenly it hit them
[18:34] <tweek__> Theora is a pile of shit and pushing it over H.264 made no sense at all
[18:34] <norbert_> Unrecognized option 'quality'
[18:34] <norbert_> Failed to set value 'good' for option 'quality'
[18:35] <Mavrik> tweek__, yep, you're losing an audio stream
[18:35] <norbert_> the rest seems to be ok, maybe my ffmpeg (git-2011-10-26-7d7e302) needs something else
[18:35] <Mavrik> norbert_, just how old is your ffmpeg? :)
[18:35] <Mavrik> norbert_, do you have libvpx?
[18:35] <norbert_> norbert at ren:~$ locate libvpx|grep "so.0$"
[18:35] <tweek__> is there a way to ensure all streams are preserved?
[18:35] <norbert_> /usr/lib/libvpx.so.0
[18:35] <Mavrik> norbert_, ffmpeg output?
[18:36] <tweek__> I know there's VBI data that ccextractor can use to obtain SRT from the source
[18:36] <tweek__> er, a subtitle file with closed-captions
[18:36] <norbert_> Mavrik: http://pastebin.com/HrUysF5e
[18:36] <tweek__> that isn't present in the target
[18:36] <Mavrik> tweek__, "-map 0" it seems
[18:37] <Mavrik> norbert_, you don't have libvpx (the VP8 video encoder) support compiled into your ffmpeg
[18:37] <norbert_> Unrecognized option 'cpu-used'
[18:37] <norbert_> Failed to set value '0' for option 'cpu-used'
[18:37] <norbert_> Unknown encoder 'libvpx'
[18:37] <norbert_> that's when I start removing stuff that fails from the command
[18:37] <cbreak> don't use unknown options.
[18:37] <Mavrik> (missing --enable-libvpx in your build flags)
[18:38] <norbert_> ok, I followed the instructions on the Ubuntu forum to get x264 support, I guess their manual doesn't add vp8
[18:38] <cbreak> you don't need vp8
[18:38] <cbreak> x264 runs fine without it
[18:38] <Mavrik> cbreak, he's not trying to encode h.264
[18:38] <Mavrik> read the debate.
[18:39] <Mavrik> norbert_, yeah, there's an "(optional)" part :)
[18:39] <norbert_> cbreak: I need to go from mp4 to something that allows me to html5 <video> it
[18:39] <cbreak> then why follow instructions to add x264 support? :/
[18:39] <norbert_> for something else I needed the x264 support
[18:39] <norbert_> :)
[18:39] <cbreak> afaik html5 video uses h264
[18:39] <Mavrik> cbreak, he's talking about the Ubuntu ffmpeg compile guide in the topic.
[18:39] <cbreak> in some browsers
[18:39] <norbert_> "in some browsers" isn't good enough ;)
[18:40] <cbreak> there's no codec that all support
[18:40] <Mavrik> ...
[18:40] <norbert_> acutally, now that you mention that, I guess I'm going to use flash
[18:41] <norbert_> *actually
[18:41] <Mavrik> not a bad idea :)
[18:41] <tweek__> adding -acodec copy -newaudio works
[18:41] <cbreak> that's also not supported by all browsers
[18:41] <norbert_> ffmpeg -i in.mp4 -y -acodec libmp3lame -ab 64k -ar 22050 -ac 1 -vcodec flv -r 15 -s 360x200 -b 200k -vol 256 -flags aic+cbp+mv0+mv4 -cmp 3 -subcmp 3 -mbd 2 -partitions +parti4x4+partp8x8 -flags2 +mixed_refs -subq 5 -trellis 1 -refs 5 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qcomp 0.6 -coder 1 -g 250 -ac 2 out.flv
[18:41] <tweek__> could write a script to just check how many streams are present in the video
[18:41] <norbert_> or something
[18:41] <tweek__> there's basically no chance a video could ever have two video streams, right?
[18:41] <Mavrik> tweek__, documentation claims using "-map 0" is enough... did you test it?
[18:41] <Mavrik> norbert_, we use flash with HTML5 H.264 fallback in our configurations
[18:42] <cbreak> tweek__: in what context? DVDs support various viewing angles
[18:42] <tweek__> -map 0 just gives 'number of stream maps must match number of output streams'
[18:42] <Mavrik> norbert_, and WebM with H.264 HTML5 fallback with additional Flash fallback for an opensource zealot hackerspace :)
[18:42] <tweek__> i.e., there's only one audio and one video stream in the target by default
[18:42] <tweek__> these are all MythTV recordings I'm planning to transcode
[18:42] <tweek__> but I'm trying to keep my script as generic as possible
[18:43] <tweek__> I guess another problem I'll run into with this is
[18:43] <Mavrik> tweek__, it's theoretically possible to have multiple videos in a stream
[18:43] <tweek__> ffmpeg doesn't continually output the frame number
[18:43] <tweek__> seems to only output a new status line every 300 frames
[18:44] <Mavrik> but I've never covered that corner case in my encoders... it's rare enough that it's that persons own fault if he has such video :P
[18:44] <tweek__> 2752370196 Feb  9 13:00 1021_20120209123000.mpg
[18:44] <tweek__> 2688575488 Feb 11 10:44 foo.mpg
[18:44] <tweek__> it's closer
[18:44] <Mavrik> tweek__, I think there's a "dump stats" or something videofilter that should dump data while transcoding
[18:45] <tweek__> ccextractor still works on 1021_201202...mpg and not on foo.mpg
[18:45] <tweek__> so VBI data isn't being transferred accordingly
[18:46] <tweek__> only 60 MB off over 30 minutes of video, though
[18:46] <tweek__> so that should make for semi-accurate cuts
[18:47] <tweek__> wouldn't suppose there's a -f copy or something
[18:47] <Mavrik> well...
[18:48] <Mavrik> that would be a cp :)
[18:48] <tweek__> oh should've mentioned, the overall goal is to be able to translate frame numbers MythTV is giving me indicating commercial cut-points
[18:48] <Mavrik> IIRC ffmpeg is not capable of doing anything without demuxing
[18:48] <Mavrik> "frame numbers"?
[18:48] <Mavrik> and you'd like to cut them out?
[18:48] <tweek__> into bytecodes which Project-X can use to cut the MPEG-2 up while cleaning noise
[18:49] <Mavrik> I see.
[18:49] <Mavrik> tweek__, why don't you just discard the output?
[18:49] <Mavrik> and use the original input for Project-X?
[18:49] <tweek__> it also concatenates cleanly, something I could never really get by calling ffmpeg a bunch of times with -ss start_pt -t duration ...
[18:49] <tweek__> and then using -i concat:
[18:50] <cbreak> mplayer/mencoder support edls
[18:50] <tweek__> discard the MPEG-2 output?
[18:50] <cbreak> somewhat
[18:51] <tweek__> does it just estimate where the cuts should go, or is it fairly accurate
[18:51] <tweek__> might as well try it and see
[18:51] <cbreak> you tell it the timestamp
[18:52] <cbreak> or you use -edlout to make it interactively
[18:52] <cbreak> you can use -hr-edl-seek if you want frame precision
[19:02] <neon22121> hi today i checked ffplay...the latest win32 build form zeranoe. now my problem is if i try to play any file with dts or ac3...i cant hear anything. could somebody help me??
[19:06] <tweek__> just curious Mavrik, what did you mean by 'discarding the output'?
[19:06] <Mavrik> tweek__, well, if I understand you correctly you just really need frame numbers from the input video to pass to Project-X right?
[19:06] <tweek__> well, if I give Project-X frame numbers, it decides the frame is actually a minute away from the actual cut
[19:07] <tweek__> it sucks at estimating where the frame is in the file, so I want to do its job for it
[19:07] <tweek__> by giving it exact bytecodes, which it seems to handle well enough
[19:07] <Mavrik> I don't really understand what are bytecodes? byte offsets?
[19:08] <tweek__> yeah, byte offsets into the raw file
[19:08] <Mavrik> oh.
[19:08] <tweek__> I'm assuming it just finds the nearest b-frame or whatever to that point and chops away
[19:08] <tweek__> 60 MB of difference, that's like ... a second or two of video, right?
[19:08] <tweek__> uncompressed 1080p video, too, so probably even less than that
[19:08] <Mavrik> depends on bitrate, could be more :)
[19:09] <tweek__> mencoder seems to be choking to death on these files, no clue why
[19:15] <neon22121> hi today i checked ffplay...the latest win32 build form zeranoe. now my problem is if i try to play any file with dts or ac3...i cant hear anything. could somebody help me please??
[19:16] <tweek__> hmm, and if I'm going with the idea that this is an estimate anyway
[19:16] <tweek__> I could just check the size discrepancy at the end of this process
[19:17] <tweek__> and say 'okay, this is how much data didn't make it, so if it's assumed to be evenly distributed, add this much to the byte offsets at this point in the video'
[19:18] <tweek__> so if there's some 1024 byte VBI packet for each 20 frames or whatever, who cares, I can compensate for it
[19:19] <Mavrik> at most you'll be off by a second or so
[19:19] <Mavrik> which isn't that much for a commercial :)
[19:19] <tweek__> yeah
[19:24] <cbreak> if you want to be frame exact, then you have to do something like mplayer's -hr-edl-seek
[19:24] <cbreak> and not seek at all
[19:25] <cbreak> but instead decode every frame
[19:25] <cbreak> (at least in containers with non-constant-sized frames, non-constant framerate or similar)
[19:31] <tweek__> yeah, the big problem with this idea I think is that ffmpeg doesn't continually output that status line
[19:32] <tweek__> -vstats_log doesn't seem to output anything at all unitl the encoding is over
[19:32] <tweek__> actually since it's just copying it doesn't actually output anything
[19:33] <cbreak> how's that a problem?
[19:33] <tweek__> well, the whole idea was that I count the bytes outputted to the pipe while counting the frame numbers outputted to stdout
[19:33] <cbreak> that doesn't sound smart
[19:34] <tweek__> it only outputs a frame number every 30-40 seconds on status updates
[19:34] <cbreak> why not just strip out the commercials directly?
[19:34] <tweek__> if I could I wouldn't need to do this at all
[19:34] <cbreak> why can you not?
[19:34] <tweek__> because every stripping tool I've used including ffmpeg is horribly inaccurate
[19:34] <tweek__> and mencoder chokes on the files
[19:35] <cbreak> mplayer then? :)
[19:35] <cbreak> it plays everything
[19:35] <cbreak> (more or less)
[19:51] <bwbass> HI!  Having a prooblem getting ffserver to serve any data... clients connect with 200/ok but I get 'no extradata' and 'error wrting header' errors, ideas?
[19:54] <bwbass> ...running mplayer [pipe]-> ffmpeg [http ffd]-> ffserver on remote server, feeding mplayer via http stream from vlc on local box
[20:27] <bwbass> is there a way to use the ffmpeg '-vpre' options in ffserver.config?
[20:31] <tweek__> decided to use -vframes to stop the decoding at a specific point in the video
[20:32] <tweek__> rather than looking through the stdout status line and trying to find frame numbers or whatever
[20:32] <tweek__> I tested out my idea on one point late in the video, and I've gotta say
[20:32] <tweek__> it's as close to exact as I can really expect to get
[20:34] <tweek__> I'm thinking now, maybe the cutting tools I'm using are actually doing their best job to estimate, but there's additional data present in the video file that throws it all off
[20:34] <tweek__> about 60MB worth in this particular one
[20:41] <dv_> is it possible to transcode something with stretched timestamps?
[20:42] <dv_> in other words, I want the output to play 2.5 times slower
[20:55] <PovAddict> hi
[20:57] <PovAddict> I have a .mp4 video apparently at 24*1.001 fps
[20:58] <JEEB> more like 24/1.001 :)
[20:58] <PovAddict> er yes, that :)
[20:58] <PovAddict> that's not a framerate that can be used in DVD-Video
[20:58] <JEEB> actually, you can IIRC
[20:59] <PovAddict> I read somewhere about "soft telecine", where the DVD stores the original 23.9fps framerate video and the player takes care of doing pulldown or whatever it needs
[20:59] <JEEB> the stream will have to be marked a bit differently, that's all
[20:59] <JEEB> yeah
[20:59] <PovAddict> can I do that with ffmpeg?
[20:59] <JEEB> no idea, I would guess it's possible to encode a 24/1.001 stream with ffmpeg, but I have no idea how to set the soft telecine flags :)
[21:00] <PovAddict> I keep finding websites explaining how to rip DVDs with either hard or soft telecine, undoing the telecine in the case of hard
[21:00] <PovAddict> I need the opposite process ><
[21:01] <JEEB> ffmpeg might have the way, but I have no idea how to tell ffmpeg to encode/mux it in the way of "soft telecine"
[21:01] <cbreak> why would you want to telecine stuff? :/
[21:01] <cbreak> mplayer can do it I think
[21:01] <JEEB> that's reverse telecine :P
[21:01] <cbreak> or it can create mpeg streams with the flag set
[21:02] <JEEB> uuhh, what
[21:02] <cbreak> inverse telecine is from 30ntsc to 24ntsc
[21:02] <JEEB> yes
[21:02] <cbreak> telecine is from 24ntsc to 30ntsc
[21:02] <cbreak> which direction do you want?
[21:02] <JEEB> he doesn't want either in reality
[21:02] <JEEB> he wants to do "soft telecine"
[21:02] <JEEB> which is the best way to do it in case your source material is 24/1.001
[21:02] <JEEB> :P
[21:02] <PovAddict> cbreak: I have a .mp4 video with 24/1.001 fps and I want to burn it into DVD-Video, but apparently the allowed framerates on DVD-Video are 25fps and 30/1.001fps
[21:02] <cbreak> so he has 24ntsc and wants to have an mpeg stream with 24nstc with the soft telecine flag set?
[21:02] <JEEB> something like that yes
[21:03] <cbreak> PovAddict: nah, 24000/1001 is also allowed
[21:03] <JEEB> as long as you have the soft telecine flags set
[21:03] <JEEB> yeah
[21:03] <cbreak> I know how to do that in mencoder but not ffmpeg, but I am sure it can do that too
[21:04] <JEEB> yes, if mencoder can do it, so should ffmpeg be able as well
[21:05] <cbreak> or a dvd authoring tool
[21:05] <JEEB> yeah
[21:05] <cbreak> (mencoder has its own ps muxer)
[21:05] <PovAddict> didn't see anything about telecine in dvdauthor
[21:05] <cbreak> maybe it's called pulldown or so
[21:06] <PovAddict> wikipedia says "MPEG-2 formats support both interlaced and progressive-scan content. Content with frame rate different from one of the rates shown above can be encoded by using pulldown. Pulldown can be implemented either directly or via flags that identify scanning type, field order and field repeating pattern. Such flags can be added in video stream by MPEG-2 encoder"
[21:08] <PovAddict> ughh I keep finding instructions on how to deal with telecined DVDs
[21:09] <vadim_> have somebody tried the new ISMV muxer in ffmpeg-0.10? i need a reference command line for this, the documentation is too vague...
[21:55] <goddard> what doesn't webm work on?
[21:56] <PovAddict> Atari
[21:56] <PovAddict> maybe you should make your question more specific
[22:00] <goddard> PovAddict: as far as web capable devices
[22:00] <goddard> if i use html5 and webm
[22:53] <^sandro^-> hello
[22:53] <^sandro^-> can anyone help me with live encoding ?
[22:53] <^sandro^-> raw HLS UDP stream
[22:54] <^sandro^-> well UDP stream.. i want to convert to HLS correct.. and im kind of stuck
[23:08] <norbert_> eh hi
[23:08] <norbert_> is there an easy way to go from mp4 to mp2?
[23:09] <norbert_> (or, basically, anything that video-editing software cinelerra will read)
[23:10] <burek> well try ffmpeg -i input.mp4 -vcodec mp2 output.mp2
[23:10] <burek> something like that
[23:10] <burek> use ffmpeg -codecs
[23:10] <burek> to find the correct vcodec
[23:10] <burek> or acodec if it's audio
[23:11] <burek> ^sandro^-, the devel channel is for ffmpeg developers
[23:11] <burek> this one is for ffmpeg usage
[23:12] <norbert_> burek: yeah, I tried that, but ran into "Output file #0 does not contain any stream"
[23:12] <^sandro^-> ok.. sorry..
[23:12] <^sandro^-> let me try this again
[23:12] <burek> norbert_
[23:13] <burek> can you please use pastebin.com, to show your command line and its output?
[23:13] <^sandro^-> http://pastebin.com/CVF3LzhF
[23:14] <^sandro^-> actually let me get you the full thing.. its better
[23:14] <Mavrik> oh nice, live tv
[23:14] <Mavrik> ^sandro^-, what are you trying to do? :)
[23:15] <iive> i guess he is trying to capture dvb streamed over udp
[23:15] <iive> and usually it have a number of programs running at the same multiplexed stream.
[23:15] <Mavrik> that's standard for IPTV providers
[23:15] <Mavrik> even though, the ones I've worked for never streamed multiple programs in a stream
[23:16] <Mavrik> so it's probably re-streamed DVB-C or some such
[23:16] <^sandro^-> http://pastebin.com/sfkx6QF9
[23:16] <iive> huh? you mean one digital program per transponder?
[23:16] <norbert_> burek: http://pastebin.com/EfuF0LRF
[23:16] <^sandro^-> ya.. im capturing the signals via the sencore units and sending the UDP:// to a particular server for transcoding
[23:17] <norbert_> first one is -vcodec mp2, second one is -vcodec mpeg2video
[23:17] <^sandro^-> now on this transcoder i want to use ffmpeg
[23:17] <Mavrik> iive, no, if you're running an IPTV service you're using multicast
[23:17] <^sandro^-> to transcode to H264
[23:17] <^sandro^-> no.. not multicast
[23:17] <^sandro^-> i want to use HLS
[23:17] <Mavrik> ^sandro^-, what seems to be the problem?
[23:17] <Mavrik> (I came late in the debate).
[23:18] <Mavrik> Is something wrong with the video? Why are you using such complex libx264 parameters?
[23:18] <^sandro^-> doesn't work
[23:18] <iive> Mavrik: oh, sorry , i got it confused with the other dvb standard..
[23:18] <^sandro^-> i keep getting buffer overrun errors
[23:18] <^sandro^-> and i just can't get it to go to .ts
[23:18] <^sandro^-> see i want to pipe it to : http_streamer and then it will segment it and break it down for streaming multiple outputs
[23:18] <^sandro^-> like different bit rates
[23:18] <iive> ^sandro^-: why don't you try with something simpler, like -vcodec copy -acodec copy ?
[23:19] <Mavrik> yeah
[23:19] <^sandro^-> but the first step is to create a new h264 .ts file
[23:19] <Mavrik> ^sandro^-, try dumping the stream to file first
[23:19] <^sandro^-> its coming in at 40mbit/s
[23:19] <Mavrik> so you see if you're getting uncorrupted video
[23:19] <^sandro^-> let me try right now to see what happens
[23:19] <iive> ^sandro^-: one step at a time. if you try to leap to the next town, you'll probably fall backwards.
[23:20] <burek> just a sec
[23:20] <burek> phone
[23:20] <^sandro^-> ok.. trying a basic capture.. only problem is.. how do i select the proper program
[23:20] <^sandro^-> this comes in with over 10 different programs and channels
[23:20] <^sandro^-> i want to select only one of them... but the map keeps chaning on me
[23:21] <^sandro^-> i only want program 167
[23:21] <^sandro^-> listed here http://pastebin.com/sfkx6QF9
[23:21] <^sandro^-> but the map id : #0:6[0x10f5] keeps chaning
[23:22] <^sandro^-> every time i run it its a differnet location
[23:22] <^sandro^-> is there a way to always select the source based on service_name
[23:22] <^sandro^-> ?
[23:22] <iive> good question... with I knew.
[23:22] <iive> with/wish
[23:23] Action: iive goes to check
[23:23] <^sandro^-> im i am kind of stuck there too.. i got some things going before but then it all just stopped when it changed and sent me back to the drawing board
[23:25] <vadim_> ^sandro^-: probably you should use a multicast ip instead of @. in my case every channel has its own ip, and the url looks like this one: udp://239.0.0.1:1234
[23:27] <^sandro^-> yup thats fine.. actually im sending it to the server itself.. when i run tcpdump -i eth0 it shows me all the traffic being pushed to it
[23:27] <^sandro^-> so its there..
[23:27] <^sandro^-> its localhost
[23:27] <^sandro^-> port :5000
[23:28] <Mavrik> hmm
[23:28] <Mavrik> can't seem to find a parameter that would force mpegts demuxer to choose a program
[23:29] <^sandro^-> [mpegts @ 0x839360] Application provided invalid, non monotonically increasing dts to muxer in stream 1: 4452134041 >= 4452134041
[23:29] <^sandro^-> av_interleaved_write_frame(): Invalid argument
[23:29] <^sandro^-> ya i looked for hours too.. can't figure that out
[23:29] <^sandro^-> for now im trying to use the mappings and it works most of the time
[23:29] <^sandro^-> other times the system just rewrites it as a different path and that is anoying
[23:29] <^sandro^-> im not too concerned with that one however since i will just write a script that will check it before laoding
[23:29] <^sandro^-> and select the right inputs
[23:30] <^sandro^-> something like htat
[23:33] <vadim_> guys, i have a question too... where could i find a command line example for new ISMV muxer usage implemented in ffmpeg-0.10? i tried to compose some variants but all of them failed...
[23:39] <^sandro^-> http://pastebin.com/kL9KHxK3  <----- can someone look at that and tell me whats wrong with it
[23:39] <^sandro^-> im not sure why its skipping the frames
[23:40] <^sandro^-> well.. that last paste does have audio
[23:41] <^sandro^-> but its not taking the video .. not sure why
[23:41] <PovAddict> how do I demux with ffmpeg, outputting audio and video to separate files?
[23:44] <^sandro^-> ffmpeg  -y -i udp://@:5000 -re -async 1 -vcodec libx264 -acodec libmp3lame -map 0:5 -map 0:6 -ar 44100 /mnt/encoder/test.ts
[23:44] <^sandro^-> gives me this error : [udp @ 0x18e08e0] circular_buffer: OVERRUN
[23:44] <^sandro^-> ^C
[23:44] <^sandro^-> now i know something is wrong with that line..
[23:44] <^sandro^-> not sure why
[23:48] <^sandro^-> damn.. .. the mapping keeps changing on me.. i think this is the problem
[23:48] <^sandro^-> at least one of them :(
[23:49] <^sandro^-> anyone else know how to map differnet inputs by description
[23:49] <^sandro^-> instead of by map 0:X
[23:52] <iive> `p:program_id[:stream_index]` according to the documentation
[23:53] <^sandro^-> not sure how to insert that
[23:55] <vadim_> ^sandro^-: circular_buffer: OVERRUN - appears because of a bug in udp module... http://ffmpeg.org/trac/ffmpeg/ticket/609
[23:58] <^sandro^-> so there is no fix for it ?
[23:58] <vadim_> ^sandro^-: nope.... :(
[00:00] --- Sun Feb 12 2012


More information about the Ffmpeg-devel-irc mailing list