What is the ‘Art of Pop Video’
The ‘Art of Pop Video’ was a show at FACT (Foundation for Art and Creative Technology) in Liverpool.
More than 100 video clips tell the story of the pop video, marking the medium’s substantial contribution to popular culture. MTV defined a generation with its bite-sized, fast-paced offering of 24/7 music videos, but it was long before then that the medium had become a vital form of artistic expression. Showcasing the music video as an artistic medium in its own right, the exhibition follows its history from the very beginnings in the 1920s to its most contemporary manifestations.
Curators: Michael P. Aust (film producer and director of SoundTrack_Cologne); Daniel Kothenschulte, film critic and writer.
The 170-ish videos were played out on 75 monitors around the exhibition spaces, to save costs each monitor was equipped with a Raspberry Pi playing the videos from a local SD card, with audio fed via a headphones amplifier to one or two pairs of headphones.
Videos were first renamed using renamer.sh, before mediainfo.sh was used to check that the file was in the correct format. After that, the files were put onto an SD card, one per Raspberry Pi. On each RPi, show.sh was used to play any video files in the folder /mnt/storage/videos, with OMXPlayer being used to play the videos.
The first-generation Raspberry Pi Model B was released in February 2012 and was quite hard to get hold of when The Art of Pop Video was being prepared. The show began between the 14th of March and the 25th of May 2013. As such ordering 100 of these single-board computers was a very large order, and needed to be split across several suppliers.
The Commercial video player that was commonly used at the time was about three times the price of the Raspberry Pi (including its supporting components) and still required an external headphone amp and the media loaded onto an SD card.
Photos of the Art of Pop Video
Rename.sh
This code is used to rename all the files in a folder, to remove spaces and other characters, meaning that the Raspberry Pi code can seamlessly load the files.
#! /bin/bash
if [ -z "$1" ]; then
echo "Must give directory as an argument, exiting"
exit
fi
if [ ! -d "$1" ]; then
echo "Given directory doesn't exist, exiting"
exit
fi
for file in "$1?/*; do
if [[ "$file" != "${file// /_}" ]]; then
echo Converting "$file" to "${file// /_}"
mv "$file" "${file// /_}"
fi
done
for file in "$1?/*; do
newfilename=$(echo "$file" | sed 壮/[^[:alnum:]][¥_¥.]//g')
if [[ "$file" != "$newfilename" ]]; then
echo Converting "$file" to "$newfilename"
mv "$file" "$newfilename"
fi
done
exit
Mediainfo.sh
This script works through all the video files in a folder and makes a text file that lists the details about the videos. This was run on a Mac to generate an overview file during the setting up of the Raspberry Pis
#!/bin/bash
# This script has a pre-requisit, You will need to get MediaInfo for Mac OS from http://mediainfo.sourceforge.net/en/Download/Mac_OS
if [ -z "$1" ]; then
echo "Must give directory as an argument, exiting"
exit
fi
if [ ! -d "$1" ]; then
echo "Given directory doesn't exist, exiting"
exit
fi
if [ -z "$2" ]; then
echo "Must give output file as an argument, exiting"
exit
fi
echo "Filename, Video Format, File Size, Duration, Video Format, Bitrate, VBR / CBR, Resolution, Aspect Ratio, Audio Format, Bitrate, VBR / CBR, Channels," > "$2?
for file in $1/*; do
mediainfo output="General;%FileName%.%FileExtension%" "$file"
echo $(mediainfo output="General;%FileName%.%FileExtension%,%Format%,%FileSize/String4%,%Duration/String2%," "$file"; mediainfo 撲utput="Video;%Format%,%BitRate/String%,%BitRate_Mode%,%Width% x %Height%,%DisplayAspectRatio/String%," "$file"; mediainfo output="Audio;%Format%,%BitRate/String%,%BitRate_Mode%,%Channels%" "$file") >> "$2?
Show.sh
This is the script that was used on the Raspberry Pi to display the videos in the “Art of Pop Video” exhibition, it was set to auto-run as soon as the device came online.
#!/bin/sh
# FACT Art Of Pop Video Player
setterm -cursor off
SERVICE="omxplayer"
VIDEOPATH="/mnt/storage/videos"
while true; do
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
sleep 1; # echo "runing" # sleep 1
else
for entry in $VIDEOPATH/*
do
clear
omxplayer "$entry" > /dev/null
done
fi
done