CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Tue, 19 Aug 2025 12:51:13 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20120507044109
location: https://web.archive.org/web/20120507044109/https://github.com/certik/record
server-timing: captures_list;dur=0.837675, exclusion.robots;dur=0.034606, exclusion.robots.policy;dur=0.020633, esindex;dur=0.012085, cdx.remote;dur=100.180089, LoadShardBlock;dur=967.129065, PetaboxLoader3.datanode;dur=153.333931, PetaboxLoader3.resolve;dur=163.177345
x-app-server: wwwb-app202
x-ts: 302
x-tr: 1117
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
set-cookie: wb-p-SERVER=wwwb-app202; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 302
server: nginx
date: Tue, 19 Aug 2025 12:51:14 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20180610234108
location: https://web.archive.org/web/20180610234108/https://github.com/certik/record
server-timing: captures_list;dur=0.551778, exclusion.robots;dur=0.026576, exclusion.robots.policy;dur=0.014919, esindex;dur=0.010056, cdx.remote;dur=25.288584, LoadShardBlock;dur=364.468818, PetaboxLoader3.datanode;dur=135.419285, PetaboxLoader3.resolve;dur=510.569190, load_resource;dur=593.342229
x-app-server: wwwb-app202
x-ts: 302
x-tr: 1017
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Tue, 19 Aug 2025 12:51:15 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: GitHub.com
x-archive-orig-date: Sun, 10 Jun 2018 23:41:08 GMT
x-archive-orig-transfer-encoding: chunked
x-archive-orig-status: 200 OK
x-archive-orig-cache-control: no-cache
x-archive-orig-vary: X-PJAX
x-archive-orig-set-cookie: logged_in=no; domain=.github.com; path=/; expires=Thu, 10 Jun 2038 23:41:08 -0000; secure; HttpOnly
x-archive-orig-set-cookie: _gh_sess=Zjl2ZWJhU2g2cFBXY01MV04rb0RkWTdOZlZwU2pVeEEyL2tXWUFTUytnZ2ZNMDUwWWhFSXdWRisxL2I1bm9QZHBSS3BRdGlpTXhFMkdMMjhhaGdjeXRXUDB0ZEc1QWVMb3FJeDNtZ1NRYXZWRlV5dWpxa1BaUHUrSkw4dEdUbXF2ckRha1J6eEJWdEp4cHBjK21rQmZCKzF0NEdmRGVTUkhGb1UxTjh3M3YvclFVdll3L1RKVEw3WTRSU01IN2IwVGhDZGZFSkxRMk1oUVlKdXFraE9QTkZ0eVYvVFp1VU1idGNFWVJPNzlZeXFncytBVUw3SGxnUjlyTWxXQUt3eGdYd0xFQVA4R0FFZmxRMVYwcWErUU43cUlOL0N0THh3RnR1UDJYV1JPcDNFZXhCb1B0NFNjWXkwM1ZlUFR5bGpwZm5jVkVzR0x1dE9kTkVMd2ZldnNYeW1IR3BDd3d2dFVCeVNxSHIrRXNaZ1dFeVdUQjdWbXEvRXpsZDViMThrR2lDMmU5WnJQK3dDcmE5Q2FRTXFtbmRGVGpybENaMlRxUEJ1bllwWTl2WT0tLWhxZ2IyVVFWbVBJakgzaDlCMTJKK3c9PQ%3D%3D--9d5cd92fadc1f3d4d30137213d6a60a944251ba3; path=/; secure; HttpOnly
x-archive-orig-x-request-id: 6e6c67a1-04c9-4568-abdf-c869d8e55b8a
x-archive-orig-x-runtime: 0.288843
x-archive-orig-strict-transport-security: max-age=31536000; includeSubdomains; preload
x-archive-orig-x-frame-options: deny
x-archive-orig-x-content-type-options: nosniff
x-archive-orig-x-xss-protection: 1; mode=block
x-archive-orig-expect-ct: max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
x-archive-orig-content-security-policy: default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com status.github.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src assets-cdn.github.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src assets-cdn.github.com; style-src 'unsafe-inline' assets-cdn.github.com
x-archive-orig-x-runtime-rack: 0.297840
x-archive-orig-x-github-request-id: 8D9C:2131:5248F64:9387086:5B1DB714
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Sun, 10 Jun 2018 23:41:08 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Mon, 07 May 2012 04:41:09 GMT", ; rel="prev memento"; datetime="Mon, 07 May 2012 04:41:09 GMT", ; rel="memento"; datetime="Sun, 10 Jun 2018 23:41:08 GMT", ; rel="next memento"; datetime="Thu, 05 Nov 2020 04:02:00 GMT", ; rel="last memento"; datetime="Thu, 05 Nov 2020 04:02:00 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: archiveteam_github_20180703125046/archiveteam_github_20180703125046.megawarc.warc.gz
server-timing: captures_list;dur=0.960488, exclusion.robots;dur=0.045206, exclusion.robots.policy;dur=0.028101, esindex;dur=0.015754, cdx.remote;dur=39.434032, LoadShardBlock;dur=207.593838, PetaboxLoader3.datanode;dur=100.715308, PetaboxLoader3.resolve;dur=491.908954, load_resource;dur=428.013855
x-app-server: wwwb-app202
x-ts: 200
x-tr: 764
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
GitHub - certik/record
Fetching latest commit…
Permalink
Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
C
Python
Clone or download
Launching GitHub Desktop...
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop...
If nothing happens, download GitHub Desktop and try again.
Launching Xcode...
If nothing happens, download Xcode and try again.
Launching Visual Studio...
If nothing happens, download the GitHub extension for Visual Studio and try again.

Cannot retrieve the latest commit at this time.
Failed to load latest commit information. | |||
![]() |
Makefile | ||
![]() |
README | ||
![]() |
amplify.py | ||
![]() |
arecord.c | ||
![]() |
arecord.py | ||
![]() |
audio.pyx | ||
![]() |
record.py | ||
![]() |
theora2flv |
README
Record ------ The record.py script uses gtk's "get_from_drawable()" function to take screenshots and modified alsa's arecord to record the sound. More details how it works: The arecord and aplay alsa utilities are actually one and the same program, so it was stripped down, all signals removed, all playback removed, all header files merged into it, then a "capture_stop" global variable was added, which if set to 1, the main audio capture loop will end. Then it is called from cython using nogil in it's own thread and when the user wants to end it, the "capture_stop" is set to 1. The main python thread takes screenshots in periodic intervals (15 fps by default) and if it's late, it skips the frame, so that the next one is on time. All screenshots are saved to the "data" file in the temporary directory, which is later read and converted to a set of png images. The audio is saved to a wav file. It is then your job to create a video from it (and to convert sound to any format you like, like ogg vorbis), it tells you some suggestions (see below). Also the amplifier.py script is provided to amplify volume of the wav file in case it is too quiet. Usage ----- Install the following packages in Debian/Ubuntu: sudo apt-get install python-gtk2 libasound2-dev and run it: ./record.py It produces a wav file in the tmp directory (it tells you which) and a set of png images. It also suggests you exact commands how to create videos from it, using either mencoder or ffmpeg2theora (it's up to you). In my experience mencoder can't sync the sound and video correctly, while ffmpeg2theora just works. If the sound is too quiet, use the amplifier.py utility to amplify the wav file before converting it to ogg or the "normalize-audio" program (better results) from the Debian package of the same name (it operates *inplace* on the wav file). Convert to FLV -------------- In order to convert to FLV, so that you can play it with flowplayer (flash player in the browser), use the script theora2flv. License ------- The arecord.c file is GPL (see alsa-utils for more info), all the other code is BSD. The package as a whole is GPL due to arecord.c. Flowplayer ---------- Example of usage: <a href="level-set.flv" style="display:block;width:500px;height:399px" id="player1"> </a> <script src="https://femhub.googlecode.com/svn/trunk/swf/flowplayer-3.1.1.min.js" type="text/javascript"> </script> <script type="text/javascript"> flowplayer("player1", "https://femhub.googlecode.com/svn/trunk/swf/flowplayer-3.1.1.swf", { playlist: [ { url: "lset4.png", autoPlay: true}, { url: "level-set.flv", autoPlay: false} ] }); </script>
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.