-
Notifications
You must be signed in to change notification settings - Fork 4
A cross-platform, web-based, screen recording Java applet for posting screencasts to a server.
License
onedanshow/Screen-Courter
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
======================================== Screen-Courter v0.8 - A screen recording app who loves your screen and likes to show her off. by Daniel Dixon (http://www.danieldixon.com) Copyright (C) 2010 ReelFX Creative Studios (http://www.reelfx.com) ======================================== DESCRIPTION: An instant, cross-platform, web-based, screen recording Java applet for posting user-created screencasts to a server. The applet acts as a standard interface for recording, cropping, and posting while an OS-specific command-line tool is fired up under the covers as a process to create a high-fps screen recording of the user's screen and handle any post-processing needs. For Linux, this tool is a standard build of FFMPEG. For Windows, a custom build of FFMPEG based on discussion on the FFMPEG developer mailing list. For Mac, a custom built screen recording Objective-C app based on the QTKit of Snow Leopard. This tool was inspired by websites like www.screencast-o-matic.com and www.screentoaster.com whose approaches include all sorts of technologies, including FFMPEG, VNC, and JNI. ======================================== REQUIREMENTS: Developer: JRE 1.6 Eclipse (recommended) Ant (recommended) Access to Mac, Windows, and Linux environments for testing and compilation Ability to sign a JAR file Client-side: JRE 1.6 Server-side: Ability to serve a signed Java applet Ability to receive a POST with a multi-part file ======================================== SETUP USING ECLIPSE: 1) Checkout the code: git clone http://github.com/onedanshow/Screen-Courter.git 2) Import the project folder into an Eclipse workspace. -Make sure the 'src' folder is selected as the source folder. -Make sure all of the JARs in the 'lib' folder are added to Project > Properties > Java Build Path > Libraries -Make sure to add 'plugin.jar' for the Javascript interface. See the note at the top of Applet.java 3) In Eclipse, open the Run > Run Configurations window and follow these sub-steps: -For the Main tab, select "Screen-Courter" as the project and "com.reelfx.Applet" as the Applet -For the Parameters tab, set or add the following: width: 770 height: 70 post_url: (url to post the screen recording video file to) screen_capture_name: (name for the screen to show in the interface; ex: "Test Screen Capture") dev_mode: true (used only when running from Eclipse for debugging purposes and to work with the cropping interface when developing on Mac) -For the JRE tab, make sure you're using Java 1.6 -Press "Apply" and then close the Run Configurations window 4) Copy and rename config-example.properties to config.properties and configure it accordingly. This file will not go in source control. 5) Run the Applet. ======================================== TEST DEPLOYMENT: 1) If not done so already, copy and rename config-example.properties to config.properties and configure it accordingly. Some properties are the same as those in the Parameters tab above. It is assumed that you already have generated a certificate in your local keystore. 2) Using Ant, run the create_test_page action. 3) Open the test page in a browser. ======================================== PRODUCTION DEPLOYMENT: 1) Copy and rename build-example.properties to build.properties and configure it accordingly. This file will not go in source control. It is assumed that you already have generated a certificate in your local keystore. 2) Using Ant, run the create_production_jar# action. 3) Embed the applet.jar in the appropriate page of your website, using the template.html and/or test page as a guide. ======================================== BUILDING OS-SPECIFIC BINARIES FOR SCREEN RECORDING: The binaries needed for each OS are included with the source code. However the need may arise for you to compile them yourself. LINUX: A standard copy of FFMPEG with X264 and FFPLAY are used. No modification to the source code was made. MAC: A custom but limited application was developed for the Mac. It currently doesn't support cropping nor full-resolution recording. It's source code is available here: http://github.com/onedanshow/Mac-Screen-Recorder WINDOWS: A custom copy of FFMPEG with X264 and FFPLAY are used, based on discussion from the FFMPEG developer forum (http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2010-March/thread.html#85332). ======================================== WISH LIST: -Create a new Mac binary that can support cropping, full-resolution recording, and encoding. Preferring it would be an addition to FFMPEG using OpenGL (discussion here: http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2010-May/thread.html#88180) -Support system audio recording -Support within-Java-applet preview of the encoded file instead of opening in FFPLAY (Windows, Linux) or Quicktime (Mac). -General code and interface clean-ups. ======================================== F.A.Q. Q) Why did you not use VLC under the covers? A) I was never able to get good results with it (e.g. high fps, good quality capture, decent file size) Q) Why are there a bunch of Apache Commons files in the src folder and class files in the lib folder from the shared JARs? A) I was trying to limit the size of the JAR and freeze the common code I used by just including those files needed instead of the whole Apache Commons JAR, plus not have to deal with finding/loading other JARs or including JARs within JARs. This needs to be cleaned up. ======================================== LICENSE: Copyright (C) 2010 ReelFX Creative Studios (http://www.reelfx.com) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/> ========================================
About
A cross-platform, web-based, screen recording Java applet for posting screencasts to a server.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published