[LAU] screencasting with ffmpeg

Jeremy Jongepier jeremy at autostatic.com
Fri Nov 5 12:35:13 UTC 2010


On 11/05/2010 01:07 PM, Rustom Mody wrote:
> On Fri, Nov 5, 2010 at 3:08 PM, Jeremy Jongepier <jeremy at autostatic.com> wrote:
> 
>> Try adding an ampersand after xfce-session.
> 
> Makes no diff: Another session manager is already running is the error
> 
>>
>> That is probably because of the -keybd options I used. I had to use this
>> specific line to get my keyboard and mouse working properly.
> 
> Yes the keybd options cause problems sometimes and sometimes not
> 
>> man Xephyr is very informative on these options.
> 
> Well!!
> 
> Out here man Xephyr gives me hardly one screenful: the only options
> mentioned are screen parent and host-cursor.
> It however says its like xnest.  So install Xnest and look at its man
> page. No keybd options there either. But it says see Xserver.  So I
> see Xserver. Nothing there either
> 

Hello Rustom,

You're right, the man page of Xephyr doesn't provide a lot of info as
Xephyr doesn't have that much options by itself. So the Xephyr man page
being informative almost sounds cynical, sorry about that, not my
intention. I got the usage info of this parameter from Xephyr --help,
TinyX section. then I found out it didn't work for me so I started
googling and came upon setting this specific option which works in my case.

> Anyway for now I am dropping the keybd and session call and that runs.
> Script is:
> 
> #!/bin/bash
> #set -x
> # Set up nested X server
> Xephyr -ac -screen 1024x768x16 -host-cursor -br -reset -terminate 2>
> /dev/null :2 &
> sleep 3
> export DISPLAY=:2.0
> #xfce4-session&
> 
> I am now at the point of calling the second script.  The jack_capture
> is giving its own share of problems so try to only get video with the
> ffmpeg call
> 
> 
> #!/bin/bash
> 
> DATE=`date +%Y%m%d`
> TIME=`date +%Hh%M`
> export DISPLAY=:2.0
> 
> # Start screencast
> #xterm -display :0.0 -e jack_capture -b 24
> $HOME/screencast/screencast_audio_$DATE-$TIME.wav &
> ffmpeg -an -f x11grab -r 30 -s 1280x720 -i :2 -vcodec libx264 -vpre
> lossless_ultrafast -threads 4
> $HOME/screencast/screencast_video_$DATE-$TIME.mkv
> 
> #killall jack_capture
> 
> Error I get is
> 
> 
> [x11grab @ 0x9e04c30] device: :1 -> display: :1 x: 0 y: 0 width: 1280
> height: 720
> [x11grab @ 0x9e04c30] shared memory extension  found
> X Error of failed request:  BadMatch (invalid parameter attributes)
>   Major opcode of failed request:  130 (MIT-SHM)
>   Minor opcode of failed request:  4 (X_ShmGetImage)
>   Serial number of failed request:  11
>   Current serial number in output stream:  11
> [1]+  Segmentation fault      Xephyr -ac -screen 1024x768x16
> -host-cursor -br -reset -terminate :2 2> /dev/null
> 

That is because you're trying to capture a 1280x720 screensize with
ffmpeg while the Xephyr screensize is 1024x768.

Best,

Jeremy


More information about the Linux-audio-user mailing list