Hi people... i use xvidcap for a long time... everytime its work good for me... but today i tryed to use it and its hanging when i click record... sometimes it records 2... 3... frames... and stops... i need to kill it. (maybe like the post Unable to capture multiple frames.. >>>> http://sourceforge.net/forum/forum.php?thread_id=1707161&forum_id=278401 )
no error message... nothing... just hang.
I was using 1.5r3. then i change to 1.5... the same hang... i think it is something at my system... but i dont know where i look for.
I'm using slackware-current there is a lot of new stuff like xorg 1.3.0 etc.. can anybody help me?
ps. sorry about my english xD
Karl H. Beckers
Could you try the packaged binary?
The same error... the binary to slack 11, and the source... i tryed to compile it with --with-gtk2, tryed --with-forced-embedded-ffmpeg aways hang... :(
system: Ubuntu 7.04, Feisty Fawn - gnome wm
xvidcap-1.1.5 source compiled, runs partly
with gnome wm it runs if audio-in is disabled. If audio enabled it crashs.
only with following msg. if started with gui
Segmentation fault (core dumped)
if started without gui: --gui no and audio not disabled, it complains about:
** ERROR **: file gnome_ui.c: line 1101 (start_recording_nongui_stuff): assertion failed: (gdpy)
Aborted (core dumped)
but the funny? thing is, if i start a x11-server without windowmanager it runs (but still without audio, but dont crash). It looks like a problem with audio-recording, so i even tried to record audio via pipe or from fileinput. It crashs or complains about pipe -1 and not possible to open (but these trys only work without gnome, under gnome it runs in the error above. I dont know where to look, is there any hint about where to start if checking the audio-part?
I'm trying without sound... but it crashes too... how i test it without gui?
without gui, the --gui flag does not work if running in gnome-wm on my ubuntu. I have to start X11 without gnome-wm. What i tried too: start with gui, in the gui select edit configuration and activate XDamage manual selection, there disable it. Then save this configuration, check it did create a new ~/.xvidcaprc
and then try again with commandline out of a xterm-terminal like:
xvidcap --gui no --cap_geometry 200x200 --fps 10.0 --time 5.0 --file test1.mpg --audio no --auto --source x11
this records for 5 seconds the upper left area, you have to end the program with ctrl-C. I have only tried to read the source about the XDamage-routine and did not understand the differences to the byzanz-desktop-rekorder(which only makes gif-animations), which uses totally different gdk-calls. I am a noob about gdk and gnome....
from test-dr / writing this not logged in
Karl H. Beckers
@test-dr: Why aren't you using the deb provided on feisty? I am on feisty and it works like a charm for me on both metacity and beryl. What's gnome-wm, though?
The fact that you have to hit CTRL-C for stopping non-gui recording even if --frames or --time is specified is a bug.
What platform are you two running on? OS, HW, etc.?
sorry, did not find one - using Synaptic and searching for xvidcap shows no entries? - Am i searching for the wrong name? Btw. the workaround to get the GdkWindow *gdpy via gdk_display_get_default() in gnome_ui.c works without the need to disable XDAMAGE in the config. But it still does not terminate the programm after the recording-timeout !but the recording itself stops (length of the record). It still crash if audio is enabled, i even tried to pipe a recorded pcm file, thats why i am looking into the source. With the old version under SuSE 10.0 (some time ago - xvidcap version 1.1.4?) i used mencoder to mix both, the xvidcap screen recording and the audio-file.
Linux version 2.6.20-15-generic (root@palmer) (gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4))
cpu model name : AMD Sempron(tm) Processor 3000+
it is not kubuntu, it is the ubuntu with the gnome-like wm.
I have no idea about XDAMAGE, i only did a quick compare with the source of the panel-desklet byzanz (it creates on the fly animated gifs and uses XDAMAGE too) of this ubuntu version (feisty) and realized the code-lines are very different and trying to find some docs about this is not easy, so my first gdk-prog can only display an image on screen, next i will try to query the event-queue for screen-changes, maybe i understand then a bit more about this ...
with no gui... after i fix the line in gnome_ui.c i can record the videos...
The problem is just with the gui interface :(
Hummm now... checking better the no gui option... it record during a time (that i specified) then... it capture the mouse pointer ok... but it dont catch other windows... etc... a little trash in screen when i open a window for example... but i cant see the windows... just the static image of when i started to record... and the mouse moving... and a little garbage (when i open a window).
Karl H. Beckers
@thomaszrb: try to see if disabling xdamage in ~/.xvidcaprc changes that.
@test-dr: Sempron is no AMD64 plattform, right? If it is not, you could try to download the deb from this site and install it with dpkg -i.
Now turning off xdamage it records ok :D with no gui is solved now :)
any hints to record with gui? i tryed with xdamage off... but its hanging yet. it records just a little frames then stop
I noticed something very strange now...
If i click in record... and stay moving the mouse in the xvidcap window (not the capture area, the control window) it start to record a little more frames... i get 68 now... then... hangs... just change the frames when i move the mouse. and i tested with mplayer the numbers of frames if its correct... it is. if i dont move the mouse... just one... if i move... a little more... about 50... 60... then... hangs...
@thomaszrb: What hw are you on?
I have no slackware available for testing anywhere, so I can only try to pin down your issue by asking you to try certain things.
Can you try doing single-frame capture to xwd, like this:
xvidcap --sf --gui no --cap_geometry 200x200+0+0 --frames 100 --fps 10 --file test-%.4d.xwd
My HW: Notebook acer aspire 5672WLMi, its a intel duo core 1.66 GHz, with an ati graphics card offboard... mobile radeon x1400 128 mb.
Here is all ok... my xorg is using the ati driver with 3d aceleration...
After i disabled xdamage in ~/.xvidcaprc (to avoid some trashes at the movie):
1- xvidcap --gui no --cap_geometry 200x200 --fps 10.0 --time 5.0 --file test1.mpg --audio no --auto --source x11
works very well 50 frames :D records all the movie (a little too fast but it records, i saw something about it in the forum then i think i can handle it by myself)
2- xvidcap --sf --gui no --cap_geometry 200x200+0+0 --frames 100 --fps 10 --file test-%.4d.xwd
ok too :D have 0000 until 0099 files teste-*.xwd and the pickture is ok.
3 - tried to record a sf (no sound) with gui... it hangs...
4 - tried to record a mf (no sound) with gui... it hangs...
in both cases (3 and 4) if i move the mouse in xvidcap window.. it records a a little more frames before hangs... like about 40... 50... if i dont move the mouse... it records from 1 to 5 frames then hang.
now my problem is just with the gui... any solution?
did you check the glade-gui file? Its normaly at <PackageDataDir>/xvidcap/glade/gnome-xvidcap.glade
For me the PackageDataDir was in /usr/local/share/xvidcap/glade/gnome-xvidcap.glade
if you might have a wrong version there, maybe this is the reason (or missing/wrong gnome/glade libs?) - check the file with the one in the source-directory
gnome-xvidcap.glad with 187783 bytes from the xvidcap-1.1.5 version. I had some "funny" crashes too, when i started a older version with the new glade-gui-config and vice versa -and then you can try to compare the ldd output with mine
/src/xvidcap-1.1.5/src$ ldd xvidcap
linux-gate.so.1 => (0xffffe000)
libglade-2.0.so.0 => /usr/lib/libglade-2.0.so.0 (0xb7f46000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7bee000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7ad0000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7a4a000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7a2f000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7a18000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb79f1000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb79e9000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb79bd000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb79af000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb79a7000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb79a4000)
libXi.so.6 => /usr/lib/libXi.so.6 (0xb799c000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb7996000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb798c000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7987000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7949000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb78d9000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb77e8000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb77ae000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb77aa000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb77a6000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb77a1000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7798000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7703000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb76ec000)
libmp3lame.so.0 => /usr/lib/libmp3lame.so.0 (0xb7632000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb762f000)
libXmu.so.6 => /usr/lib/libXmu.so.6 (0xb7619000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb74d8000)
libz.so.1 => /usr/lib/libz.so.1 (0xb74c4000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7498000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb742d000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb740d000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb740a000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb73e7000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb73e1000)
libXt.so.6 => /usr/lib/libXt.so.6 (0xb7390000)
libSM.so.6 => /usr/lib/libSM.so.6 (0xb7387000)
libICE.so.6 => /usr/lib/libICE.so.6 (0xb736f000)
as far i tried, the 1.1.5 version works without audio - recording may need disable of XDamage for capture of 3d-game-output or television-apps - ubuntu feisty + gnome and metacity (thats the name of the windowmanager) and i hope you dont suffer from the ubuntu-bug around experimental usb-suspend feature.
$ ls -l /usr/local/share/xvidcap/glade/gnome-xvidcap.glade
-rw-r--r-- 1 root root 187783 2007-05-03 16:25 /usr/local/share/xvidcap/glade/gnome-xvidcap.glade
the size is right. Im using 1.1.5
/xvidcap/xvidcap-1.1.5/src$ ldd xvidcap
linux-gate.so.1 => (0xffffe000)
libglade-2.0.so.0 => /usr/X11R6/lib/libglade-2.0.so.0 (0xb7efe000)
libgtk-x11-2.0.so.0 => /usr/X11R6/lib/libgtk-x11-2.0.so.0 (0xb7bbd000)
libxml2.so.2 => /usr/X11R6/lib/libxml2.so.2 (0xb7aa4000)
libgdk-x11-2.0.so.0 => /usr/X11R6/lib/libgdk-x11-2.0.so.0 (0xb7a22000)
libatk-1.0.so.0 => /usr/X11R6/lib/libatk-1.0.so.0 (0xb7a07000)
libgdk_pixbuf-2.0.so.0 => /usr/X11R6/lib/libgdk_pixbuf-2.0.so.0 (0xb79f1000)
libm.so.6 => /lib/libm.so.6 (0xb79ae000)
libpangocairo-1.0.so.0 => /usr/X11R6/lib/libpangocairo-1.0.so.0 (0xb79a6000)
libpango-1.0.so.0 => /usr/X11R6/lib/libpango-1.0.so.0 (0xb7969000)
libcairo.so.2 => /usr/X11R6/lib/libcairo.so.2 (0xb78f6000)
libgobject-2.0.so.0 => /usr/X11R6/lib/libgobject-2.0.so.0 (0xb78bc000)
libgmodule-2.0.so.0 => /usr/X11R6/lib/libgmodule-2.0.so.0 (0xb78b9000)
libdl.so.2 => /lib/libdl.so.2 (0xb78b5000)
libgthread-2.0.so.0 => /usr/X11R6/lib/libgthread-2.0.so.0 (0xb78b1000)
librt.so.1 => /lib/librt.so.1 (0xb78a9000)
libglib-2.0.so.0 => /usr/X11R6/lib/libglib-2.0.so.0 (0xb7815000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb77fe000)
libXdamage.so.1 => /usr/X11R6/lib/libXdamage.so.1 (0xb77fb000)
libXfixes.so.3 => /usr/X11R6/lib/libXfixes.so.3 (0xb77f6000)
libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0xb77e1000)
libc.so.6 => /lib/libc.so.6 (0xb769f000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb75b7000)
libz.so.1 => /usr/X11R6/lib/libz.so.1 (0xb75a2000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb7594000)
libfontconfig.so.1 => /usr/X11R6/lib/libfontconfig.so.1 (0xb7569000)
libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0xb7561000)
libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0xb755e000)
libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0xb7555000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb754f000)
libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0xb7546000)
libpangoft2-1.0.so.0 => /usr/X11R6/lib/libpangoft2-1.0.so.0 (0xb751b000)
libfreetype.so.6 => /usr/X11R6/lib/libfreetype.so.6 (0xb74ae000)
libpng12.so.0 => /usr/X11R6/lib/libpng12.so.0 (0xb7472000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb7423000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb741a000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb7402000)
libxcb-xlib.so.0 => /usr/X11R6/lib/libxcb-xlib.so.0 (0xb7400000)
libxcb.so.1 => /usr/X11R6/lib/libxcb.so.1 (0xb73e8000)
libXau.so.6 => /usr/X11R6/lib/libXau.so.6 (0xb73e5000)
libexpat.so.1 => /usr/X11R6/lib/libexpat.so.1 (0xb73c6000)
libXdmcp.so.6 => /usr/X11R6/lib/libXdmcp.so.6 (0xb73c1000)
i cannot understand it so much O.o but... maybe is missing some libs... is it?
the issue around the need to press CTRL-C in non-gui mode even if max frame or time are exceeded is fixed locally. Will commit ASAP, but I'm right in the middle of adding an initial version of minimize to tray, so it'll have to wait a few.
it looks like XDamage cannot grep the changes of 3d-output. I have made 2 recordings, one with XDamage activated, one disabled. I recorded the blender (3d-modeling app) and only the non-XDamage recording shows what happens on screen. There exists another recording app: recordmydesktop-0.3.4 (on sourceforge too), which uses same kind of XDamage (a bit?) and this cannot record it too(and i did not find an option to disable XDamage for it). Thats why i would suggest keep the flag to disable XDamage recording as long there are too many ways to make graphics-output without notification of the main-x11-event-queue. I have not looked at the source code, only did some tests about it and it was possible to record with audio input (my compiled version used oss-driver). So i will have a look at it too. My little gdk-test spits out a lot of XDamage events for changed on-screen-content, but it does not shows all changes - no cursor changes, maybe no tooltip popups. I still dont understand whether XDamage is limited to only normal x11-window-output (nothing like 3d direct gfx rendering)
Karl H. Beckers
Indeed, that's why the setting is configurable and will stay so.
Karl H. Beckers
did you run make isntall?
Just to rule out any possibility of inconsistencies here, please try:
/tmp/xv --mf --auto --file /tmp/bla.avi
Hummmm ok... im tried it now... the same problem :( just a few frames and it hangs :~
C. J. Meidlinger
I built the slackware packages for 11.0 that you see on this site. I normally avoid -current since it's a moving target, but I'll try xvidcap on it this weekend and see if anything jumps out at me that might help.
I'm seeing similar behavior on Suse 10 Linux. I don't have a sound card, so I don't know to what extent this is a problem.
Can anyone summarize a work-around?
I tried the set of instructions that you had above, except that there was only a xvidcap binary in /tmp/xv/share/bin .