Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| wiki:screencasttutorial [2010/11/08 12:22] – autostatic | wiki:screencasttutorial [2013/06/02 13:45] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Not satisfied with the quality of the screencasts made with [[http:// | Not satisfied with the quality of the screencasts made with [[http:// | ||
| So I needed a different toolset. For the video part I chose [[http:// | So I needed a different toolset. For the video part I chose [[http:// | ||
| - | To prevent webservices like YouTube having to downscale or upscale your videos, which deteriorates the quality of your videos drastically, | + | To prevent webservices like YouTube having to downscale or upscale your videos, which deteriorates the quality of your videos drastically, |
| ===== Requirements ===== | ===== Requirements ===== | ||
| * A recent version of FFmpeg compiled with support for the h.264 protocol | * A recent version of FFmpeg compiled with support for the h.264 protocol | ||
| - | * jack_capture | + | * [[apps: |
| - | * Xephyr | + | * Xephyr |
| - | * A video editor, I use [[http:// | + | * A video editor, I use [[http:// |
| * A screen with a minimal horizontal resolution of 1280 pixels | * A screen with a minimal horizontal resolution of 1280 pixels | ||
| - | ===== Set up the screencast | + | |
| + | ===== Screencast script ===== | ||
| + | |||
| + | I use a simple script like this: | ||
| + | |||
| + | < | ||
| + | |||
| + | DATE=`date +%Y%m%d` | ||
| + | TIME=`date +%Hh%M` | ||
| + | |||
| + | # Start screencast | ||
| + | xterm -e jack_capture -b 24 $HOME/ | ||
| + | ffmpeg -an -f x11grab -r 30 -s 1280x720 -i 0:0 -vcodec libx264 -vpre lossless_ultrafast -threads 4 $HOME/ | ||
| + | |||
| + | killall jack_capture</ | ||
| + | |||
| + | You might need to adjust the number of threads for the ffmpeg -threads parameter to match the number of cores of your CPU. If unsure, set it to 0, ffmpeg should then set the numbers of threads automatically. | ||
| + | |||
| + | jack_capture by default captures all the audio that is connected to system: | ||
| + | |||
| + | ===== Optional Xephyr script | ||
| Set up a Xephyr nested X server with a resolution of 1280x720 as this resolution yields the best result when uploading the final video to a webservice like YouTube. I use a little script for this: | Set up a Xephyr nested X server with a resolution of 1280x720 as this resolution yields the best result when uploading the final video to a webservice like YouTube. I use a little script for this: | ||
| Line 29: | Line 49: | ||
| As you can see I set up a session by calling / | As you can see I set up a session by calling / | ||
| - | Now start your screencast within the nested X server, I use a second script for this: | + | TODO:other distros |
| - | < | + | After you ran this Xephyr script, you should run the above screencast script, taking care of making the following changes to it: |
| - | DATE=`date +%Y%m%d` | + | * add the line "export DISPLAY=: |
| - | TIME=`date +%Hh%M` | + | * change -i 0:0 ffmpeg option to -i :2. |
| - | export DISPLAY=: | + | * add the -display 0:0 option to the xterm line (so it won't appear in your screencast). |
| - | # Start screencast | + | Within the Xephyr session I also use a [[http:// |
| - | xterm -display :0.0 -e jack_capture -b 24 $HOME/ | + | |
| - | ffmpeg -an -f x11grab -r 30 -s 1280x720 -i :2 -vcodec libx264 -vpre lossless_ultrafast -threads 4 $HOME/ | + | |
| - | + | ||
| - | killall jack_capture</ | + | |
| - | + | ||
| - | You might need to adjust the number of threads for the ffmpeg -threads parameter to match the number of cores of your CPU. If unsure, set it to 0, ffmpeg should then set the numbers of threads automatically. | + | |
| ===== Editing, rendering and uploading to a webservice ===== | ===== Editing, rendering and uploading to a webservice ===== | ||
| Line 63: | Line 77: | ||
| [[http:// | [[http:// | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | [[http:// | ||
