Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
wiki:screencasttutorial [2010/10/27 12:54] – autostatic | wiki:screencasttutorial [2012/04/16 03:08] – CLzWBtujl 188.143.232.12 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Screencasting with FFmpeg, jack_capture and Xephyr ====== | + | Nice Nice Record. I really loved your rcored. Youtube can be a fantastic asset for you. If you need any help getting |
- | + | ||
- | ===== Introduction ===== | + | |
- | + | ||
- | Not satisfied with the quality of the screencasts made with [[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, | + | |
- | + | ||
- | ===== Requirements ===== | + | |
- | + | ||
- | * A recent version of FFmpeg compiled with support | + | |
- | * jack_capture | + | |
- | * Xephyr | + | |
- | * A video editor, I use [[http:// | + | |
- | + | ||
- | ===== Set up the screencast session ===== | + | |
- | + | ||
- | 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 nested X server | + | |
- | Xephyr -keybd ephyr,,, | + | |
- | sleep 3 | + | |
- | export DISPLAY=: | + | |
- | / | + | |
- | + | ||
- | 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: | + | |
- | + | ||
- | < | + | |
- | + | ||
- | DATE=`date +%Y%m%d` | + | |
- | TIME=`date +%Hh%M` | + | |
- | export DISPLAY=: | + | |
- | + | ||
- | # Start screencast | + | |
- | 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 | + | |
- | + | ||
- | ===== Editing, rendering and uploading to a webservice ===== | + | |
- | + | ||
- | Now you have two separate files, an .mkv and a .wav file and because jack_capture was started right after ffmpeg audio should be no more out of sync then just a few millisecs. You can now edit the audio and video parts to your liking: | + | |
- | + | ||
- | * Edit the .wav file in Audacity or Rezound if necessary. I used some extra gain and compression. | + | |
- | * Import the two files in OpenShot and crop start and end to your liking. | + | |
- | * With VLC I made some stills from the video file and with Gimp I edited these to create the titling. | + | |
- | * Create transitions, | + | |
- | + | ||
- | For rendering/ | + | |
- | * Video: 1280x720, 30 fps (this should match the settings of ffmpeg), mp4 videoformat, | + | |
- | * Audio: mp3 (libmp3lame), | + | |
- | + | ||
- | Now you can upload the resulting mp4 file to a webservice. The settings I've used will yield optimal results for YouTube. | + | |
- | + | ||
- | ===== Examples ===== | + | |
- | + | ||
- | [[http:// | + |