Here are a number of jobs (tasks and/or problems) that I'd like to complete but can't seem to find the time to do. They are typically things that would help my in my teaching and research, and sometimes things that would help others as well (students and staff). Or they are just things that I find interesting. Most, if not all are computer related.
The reason I'm posting this list is in case any students are interested in completing these jobs for me (or even better, have a solution already they can give me). If you are interested, then let me know or simply get started.
Completing these tasks is not directly related to any specific course - you will not get marks for it. However you may learn things that will help for your studies and therefore indirectly improve your grades. Also, there is no financial reward. Its not my intention to treat students as slaves: only choose to undertake a job if you are interested in the problem or technology.
$ ffmpeg -v 0 -f x11grab -r 2 -s 1024x768 -i :0.0 -sameq -vcodec libx264 -vpre lossless_ultrafast -threads 0 screencast.m4vThis creates an MPEG4 H.264 encoded video file with resolution of 1024x768 and frame rate of 2 fps. The audio recording is created with sox using a command similar to below:
$ rec -q -r 44100 -b 16 -c 1 audio.flacThis creates a FLAC encoded audio file with 16-bit, 44100Hz sampling in mono (1 channel).
After the lecture the screencast and audio files are processed to create a MPEG4 and WEBM video file. Currently the two different codecs are used (MPEG4 and WEBM) as they are the most widely supported codecs by web browsers (see another job that aims to improve this). The current steps applied to create the WEBM are:
$ ffmpeg -i screencast.m4v -vcodec libvpx -r 2 -s 640x480 -i audio.flac -acodec libvorbis -ab 64000 -ac 1 video.webmThis creates a 640x480 resolution, 2fps video using the WEBM container format using the VP8 video codec and Vorbis audio codec. To create the MPEG4 video the steps are:
$ flac -d audio.flac $ faac -b 64 audio.wav $ ffmpeg -i screencast.m4v -vcodec copy -i audio.aac -acodec copy video.mp4 $ HandBrakeCLI -i video.mp4 -o video.m4v -e x264 -q 20.0 -a 1 -E faac -B 64 -6 mono -R Auto -D 0.0 -f mp4 -X 640 -m -x ref=2:bframes=2:subme=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0First the FLAC audio is converted to WAV (using flac) and then to AAC (using faac). Then the screencast and audio are combined to create an initial MPEG4 video. Then HandBrake is used to further process the MPEG4 (I can't even remember why - but without this the video.mp4 would not play in the browser). The task: find the optimal resolution, frame rates, sample size and rates, as well as codec options that when compared to the output of the above commands give either smaller file size and equivalent quality, or equivalent file size and better quality.
The web page is as follows:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>Title</h1> <div> <video controls> <source src='video.webm' type='video/webm; codecs="vp8.0, vorbis"'> <source src='video.m4v' type='video/mp4; codecs="avc1, mp4a"'> </video> </div> </body> </html>In Firefox 4 (and later versions) on both Ubuntu and Windows 7 as well as Internet Explorer 9 (in compatability mode) on Windows 7, the video is displayed in the browser. For Safari some students have reported it doesn't play (to view the video it must be downloaded and played in an external player). Similar for the default browser on Android. You should test for these and other browsers to see which ones work and which don't. Then find the HTML code (and/or Apache configuration) so that the videos works in the widest range of browsers.
Return to: Course List | Steven Gordon's Home | SIIT