Archive for the ‘mac’ Category

how to make a public text box

November 7, 2011

publictextbox, put yourself in front of it and type something

a public text box is a basic information sharing utility for a shared space. in this case, it’s a twitter account associated with a specific machine in a shared space rather than a person(who could be anywhere).

we tried this on macosx and linux. windows not tested but should work fine afaik.

1) download software and libraries

Processing: http://processing.org, Control P5 Library: http://www.sojamo.de/libraries/controlP5, Fullscreen library: http://www.superduper.org/processing/fullscreen_api/, Twitter Java library, twitter4j-core-v#.jar, http://twitter4j.org

2) the code https://gist.github.com/1267563

3) where to put things, this will vary slightly with your OS, but should look about the same. if you open processing and save the same sketch and then search for that it will probably be something like /Documents/Processing/sketch_023d

So you want to create a folder processing/publictextbox and publictextbox.pde will go in there. Then create /processing/publictextbox/code and controlP5.jar, fullscreen.jar, and twitter4j-core-version#.jar files will go in there.

file locations for processing scketch and libraries, will be a .txt file with keys in it too

4) register and get twitter keys, put keys into .pde code

5) test it out yo! do yer best debugginn.

6) make some keyboard modifications. maybe if you’re going to put this in a public place you should make a keyboard that has no ESC or CTL key so people can’t get out of the app once it’s running?

7) build a box. make it look nice. think ATM, public telephone, arcade game. get crafty and creative. i believe in you!

8) maybe you will have an auto shutdown and restart that will allow the installation to run long term without crashing as much?? see video for mac version of this. on linux it will be crontab. on windows the answer is ??

subscribe to the feed and watch the strange messages role in….
http://twitter.com/#!/publictextbox

could you make the same for something like a reddit/facebook/?? account?

some random notes about using old mac 10.4 machine…

http://www.webrelatedstuff.com/blog/ffmpeg%20and%20ffmpeg-php/ffmpeg-installation-on-mac-osx

https://developer.apple.com/downloads/index.action

Public Media Systems Workshop, Wednesdays 7-9pm in November, Cambrij

October 30, 2011

An informal workshop and working group around media systems.
What will happen?
We will discuss media systems. Things like television, internet, magazines, blogs, etc. We will view them with several lens including consumption/production, parallel/serial, horizontal/vertical, local/global, centralized/distributed, community/personal. We will then discuss small actions and cover how any new or old computer can become a local information server, a shared public appliance. Using free software, we will go over several ways you can accomplish this. You can do some physical building of a structures to house your device and we can talk about local venues that might house your unit as well. From cafes, music venues, to occupy boston.

Things you can learn to make if you want:
A videobooth, a public timelapse server, command line video remixing, computer timelapse self surveillance, youtube upload scripts, a public text box, and lots of good low level stuff about shell scripting and installing linux, systems thinking, etc.

What you should bring:
Your current computer or an old computer. Any old pc(win2k+) or mac (osx+) can probably be turned into a public information appliance. So bring one of those if you have it.
If you have an old webcam, bring that. If you have an old point and shoot camera from this list, please bring that:
http://www.gphoto.org/doc/remote/.

Where: Industry Lab coworking space. 288 Norfolk St, 4th Floor. Near Inman Sq, Cambrij.
When: 4 Wednesdays in November, 7-9pm. Nov 9,16,23,30

RSVP to dan:
broadcasterproject@plebiandesign.com

If you are interested but can’t make the time, you can still email and maybe some additional one-off sessions will be held at other times.

How to layer/remix videos with free command line tools

May 18, 2010

This tutorial assumes you know a little bit about script files. All files have some editing that is required before executing and knowing a little bit about a couple parameters really expands what you can do with them. That said, it’s really not too hard and we’re happy to answer basic questions.

Video Overview: (which you can definitely skip)

INSTALL SOFTWARE:
FFmpeg (OS X howto), video utility, format conversions, etc.
Imagemagick:all kinds of image processing goodness. Like a command line version of GIMP or photoshop.
Sox: Audio processing.

We’ve used all of these programs on both Linux and Mac. Linux installs are pretty easy with package managers (apt-get, yum, etc). Mac is little more work for ffmpeg and imagemagick but not too tough.

[Optional] VideoDownloadHelper: Firefox plugin that allows you to download easily from lots of video sharing sites in mp4 and flv format at a variety of resolutions. There are Linux command line downloaders as well but we haven’t tried that yet…

GET SOME MOVIES Maybe you take them with your own camera, maybe you download from online. You’ve probably got a bunch floating around your hard drive already. Start with short ones. Feel free to grab some from http://youtube.com/brooklynmobile, or any other broadcaster, all are public domain.

EXPORT MOVIES TO FRAMES
mkdir frames
ffmpeg -i yourvideoA.avi frames/A%4d.jpg
ffmpeg -i yourvideoB.avi frames/B%4d.jpg

This will export individual frames of the video to A0001.jpg, A0002.jpg, etc
For longer videos you might need to use A%5d.jpg or A%6d.jpg but start with small videos first.

DO SOMETHING TO THE FRAMES and RECOMPILE MOVIE
This is where ImageMagick comes in handy. ImageMagick can do all kinds of image manipulations. We will give you a few examples.

EXAMPLES:
Blending two movies on top of one another. Copy the following code into a file called blurmachine.sh and make it executable[type chmod 755 blurmachine.sh at the command line].

#!/bin/bash
# boranj!
counter=10000 # initialize counter
for f in A*.jpg; do # step through frames
let "counter+=1" # increment counter
# apply some Imagemagick effects to the 2 images and write a new image
composite -blend 50 A${counter:1}.jpg B${counter:1}.jpg -matte ./mixedFrame${counter:1}.jpg
done
#Use FFMPEG to make frames into a movie again
ffmpeg -r 30 -sameq -i mixedFrame%4d.jpg ../outputmovie$DATETIME.mp4

Now you will have a movie with no sound that will look something like this:

ADD AUDIO BACK TO THE MOVIES
After using the above script file, you will have a movie with no sound. You can add the soundtrack of your choice, or add the mixed audio from the original movies.
To extract audio from the original movies and sum it back together:

# AUDIO EXTRACTION
ffmpeg -i movA.mp4 movAsound.wav
ffmpeg -i movB.mp4 movBsound.wav
# AUDIO MIX
sox -m movAsound.wav movBsound.wav mixed.mp3

Add audio back to your movie:
ffmpeg -i movNoSound.mp4 -sameq -i mixed.mp3 -ab 192k movSound.mp4

OTHER IMAGE MANIPULATIONS

Wavy overlay: Script file.

and similar example with more slices.
For this example, you need to create a mix image first. That is done with this line.
convert -size 640x480 gradient: -evaluate sin 20 wave_gradient.png

Place it in an appropriate location and make sure it’s correctly reference in your script file.
This type of combination has all kinds of options. You can take this a lot of other places if you wish to dig deeper. See this forum post and this usage examples page.

Four movie grid montage: Script File.

Six panel version of same effect.

Lots of other possibilities if you poke around Fred’s Imagemagick scripts as well.

Let us know what you come up with.

Howto: Youtube auto-upload script

March 3, 2010

So you’re making lots of movies and you want things to upload to youtube automatically without you having to do any heavy lifting? If you are comfortable with a little bit of terminal and command line stuff, no problem.

A few things you will need:
Gmail account and Youtube account. These will be linked. You can use one gmail account as the developer for multiple youtube accounts but each youtube account needs it’s own independent email address, and for multiple gmail accounts you might need to get some dummy address at yahoo.com or mail.com as an alternative email. Then get yourself a developer key while logged into your developer gmail account.

Python 2.6 is probably already installed. But if not, install that too.

We’ve gotten this working for MacOSX and Linux (ubuntu 9.10 and fedora 11 anyway).
It’s probably not too hard to get it working with Windows but we’ve never tried.

Files you need:
uploader2.py at http://gist.github.com/319734
edit login information for youtube and gmail accounts.
edit developer key. edit the keywords and description to fit your project.

videochecker.sh at https://gist.github.com/e2569bca9313b1056c0e
check the path.
Thanks to Sean Levin for writing these.

Gdata and Atom directories. They are zipped and downloadable here: http://www.divshare.com/download/11521457-3da Unzip and place into same directory as uploader2.py.

Copy these files into whatever directory you will be uploading videos from.
You will now need to edit both of these files as noted above. Do you have a favorite text editor for simple code? We like smultron on mac and gedit or emacs on linux but any will do. Whatever music you like.

make sure both files are executable.

chmod 755 uploader2.py
chmod 755 videochecker.sh

then try it out manually. from the video directory prompt try running the videochecker.
yourvideodirectory$ ./videochecker.sh
Got Upload directory
You have a save directory
Not running
just before loop start
inside for loop
Uploading OMPD-20100301-20100302.mp4
uploader-log: running doit with the_time=2010-03-02T00:00:53 and the_filename=OMPD-20100301-20100302.mp4
uploader-log: created media_group
uploader-log: created youtube entry
uploader-log: created YouTubeService
uploader-log: attempting to find previous login token in token file
uploader-log: token file found
uploader-log: set login token to DQAAAHUAAA ...
uploader-log: trying login with captcha_token=None and captcha_response=None
uploader-log: login succeeded continuing on to upload
uploader-log: saving token (DQAAAHYAAABXiMigRrgi5 ... ) to token file (youtube_login_token.txt)
uploader-log: starting to upload video entry
uploader-log: completed upload of video entry
uploader-log: OMPD-20100301-20100302.mp4 uploaded to service successfully. Returning success to calling script (0)
yourvideodirectory$

if you’re getting an error with videochecker, try changing the first line to
#! /bin/bash -ex and it will output lots of extra info as it runs.

Ok. So you made it that far and now you want to set it up so it runs automatically each day or week or hour. Time for crontab. What is a crontab you ask? It’s sort of like asking your alarm clock to run a program instead of make a loud sound. It’s just a simple text file that you add some instructions to. The only problem is that you usually edit it in vi (a text editor). vi is nice and all but it’s rather confusing if you haven’t used it before. With vi, there are 2 modes, insert-text mode and command mode. 3 most useful key sequences are:
i – enter insert mode,
esc – exit insert mode
ZZ – save file and exit program.
Want to learn more: http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Editors/ViIntro.html

In the terminal window (here your current path matters not), enter
crontab -e
type i to put the editor in INSERT mode. (see text in bottom left of editor)

- then make your crontab look like:
# m h dom mon dow command
*/10 * * * * /home/yourlinuxboxname/Videos/Webcam/videochecker.sh

(which runs that script every 10 minutes.)
or

# m h dom mon dow command
* 3 * * * /home/yourmac/Movies/AUTOUPLOAD/videochecker.sh

(which runs that script at 3am each evening. But only when the computer is awake.)

- hit the ‘esc’ key to get out of insert mode.

- then type ZZ to save and exit.

Let us know how this works for you and we will try to keep an updated version of these instructions.

python uploading scripts for youtube

July 27, 2009

UPDATE:
consider skipping this post and going right to this newer one: http://broadcasterproject.wordpress.com/2010/03/03/howto-youtube-auto-upload-script/

http://code.google.com/apis/youtube/1.0/developers_guide_python.html

many thanks to sean levin for writing the upload scripts.

basic script functionality:

check a folder periodically
if movie file is there: upload it, then move it somewhere else.

that covers the basics. here are some more details.

make softlink for no space version of “Photo\ Booth”
ln -s /Users/yourname/Pictures/photobooth /Users/yourname/Pictures/Photo Booth/
crontab to call shell script periodically.
shell script functionality: check for directory and lock file. make lock file. look for files. call python uploader with file. cp file with new timestamped name. mv file.

now the problems.

1. login problems. i think this has to do with the way that youtube and gmail are now linked in some account. including the edlabbroadcaster account. i made edlabbroadcaster2 that is not linked to google account and that seems to fix log in problems.

2. conversion problems. lots of the videos fail to convert. and some convert to junk like this.

and a static shot of the conversion errors.
youtube conversion errors

tried with some avi files and it works so i’m guessing it’s the .mov format. does built in camera on an imac generate different .mov files than external isight firewire camera on a macmini? that is the question i am pondering.

is there another 3rd party photobooth style software that will write a different format video?

login problems persist as well. would love to move to something other than youtube. it seems youtube gets very confused about login now as accounts are linked to google accounts. so you can’t change password anymore or anything. its really annoying.

UPDATE on login:
so i was working on this today (2009-aug-4) and had several succesful uploads. then 2-3 in a row had login problems with no change to code. then waited 5 minutes and login is fine.

still working on this issue of videos that go grey: http://www.youtube.com/watch?v=UacDMt3hhZY

some question asking on developers forum.

http://groups.google.com/group/youtube-api-gdata/browse_thread/thread/e5f7f73e111162a9#

update:
login issues seem to be mostly fixed now.
conversion errors may have something to do with the filme movement while photbooth is still open. it seems the first of “movei 1.mov” always seems to upload fine. but the next one often has a conversion error. maybe photobooth has some issues with file movement going on while it’s still open? should the files be left in the directory and only moved once a day or something? should photobooth be closed and restarted? is there a photobooth alternative that might work better? use screencapture program like ishowuhd combined with processing or openFrameworks webcam monitor?

installing ffmeg on mac os x

July 27, 2009

i’m on a mac mini. 1.83 intel core duo. 1 gb ram.

os x 10.5.4.

my notes on ffmeg install following this article  — http://stephenjungels.com/jungels.net/articles/ffmpeg-howto.html

 tar xvzf lame-3.97.tar.gz

(this line didn’t work for me because mc os x automatically unzipped for me) so instead i need to get rid of the z.

tar xvf lame-3.98-2.tar

then a couple lines down there is a 

./configure

this didn’t work for me either. i got

… configure: error: no acceptable C compiler found in $PATH See `config.log’ for more details.

now i’m downloading xcode and developer tools. i’m assuming this will cover the c compiler part. http://developer.apple.com/technology/Xcode.html

ok. this block works now. 

./config

make

sudo make install 

optional: 

same issue with tar after downloading. i could get the command line download line to work. so i went to download faad from sourceforge. and then used this tar line

tar xvf faad2-2.7.tar

then i ran ./configure, make,and make install.

now back to ffmpeg. mkdir. cd. svn.

“Checked out revision 19521.”

long configure line. make (this is a long one). sudo make install.

now i noticed the additional config flags for the aac stuff. so i go back and run config again.

 

 

 ./configure –enable-libmp3lame –enable-shared  –disable-mmx –enable-libfaac –enable-libfaad

libfaad2 is gpl and –enable-gpl is not specified.

If you think configure made a mistake, make sure you are using the latest version from SVN.  If the latest version fails, report the problem to the ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net. Include the log file “config.err” produced by configure as this will help solving the problem.

not sure what this means but i’m moving on…
so here i am. first try.
$ ffmpeg -i codemovie.mov codemovie.flv
FFmpeg version SVN-r19521, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: –enable-libmp3lame –enable-shared –disable-mmx
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.32. 0 / 52.32. 0
  libavformat   52.36. 0 / 52.36. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0. 7. 1 /  0. 7. 1
  built on Jul 27 2009 15:15:19, gcc: 4.0.1 (Apple Inc. build 5493)
codemovie.mov: Unknown format

tar xvf faad2-2.7.tar

it can’t understand the native .mov files written by photobooth. that’s all for now. back to this at a later date.

Follow

Get every new post delivered to your Inbox.