Thread: Re: [Vnc2swf-users] How to set FLV meta data (was Re: About FLV output.)
Status: Alpha
Brought to you by:
euske
From: Oscar U. <osc...@pr...> - 2009-04-03 17:52:25
|
Folks, FLV "keyframes" meta data apparently is not being set correctly, even after updating and patching flvtool++-1.1.7. It may be useful to us to ask the author of that tool for a fix. As a result, steaming seeks is not possible. Can others corroborate this finding? Thanks, OSC > ----- Original Message ----- > From: "Olivier Hervieu" <oli...@wa...> > To: "Oscar Usifer" <osc...@pr...> > Cc: "General discussion about vnc2swf" <vnc...@li...> > Subject: Re: How to set FLV meta data (was Re: [Vnc2swf-users] About FLV output.) > Date: Fri, 03 Apr 2009 10:19:17 +0200 > > > Greetings! > > Yes, the resulted diff shows a minimal workaround to add some > metadata to the resulting flv (in fact framerate and duration). > These one are needed, otherwise, produced flv files are not > correctly read with flv players (such as FlowPlayer). > > But it's still 'experimental'. And it will be nice to insert all > metadata like flvtool++ or flvtool2 does. On the other side, > flvtool++ or flvtool2 are post treatment tool. And, more your flv > file is heavy, more your post treatment is long... > > In an ideal world, there should be inclusion of all the metadata > (such as flvtool + +) at creation time of the flv by vnc2swf .... > Still work to do! > > If you're interested by this, read the following documentation : > > http://osflash.org/flv > http://pyamf.org/ > > Olivier. > > Oscar Usifer a écrit : > > Folks, > > > > I updated __init__.py and commented out import play, and that got > > me further, so I could at least test. The result of this, was > > being able to use the vnc2swf-recorder script to output .flv > > reading from a streaming stdin input. However the resulting > > output files contained blank frames. Seeing that v.0.10.0 swf.py > > had the updates to write out the meta-data for .flv formats, I > > attempted to simply update this file with the diff, but with the > > same bad result as before. Below is an approximate diff. > > "flvtool++" (v.1.1) apparently is a work around for this > > situation. It will create the flv meta data, but does not write > > the correct height meta-data value either because pyvnc2swf > > writes it incorrectly (see swf.py use of 'rect' in FLVWriter), or > > because flvtool++.cpp does uses an incorrect algorithm to read > > it. The diff resolves this. > > > > Thanks > > > > [osc@builder-freebsd ~/packages/flvtool++/src/patch]$ diff > > flvtool++.cpp /usr/ports/multimedia/flvtool++/work/flvtool++.cpp > > 190,191c190,191 > > < h = ((*(vptr++)) & 0x0f) << 8; > > < h += ((*(vptr++)) & 0xff); > > --- > > > >> h = ((*(vptr++)) & 0xff) << 4; > >> h = ((*(vptr++)) & 0xf0) >> 4; > >> > > > > [osc@rt01 /var/ee/www/swf]$ ~/flvtool++ /tmp/FILM078.flv > > /tmp/FILM078.2.flv Video: 878x629 SCREEN > > Total: 313234 video bytes (190.329029 kbps), 0 audio bytes > > (0.000000 kbps), 13.166000 seconds long > > Final onMetaData tag contents: { audiodatarate: 0.000000 > > audiosize: 0.000000 > > canSeekToEnd: true > > datasize: 316322.000000 > > duration: 13.166000 > > framerate: 12.076561 > > hasAudio: false > > hasCuePoints: false > > hasKeyframes: true > > hasMetadata: true > > hasVideo: true > > height: 629.000000 > > keyframes: { filepositions: { 544.000000 > > } > > times: { 0.000000 > > } > > } > > lasttimestamp: 13.166000 > > metadatacreator: flvtool++ (Facebook, Motion project, dweatherford) > > metadatadate: Thu Apr 2 22:10:27 2009 > > totalframes: 159.000000 > > videocodecid: 3.000000 > > videodatarate: 190.329029 > > videosize: 313234.000000 > > width: 878.000000 > > } > > > > > > > > [osc@builder-freebsd > > ~/packages/vnc2swf/src/pyvnc2swf-0.9.5/pyvnc2swf]$ diff > > swf-0.10.0.py swf.py 854d853 > > < 857,871d855 > > < < # Meta Data information must be at the start of the file.... > > < # Reserve here an area of 100 char to store meta data information > > < # I know this is a bit ugly.. But i have no better idea... > > < i = 0 < self.pos = self.outfp.tell() > > < self.writeui8(18) > > < self.writeub24(100) < self.writeub24(0) > > < self.writeui32(0) > > < self.outfp.flush() > > < while i < 100: > > < self.writeui8(0) > > < i = i+1 < self.writeub32(111) 885,926d868 > > < # To be correctly played into a FLV Player, flv files has > > to handle some meta data > > < # With framerate and duration, many flv player successfully > > read the produced > > < # FLV Stream > > < import struct > > < < # Flushing all the remaining data < self.outfp.flush() > > < < # Write metadata information > > < self.outfp.seek(self.pos) < < # The needed metadata > > are stored in flv with amf format. > > < # For documentation, see : < # - http://osflash.org/flv > > < # - http://pyamf.org/ > > < # Following metadata was generated with the help of pyamf > > < < duration = framecount / self.framerate > > < meta = '\x02\x00\nonMetaData\x08\x00\x00\x00\x00\x00\x08' > > < meta += 'duration\x02' + > > struct.pack('>H',len(str(duration))) + str(duration) > > < meta += '\x00\x0ccanSeekToEnd\x01\x01\x00\t' > > < meta += 'framerate\x02' + > > struct.pack('>H',len(str(self.framerate))) + str(self.framerate) > > + '\x00' > > < # writing metadata duration > > < self.writeui8(18) > > < self.writeub24(100) > > < self.writeub24(0) > > < self.writeui32(0) > > < # Insert pseudo Data to fill the rest of the reserved space > > < rest = 100 -len(meta) -22 > > < meta +='\x0fuselessdatabuff\x02' + struct.pack('>H',rest) > > < data = '' > > < while len(data)<rest: > > < # Inserting Blank Data > > < data += '\x00' > > < meta += data > > < meta += '\x00\x00\t' > > < self.write(meta) > > < print len(meta) > > < self.writeub32(111) > > < < self.outfp.seek(0,2) #The end of file > > < self.outfp.flush() > > > > Command I am using test For v. 0.10.0 > > 400 zcat FILM075.vnc.gz | vnc2swf-recorder -n -z -o /tmp/FILM078.flv -V > > > > For v. 0.9.5 > > 411 zcat FILM078.vnc.gz | /usr/local/pyvnc2swf/bin/vnc2swf.py > > -n -z -o /tmp/FILM078.flv -V > > > > > > > >> ----- Original Message ----- > >> From: "Oscar Usifer" <osc...@pr...> > >> To: oli...@wa... > >> Cc: "General discussion about vnc2swf" <vnc...@li...> > >> Subject: Re: [Vnc2swf-users] About FLV output. > >> Date: Thu, 2 Apr 2009 13:52:36 -0500 > >> > >> > >> It complains pygame is not installed. Is there a version that > >> uses PIL instead, or is there a setup option to set it to use > >> PIL? > >> > >> Thanks > >> > >> > >> > >> > >>> ----- Original Message ----- > >>> From: "Olivier Hervieu" <oli...@wa...> > >>> To: "Oscar Usifer" <osc...@pr...> > >>> Cc: "General discussion about vnc2swf" > >>> <vnc...@li...> > >>> Subject: Re: [Vnc2swf-users] About FLV output. > >>> Date: Thu, 02 Apr 2009 10:26:44 +0200 > >>> > >>> > >>> The attached tarball has a setup.py that respect standard > >>> python distribution style. > >>> > >>> Run > >>> > >>> python setup.py build > >>> python setup.py install > >>> > >>> You can have some help by running > >>> > >>> 'python setup.py --help' or 'python setup.py --help [command name]' > >>> > >>> Forget the old makefile. I leave it here for euske. > >>> > >>> Regards, > >>> > >>> Olivier. > >>> > >>> Oscar Usifer a écrit : > >>> > >>>> Greets Olivier, > >>>> > >>>> Just a few requests. I would like to test it out, but am not > >>> able > to get it into an installed state. I tried to run > >>> setup.py, but > it seems to output usage along the way instead > >>> of actually > performing an install. I was not able to use your > >>> package, as > make fails as well. Could you please update so > >>> that it is > compatible with the current build system? Also, I > >>> have a target > system that I use for installation, so the > >>> setup/make would need > an option to install into a target > >>> directory instead of into a > system. I can take your work and > >>> figure out how to get it > completely installed, but not > >>> everyone has the time or desire to > go to that level of energy > >>> output. Also, I am beginner level with > Python, which makes it > >>> less accessible. > >>> > >>>> Thanks, > >>>> OSC > >>>> > >>>> > >>>> > >>>> > >>>> > >>>>> ----- Original Message ----- > >>>>> From: "Olivier Hervieu" <oli...@wa...> > >>>>> To: vnc...@li..., "Yusuke Shinyama" >> > >>> <yu...@cs...> > >>> > >>>>> Subject: [Vnc2swf-users] About FLV output. > >>>>> Date: Mon, 30 Mar 2009 16:49:48 +0200 > >>>>> > >>>>> > >>>>> Hi all, > >>>>> > >>>>> Vnc2swf can produce FLV. But produced files present some drawbacks. > >>>>> > >>>>> - files has only one keyframe (also report a few weeks ago), > >>>>> - files has no metadata. This means that support of pyvnc2swf > >>>>> FLV files is not complete for most FLV players (impossible to > >>>>> scroll, total record time is not available (a good example : > >>>>> test your pyvnc2swf FlV in FlowPlayer)). > >>>>> > >>>>> I attach a tarball containing some modifications: > >>>>> > >>>>> - add a '-k' option to specify the keyframe rate > >>>>> - Add meta data on the produced flv. > >>>>> > >>>>> Note that I also repackage pyvnc2swf to be more pythonic. >> > >>> Vnc2swf scripts, edit and play are replaced by scripts >> > >>> vnc2swf-recorder, vnc2swf-editor and vnc2swf player. The >> > >>> distribution is now built and installed with setuptools. > >>> > >>>>> The Cli interface was successfully tested on Ubuntu 8.04 and > >>>>> Debian Lenny. > >>>>> > >>>>> Also note that I did not (and do not want to) install > >>> python-tk. >> I paid attention to add some options in the GUI. > >>> But these >> changes are not yet tested,. > >>> > >>>>> I leave to Euske or others to test and commit these changes. > >>>>> > >>>>> Regards, > >>>>> > >>>>> Olivier Hervieu. > >>>>> << pyvnc2swf-0.10.0.tar.gz >> > >>>>> > >>>>> > >>>>> > >>>> > >>>> > >> -- > >> Be Yourself @ mail.com! > >> Choose From 200+ Email Addresses > >> Get a Free Account at www.mail.com > >> > >> > >> ------------------------------------------------------------------------------ > >> _______________________________________________ > >> Vnc2swf-users mailing list > >> Vnc...@li... > >> https://lists.sourceforge.net/lists/listinfo/vnc2swf-users > >> > > > > > > > > > > > -- Be Yourself @ mail.com! Choose From 200+ Email Addresses Get a Free Account at www.mail.com |
From: Oscar U. <osc...@pr...> - 2009-04-13 21:11:16
|
Another question, is there a way to get a png image preview, or the first image frame of the flv? Thanks, OSC PS Great info Amigo, thanks... :D I will try and report back. > ----- Original Message ----- > From: "The Amigo" <the...@gm...> > To: "General discussion about vnc2swf" <vnc...@li...> > Subject: Re: [Vnc2swf-users] How to set FLV meta data (was Re: About FLV output.) > Date: Fri, 3 Apr 2009 15:46:31 -0500 > > > I used pyvnc2swf for a bit, but found that it took far too much CPU time. > Instead, here's what I do now: > > 1) Use this patched vncrec: http://aur.archlinux.org/packages.php?ID=16265 > In addition to simply recording vnc sessions to a log file, it can convert > the recordings to YUV4MPEG (the twibright patch) on stdout (my patch). > > 2) Use ffmpeg to read the YUV4MPEG stream and write an .flv > > A couple of caveats however: > - vncrec needs an X display (use Xvfb to create a virtual one, but make > sure it's at least as large as your video) > - flashsv is the lossless video codec that will generally produce smaller > files for screen recordings while maintaining perfect quality > - if your ffmpeg doesn't have flashsv support and you have to compile from > source, install zlib-devel > - scaling down the video size with ffmpeg will often result in a larger > file size (due to the added anti-aliasing), for web-based playback, you can > save bandwidth by having a swf player scale the video down. > > -- > http://theamigo.blogspot.com > > ------------------------------------------------------------------------------ > > _______________________________________________ > Vnc2swf-users mailing list > Vnc...@li... > https://lists.sourceforge.net/lists/listinfo/vnc2swf-users > -- Be Yourself @ mail.com! Choose From 200+ Email Addresses Get a Free Account at www.mail.com |
From: Olivier H. <oli...@wa...> - 2009-04-14 11:55:45
|
You can insert cue points in flv's... See : http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00003484.html Regards, Olivier. Oscar Usifer a écrit : > Another question, is there a way to get a png image preview, or the first image frame of the flv? > > Thanks, > OSC > > PS Great info Amigo, thanks... :D I will try and report back. > > >> ----- Original Message ----- >> From: "The Amigo" <the...@gm...> >> To: "General discussion about vnc2swf" <vnc...@li...> >> Subject: Re: [Vnc2swf-users] How to set FLV meta data (was Re: About FLV output.) >> Date: Fri, 3 Apr 2009 15:46:31 -0500 >> >> >> I used pyvnc2swf for a bit, but found that it took far too much CPU time. >> Instead, here's what I do now: >> >> 1) Use this patched vncrec: http://aur.archlinux.org/packages.php?ID=16265 >> In addition to simply recording vnc sessions to a log file, it can convert >> the recordings to YUV4MPEG (the twibright patch) on stdout (my patch). >> >> 2) Use ffmpeg to read the YUV4MPEG stream and write an .flv >> >> A couple of caveats however: >> - vncrec needs an X display (use Xvfb to create a virtual one, but make >> sure it's at least as large as your video) >> - flashsv is the lossless video codec that will generally produce smaller >> files for screen recordings while maintaining perfect quality >> - if your ffmpeg doesn't have flashsv support and you have to compile from >> source, install zlib-devel >> - scaling down the video size with ffmpeg will often result in a larger >> file size (due to the added anti-aliasing), for web-based playback, you can >> save bandwidth by having a swf player scale the video down. >> >> -- >> http://theamigo.blogspot.com >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Vnc2swf-users mailing list >> Vnc...@li... >> https://lists.sourceforge.net/lists/listinfo/vnc2swf-users >> > > > > > |
From: Oscar U. <osc...@pr...> - 2009-04-14 16:41:45
|
doh, edit.py does this ... ty > ----- Original Message ----- > From: "Olivier Hervieu" <oli...@wa...> > To: "General discussion about vnc2swf" <vnc...@li...> > Subject: Re: [Vnc2swf-users] How to set FLV meta data (was Re: About FLV output.) > Date: Tue, 14 Apr 2009 13:55:57 +0200 > > > You can insert cue points in flv's... See : > http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00003484.html > > Regards, > > Olivier. > > Oscar Usifer a écrit : > > Another question, is there a way to get a png image preview, or > > the first image frame of the flv? Thanks, > > OSC > > > > PS Great info Amigo, thanks... :D I will try and report back. > > > > > >> ----- Original Message ----- > >> From: "The Amigo" <the...@gm...> > >> To: "General discussion about vnc2swf" <vnc...@li...> > >> Subject: Re: [Vnc2swf-users] How to set FLV meta data (was Re: > >> About FLV output.) > >> Date: Fri, 3 Apr 2009 15:46:31 -0500 > >> > >> > >> I used pyvnc2swf for a bit, but found that it took far too much CPU time. > >> Instead, here's what I do now: > >> > >> 1) Use this patched vncrec: http://aur.archlinux.org/packages.php?ID=16265 > >> In addition to simply recording vnc sessions to a log file, it can convert > >> the recordings to YUV4MPEG (the twibright patch) on stdout (my patch). > >> > >> 2) Use ffmpeg to read the YUV4MPEG stream and write an .flv > >> > >> A couple of caveats however: > >> - vncrec needs an X display (use Xvfb to create a virtual one, but make > >> sure it's at least as large as your video) > >> - flashsv is the lossless video codec that will generally produce smaller > >> files for screen recordings while maintaining perfect quality > >> - if your ffmpeg doesn't have flashsv support and you have to compile from > >> source, install zlib-devel > >> - scaling down the video size with ffmpeg will often result in a larger > >> file size (due to the added anti-aliasing), for web-based playback, you can > >> save bandwidth by having a swf player scale the video down. > >> > >> -- > >> http://theamigo.blogspot.com > >> > >> ------------------------------------------------------------------------------ > >> > >> _______________________________________________ > >> Vnc2swf-users mailing list > >> Vnc...@li... > >> https://lists.sourceforge.net/lists/listinfo/vnc2swf-users > >> > > > > > > > > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > Vnc2swf-users mailing list > Vnc...@li... > https://lists.sourceforge.net/lists/listinfo/vnc2swf-users > -- It's News. It's Reviews. It's Interviews. It's Free. What Are You Waiting For? www.movieline.com |
From: Oscar U. <osc...@pr...> - 2009-04-23 16:36:48
|
Amigo, Thank you for the great info on producing FLV outputs. I attempted to reproduce your steps, found the output is producing only a single frame. I built ffmpeg (from ports collection in freebsd), and have been trying to get the stream conversion to work. The problem I am seeing is that only one output frame is produced in the resulting .flv file. What form of the command ffmpeg do I need to use? I did look at the docs, but was not able to decipher too well. Thanks, -OSC zcat FILM089.vnc.gz | ./vncrec -movie /dev/stdin | ffmpeg -f yuv4mpegpipe -i /dev/stdin -y FILM089.flv [osc@builder ~]$ Xvfb :3 -screen 0 2048x1536x24 & [1] 8921 [osc@builder ~]$ expected keysym, got XF86KbdLightOnOff: line 70 of pc expected keysym, got XF86KbdBrightnessDown: line 71 of pc expected keysym, got XF86KbdBrightnessUp: line 72 of pc Could not init font path element /usr/local/lib/X11/fonts/TTF/, removing from list! Could not init font path element /usr/local/lib/X11/fonts/OTF, removing from list! [osc@builder ~]$ zcat FILM089.vnc.gz | ./vncrec -movie /dev/stdin | ffmpeg -f yuv4mpegpipe -i /dev/stdin -y FILM089.flv VNC server supports protocol version 3.3 (viewer 3.3) VNC authentication succeeded Desktop name "ou0b46" Connected to VNC server, using protocol version 3.3 VNC server default format: 32 bits per pixel. Least significant byte first in each pixel. True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0 FFmpeg version SVN-r14424, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --cc=cc --prefix=/usr/local --disable-debug --enable-memalign-hack --enable-shared --enable-postproc --extra-cflags= -I/usr/local/include --extra-ldflags=-L/usr/local/lib -la52 --extra-libs=-pthread --enable-gpl --enable-pthreads --enable-swscale --mandir=/usr/local/man --enable-liba52 --enable-liba52bin --disable-libfaac --disable-libfaad --disable-libamr-nb --disable-libamr-wb --disable-mmx --disable-libgsm --disable-libmp3lame --disable-ffplay --disable-libtheora --disable-libvorbis --enable-libx264 --enable-libxvid libavutil version: 49.7.0 libavcodec version: 51.61.0 libavformat version: 52.18.0 libavdevice version: 52.0.0 built on Apr 22 2009 16:42:55, gcc: 4.2.1 20070719 [FreeBSD] Using default colormap which is TrueColor. Pixel format: 32 bits per pixel. Least significant byte first in each pixel. True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0 red_mask=ff0000, green_mask=ff00, blue_mask=ff, CPU endian=0, dpy endian=0 Image dump color channel shifts: R=16, G=8, B=0 Dumping 18 frames for time 1.80 sec. Input #0, yuv4mpegpipe, from '/dev/stdin': Duration: N/A, bitrate: N/A Stream #0.0: Video: rawvideo, yuv420p, 1189x911, 10.00 tb(r) Output #0, flv, to 'FILM089.flv': Stream #0.0: Video: flv, yuv420p, 1189x911, q=2-31, 200 kb/s, 10.00 tb(c) Stream mapping: Stream #0.0 -> #0.0 frame= 1 fps= 0 q=9.8 Lsize= 154kB time=0.10 bitrate=12647.0kbits/s video:154kB audio:0kB global headers:0kB muxing overhead 0.128575% [osc@builder ~]$ > ----- Original Message ----- > From: "The Amigo" <the...@gm...> > To: "General discussion about vnc2swf" <vnc...@li...> > Subject: Re: [Vnc2swf-users] How to set FLV meta data (was Re: About FLV output.) > Date: Fri, 3 Apr 2009 15:46:31 -0500 > > > I used pyvnc2swf for a bit, but found that it took far too much CPU time. > Instead, here's what I do now: > > 1) Use this patched vncrec: http://aur.archlinux.org/packages.php?ID=16265 > In addition to simply recording vnc sessions to a log file, it can convert > the recordings to YUV4MPEG (the twibright patch) on stdout (my patch). > > 2) Use ffmpeg to read the YUV4MPEG stream and write an .flv > > A couple of caveats however: > - vncrec needs an X display (use Xvfb to create a virtual one, but make > sure it's at least as large as your video) > - flashsv is the lossless video codec that will generally produce smaller > files for screen recordings while maintaining perfect quality > - if your ffmpeg doesn't have flashsv support and you have to compile from > source, install zlib-devel > - scaling down the video size with ffmpeg will often result in a larger > file size (due to the added anti-aliasing), for web-based playback, you can > save bandwidth by having a swf player scale the video down. -- It's News. It's Reviews. It's Interviews. It's Free. What Are You Waiting For? www.movieline.com |
From: The A. <the...@gm...> - 2009-04-23 19:06:27
|
I only see a couple differences, between your command line and mine: - I used a different codec (flashsv - lossless, and creates smaller files for screencasts) - I ran in 8-bit color mode (-bgr233) - I specified the framerate as 4fps but I wouldn't expect any of those changes to cause the problems you've shown. When you run Xvfb can create a virtual display as :3, do you also export DISPLAY=:3 (since I don't see -display :3 on your vncrec command line)? What I run is: create virtual display: Xvfb :1 -screen 0 2560x1024x24 & record a desktop: vncrec -display :1 -record log.vnc -shared 10.0.1.1 -bgr233 convert to flv: VNCREC_MOVIE_FRAMERATE=4 vncrec -display :1 -movie log.vnc -bgr233 | ffmpeg -i - -r 4 -vcodec flashsv log.flv are you using the same vncrec to record the FILM089.vnc.gz as you are to play back in -movie mode? I've found that even from the same source, compiling on different machines can make them incompatible. I suspect that when this happened to me, I had one 32-bit build and one 64-bit build, but I didn't do enough testing to figure it out for sure. I just stuck to using the same build of vncrec for recording and playing back. If none of that helps, would you mind sending me a short recording that I can try to transcode? -- The Amigo On Thu, Apr 23, 2009 at 11:36 AM, Oscar Usifer <osc...@pr...>wrote: > Amigo, > > Thank you for the great info on producing FLV outputs. I attempted to > reproduce your steps, found the output is producing only a single frame. I > built ffmpeg (from ports collection in freebsd), and have been trying to get > the stream conversion to work. The problem I am seeing is that only one > output frame is produced in the resulting .flv file. What form of the > command ffmpeg do I need to use? I did look at the docs, but was not able to > decipher too well. > > Thanks, > -OSC > > zcat FILM089.vnc.gz | ./vncrec -movie /dev/stdin | ffmpeg -f yuv4mpegpipe > -i /dev/stdin -y FILM089.flv > > > [osc@builder ~]$ Xvfb :3 -screen 0 2048x1536x24 & > [1] 8921 > [osc@builder ~]$ expected keysym, got XF86KbdLightOnOff: line 70 of pc > expected keysym, got XF86KbdBrightnessDown: line 71 of pc > expected keysym, got XF86KbdBrightnessUp: line 72 of pc > Could not init font path element /usr/local/lib/X11/fonts/TTF/, removing > from list! > Could not init font path element /usr/local/lib/X11/fonts/OTF, removing > from list! > > [osc@builder ~]$ zcat FILM089.vnc.gz | ./vncrec -movie /dev/stdin | ffmpeg > -f yuv4mpegpipe -i /dev/stdin -y FILM089.flv > VNC server supports protocol version 3.3 (viewer 3.3) > VNC authentication succeeded > Desktop name "ou0b46" > Connected to VNC server, using protocol version 3.3 > VNC server default format: > 32 bits per pixel. > Least significant byte first in each pixel. > True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0 > FFmpeg version SVN-r14424, Copyright (c) 2000-2008 Fabrice Bellard, et al. > configuration: --cc=cc --prefix=/usr/local --disable-debug > --enable-memalign-hack --enable-shared --enable-postproc --extra-cflags= > -I/usr/local/include --extra-ldflags=-L/usr/local/lib -la52 > --extra-libs=-pthread --enable-gpl --enable-pthreads --enable-swscale > --mandir=/usr/local/man --enable-liba52 --enable-liba52bin --disable-libfaac > --disable-libfaad --disable-libamr-nb --disable-libamr-wb --disable-mmx > --disable-libgsm --disable-libmp3lame --disable-ffplay --disable-libtheora > --disable-libvorbis --enable-libx264 --enable-libxvid > libavutil version: 49.7.0 > libavcodec version: 51.61.0 > libavformat version: 52.18.0 > libavdevice version: 52.0.0 > built on Apr 22 2009 16:42:55, gcc: 4.2.1 20070719 [FreeBSD] > Using default colormap which is TrueColor. Pixel format: > 32 bits per pixel. > Least significant byte first in each pixel. > True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0 > red_mask=ff0000, green_mask=ff00, blue_mask=ff, CPU endian=0, dpy endian=0 > Image dump color channel shifts: R=16, G=8, B=0 > Dumping 18 frames for time 1.80 sec. > Input #0, yuv4mpegpipe, from '/dev/stdin': > Duration: N/A, bitrate: N/A > Stream #0.0: Video: rawvideo, yuv420p, 1189x911, 10.00 tb(r) > Output #0, flv, to 'FILM089.flv': > Stream #0.0: Video: flv, yuv420p, 1189x911, q=2-31, 200 kb/s, 10.00 > tb(c) > Stream mapping: > Stream #0.0 -> #0.0 > frame= 1 fps= 0 q=9.8 Lsize= 154kB time=0.10 bitrate=12647.0kbits/s > video:154kB audio:0kB global headers:0kB muxing overhead 0.128575% > [osc@builder ~]$ > > > > > ----- Original Message ----- > > From: "The Amigo" <the...@gm...> > > To: "General discussion about vnc2swf" < > vnc...@li...> > > Subject: Re: [Vnc2swf-users] How to set FLV meta data (was Re: About FLV > output.) > > Date: Fri, 3 Apr 2009 15:46:31 -0500 > > > > > > I used pyvnc2swf for a bit, but found that it took far too much CPU time. > > Instead, here's what I do now: > > > > 1) Use this patched vncrec: > http://aur.archlinux.org/packages.php?ID=16265 > > In addition to simply recording vnc sessions to a log file, it can > convert > > the recordings to YUV4MPEG (the twibright patch) on stdout (my patch). > > > > 2) Use ffmpeg to read the YUV4MPEG stream and write an .flv > > > > A couple of caveats however: > > - vncrec needs an X display (use Xvfb to create a virtual one, but make > > sure it's at least as large as your video) > > - flashsv is the lossless video codec that will generally produce > smaller > > files for screen recordings while maintaining perfect quality > > - if your ffmpeg doesn't have flashsv support and you have to compile > from > > source, install zlib-devel > > - scaling down the video size with ffmpeg will often result in a larger > > file size (due to the added anti-aliasing), for web-based playback, you > can > > save bandwidth by having a swf player scale the video down. > > > -- > It's News. It's Reviews. It's Interviews. It's Free. What Are You Waiting > For? > www.movieline.com > > |
From: The A. <the...@gm...> - 2009-04-03 20:46:37
|
I used pyvnc2swf for a bit, but found that it took far too much CPU time. Instead, here's what I do now: 1) Use this patched vncrec: http://aur.archlinux.org/packages.php?ID=16265 In addition to simply recording vnc sessions to a log file, it can convert the recordings to YUV4MPEG (the twibright patch) on stdout (my patch). 2) Use ffmpeg to read the YUV4MPEG stream and write an .flv A couple of caveats however: - vncrec needs an X display (use Xvfb to create a virtual one, but make sure it's at least as large as your video) - flashsv is the lossless video codec that will generally produce smaller files for screen recordings while maintaining perfect quality - if your ffmpeg doesn't have flashsv support and you have to compile from source, install zlib-devel - scaling down the video size with ffmpeg will often result in a larger file size (due to the added anti-aliasing), for web-based playback, you can save bandwidth by having a swf player scale the video down. -- http://theamigo.blogspot.com |
From: Olivier H. <oli...@wa...> - 2009-04-06 09:14:49
|
interesting .. it's a way to consider for the future of pyvnc2swf .. Unfortunately, I do not know the desires of Euske on the roadmap of the product ... Regards, Olivier. The Amigo a écrit : > I used pyvnc2swf for a bit, but found that it took far too much CPU > time. Instead, here's what I do now: > > 1) Use this patched vncrec: http://aur.archlinux.org/packages.php?ID=16265 > In addition to simply recording vnc sessions to a log file, it can > convert the recordings to YUV4MPEG (the twibright patch) on stdout (my > patch). > > 2) Use ffmpeg to read the YUV4MPEG stream and write an .flv > > A couple of caveats however: > - vncrec needs an X display (use Xvfb to create a virtual one, but > make sure it's at least as large as your video) > - flashsv is the lossless video codec that will generally produce > smaller files for screen recordings while maintaining perfect quality > - if your ffmpeg doesn't have flashsv support and you have to compile > from source, install zlib-devel > - scaling down the video size with ffmpeg will often result in a > larger file size (due to the added anti-aliasing), for web-based > playback, you can save bandwidth by having a swf player scale the > video down. > > -- > http://theamigo.blogspot.com > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > > ------------------------------------------------------------------------ > > _______________________________________________ > Vnc2swf-users mailing list > Vnc...@li... > https://lists.sourceforge.net/lists/listinfo/vnc2swf-users > |
From: Yusuke S. <yu...@cs...> - 2009-04-15 23:06:27
|
Hi, On Mon, 06 Apr 2009 11:15:11 +0200, Olivier Hervieu <oli...@wa...> wrote: > Unfortunately, I do not know the desires of Euske on the roadmap of the > product ... As a matter of fact, I'm recently getting less keen on this project. It's not like that I completely lost my interest, but simply it's not in my top priority anymore. Maybe it changes in future, or maybe not. Anyway, my response for these requests are now slow. Sorry! If someone is still interested in improving this piece of software, I'd rather hand the project to that person and let them develop it for suiting their own purposes. So, Olivier, aren't you interested in taking on this project? Or anyone else? I can give an administrator account. If you're not inclined to use SourceForge, it's okay to move to other hosting sites. Currently the main page of vnc2swf is hosted on my personal page, so I can change that to point some other sites too. (I'm eager to make the transision smooth to avoid users' confusion.) Please let me know if anyone is interested. Best, Yusuke |
From: Olivier H. <oli...@wa...> - 2009-04-20 08:14:56
|
From our previous discussion, i'm agree to taking on this project, but pyvnc2swf home project and home page is defintively not the good place to be. BUT!, i think that pyvnc2swf can't diseappear because : - it's fairly used - lots of users likes what pyvnc2swf does (record, edit and play!) What we have to do is to create a new project called pyvncrec. --> fast/generic/secure vnc recorder --> tool with extensive interfaces to change the format of output movies - once pyvncrec is OK, integrate pyvncrec as a dependencies of pyvnc2swf, and focus on authoring possibilities for pyvnc2swf development. Firstly, i think that vncrec can live in the cvs of pyvnc2swf/vnc2swf before moving to his own page (google code? sourceforge?? whatever!) I'm now writing pyvncrec... i think that i will able to release something around the 10-15th of May Regards, Olivier. Yusuke Shinyama a écrit : > Hi, > > On Mon, 06 Apr 2009 11:15:11 +0200, Olivier Hervieu <oli...@wa...> wrote: > >> Unfortunately, I do not know the desires of Euske on the roadmap of the >> product ... >> > > As a matter of fact, I'm recently getting less keen on this project. > It's not like that I completely lost my interest, but simply it's not in > my top priority anymore. Maybe it changes in future, or maybe not. > > Anyway, my response for these requests are now slow. Sorry! > If someone is still interested in improving this piece of > software, I'd rather hand the project to that person and let them > develop it for suiting their own purposes. > > So, Olivier, aren't you interested in taking on this project? > Or anyone else? I can give an administrator account. > If you're not inclined to use SourceForge, it's okay to move > to other hosting sites. > Currently the main page of vnc2swf is hosted on my personal page, > so I can change that to point some other sites too. > (I'm eager to make the transision smooth to avoid users' confusion.) > > Please let me know if anyone is interested. > > Best, > Yusuke > > |
From: Yusuke S. <yu...@cs...> - 2009-04-20 11:34:29
|
On Mon, 20 Apr 2009 10:15:27 +0200, Olivier Hervieu <oli...@wa...> wrote: > > I'm now writing pyvncrec... i think that i will able to release > something around the 10-15th of May Okay, so let's see how this plays out... Meanwhile, I thought writing a simple C module with Python fallback is a pretty good idea (as some people have already pointed out). So I might work on it along this track. If succeed, we might get rid of other dependencies (like pygame or PIL). Yusuke |
From: Olivier H. <oli...@wa...> - 2009-04-06 09:11:10
|
Greetings! I use flvtool2... with my little patch, when i ask to display metadata i have : $ flvtool2 -P /home/XXXXXXXX/test.flv --- /home/XXXXXXXX/test.flv: framerate: 24 canSeekToEnd: true uselessdatabuff: duration: 42 I don't know flvtool++ and i have no time since the end of april to look at it.... But can you seek into your produced flv with my patch ? Oscar Usifer a écrit : > Folks, > > FLV "keyframes" meta data apparently is not being set correctly, even after updating and patching flvtool++-1.1.7. It may be useful to us to ask the author of that tool for a fix. As a result, steaming seeks is not possible. Can others corroborate this finding? > > Thanks, > OSC > > > > > >> ----- Original Message ----- >> From: "Olivier Hervieu" <oli...@wa...> >> To: "Oscar Usifer" <osc...@pr...> >> Cc: "General discussion about vnc2swf" <vnc...@li...> >> Subject: Re: How to set FLV meta data (was Re: [Vnc2swf-users] About FLV output.) >> Date: Fri, 03 Apr 2009 10:19:17 +0200 >> >> >> Greetings! >> >> Yes, the resulted diff shows a minimal workaround to add some >> metadata to the resulting flv (in fact framerate and duration). >> These one are needed, otherwise, produced flv files are not >> correctly read with flv players (such as FlowPlayer). >> >> But it's still 'experimental'. And it will be nice to insert all >> metadata like flvtool++ or flvtool2 does. On the other side, >> flvtool++ or flvtool2 are post treatment tool. And, more your flv >> file is heavy, more your post treatment is long... >> >> In an ideal world, there should be inclusion of all the metadata >> (such as flvtool + +) at creation time of the flv by vnc2swf .... >> Still work to do! >> >> If you're interested by this, read the following documentation : >> >> http://osflash.org/flv >> http://pyamf.org/ >> >> Olivier. >> >> Oscar Usifer a écrit : >> >>> Folks, >>> >>> I updated __init__.py and commented out import play, and that got >>> me further, so I could at least test. The result of this, was >>> being able to use the vnc2swf-recorder script to output .flv >>> reading from a streaming stdin input. However the resulting >>> output files contained blank frames. Seeing that v.0.10.0 swf.py >>> had the updates to write out the meta-data for .flv formats, I >>> attempted to simply update this file with the diff, but with the >>> same bad result as before. Below is an approximate diff. >>> "flvtool++" (v.1.1) apparently is a work around for this >>> situation. It will create the flv meta data, but does not write >>> the correct height meta-data value either because pyvnc2swf >>> writes it incorrectly (see swf.py use of 'rect' in FLVWriter), or >>> because flvtool++.cpp does uses an incorrect algorithm to read >>> it. The diff resolves this. >>> >>> Thanks >>> >>> [osc@builder-freebsd ~/packages/flvtool++/src/patch]$ diff >>> flvtool++.cpp /usr/ports/multimedia/flvtool++/work/flvtool++.cpp >>> 190,191c190,191 >>> < h = ((*(vptr++)) & 0x0f) << 8; >>> < h += ((*(vptr++)) & 0xff); >>> --- >>> >>> >>>> h = ((*(vptr++)) & 0xff) << 4; >>>> h = ((*(vptr++)) & 0xf0) >> 4; >>>> >>>> >>> [osc@rt01 /var/ee/www/swf]$ ~/flvtool++ /tmp/FILM078.flv >>> /tmp/FILM078.2.flv Video: 878x629 SCREEN >>> Total: 313234 video bytes (190.329029 kbps), 0 audio bytes >>> (0.000000 kbps), 13.166000 seconds long >>> Final onMetaData tag contents: { audiodatarate: 0.000000 >>> audiosize: 0.000000 >>> canSeekToEnd: true >>> datasize: 316322.000000 >>> duration: 13.166000 >>> framerate: 12.076561 >>> hasAudio: false >>> hasCuePoints: false >>> hasKeyframes: true >>> hasMetadata: true >>> hasVideo: true >>> height: 629.000000 >>> keyframes: { filepositions: { 544.000000 >>> } >>> times: { 0.000000 >>> } >>> } >>> lasttimestamp: 13.166000 >>> metadatacreator: flvtool++ (Facebook, Motion project, dweatherford) >>> metadatadate: Thu Apr 2 22:10:27 2009 >>> totalframes: 159.000000 >>> videocodecid: 3.000000 >>> videodatarate: 190.329029 >>> videosize: 313234.000000 >>> width: 878.000000 >>> } >>> >>> >>> >>> [osc@builder-freebsd >>> ~/packages/vnc2swf/src/pyvnc2swf-0.9.5/pyvnc2swf]$ diff >>> swf-0.10.0.py swf.py 854d853 >>> < 857,871d855 >>> < < # Meta Data information must be at the start of the file.... >>> < # Reserve here an area of 100 char to store meta data information >>> < # I know this is a bit ugly.. But i have no better idea... >>> < i = 0 < self.pos = self.outfp.tell() >>> < self.writeui8(18) >>> < self.writeub24(100) < self.writeub24(0) >>> < self.writeui32(0) >>> < self.outfp.flush() >>> < while i < 100: >>> < self.writeui8(0) >>> < i = i+1 < self.writeub32(111) 885,926d868 >>> < # To be correctly played into a FLV Player, flv files has >>> to handle some meta data >>> < # With framerate and duration, many flv player successfully >>> read the produced >>> < # FLV Stream >>> < import struct >>> < < # Flushing all the remaining data < self.outfp.flush() >>> < < # Write metadata information >>> < self.outfp.seek(self.pos) < < # The needed metadata >>> are stored in flv with amf format. >>> < # For documentation, see : < # - http://osflash.org/flv >>> < # - http://pyamf.org/ >>> < # Following metadata was generated with the help of pyamf >>> < < duration = framecount / self.framerate >>> < meta = '\x02\x00\nonMetaData\x08\x00\x00\x00\x00\x00\x08' >>> < meta += 'duration\x02' + >>> struct.pack('>H',len(str(duration))) + str(duration) >>> < meta += '\x00\x0ccanSeekToEnd\x01\x01\x00\t' >>> < meta += 'framerate\x02' + >>> struct.pack('>H',len(str(self.framerate))) + str(self.framerate) >>> + '\x00' >>> < # writing metadata duration >>> < self.writeui8(18) >>> < self.writeub24(100) >>> < self.writeub24(0) >>> < self.writeui32(0) >>> < # Insert pseudo Data to fill the rest of the reserved space >>> < rest = 100 -len(meta) -22 >>> < meta +='\x0fuselessdatabuff\x02' + struct.pack('>H',rest) >>> < data = '' >>> < while len(data)<rest: >>> < # Inserting Blank Data >>> < data += '\x00' >>> < meta += data >>> < meta += '\x00\x00\t' >>> < self.write(meta) >>> < print len(meta) >>> < self.writeub32(111) >>> < < self.outfp.seek(0,2) #The end of file >>> < self.outfp.flush() >>> >>> Command I am using test For v. 0.10.0 >>> 400 zcat FILM075.vnc.gz | vnc2swf-recorder -n -z -o /tmp/FILM078.flv -V >>> >>> For v. 0.9.5 >>> 411 zcat FILM078.vnc.gz | /usr/local/pyvnc2swf/bin/vnc2swf.py >>> -n -z -o /tmp/FILM078.flv -V >>> >>> >>> >>> >>>> ----- Original Message ----- >>>> From: "Oscar Usifer" <osc...@pr...> >>>> To: oli...@wa... >>>> Cc: "General discussion about vnc2swf" <vnc...@li...> >>>> Subject: Re: [Vnc2swf-users] About FLV output. >>>> Date: Thu, 2 Apr 2009 13:52:36 -0500 >>>> >>>> >>>> It complains pygame is not installed. Is there a version that >>>> uses PIL instead, or is there a setup option to set it to use >>>> PIL? >>>> >>>> Thanks >>>> >>>> >>>> >>>> >>>> >>>>> ----- Original Message ----- >>>>> From: "Olivier Hervieu" <oli...@wa...> >>>>> To: "Oscar Usifer" <osc...@pr...> >>>>> Cc: "General discussion about vnc2swf" >>>>> <vnc...@li...> >>>>> Subject: Re: [Vnc2swf-users] About FLV output. >>>>> Date: Thu, 02 Apr 2009 10:26:44 +0200 >>>>> >>>>> >>>>> The attached tarball has a setup.py that respect standard >>>>> python distribution style. >>>>> >>>>> Run >>>>> >>>>> python setup.py build >>>>> python setup.py install >>>>> >>>>> You can have some help by running >>>>> >>>>> 'python setup.py --help' or 'python setup.py --help [command name]' >>>>> >>>>> Forget the old makefile. I leave it here for euske. >>>>> >>>>> Regards, >>>>> >>>>> Olivier. >>>>> >>>>> Oscar Usifer a écrit : >>>>> >>>>> >>>>>> Greets Olivier, >>>>>> >>>>>> Just a few requests. I would like to test it out, but am not >>>>>> >>>>> able > to get it into an installed state. I tried to run >>>>> setup.py, but > it seems to output usage along the way instead >>>>> of actually > performing an install. I was not able to use your >>>>> package, as > make fails as well. Could you please update so >>>>> that it is > compatible with the current build system? Also, I >>>>> have a target > system that I use for installation, so the >>>>> setup/make would need > an option to install into a target >>>>> directory instead of into a > system. I can take your work and >>>>> figure out how to get it > completely installed, but not >>>>> everyone has the time or desire to > go to that level of energy >>>>> output. Also, I am beginner level with > Python, which makes it >>>>> less accessible. >>>>> >>>>> >>>>>> Thanks, >>>>>> OSC >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> ----- Original Message ----- >>>>>>> From: "Olivier Hervieu" <oli...@wa...> >>>>>>> To: vnc...@li..., "Yusuke Shinyama" >> >>>>>>> >>>>> <yu...@cs...> >>>>> >>>>> >>>>>>> Subject: [Vnc2swf-users] About FLV output. >>>>>>> Date: Mon, 30 Mar 2009 16:49:48 +0200 >>>>>>> >>>>>>> >>>>>>> Hi all, >>>>>>> >>>>>>> Vnc2swf can produce FLV. But produced files present some drawbacks. >>>>>>> >>>>>>> - files has only one keyframe (also report a few weeks ago), >>>>>>> - files has no metadata. This means that support of pyvnc2swf >>>>>>> FLV files is not complete for most FLV players (impossible to >>>>>>> scroll, total record time is not available (a good example : >>>>>>> test your pyvnc2swf FlV in FlowPlayer)). >>>>>>> >>>>>>> I attach a tarball containing some modifications: >>>>>>> >>>>>>> - add a '-k' option to specify the keyframe rate >>>>>>> - Add meta data on the produced flv. >>>>>>> >>>>>>> Note that I also repackage pyvnc2swf to be more pythonic. >> >>>>>>> >>>>> Vnc2swf scripts, edit and play are replaced by scripts >> >>>>> vnc2swf-recorder, vnc2swf-editor and vnc2swf player. The >> >>>>> distribution is now built and installed with setuptools. >>>>> >>>>> >>>>>>> The Cli interface was successfully tested on Ubuntu 8.04 and >>>>>>> Debian Lenny. >>>>>>> >>>>>>> Also note that I did not (and do not want to) install >>>>>>> >>>>> python-tk. >> I paid attention to add some options in the GUI. >>>>> But these >> changes are not yet tested,. >>>>> >>>>> >>>>>>> I leave to Euske or others to test and commit these changes. >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> Olivier Hervieu. >>>>>>> << pyvnc2swf-0.10.0.tar.gz >> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>> -- >>>> Be Yourself @ mail.com! >>>> Choose From 200+ Email Addresses >>>> Get a Free Account at www.mail.com >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> _______________________________________________ >>>> Vnc2swf-users mailing list >>>> Vnc...@li... >>>> https://lists.sourceforge.net/lists/listinfo/vnc2swf-users >>>> >>>> >>> >>> >>> >>> > > > > > |