Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/antiboredom/automating-video-lang


https://github.com/antiboredom/automating-video-lang

Last synced: 28 days ago
JSON representation

Awesome Lists containing this project

README

        

# Automating Video

In this experimental video class students will learn to use Python and command line tools to explore the possibilities of automating the film-making process. We will cover techniques for capturing, analyzing, editing and manipulating video with code. We’ll treat video as a textual as well as visual medium, repurposing found footage to generate new compositions and narratives.

```
Sam Lavigne, The New School, Spring 2018
Contact: [email protected]
```

## Schedule

### Week 1 - Jan 26
- Introductions and syllabus
- Intro to the command line
- Intro to ffmpeg

#### Assignment
- Shoot a video and edit it using only ffmpeg. Your final video should be between 30 and 60 seconds.

***

### Week 2 - Feb 2
- More on ffmpeg
- Downloading videos with youtube-dl

#### Assignment
- Create a video corpus by downloading a youtube channel (or other source material) with youtube-dl

***

### Week 3 - Feb 9
- Making supercuts with videogrep

#### Assignment
- Make a supercut.

***

### Week 4 - Feb 16

- Python intensive part 1

#### Assignment
- Python programming challenge 1

***

### Week 5 - Feb 23

- Python intensive part 2

#### Assignment
- Python programming challenge 2

***

### Week 6 - Mar 2
- Editing videos with VidPy

#### Assignment (due week 8)
- Shoot and edit a video with VidPy

***

### Week 7 - Mar 9
- VidPy part 2

***

### Week 8 - Mar 16
- Midterm presentations

***

### Week 9 - Mar 30
- Controlling remote cameras

#### Assignment
- Compose a video using found IP camera footage

***

### Week 10 - Apr 6
- Controlling connected cameras
- DSLRs, GoPros, smartphones

#### Assignment
- Write a program that shoots a video

***

### Week 11 - Apr 13
- Computer vision & working with frames

#### Assignment
- Write a program that edits a video based on what the computer "sees" in frames

***

### Week 12 - Apr 20
- Video bots

#### Assignment
- Write a program that will generate an infinite series of videos

***

### Week 13 - Apr 27
- TBD day, topics could include:
- Live streaming
- Processing.py
- Raspberry PIs
- ?

***

### Week 14 - May 4
- Lab day

***

### Week 15 - May 11
- Final presentations and critique

***

### Grading breakdown:

```
Participation/attendance: 20%
Weekly assignments: 50%
Final project: 30%
```

## Attendance

* Please come to class, and be on time!
* Coming to class more than 20 minutes late counts as an absence.
* If you are absent four times you automatically get a grade reduction.
* **If you are absent more than four times you automatically fail the class**, unless there are extenuating circumstances, such as:
* Extended illness requiring hospitalization or visit to a physician (with documentation)
* A family emergency, e.g. serious illness (with written explanation)
* Observance of a religious holiday

If you are going to be very late or can't come to class for whatever reason please just let me know beforehand.

## Office Hours and General Help

I'm available to meet by appointment in person or by Skype/Google Hangouts. Please email me at [email protected] to schedule a meeting, or if you have any questions or concerns about the class.

## Expectations and general notes
* It's OK to show work that has sensitive or difficult content, but if you do so give everyone a quick heads up beforehand.
* We will be critiquing each others work in the class. Be honest but friendly when critiquing other students. When receiving critique please listen and take feedback seriously.
* Feel free to use your laptop in class to take notes or follow along when I'm covering programming topics. Please do not use your laptops to do stuff on social media unrelated to the class etc.
* The only time laptop use is strictly prohibited is when other students are presenting their work.
* Turn off your phones or put them on silent during class

***

## Resources

### Learning Python
* [Learn Python The Hard Way by Zed Shaw](https://learnpythonthehardway.org/book/) (not actually hard)

### Command Line
* [Intro to Unix by Allison Parrish](http://www.decontextualize.com/teaching/rwet/introduction-and-unix-tutorial/)
* [Learn Enough Command Line to Be Dangerous](https://www.learnenough.com/command-line-tutorial)

### Image
* [Pillow](https://pillow.readthedocs.io/en/4.0.x/)
* [ImageMagick](https://www.imagemagick.org/script/index.php)

### Audio
* [Sox](http://sox.sourceforge.net/)
* [Pydub](http://pydub.com/)

### Video
* [ffmpeg](https://ffmpeg.org/)
* [melt](https://www.mltframework.org/)
* [moviepy](http://zulko.github.io/moviepy/)
* [vidpy](http://antiboredom.github.io/vidpy/)

### Computer Vision
* [opencv](http://opencv-python-tutroals.readthedocs.io/) (```brew install opencv```)
* [simplecv](http://simplecv.org/)
* [darkflow](https://github.com/thtrieu/darkflow) (Object detection/tagging)

### Automating Shooting
* [Axis Camera REST API](https://www.axis.com/files/manuals/vapix_ptz_52933_en_1307.pdf)
* [Control a servo motor with Python](https://github.com/montoyamoraga/servo_camera) - By Aarón Montoya-Moraga
* [gPhoto2](http://gphoto.org/) - take photos/videos from the command line