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

burek burek021 at gmail.com
Sun Dec 11 02:05:02 CET 2011


[00:00] <JodaZ> get a mjpeg that works on gstreamer and write a proxy that turns your one into that format
[00:00] <hackeron> yeh, then all I need to do is souphttpsrc location=${URL}mjpeg.cgi do-timestamp=true ! multipartdemux ! jpegdec !
[00:05] <hackeron> JodaZ: sounds perfect: "Timestamps are set on the buffers as they arrive from the camera. These are used by the mime/multipart demultiplexer to emit timestamps on the JPEG-encoded video frame buffers. This allows the Matroska multiplexer to timestamp the frames in the resulting file."
[00:05] <JodaZ> yes
[00:05] <JodaZ> from where ?
[00:06] <hackeron> JodaZ: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-souphttpsrc.html
[00:06] <hackeron> JodaZ: filed a but for their multipartdemux, just working on a proxy now as a temporary solution
[00:06] <hackeron> a bug*
[00:37] <hackeron> JodaZ: ( echo "--video boundary--";  curl http://camera/MJPEG.CGI ) |  < heh ;)
[00:37] <JodaZ> that fixed it ?
[00:37] <hackeron> well, gstreamer is no longer complaining :) - now need to check the output file
[00:38] <hackeron> right now I'm using a fakesink, so just adding muxing to the pipeline
[01:06] <ludde> I can't figure out how to run libx264 in multithreaded mode on linux. It works on windows out of the box. The libx264 log line when running ffmpeg says threads=1
[01:10] <JodaZ> what about adding threads=2 in the config ?
[01:10] <JodaZ> nvm that
[01:11] <JodaZ> -threads [count]
[01:11] <pasteeater> ludde: use a pastebin site to show your ffmpeg command and the complete console output
[01:11] <hackeron> JodaZ: yep, it works fine! :) - guess ffmpeg just can't handle a live stream without timestamps - this is what I ended up with: ( echo "--video boundary--"; curl ${URL}mjpeg.cgi; ) | gst-launch -e -v fdsrc do-timestamp=true ! multipartdemux boundary="video boundary--" ! image/jpeg,width=640,height=480 ! matroskamux ! filesink location="out.mkv" -- perfect a/v sync and handling of dynamic framerate, woo!
[01:12] <JodaZ> nice
[01:12] <JodaZ> also works longer than 30 secs ?
[01:13] <hackeron> recorded 2 minutes, did time 120; killall gst-launch - compared the output file, exactly 2 minutes and playing the video and audio at the same time (2 separate files) looks/sounds pretty much perfect
[01:13] <hackeron> and pretty much identical duration
[01:14] <hackeron> was only a quick test, but looks very promising :)
[01:15] <ludde> pasteeater: http://pastebin.com/fjrJrTPF
[01:17] <JodaZ> ludde, why do you write threads=1 and then wonder why it uses only one thread ?
[01:17] <ludde> JodaZ: i've tried many values there, it has no effect
[01:18] <pasteeater> you probably don't need refs either as the preset will apply an appropriate ref, and since you did not declare a preset then '-preset medium' will be used
[01:19] <pasteeater> '-threads 0' will automatically choose an appropriate value for your CPU. -threads 0 is now default, but i'm unsure if it is default on 0.8.x
[01:19] <ludde> using -threads 12 directly to ffmpeg seems to work
[01:19] <ludde> however, I only get like 20 fps encoding performance, while on a windows box I get > 60
[01:20] <ludde> hmm 35 on the window box, 19 on the linux box
[01:21] <pasteeater> use -threads 0 if 0.8.x doesn't use it by default
[01:21] <pasteeater> are your two boxes using the same hardware, and the inputs the same, are you using the same encoding options?
[01:21] <ludde> same options, but different build flags
[01:22] <pasteeater> hardware, inputs?
[01:22] <ludde> not sure about the hardware.. but the linux box is a kinda high end server with 32GB RAM, while the windows box is just a normal desktop i7
[01:23] <ludde> CPU0: Intel(R) Xeon(R) CPU           L5630  @ 2.13GHz stepping 02
[01:23] <ludde> CPU1: Intel(R) Xeon(R) CPU           L5630  @ 2.13GHz stepping 02
[01:23] <ludde> ...
[01:23] <ludde> [    0.951709] Total of 8 processors activated (34134.79 BogoMIPS).
[01:25] <pasteeater> are you using the same input file for your windows v linux comparison?
[01:26] <ludde> yep
[01:26] <ludde> 1080p britney spears movie
[01:29] <pasteeater> i don't know. when i compared encoding on win7 and linux (both 64-bit) on the same machine linux was slightly faster, but i was lazy and didn't compile ffmpeg on windows.
[01:30] <pasteeater> what reason did you add the -r option?
[01:31] <pasteeater> if you're performing a single pass encode then you should use -crf instead of -b. 24 is a good starting value.
[01:57] <stonie> hi
[01:58] <stonie> ffmpeg with lamemp3 always encodes any video with mp3 in joint stereo... how can i aboid that and encode real stereo from source?
[02:01] <pasteeater> stonie: you can pipe to lame as i showed you yesterday
[02:02] <stonie> also with the video included?
[02:02] <pasteeater> you never responded after i asked you what you wanted to do with the video
[02:02] <stonie> seems i didnt read your answer at all sorry
[02:03] <stonie> err your 2nd question :)
[02:03] <stonie> i want to encode the video stream to x264 and audio to mp3
[02:04] <pasteeater> you can do them separately and mux them afterwards
[02:05] <stonie> mh yes but i dont want to do this in two steps.. is there no way to tell ffmpeg that already while it encodes?
[02:11] <pasteeater> i don't know, but it's not that hard to do it in two steps.
[03:13] <bf4648> hey I'm trying to do a -vcopy and -acopy on a file & I'm getting the following error message: "Seems stream 0 codec frame rate differs from container frame rate: 60.00 (60/1) -> 30.00 (30/1)" ...any ideas why?
[03:52] <burek> bf4648, that's just a warning, not an error
[04:03] <bf4648> really?
[04:03] <bf4648> but the video is coming out all fuzzy
[04:16] <burek> can you please use pastebin.com, to show your command line and its output?
[04:17] <newl> fuzzy is in - a counter balance to the hd and blueray movement
[04:20] <bf4648> no
[04:21] <bf4648> Well, I thought it was a bug so I submitted the command line & a sample to ffmpeg..you can look @ the ticket @ the following link: http://ffmpeg.org/trac/ffmpeg/ticket/728
[04:22] <bf4648> do u all know what I did wrong or whether is was a bug or not?
[04:22] <bf4648> error message is: "Seems stream 0 codec frame rate differs from container frame rate: 60.00 (60/1) -> 30.00 (30/1)" and the video is all fuzzy"
[04:23] <burek> bf4648, just to let you know, your ffmpeg is _way_ old
[04:24] <burek> if you compiled it yourself, instead of svn, you should use git
[04:24] <bf4648> I did a sudo apt-get install ffmpeg 
[04:24] <burek> because, iirc, svn has not been updated for a long time
[04:24] <bf4648> this was the version that was installed 
[04:24] <bf4648> I realize that but I'm just copying the streams...not anything else too difficult 
[04:24] <burek> and also, the output show no errors
[04:24] <burek> so, what exactly the problem is?
[04:25] <newl> fuzzy he said
[04:25] <bf4648> The video is not viewable...looks like a lot of frames were dropped or something...it is not the same quality as the original 
[04:26] <burek> Stream #0.0(und): Video: 0x0000
[04:26] <bf4648> I'm just simply trying to copy the video at -ss time for a certain duration 
[04:26] <burek> there should be: Stream #0.0(und): Video: h264
[04:27] <burek> you need to update your ffmpeg
[04:27] <burek> the ffmepg actually reencodes your video
[04:27] <burek> I don't know why
[04:27] <burek> but, since it's the ancient version of ffmpeg, I doubt anyone would bother looking into the today's source code
[04:28] <burek> hoping to find that bug, which was probably fixed long time ago
[04:29] <bf4648> great...well why don't they update the repository with the new ffmpeg version
[04:29] <burek> which distro do you use
[04:29] <bf4648> so that a sudo apt-get install ffmpeg will install the latest
[04:29] <bf4648> ubuntu 10.014
[04:29] <bf4648> 10.04
[04:29] <burek> Ubuntu 11.10 is current
[04:30] <burek> so your system is also old
[04:30] <burek> you should probably update everything
[04:30] <burek> apt-get update
[04:30] <burek> apt-get dist-upgrade
[04:31] <bf4648> I did that & it says everything is new
[04:32] <newl> wow color comes to freenode
[04:33] <bf4648> burek...do you have any idea why a sudo apt-get dist-upgrade doesn't upgrade everything? 
[04:34] <burek> I'm not sure really
[04:34] <burek> if I were you
[04:34] <burek> I would just apt-get --purge remove ffmpeg
[04:34] <burek> and went to ffmpeg's website
[04:34] <burek> and compiled latest ffmpeg
[04:35] <burek> if you read the topic of this channel
[04:35] <burek> Ubuntu compilation guide: http://bit.ly/3xSE5
[04:35] <burek> :)
[04:35] <bf4648> dang I'm going to have to re-submit that ticket if I have the same problem 
[04:35] <bf4648> after upgrading
[04:36] <newl> why did you convert this perfect movie to begin with and did you use 'copy'
[04:37] <bf4648> well, I just wanted clips out of the video so I figured I could just copy the streams so that ffmpeg wouldn't have to re-encode 
[04:37] <burek> bf4648, your command is correct, and if you compile the latest ffmpeg, it should produce what you expected
[04:38] <burek> I can help you with compile
[04:38] <burek> it will take max 10-15 mins
[04:38] <bf4648> I'll got a script that does it for me
[04:38] <bf4648> from Google code 
[04:38] <burek> script for what
[04:39] <bf4648> to install & compile the latest ffmpeg
[04:39] <newl> 10-15min? took me a full day - you think he has all the proper libs
[04:39] <burek> why on earth would you use a script for that?
[04:39] <burek> it's 3-4 commands
[04:39] <bf4648> Yes, just a sec..I'll get u the link to the script 
[04:40] <bf4648> really...how so?
[04:40] <burek> you just need (in your case) to install libx264
[04:40] <burek> that's all
[04:40] <newl> how do you know what is causing the fuzzy - could be libavformat?
[04:40] <burek> newl, I told before
[04:40] <burek> ffmpeg should just copy the a/v stream
[04:41] <burek> but his version of ffmpeg reencodes it instead
[04:41] <burek> thats where fuzzyness comes from
[04:42] <bf4648> could you download the sample in the ffmpeg bug report link & attempt to do a -vcodec copy -acodec copy /
[04:42] <bf4648> ?
[04:43] <bf4648> Here's the link to the script that I use to install ffmpeg: http://code.google.com/p/x264-ffmpeg-up-to-date/
[04:44] <burek> wait
[04:44] <newl> round about and drawn out process to get the world to see that goatse guy
[04:45] <bf4648> newl...what?  goatse guy?
[04:45] <bf4648> Here's the link directly to the sh script: http://code.google.com/p/x264-ffmpeg-up-to-date/downloads/detail?name=ffmpegupdate8.sh
[04:46] <hackeron> sox has an option --ignore-length -- so I can do curl http://admin:@192.168.0.108/audio.cgi | sox --ignore-length - -o test.wav --- is there any equivalent in ffmpeg?
[04:46] <burek> bf4648, your sample is not valid
[04:46] <burek> you just cut the first part of the file
[04:46] <burek> no moov atom (metadata)
[04:46] <burek> so its unusable
[04:46] <bf4648> ok..how do I fix that?
[04:47] <burek> just compile ffmpeg
[04:47] <bf4648> alright...how do I do it w/ out the script?
[04:47] <burek> and for god's sake, don't use scripts
[04:47] <burek> for compilation
[04:47] <burek> just do
[04:47] <burek> apt-get install libmp3lame
[04:47] <burek> read this how to compile latest libx264
[04:47] <burek> http://pastebin.com/LhRkXhzZ
[04:48] <burek> and read this how to compile latest ffmpeg 
[04:48] <burek> http://pastebin.com/7ngnxisS
[04:48] <bf4648> my distro isn't up 2 date though so apt-get install won't give me the latest 
[04:48] <burek> or read the topic of this channel if you need the complete tutorial
[04:49] <burek> hackeron, what exactly ignore-length does?
[04:50] <hackeron> burek: ignores the length of the header - IP cameras set a WAVE header to a default length of 32 seconds but give an endless audio stream
[04:51] <hackeron> burek: ffmpeg stops reading after 32 seconds and hangs there - I would like some way of telling ffmpeg to ignore the duration and just keep encoding till EOF
[04:51] <hackeron> like --ignore-length in sox
[04:52] <newl> hackeron: doesn't it do that anyway?
[04:52] <hackeron> newl: no, it stop reading after 32 seconds and hangs there waiting for an EOF that never comes
[04:53] <burek> hackeron, did you try -loop 1
[04:53] <hackeron> newl: here's a related issue with vlc: http://forum.videolan.org/viewtopic.php?f=14&t=92003 - in VLC you can use :loop which isn't ideal but works - I'm after either looping or telling ffmpeg to ignore the reported length in the WAVE header
[04:54] <bf4648> burek...found out why my sudo apt-get dist-upgrade doesn't work: apt-get dist-upgrade will not upgrade the distribution, it will upgrade the packages of the current distribution:
[04:55] <burek> bf4648, http://pastebin.com/GXmbYV6x
[04:55] <hackeron> burek: that says Invalid value '1' for option 'loop'
[04:55] <burek> it takes 15 mins max
[04:55] <burek> hackeron, then you have an old ffmpeg
[04:55] <burek> use -loop_input
[04:55] <hackeron> burek: says "Currently it works only for image streams."
[04:55] <bf4648> lol...yes I will follow those instructions but I wanted to know why it wasn't working 
[04:56] <hackeron> burek: and tried it anyway, ffmpeg froze at 32.76 seconds
[04:56] <burek> bf4648, your distribution maintainer decided (for some reason) to use that svn version of your ffmepg, so you actually do have "the latest" version that your maintainer supports
[04:57] <burek> which is obviously not the one you need
[04:57] <bf4648> yup..exactly
[04:57] <newl> bf4648: cause int he code there is a   if (bf4648) fuzzymode = 1;
[04:57] <burek> hackeron
[04:57] <burek> can you please use pastebin.com, to show your command line and its output?
[04:58] <burek> :)
[04:58] <hackeron> burek: http://pastie.org/2994411
[04:58] <hackeron> burek: it records till 32.76 seconds and stops there because the WAVE header reported by the IP camera says the length of the stream is 32 seconds
[04:59] <hackeron> you can see it in the pastebin too: Input #0, wav, from 'http://admin:@192.168.0.108/audio.cgi': Duration: 00:00:32.76, bitrate: N/A
[04:59] <hackeron> I need a way to tell ffmpeg that no, ignore that duration, it's not true
[05:00] <burek> yes I see
[05:00] <burek> I just don't understand why the camera uses wav with fixed duration
[05:00] <burek> for a stream..
[05:00] <hackeron> they all do, I donno either
[05:00] <hackeron> I guess its a requirement of the WAVE header? - I donno
[05:01] <burek> can you configure your camera audio output?
[05:01] <hackeron> no, I can enable and disable it, that's it
[05:01] <hackeron> it's a d-link camera - so not a no name brand one - panasonic cameras are the same :(
[05:02] <bf4648> I'm running "./configure --enable-static --enable-shared" but I'm getting "Found no assembler
[05:02] <bf4648> Minimum version is yasm-1.0.0
[05:02] <bf4648> If you really want to compile without asm, configure with --disable-asm.
[05:02] <bf4648>  ...any ideas why?
[05:02] <hackeron> bf4648: install yasm?
[05:02] <impulze> probably beacause yasm isn't installed?
[05:02] <burek> apt-get install yasm
[05:02] <burek> bf4648, 
[05:03] <burek> hackeron, just a second please
[05:03] <burek> i've asked this in developers' channel
[05:03] <burek> will see what do they say :)
[05:04] <hackeron> thanks :)
[05:04] <bf4648> sudo apt-get install yasm then ./configure --enable-static --enable-shared but then getting error message of "Found yasm 0.8.0.2194
[05:04] <bf4648> Minimum version is yasm-1.0.0
[05:04] <bf4648> If you really want to compile without asm, configure with --disable-asm.
[05:05] <bf4648> I'm just using the google script 
[05:05] <impulze> do you actually read the errors?
[05:05] <bf4648> yes...but my distro is out of date & I don't know how to update it 
[05:05] <hackeron> bf4648: but curl http://admin:@192.168.0.108/audio.cgi | sox --ignore-length - -o test.wav < works fine - just would be nice to do this with ffmpeg and with gstreamer that can use ffmpeg decoders and muxers :)
[05:05] <impulze> not our problem, really :S
[05:05] <burek> bf4648, i think your best bet is to read how to upgrade your ubuntu to 11.x?
[05:05] <burek> 10.x is way old
[05:06] <bf4648> It's the LTS 
[05:06] <hackeron> bf4648: #ubuntu
[05:06] <bf4648> required to use LTS (Long Term Support Version)
[05:06] <bf4648> My workplace requires it 
[05:06] <burek> bf4648, then use some other machine to compile ffmpeg
[05:06] <burek> and do the actual work on it..
[05:07] <burek> hackeron, 
[05:07] <hackeron> bf4648: hen you're shit out of luck and jolly well.. you know :)
[05:07] <burek> can you please join #ffmpeg-devel 
[05:07] <hackeron> well*
[05:07] <bf4648> lol..well why do they produce an Ubuntu LTS then 
[05:08] <burek> also, hackeron you could use the latest ffmpeg :)
[05:09] <burek> because if that was a bug (the duration thing) it could have been already fixed so far :)
[05:09] <burek> bf4648, i dunno :)
[05:09] <burek> i guess they want to have a "stable" one :)
[05:10] <burek> anyway, you can disable asm
[05:10] <burek> just to see if the job can be done
[05:10] <impulze> i can guarantee there will be other issues
[05:12] <burek> me too, but still.. the hope dies the last :)
[05:12] <bf4648> alright...shell script isn't working...I guess I'll disable asm
[05:13] <burek> you don't need shell script..
[05:13] <burek> use the pastebin or topic's url and learn some stuff
[05:13] <burek> it's not that hard :)
[05:20] <bf4648> using ./configure --enable-static --enable-shared --enable-gpl --enable-nonfree --enable-postproc --enable-libx264 --enable-libaacplus  results in the following message, "ERROR: libaacplus >= 2.0.0 not found"
[05:20] <bf4648> I'm following your paste bin
[05:20] <bf4648> http://pastebin.com/7ngnxisS
[05:21] <impulze> what did i tell you?
[05:21] <impulze> stop trying things that aren't possible
[05:21] <bf4648> yasm isn't install...
[05:21] <bf4648> install yasm
[05:22] <burek> bf4648, try this 
[05:22] <burek> http://pastebin.com/GXmbYV6x
[05:22] <impulze> ffs
[05:22] <bf4648> ok mom
[05:22] <impulze> EOD for me
[05:22] <burek> or just do apt-get install x264
[05:22] <bf4648> working on it
[05:23] <burek> but in the end, you'll end up with problems, i agree :)
[05:23] <burek> you should use your home machine and latest ubuntu/debian
[05:25] <bf4648> true
[05:25] <bf4648> but not there
[05:27] <bf4648> what does the make command do any ways as well as the make install...create a binary & then install the binary?
[05:27] <burek> do you know what compiling means?
[05:28] <bf4648> make a binary?
[05:28] <bf4648> make install
[05:28] <bf4648> install -d /usr/local/bin
[05:28] <bf4648> install x264 /usr/local/bin
[05:28] <bf4648> install: cannot create regular file `/usr/local/bin/x264': Permission denied
[05:28] <bf4648> make: *** [install-cli] Error 1
[05:29] <bf4648> I did a sudo make install & it worked
[05:29] <burek> ok
[05:29] <burek> now ffmpeg
[05:29] <burek> :)
[05:31] <bf4648> yup...downloading it now
[05:31] <bf4648> Never did tell me what a make & make install does though 
[05:32] <burek> it compiles source code and makes binaries out of it
[05:33] <bf4648> ok..so what does a make install do ..install the binary @ certain locations in ubuntu?
[05:33] <burek> yes
[05:33] <burek> so you can use it as any other system wide cmd
[05:34] <bf4648> alright...I got that one right 
[05:34] <burek> if you want to remove that from your system
[05:34] <burek> just cd into that same directory
[05:35] <burek> and type make uninstall
[05:35] <bf4648> what about clean ?
[05:35] <burek> it removes compiled/linked files and leaves just the original source code
[05:36] <bf4648> interesting I didn't know the difference until you just explained it to me..I did know there was a difference though
[05:36] <bf4648> this is taking a while
[05:38] <impulze> yep, great idea to install into /usr where the package manager installs stuff
[05:38] <impulze> and executing stuff as superuser that you don't know anything about is a good idea too :P
[05:40] <bf4648> how would I install into /usr ? 
[05:43] <bf4648> I'm @ the last step but can't update libraries: ldconfig results in "no command 'idconfig'
[05:44] <impulze> rigt
[05:44] <impulze> *right
[05:45] <bf4648> Why does it install into /usr/local/bin/ffmpeg instead of /usr/bin ? 
[05:45] <bf4648> any idea?
[05:46] <bf4648> anybody?
[05:48] <burek> not idconfig
[05:48] <burek> sudo ldconfig
[05:48] <burek> LDCONFIG
[05:49] <burek> bf4648, you should read more about linux :)
[05:49] <burek> /usr/local is where you keep your local (compiled) stuff
[05:51] <bf4648> if I wanted to place ffmpeg into /usr/bin, how would I do that? 
[05:52] <burek> i think the better question is why would you want to do that
[05:53] <impulze> perfect way to trash a system
[05:55] <bf4648> I see
[05:55] <bf4648> Well, same exact problem 
[05:55] <bf4648> w/ the newest version of ffmpeg 
[05:55] <bf4648> video is "fuzzy" 
[05:55] <burek> bf4648, is the original video fuzzy too?
[05:56] <bf4648> nope..crystal clear
[05:56] <burek> can you please use pastebin.com, to show your command line and its output?
[05:56] <bf4648> alright...just a sec
[05:57] <bf4648> http://pastebin.com/F08P2ugT
[05:59] <bf4648> last line says: "frame=  239 fps=  0 q=-1.0 Lsize=     826kB time=00:00:06.75 bitrate=1001.1kbits/s " ....fps = 0  ...that's no normal is it?
[06:00] <burek> that's summary
[06:00] <burek> i think you just found a bug :)
[06:00] <bf4648> oh wonderful...I got to resubmit that ticket
[06:01] <burek> wait :)
[06:02] <bf4648> yup, I'm waiting...
[06:05] <burek> bf4648, can you try without -ss and -t
[06:05] <burek> to see if the result will be the same as the input
[06:06] <bf4648> yup
[06:06] <bf4648> hold on
[06:08] <bf4648> same problem
[06:09] <bf4648> want to see my paste bin?
[06:09] <burek> same?
[06:10] <burek> hmh.. gee..
[06:10] <burek> yes please
[06:12] <burek> also, is it possible that you create a small output, for example -t 5
[06:12] <burek> and upload it as an example?
[06:12] <burek> so we can see what "fuzzy" means
[06:12] <burek> :)
[06:12] <bf4648> I accidently corrupted the file so I'm going to have to get a fresh copy just a sec
[06:12] <burek> ok
[06:14] <burek> (also, update your bug report, so that people don't yell at you for using SVN version) :)
[06:15] <bf4648> Already updated the report 
[06:15] <bf4648> Alright...submitted w/ out the -ss & -t options results in an exact copy of the original w/ no fuzzyness 
[06:16] <bf4648> but w/ the -ss & -t options results in "fuzzyness" 
[06:20] <bf4648> Here's my pastebin w/ the most recent ffmpeg version: http://pastebin.com/Z2xw9nMF
[06:22] <burek> how would you describe what's "fuzzyness"
[06:24] <bf4648> Alight...just download the newly attached fuzzy file using the following link: http://ffmpeg.org/trac/ffmpeg/attachment/ticket/728/
[06:24] <bf4648> I'm playing the file w/ vlc player
[06:29] <bf4648> any idea burek? 
[06:35] <bf4648> u there?
[07:04] <burek> bf4648, ok, i guess you can now only wait to see if any of developers can reproduce the same thing
[07:04] <burek> if you can, provide the small original + small fuzzy output of that original
[07:05] <burek> that would create the fastest results
[09:11] <jeremyS> How do the packing formats work in libavfilter?
[09:11] <jeremyS> I understand that AVFILTER_PACKED means that all the data is in one buffer interleaved a sample at a time.
[09:13] <jeremyS> But how does PLANAR work?  Is it broken up into each of the data[i] fields?
[09:19] <ubitux> yes, one channel per data afaik
[09:20] <ubitux> but i don't know if it is really raised actually
[09:20] <ubitux> since the planar formats were introduced recently
[09:20] <ubitux> you may ask on #ffmpeg-devel btw
[09:20] <ubitux> this is related to development
[09:37] <Peace-> hi i have a problem with ffmpeg and gif
[09:38] <Peace-> i used this 
[09:38] <Peace-> ffmpeg    -s $(xrandr  | awk '/, current /{print $8}')x$(xrandr  | awk '/, current /{gsub(/\,/,"");print $10}') -f x11grab -r 10  -i :0.0 -b 500k -pix_fmt rgb24 -y -loop_output 0 output.gif
[09:38] <Peace-> now ... it's working but te files are too much big 
[09:38] <Peace-> and the quality sucks
[09:38] <Peace-> i have tried to reduce the frame rate 
[09:38] <Peace-> and bitrate 
[09:39] <Peace-> but no way i get 30mb for 10 seconds with 5kb for bitrate 
[09:39] <Peace-> with the byzaz recorder i get 10 time less space for my file 
[14:28] <Hattori> hello
[14:29] <Hattori> i'm trying to run the same watermarking command on 2 different machines
[14:29] <Hattori> centOS and ubuntu
[14:29] <Hattori> on ubuntu i got it working, on centOs is giving me an error
[14:29] <Hattori> i think i've installed ffmpeg pretty much in the same way
[14:30] <Hattori> but on ubuntu it works, in centOS doesn't
[14:30] <Hattori> http://pastebin.com/4dVbkTtW
[14:30] <Hattori> here is the detail of what is happening
[14:30] <Hattori> anybody have a clue of what is going on?
[14:41] <JodaZ> Hattori, i asume something is wrong with image2 on the cent os
[14:42] <Hattori> what is image2?
[14:44] <JodaZ> good question, i wonder what library is used for it
[14:49] <JodaZ> Hattori, try another image format, bmp or something
[15:03] <GordonFreeman> what is your opinion about Fractal Image Compression ?
[15:36] <Hattori> yeah in the end it looks like is the png that was screwed
[15:40] <exiff> hello
[16:06] <ludde> what are recommended libx264 options for getting good picture quality?
[16:49] <dashcloud> ludde: you'll want to use one of the x264 presets, and use 2 pass if you need a certain size, otherwise use crf
[16:50] <JEEB> http://mewiki.project357.com/wiki/X264_Settings#preset
[18:01] <ludde> dashcloud: what is crf
[18:09] <sacarasc> ludde: Constant Rate Factor, it's quality based encoding rather than size based.
[18:57] <ludde> how slow are the various x264 presets relative to the quality?
[19:19] <ludde> what does the q=29.0 thing mean in the log output
[20:12] <pisto> hi. I'm trying to add an audio stream to a mkv which has a video stream plus many subtitle tracks. is there a way to apply -scodec copy to all of the subtitles? It seems tat it copies only the first stream instead.
[20:19] <sacarasc> pisto: Try using mkvmerge instead, or, to make it even easier, mmg (mkvmerge GUI).
[20:24] <pisto> sacarasc, thanks, but I tried ffmpeg -i input1.mkv -i input2.dts -map 0 -map 1 -scodec copy -acodec copy -vcodec copy outfile.mkv and it worked.
[21:30] <Muzer> I'm trying to use ffmpeg to generate files that are playable on the 3DS. I first tried to write my own command with which to do it, but whatever I tried, I couldn't get the 3DS to recognise the video. I then found a set of three commands online, and they worked fine. But I can't figure out what the difference is, why theirs works and mine doesn't - it would be nice to be able to use one command as that would save time and st
[21:30] <Muzer> orage space.
[21:30] <Muzer> I'll just pastebin the commands I've tried
[21:50] <Muzer> ah, the two -sses needed to come before the two -is
[21:50] <Muzer> er, or maybe not...
[21:54] <Muzer> oh, hang on, did anyone actually receive the messages I sent?
[21:55] <cbsrobot> Muzer: no
[21:56] <Muzer> ah.
[21:56] <Muzer> I'll pastebin them all
[21:56] <Muzer> http://pastebin.com/7qQtku14
[21:58] <Muzer> I'm still trying a few combinations of -ss in different places as I think that might be the key...
[21:59] <cbsrobot> that looks wron: scale=427:240
[21:59] <cbsrobot> *wrong
[21:59] <Muzer> it's right, that scales to around 16:9 (couldn't get the exact ratio), then the pad adds black bars
[21:59] <burek> Muzer, -ss before -i makes ffmpeg just skip the input frames (this is not very precise)
[21:59] <burek> and -ss after -i makes ffmpeg first process input frames
[21:59] <burek> (decode)
[22:00] <burek> and then to seek, which is very precise
[22:00] <Muzer> the only combination I've managed to get to play so far is -ss after the first -i and the second -i
[22:00] <cbsrobot> My advice: never scale to odd numbers
[22:00] <Muzer> but that causes the video to be different for each eye
[22:00] <Muzer> which is... just weird :p
[22:00] <Muzer> cbsrobot: but I'm padding to even numbers afterwards, shouldn't that make it all right?
[22:00] <Muzer> (the final video ends up at 480x240)
[22:01] <cbsrobot> whats your input width and height ?
[22:02] <burek> also -s and -aspect are opposite options, you only actually need one of them, not both
[22:02] <cbsrobot> and yes you can do it - but I do not recommend it
[22:02] <burek> -s 800x240 -aspect 2:1 ?
[22:02] <burek> 800:400 = 2:1
[22:02] <burek> but 800:240=..?
[22:03] <Muzer> cbsrobot: 1920x1080, sbs (so 960x1080 per eye)(
[22:03] <Muzer> burek: that's in the command I got off the internet, not mine
[22:03] <Muzer> that's the one that works
[22:03] <Muzer> (I don't think the 3DS actually looks at the aspect, as it's undefined in its own camera videos)
[22:04] <Muzer> but yeah... what combination of -ss should I be using, first of all? I obviously want both sides to be at the same point, and I don't want one to be shorter than the other (which seems to happen a lot for some reason)
[22:05] <Muzer> (I use -ss because there's decoding errors at the start, it being broadcast it just starts in the middle of a stream without a keyframe)
[22:07] <burek> then use -ss AFTER -i
[22:07] <burek> so you'll have a properly decoded frames to seek to
[22:10] <Muzer> but which -i? One or both?
[22:10] <Muzer> because I've tried both
[22:12] <burek> ok, so you have an input
[22:12] <burek> that has 1 video, split horizontally
[22:12] <burek> which you want to split into 2 video streams
[22:12] <burek> muxed in 1 container (file)
[22:12] <burek> ?
[22:13] <Muzer> yes
[22:13] <Muzer> the second set of commands works perfectly, but it is too awkward and takes up more space as it does it in three parts.
[22:13] <Muzer> so I'd like to have a one-liner if possible
[22:15] <cbsrobot> Muzer try: ffmpeg -i in3d.ts -map 0:1 -map 0:0 -ss 60 -t 10 -qscale 1 -vf yadif,crop=960:1080:0:0,scale=416:234,pad=480:240:32:2 -r 20 -vcodec mjpeg -acodec libmp3lame -ar 44100 -ab 96k -ac 2 VID_0042.AVI -i in3d.ts -ss 60 -t 10 -qscale 1 -vf yadif,crop=960:1080:960:0,scale=416:234,pad=480:240:32:2 -r 20 -vcodec mjpeg -map 1:0 -newvideo
[22:15] <cbsrobot> I changed the audio codec - just to be sure it's not because of the audio
[22:15] <cbsrobot> and its untested btw
[22:15] <Muzer> cbsrobot: note that the third command in the set of three that works puts it back to the ima audio codec
[22:16] <Muzer> the mp3 one is obviously just used as an interim
[22:16] <Muzer> (horrible!)
[22:16] <cbsrobot> ah ok
[22:16] <cbsrobot> so
[22:16] <cbsrobot> ffmpeg -i in3d.ts -map 0:1 -map 0:0 -ss 60 -t 10 -qscale 1 -vf yadif,crop=960:1080:0:0,scale=416:234,pad=480:240:32:2 -r 20 -vcodec mjpeg -acodec adpcm_ima_wav -ac 2 -ar 44100 -ab 96k VID_0042.AVI -i in3d.ts -ss 60 -t 10 -qscale 1 -vf yadif,crop=960:1080:960:0,scale=416:234,pad=480:240:32:2 -r 20 -vcodec mjpeg -map 1:0 -newvideo
[22:17] <Muzer> Codec type mismatch for mapping #1.0 -> #0.2
[22:17] <cbsrobot> shit ok wait
[22:17] <Muzer> pretty sure we want the last map command to be 1:1
[22:17] <Muzer> because 1.0 is audio, 0.2 is video
[22:17] <Muzer> I'll give it a try with that
[22:18] <cbsrobot> maybe: ffmpeg -i in3d.ts -map 0:1 -map 0:0 -ss 60 -t 10 -qscale 1 -vf yadif,crop=960:1080:0:0,scale=416:234,pad=480:240:32:2 -r 20 -vcodec mjpeg -acodec adpcm_ima_wav -ac 2 -ar 44100 -ab 96k VID_0042.AVI -i in3d.ts -ss 60 -t 10 -qscale 1 -vf yadif,crop=960:1080:960:0,scale=416:234,pad=480:240:32:2 -r 20 -vcodec mjpeg -an -map 1:0 -newvideo
[22:20] <burek> i always thought -newvideo should go first, kinda like -i goes before -vcodec -acodec and stuff
[22:20] <Muzer> cbsrobot: that causes the two streams to be at different points.
[22:20] <Muzer> burek: yeah, I found that odd...
[22:21] <Muzer> the input file, if you're interested, is 3D video recorded from the Astra 3D demo channel at 19.2°E
[22:21] <cbsrobot> did you use 1:1 ?
[22:21] <cbsrobot> -map 1:1 ?
[22:23] <ubitux> wasn't -newvideo removed?
[22:24] <Muzer> cbsrobot: yeah
[22:24] <cbsrobot> so: ffmpeg -ss 60 -i in3d.ts -t 10 -map 0:1 -map 0:0 -t 10 -qscale 1 -vf yadif,crop=960:1080:0:0,scale=416:234,pad=480:240:32:2 -r 20 -vcodec mjpeg -acodec adpcm_ima_wav -ac 2 -ar 44100 -ab 96k VID_0042.AVI -ss 60 -i in3d.ts -t 10 -qscale 1 -vf yadif,crop=960:1080:960:0,scale=416:234,pad=480:240:32:2 -r 20 -vcodec mjpeg -an -map 1:1 -newvideo
[22:24] <Muzer> what I don't get, though, is why the two streams end up different lengths when I do -ss before the output filename
[22:24] <Muzer> because surely that should mean that it seeks in the output... so it should cut off both streams at the same point?
[22:25] <Muzer> doesn't seem to make any sense...
[22:25] <burek> try this: ffmpeg -y -i "in3d.ts" -ss 60 -t 10 -s 800x240 -aspect 2:1 -r 20 -vcodec mjpeg -qscale 1 -vf crop=400:240:0:0 -acodec adpcm_ima_wav -ac 2 -ar 44100 final.avi -ss 60 -t 10 -s 800x240 -aspect 2:1 -r 20 -vcodec mjpeg -qscale 1 -vf crop=400:240:400:0 -an -newvideo
[22:25] <cbsrobot> ubitux: yeah I think so
[22:26] <Muzer> hmm... my copy obviously didn't get that memo ;)
[22:26] <Muzer> not sure what version I'm using...
[22:26] <ubitux> -s ? you should use -vf scale instead 
[22:26] <Muzer> 0.7.8
[22:27] <Muzer> burek: trying...
[22:27] <Muzer> burek: that looks promising.
[22:27] <burek> if you make it work, just get rid of all -s -aspect and :scale
[22:27] <burek> i mean, choose just one of them
[22:28] <Muzer> both the same length, and the right part of the video
[22:28] <Muzer> I'll give it a go
[22:28] <burek> ok
[22:28] <Muzer> what exactly is the main difference? The fact that you didn't use a second -i?
[22:29] <burek> well, yes, when you use -newvideo
[22:29] <burek> its like you are starting a new set of input/output options
[22:29] <burek> i figure it like the ffmpeg only keeps the -i
[22:29] <burek> so you don't have to repeat it
[22:29] <burek> the rest is cleared
[22:30] <burek> so i just appended the 2nd command to the 1st
[22:30] <burek> after the output final.avi
[22:30] <burek> and that's it
[22:30] <burek> the 3rd cmd isn't needed actually, because all it was doing was -vcodec copy -acodec copy
[22:30] <Muzer> I think that has worked :)
[22:31] <ludde> i want to make video optimized for internet streaming.. should I use the -b:v flag, or is VBV preferred?
[22:32] <burek> ludde, every video is optimized for internet streaming :D
[22:32] <burek> if you have enough bandwidth ^^
[22:32] <ludde> optimized kinda implies that you don't have enough bandwidth, otherwise there'd be no need for optimization.
[22:33] <ludde> :)
[22:33] <Muzer> thanks a lot... I'll try to adapt mine to have the same format as it, as I also prefer my options (retains the correct aspect ratio, does some other nice things)
[22:33] <burek> ok :beer: :)
[22:34] <Muzer> done this works :D ffmpeg -i in3d.ts -ss 60 -t 10 -qscale 1 -vf yadif,crop=960:1080:0:0,scale=427:240,pad=480:0:'(ow-iw)'/2:0 -r 20 -aspect 2 -vcodec mjpeg -acodec adpcm_ima_wav -ac 1 -ar 16k 3dsmall.avi -ss 60 -t 10 -vf yadif,crop=960:1080:960:0,scale=427:240,pad=480:0:'(ow-iw)'/2:0 -r 20 -qscale 1 -aspect 2 -vcodec mjpeg -an -newvideo
[22:34] <burek> -aspect should be x:y ?
[22:35] <Muzer> I thought it also accepted film-style aspects (with just one figure)
[22:36] <Muzer> but anyway, aspect isn't read by 3DS AFAICT
[22:36] <Muzer> hmm... the extra 80 pixels aren't actually used... how odd
[22:37] <Muzer> (even though its own video is taken in 480x240)
[22:38] <burek> why do you use scale
[22:38] <Muzer> <@ubitux> -s ? you should use -vf scale instead 
[22:38] <Muzer> also, it happens to be the one I found first :p
[22:38] <burek> ok, then why do you use -aspect
[22:39] <burek> you do realize that those options all do the same thing, right?
[22:39] <Muzer> otherwise for some reason it decides it should be a 1:1 aspect
[22:39] <Muzer> (I've tried it without)
[22:39] <burek> putting them together in the same line may give you unexpected results
[22:39] <Muzer> 3DS doesn't care, but it looks stretched on a PC
[22:40] <burek> you wanted to crop the half of the video and then to strech it horizontally twice the width, right?
[22:41] <Muzer> mm
[22:41] <Muzer> yeah
[22:42] <burek> then just remove: ,scale=427:240,pad=480:0:'(ow-iw)'/2:0
[22:42] <Muzer> but then it won't be the right size...
[22:43] <burek> what size do you need it to be
[22:43] <Muzer> 400-480x240
[22:43] <burek> I don't understand
[22:44] <Muzer> what that big monster of a command does: yadif,crop=960:1080:0:0,scale=427:240,pad=480:0:'(ow-iw)'/2:0
[22:44] <Muzer> * Deinterlace
[22:44] <Muzer> * Crop away the right half of the video
[22:44] <Muzer> * Scale it to 427x240 (bringing it to the original 16:9 aspect ratio, or near enough)
[22:44] <Muzer> * Padding the extra with black bars
[22:45] <Muzer> finally making it 480x240
[22:46] <Muzer> then the -aspect 2 sets the aspect ratio to be 2:1, making it look OK when played through a computer (otherwise it tries to keep the original aspect ratio, causing it to become 1:1 as the original aspect ratio was wrong because it's SBS 3D)
[22:46] <burek> so, you want to have a video of 427x240 in the black frame of 480x240
[22:46] <Muzer> yes
[22:46] <Muzer> and this way works
[22:47] <burek> ok
[22:49] <ludde> is there some way to analyze an mp4 file to look at the bitrate curve, keyframe interval, etc?
[22:53] <burek> ludde, virtualdub, avidemux, adobe premiere..?
[22:53] <ludde> okay
[22:54] <ludde> virtualdub can't open mp4 files
[22:55] <burek> remux it into avi :)
[22:58] <ludde> does opengop worsen seek performance?
[23:11] <JEEB> also remember that open gop isn't spec'd in mp4 container
[23:11] <JEEB> they still haven't decided how to specify points at which you can "start decoding"
[23:13] <GordonFreeman> http://imgbit.com/images/48e70cac5b1256227869.jpg
[23:13] <GordonFreeman> some CSI megazoom ;>
[23:25] <knneth> GordonFreeman: haha. you made my day!
[23:30] <ludde> JEEB: okay
[23:30] <ludde> JEEB: but you can only start decoding at keyframes, right?
[23:42] <exiff> how do I make ffplay show subtitles?
[23:47] <ubitux> you can use vf ass ATM, but that's all
[23:49] <exiff> and how do I "use vf ass"?
[00:00] --- Sun Dec 11 2011


More information about the Ffmpeg-devel-irc mailing list