Feedback
After reflecting on my first week’s work with my supervisor, we decided it would be useful for me to separate some of the aspects of my project out in to categories based on thier achievablity and how essential they are to what I want the project to be. I’ll call these Minimum, Satisfactory and Stretch goals.
Minimum Goals
- Small screen with a constantly updating frames
- The image frames are affected by a user speaking into a microphone, the user is encouraged to say words associated with their interests
Satisfactory Goals
- User’s speech is transcribed by ‘hidden’ microphones within the installation room, a script is used to filter out any words that don’t relate to the participant’s interests
- ‘Privacy policy’ is created that user’s are encouraged to read before entering the installation room, but should be extremely long and tedious to read so that most users will not bother, playing with the idea that users of internet services like Google and Meta platforms do not know what happens with the data they provide
Stretch Goals
- Larger screen
- Audio element added, keywords picked from the script could be used to generate ‘ad copy’ that could be read out by a text to speech engine
- Have several microcontrollers with microphones in the room for better ability to hide microphones, playing with the concept of user data being moved and manipulated further
Moving forward, when working on the creation of my work, I will be guided by these goals and complete the more basic ones before begining work on the more advanced.
We also discussed that I should begin researching other projects in a similar vein to my own, surrounding issues like data collection and (targeted) advertising. Additionally, I should begin to look at research for my thesis.
Following this discussion I began looking at one of the more fundamental aspects of creating my work – video creation from images in real-time. For my work, I would be constantly generating new images, each similar but slightly different from the last. I would want these images to become frames of a video. I considered a few approaches.
GIMP Animation Scripting
I was aware that the image editing tool GIMP had some functionality for generating animations as well as scripting using Python, which I am confident with. After looking at some of the documentation, I decided that the process looked fairly complicated for what I wanted to acheive and was more suitable for less real-time applications in creating GIFs which was not what I was looking for.
FFMPEG
In researching further, I found that the software FFMPEG, A command line application for video creation, may be suitable for what I wanted to do. I was able to create a video using individual images as frames with this software as a first experiment. This was simply done with one terminal command
% ffmpeg -framerate 20 -pattern_type glob -i '*.jpg' output.mp4
Although this was an encouraging step forward, I felt that in order for this to do what I need, I would need to be constantly running the command above to generate video which may be computationally intensive. Additionally, with this approach I would need to make awkward decisions with regards to how I would make this video generation ongoing. This would probably look something like constantly generating new, short videos at set intervals with new frames that were generated since the last video was created. I decided that the things I learned using this approach were worth bearing in mind, but that I should continue looking at other methods.
GStreamer
While looking through Stack Overflow trying to find other apporaches to this problem that used FFMPEG, I discovered another media application called GStreamer. The person in the thread discussing the app claimed that it could encode video continuously, which I thought sounded useful. Looking at the application in more detail, I felt it looked very complicated to do something that I wasn’t certain would meet my goal, so i decided to note it, but finish working with it for now.
Bibliography
https://www.reddit.com/r/StableDiffusion/comments/xcm8z0/possible_to_save_each_iterationsteps_image/