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 13:22] – autostatic | wiki:screencasttutorial [2013/06/02 15: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:// |