.. _making_movies_ase: ============= Making movies ============= using recordmydesktop --------------------- A video tutorial can be produced in the following way: - change the screen resolution to 1280x1024, - record the movie of the screen (without sound) using recordmydesktop_ (gtk-recordMyDesktop), - convert the resulting ogv into avi using mencoder:: mencoder video.ogv -o video.avi -oac copy -ovc lavc - record and edit the sound track using audacity_: - use 44100 Hz for recording and save the final file as *sound.wav*, - make sure not to keep the microphone to close to avoid signal peaks, - cut microphone signal peaks, insert silences, ... - edit the movie using avidemux_ (to match the sound track): - load the *video.avi*: :menuselection:`File --> Open`, make sure to use the following options when editing and saving: :menuselection:`Video --> Copy`, :menuselection:`Audio --> Copy`, :menuselection:`Format --> AVI`, - add the *sound.avi*: :menuselection:`Audio --> Main` :menuselection:`Track --> Audio` :menuselection:`Source --> External WAV`, - cut video frames (or copy and insert still frames to extend the video) to match the sound track. Set beginning mark and end mark - the cut or copy/paste operation applies to the selected region, - make sure to save intermediate stages when working on the video :menuselection:`File --> Save --> Save Video` (as AVI): - avidemux caches the audio track so to match the audio to a freshly cut video you can copy the audio file into another name, and add the sound track from that name, - sometimes when cutting frames avidemux does not allow to set the markers correctly, and there is **no** undo the last step in avidemux! - save the *video_final.avi* (that matches the sound track), and encode it into mpeg4 format using mencoder, using two passes:: opt="vbitrate=550:mbd=2:dc=10 -vf unsharp=l:0.4:c:0.0:hqdn3d" mencoder -ovc lavc -lavcopts vcodec=msmpeg4v2:vpass=1 -nosound -o /dev/null video_final.avi mencoder video_final.avi -oac mp3lame -af resample=32000:0:2 -lameopts vbr=3:br=80:mode=3 \ -ovc lavc -lavcopts acodec=mp3lame:vcodec=msmpeg4v2:vpass=2:$opt \ -info name="Overview and installation of ASE":artist=CAMd:copyright="CAMd 2009" -o video_final_mpeg4.avi - convert *video_final.avi* into a 800x600 *swf* file for streaming:: ffmpeg -i video_final.avi -pass 1 -s 800x600 -b:a 256k -ar 44100 -ac 1 \ -vcodec flv -b:v 1200k -g 160 -mbd 2 oi_en_800x600.swf ffmpeg -i video_final.avi -pass 2 -s 800x600 -b:a 256k -ar 44100 -ac 1 \ -vcodec flv -b:v 1200k -g 160 -mbd 2 -y oi_en_800x600.swf .. _recordmydesktop: http://recordmydesktop.sourceforge.net/about.php .. _audacity: https://sourceforge.net/projects/audacity/ .. _avidemux: http://www.avidemux.org/ using avconf to collect png files --------------------------------- Load the trajectory and write the images out as single png files, e. g.: .. literalinclude:: writepngs.py In case you do not have avconv, install it (ubuntu):: sudo apt-get install libav-tools libavcodec-extra-53 libavdevice-extra-53 libavformat-extra-53 libavutil-extra-51 libpostproc-extra-52 libswscale-extra-2 Convert the png files to a movie (img.mov):: avconv -i "%d.png" -r 25 -c:v libx264 -crf 20 -pix_fmt yuv420p img.mov the options are: -i "img%d.png" uses these files as the input, %d is a placeholder for the number -r 25 the desired frame rate, 25 FPS in this case -c:v libx264 use the h264 codec x264 -crf 20 the video quality, 20 is pretty high, the default is 23 -pix_fmt yuv420p a compatible pixel format