And if you wanted to compare with DS at QM vs DS at NOS, you can go read this Dreamstate Socal 2022.
If you like this report, and want to see others/future ones, you can go on these pages:
Passport (for insomniac event subscribers) was back:
they had meet and greets
Passport was actually the 6th stage with a secret lineup for both days
Dream VIP lost the covered area, but still had nice booths:
Lots of booths:
this time offered heli rides from not somewhere not that far. I'm not sure if they saved any time or were worth it. Please leave comments in the links at the top of this page if you used them
The Void: Still Across the a street, not that easy to get to
Getting to void was the same as last year (and by that I mean inconvenient and 'too far'), although the tunnel was prettier;
boring during the day
nice at night
tunnel to get back, people said it felt slippery and tough to climb when you were tired and altered
So, before people accuse of me #firstworldproblems, the tunel and bridge were a real mental "too far" thing that many reported to me, and that I felt myself.
Some different art this year:
Views from the boat, were great:
what it looks inside
And if you were wondering about sound inside the boat, it depends where your room is, but there you go:
Nice to see the venue late at night/early morning:
People
As always, a big part of what makes US insomniac events so much fun is the people who are part of the party.
it was nice and sunny during the day (until it got very cold just hours later)
Props to Jose, barefoot photographer for all his shots
and also Thorgodofbass, our favorite videographer
Ulrich!
TFSF crew
More fun at night, as always:
And of course, fun totems:
So, due to my LED outfit and the tech I carry/wear, things break but I'm also a McGuyver, so I carry spares and repair tools. Funny thing was a totem that got damaged, the owner asked me "I heard you have a soldering iron", and I had to reply "I'm sorry, I don't have one, I have two" :)
we got it fixed
woohoo, it's working again
We took some Trancefamily pictures:
Big props to the insomniac entertainers, always adding to the party:
oh no, they didn't have batteries for their lights this year ;)
Thanks for taking pictures with us:
Also shout out to ground control:
As always, it's a great opportunity to meet DJs:
JoC
Miyuki and Richard Durand
Astrix
Craig Connelly
Allen Watts
Armin!
RAM
first time meeting Darude!
Fadi after his wonderful set in the rain
Mark Sixma
Orjan Nilsen
Paul Oakenfold
OMG, got to meet Judge Jules from the Essential Mixes I used to listen to in early 2000s from napster
Sean Tyas, having such a great time
Also great to see Alex Morph again
Day 1
DS opened a bit late on the first day, Queen with Mr Brooks was a bit empty
Xijaro and Pitch
nice visuals at vision
Craig Connelly
Sequence was pretty packed
Because Astrix ;)
GO debuted Octagon at DS
Armnin was next (which sadly meant missing Blastoyx b2b Infected Mushroom, my biggest regret of the night)
thank you for adding the lasers
Day 1 Summary Video:
Day 1: Queen Mary Afterparty
TDJ!
And that was it for Day 1, headed back to hotel around 04:00
So if anyone wonders, lots of lights means lots of batteries and things to charge every night:
new bigger 1S lipo batteries for my hat
and more
Day 2
Back for Day #2, it was hard to be there at 13:00 ;)
thankfully made it to Khromata
it was early for most
Also got to see my friend Triode
Aly and Fila in the light rain, was majestic:
So much joy to enjoy Ferry Corsten - Gouryella, again:
the super tall flags were annoying, they messed up a lot of my pictures
finished the night with Above and Beyond
Above and Beyond:
Day 2: Queen Mary Afterparty
After 01:00, it was time to migrate to the boat:
Ruben again!
Finished the night with Ferry Corsten, who even finished his set with some drum and bass ;)
f
Day 2 Summary Video:
Weather concerns with QM vs NOS
So, I am biased and I still prefer NOS once you're inside the venue (San Bernardino is not great, but once you're inside NOS, it's real wonderland), but the weather aspect is a concern for QM. Both years, QM had rain, NOS did not. NOS is inland in a somewhat arid area, QM is by the water, and even when it wasn't raining, everything was kind of wet due to dew (very high water concentration in the air that would condense on chairs and so forth).
this is what I meant, by dew, almost fog to the ground
So, the relentless light rain that fell mostly all day on day #2, made the lasers on dream look dreamy indeed, but at the same time I was soaked by the end of the day, and my gopro literally had water inside and was barely rescued after several days in rice. Water and electricity aren't friends, this can't be easy on all the gear (although I didn't see anything that failed due to water).
yes, it was pretty :)
The rain was manageable this year, but I need to state again that last year got pissing rain in the middle of the night while we were on the boat party, and if that rain had been just a few hours earlier, it would have ruined the event. This just makes me nervous, Interstellar was entirely cancelled for freak weather, I honestly would prefer for DS to be back at NOS, if only for the more reliable weather.
If DS is to stay at QM, I hope Insomniac plans for full covered spaces to deal with heavy rain if it happens. Of course, this is already present at NOS for 3 out of the 4 stages (2 with megastructures and one indoors)
Aftermath and Conclusion: Should this not be 3 days and with a bit more sleep?
Haha, I just realized this is the same thing I wrote last year. Since last year was too much music with 4 stages and music from 17:00 to 01:00 and then until 06:00 on the boat, Insomniac heard this, and fixed it by:
still two days
added a 5th stage, the art car, with very good trance :)
well, if you could passport, it was really 6 different stages. Insane!
now started at 13:00, making it 12H plus 5h afterparty, 17h per day, so there you go, it's fixed :)
like last year, the long days created casualties :)
So yeah, suck it up people and your FOMO, here's even more music you won't all be able to see and even less sleep, haha :)
It was literally 34h of music, which is usually what you get from a 3 day festival with 3 to 5 stages, a lot indeed. I would personally still prefer 3 shorter days to have more of a chance to see more artists and not miss as much (especially for all the sets that were not recorded), but it is #firstworldproblems :)
The afterparty on the boat helped seeing some artists if you had missed them during the day, but even then it was 3 stages that were not that close from one another, and honestly how stayed up until 06:00 both nights while having started at 13:00? I barely made it for the first sets on the 2nd day :)
For completeness, I did a survey, got 580 responses, and about half the people would like 3 days at QM instead of 2. That's a lot, but not the majority, just half
While I was at it, I also asked about QM vs NOS, and while many people like me prefer NOS for the better footprint, the megastructures, and so forth, more people prefered QM for being closer to them (traffic in LA), and feeling safer outside.
Notes / Thoughts for this year:
This year had more daylight hours, which was a bit rough on DJs who were opening, and made costumes/outfits a bit more challenging (it was pretty warm during the day, but got very chily at night, including wind chill). Sure, it would be nice to have more hours at night, but with a curfew of 01:00 on the venue (vs 02:00 for NOS), the options are limited outside of making this a 3 day festival, which I'm surely down, for ;)
Void unfortunately was still "so close but yet so far" across a bridge that was dicey for some, or an underground tunnel that was a bit of a detour when going from dream to void.
I didn't feel it was easier to get to Void, the venue is very challenging layout, only so much can be done with that location
I missed the animated burning man LED art from last year, there was still art this year though
Dream VIP was shrunk somewhat and lost the covered spaces, which was unfortunate given the rain
As stated above, if DS is to stay at QM, I hope insomniac adds covered spaces to deal with rain.
Sound at Vision was much improved despite the challenging location. Not sure how they did it, but it was better
I still miss the NOS megastructures, but dream got improved a fair bit this year. The added lasers were beautiful
Dream was just beautiful
beautiful front and back
I still wish we could use the passenger terminal dome, looks like a sweet venue:
Should you go? Would I go Back?
Don't let some of my observations/suggestions confuse you from the fact that this was another fantastic Dreamstate and I had so much fun, and so did everyone I talked to
I missed so many sets I wanted to see, I don't know how many sets were recorded, but I missed many I wanted to see and I was there almost every of hour
Insomniac improved some things at QM this year, not that last year was bad to start with ;) and continued to show that, within reason with layout issues (the street cutting off Void from the rest of the festival), they can do incredible things with a mere parking lot.
I'll repeat like each time, that the insomniac team has the most relentless overachievers I've ever seen. I'm thankful we have them.
Security continued to nice overall, they did ask for backpacks to be transparent this year, which is spreading and understandable. I guess we probably don't want people to walk around with big black backpacks that could have anything inside if somehow they made it past security
I'll continue to give the same answer to "Is it worth flying across the world for?" If you like trance and you want a better production value than many european shows (not counting Tomorrowland, but TMRL sucks for trance), yes, it is worth going to. Only 2 days, but it's really good and the night decors and costumes are much better than what you'll find in Europe.
As parting words, I made a summary video of over 100 Instagram Stories I took during the event, enjoy:
π
2024-11-20 01:01
in Clubbing, Electronics, Festivals
Tech specs:
32x16 flexible LED rgbpanel (displaying scrolling Dreamstate Logo)
2 strings of Ray Wu P15 WS2812 both for layout reasons and for backup if one string breaks, the other one will keep working.
Lipo battery checker (but the lipos are protected, so they will self shut down)
flexible 16x32 RGBpanel
found a hat big enough that it mostly fits on it
of course, it needed a few LEDs :)
what it looked inside and it worked with a small 1S 700mAh lipo (although not long enough)
bigger battery upgrade, and BTW those batteries lie, they are only 1600mAh
testing battery draw, a bit over 0.5A which is a bit too much
So, why 3-4V lipos instead of USB battery packs with 5V that is expected by both the panels and neopixels/WS2812? Well, space is limited, USB battery packs are kind of big, and carry extra hardware to recharge that isn't needed inside the hat. There is also a side byproduct that powering both the panels and the LEDs with a lower voltage, limits their brightness and the amount of power (watts) they need, which means that a 16Wh lipo inside a USB battery pack stepped up to 5V, makes everyting brighter, but only lasts about half as long as powering directly from the lipo at lower voltage.
bigger 4Ah 1S lipo worked for 8H at full power and LEDs worked all the way down to 2.8V!
panel worked all the way down to 3.4A before colors went wrong, 16H on a 1.6Ah battery
of course now I had to find a buy a faster 1S lipo charger with the right connectors (had to get JST adapters)
quick test that a smaller 700mAh battery would last around 5H before things got dim
After testing, I was able to confirm that both the $7 amazon controller (SP002E from https://www.amazon.com/gp/product/B09Y8SWJ77 ) and the RGBpanels, work fine with lower voltages (which is not a given since both run a microcontroller that was originally meant to be powered from 5V).
The RGBPanel controller is a bit more picky about voltage and reboots around 3.5V, while the neopixels tend to drag the battery voltage down, causing the RGBPanel to crash and reboot when a single battery runs both, so I gave it its own lipo.
Pixels still take 0.3 to 0.5A (I use a potentiometer to dial them down as the cheap controller I put has no dimming control) and the RGBPanel takes less than 0.1A, so that's nice (it actually goes all the way down to 0.05A or just 50mA) when the voltage drops.
The combined tricks should give around 18H of runtime with the 2 batteries (4Ah and 1.5Ah 1S lipos), which is enough for 17 hours of dreamstate (they are not screwing around this time, 17H !!!)
About the neopixel controller, I used a cheap $7 amazon controller that only had 3 physical buttons but sadly no dimming control, mostly because I wanted something very small, and while pixelblaze micro is also small, it doesn't have the pattern I want, and I didn't see the point of programming a pattern I already had on the other controller, so I just put a potentiometer to lower the voltage. It's obviously the wrong way to do it, but it works :)
Here is the end result:
This is a script I've had for over 20 years to recompress videos to multiple formats, including resizing resolution, rotating files, changing framerate, capturing from PAL analog cards, back in the day capturing videos from an analog tivo (circa 20 years ago), and much more.
While some amount is kind of obsolete and left for posterity, it's full of options that took me a long time to find for mencoder, and now ffmpeg, the better solution.
The script: https://marc.merlins.org/linux/scripts/vidcomp
There isn't a lot of documentation, except the script itself. Please get the version from the link above, but for indexing purposes, I'll include a potentially slightly out of date version here:
#!/bin/bash
# vidcomp -h -time "-dvd-device . -alang English" dvd://1 /var/local/space/vid/10com8.avi
# http://gentoo-wiki.com/HOWTO_Mencoder_Introduction_Guide
# http://electron.mit.edu/~gsteele/ffmpeg
# http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-enc-libavcodec.html
# http://web.njit.edu/all_topics/Prog_Lang_Docs/html/mplayer/encoding.html
# http://www.linux.com/article.pl?sid=06/08/22/2121258
# transcode -f 15 -w 800,250,100 -y divx5,lame -N 0x55 -o test.avi -i $1
# enable PAL on PVR350 mpeg2 encoder
#v4l2-ctl --set-input 2
#v4l2-ctl -s 2
#v4l2-ctl --set-ctrl=video_peak_bitrate=8000000
#v4l2-ctl --set-ctrl=video_bitrate=6000000
# dumpstream stream# file.tivo
dumpstream () {
mplayer tivo://tivo/$1 -demuxer 33 -dumpstream -dumpfile "$2"
}
die () {
echo "${1:-}"
exit 1
}
# vidcomp -br 10000 -time "-edl cuts" rec_0012.mov
#mplayer -vf cropdetect enquete.vob
#vidcomp -h -vf crop=336:320:12:126 enquete.vob
# Aspect ratio has to be forced with codecs other than xvid
#vf='-vf scale=480:370'
# vidcomp -vf "-filter:v fps=29" $i
vf=""
af=""
#codec=h264
#codec=h265
#br=3000
# AV1 is supposed to be better tan VP9, but on my short tests,
# VP9 was faster and gave smaller files.
codec=vp9
br=2000
abr=128
rot=""
ffrot=""
aud_channels=""
aud_srate=""
time="" # -ss 10 -endpos 1:54:00 (mencoder)
# -time "-ss 0:3:40 -t 3:20" (ffmpeg)
# or -time "-ss 0:3:40 -t 3:20" -vf "mp=eq2=0.9:1:-0.1" (ffmpeg)
# vidcomp -br 8000 -time "-ss 04:00 -t 0:29:20" -vf "mp=eq2=0.9:1:-0.1" full.avi
# Crop the right side crop=1540:1080:0:0
if [ $0 = *tivo* ]]; then
echo "Tivo Mode"
# tivo files are sometimes mis-detected: force the right demuxer
demux="-demuxer 33"
# Aspect ratio has to be forced with codecs other than xvid
aspect='-force-avi-aspect 1.333'
# and remove crap we don't want (tivo inserts a line of crap at the top)
vf="-vf crop=352:476,kerndeint"
elif [ $0 = *pal* ]]; then
# Couldn't quite get this to work yet, crop overrides it :(
#vf='-vf scale=540:405,crop=512:384,kerndeint'
vf='-vf scale=768:576,kerndeint'
# problem with divx is that pass2 can fail with br too low errors
codec=h264
br=800
# elif [ $0 = *camvidrecomp ]]; then
# codec=ffmpeg
# br=8000
# abr=128
# old cameras
# abr=48
# br=2400
# aud_channels="-channels 1"
# aud_srate="-srate 22050"
fi
# Hack for MTS
demux="-mc 100"
#demux="-demuxer lavf"
#aspect='-force-avi-aspect 1.777'
while [ ! -z "$1" ] && [ "$1" =~ ^-.* ]]
do
if [ "$1" = "-w" ]; then
shift
codec=win
vf="-forceidx -vf kerndeint"
fi
if [ "$1" = "-d" ]; then
shift
codec=divx
#vf="-forceidx -vf kerndeint"
fi
if [ "$1" = "-D" ]; then
shift
codec=divx1
vf="-forceidx -vf kerndeint"
fi
if [ "$1" = "-F" ]; then
shift
codec=flv
br=400
abr=56
aud_srate="-srate 22050"
vf='-vf scale=512:384'
fi
if [ "$1" = "-h" -o "$1" = "-h4" ]; then
shift
codec=h264
vf="-forceidx -vf kerndeint"
fi
if [ "$1" = "-h4ff" ]; then
shift
codec=ffmpeg4
fi
if [ "$1" = "-h5" ]; then
shift
codec=h265
fi
if [ "$1" = "-vp9" ]; then
shift
codec=vp9
fi
if [ "$1" = "-av1" ]; then
shift
codec=av1
fi
if [ "$1" = "-x" ]; then
shift
codec=xvid
vf="-forceidx -vf kerndeint"
fi
if [ "$1" = "-ff" ]; then
shift
codec=ffmpeg
fi
# https://trac.ffmpeg.org/wiki/Encode/H.264
# says not compatible with most players
if [ "$1" = "-ffll" ]; then
shift
codec=ffmpegll
fi
if [ "$1" = "-vol" ]; then
shift
vol=":vol=$1"
shift
fi
# try instead of rotate
if [ "$1" = "-f" ]; then
shift
rot="-vf flip,mirror"
#ffrot="-vf hflip,vflip"
# https://www.baeldung.com/linux/ffmpeg-rotate-video#:~:text=transpose%20is%20an%20FFmpeg%20filter,the%20values%20from%200%2D3.
ffrot="-vf hflip,vflip"
ffrot="-vf transpose=1,transpose=3"
fi
if [ "$1" = "-r" ]; then
#rot="-vf mirror,rotate=$2"
# works with -r 3
rot="-vf rotate=$2"
ffrot="-vf transpose=$2"
shift 2
fi
if [ "$1" = "-br" ]; then
br="$2"
shift 2
fi
# -ss 10 -endpos 1:54:00
# -ss 00:01:00 -to 00:02:00
if [ "$1" = -time ]; then
time="$2"
shift 2
fi
# for instance -vf scale=540:405,crop=512:384
if [ "$1" = -vf ]; then
vf="$2"
shift 2
fi
done
test $# -eq 1 || test $# -eq 2 || die "$0 file_src file_dest (please read script for options)"
test $# -eq 2 && test -f "$2" && die "file_dest should not exist"
src="$1"
dest="${2:-$src.new}"
#set -vx
if [ "$codec" = win ]; then
ionice -c3 nice -19 mencoder $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc lavc -lavcopts vcodec=msmpeg4v2:vhq:vbitrate=$br $rot -o "$dest" "$src"
elif [ "$codec" = divx1 ]; then
ionice -c3 nice -19 mencoder $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc lavc -lavcopts vcodec=mpeg4:vhq:trell=yes:v4mv=yes:vbitrate=$br -ffourcc DX50 $rot -o "$dest" "$src"
elif [ "$codec" = flv ]; then
# http://www.jeremychapman.info/cms/mencoder-avi-to-flv-conversion
ionice -c3 nice -19 mencoder $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc lavc -lavcopts vcodec=flv:vbitrate=$br:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -of lavf $rot -o "$dest" "$src"
elif [ "$codec" = xvid ]; then
ionice -c3 nice -19 mencoder $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc xvid -xvidencopts bitrate=$br $rot -o "$dest" "$src"
elif [ "$codec" = ffmpeg4 ]; then
# aspect/-force-avi-aspect not supported by ffmpeg
#ionice -c3 nice -19 ffmpeg $time -analyzeduration 9999999 -probesize 9999999 -y -i "$src" $vf -c:v libx264 -preset medium -b:v ${br}k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null
#ionice -c3 nice -19 ffmpeg $time -analyzeduration 9999999 -probesize 9999999 -i "$src" $vf -c:v libx264 -preset medium -b:v ${br}k -pass 2 -c:a libfdk_aac -b:a 128k -f mp4 "$dest"
ionice -c3 nice -19 ffmpeg $time -analyzeduration 9999999 -probesize 9999999 -y -i "$src" -filter:v fps=30 $vf -c:v libx264 -preset medium -b:v ${br}k -pass 1 -an -f mp4 /dev/null
ionice -c3 nice -19 ffmpeg $time -analyzeduration 9999999 -probesize 9999999 -i "$src" -filter:v fps=30 $vf -c:v libx264 -preset medium -b:v ${br}k -pass 2 -c:a aac -b:a 128k -f mp4 "$dest"
### H265 in MP4 => slow and royalties
elif [ "$codec" = h265 ]; then
# https://trac.ffmpeg.org/wiki/Encode/H.265
ionice -c3 nice -19 ffmpeg $time -y -i "$src" $vf $ffrot -filter:v fps=30 -c:v libx265 -b:v ${br}k -x265-params pass=1 -an -f mp4 /dev/null
ionice -c3 nice -19 ffmpeg $time -i "$src" $vf $ffrot -filter:v fps=30 -c:v libx265 -b:v ${br}k -x265-params pass=2 -c:a aac -b:a 128k -f mp4 "$dest"
# https://trac.ffmpeg.org/wiki/Encode/AV1
#
# vp9 vs av1 comparison and flags:
# https://jonathanmh.com/p/encoding-webm-videos-with-ffmpeg-vp9-av1
# Gemini says: Compression Efficiency
# * AV1: Offers the best compression efficiency, resulting in smaller file sizes for a given quality level
# * H.265: Provides significant improvements over H.264, offering better compression than VP9 in many cases
# * VP9: While not as efficient as H.265 or AV1, it still offers decent compression and is widely supported.
# Encoding and Decoding Speed:
# * AV1: Requires more computational power for encoding and decoding, which can impact performance on older hardware
# * H.265: Offers a good balance between compression efficiency and encoding/decoding speed.
# * VP9: Generally faster to encode and decode compared to AV1.
### VP9 is free version of H265
# https://caniuse.com/?search=vp9
# cpu used lower values are slower but better quality -row-mt 1 added HT. Speed is faster than AV1 but compression seems still good
# 2453715 file1.mp4
# 1555963 file1_av1_4.webm
# 1611192 file1_av1_6.webm
# 1611192 file1_av1_8.webm
# 1668740 file1_vp9_4.webm
# 1598794 file1_vp9_6.webm
# 1595698 file1_vp9_8.webm
elif [ "$codec" = vp9 ]; then
ionice -c3 nice -19 ffmpeg $time -y -i "$src" $vf $ffrot -filter:v fps=30 -c:v libvpx-vp9 -b:v ${br}k -cpu-used 6 -row-mt 1 -pass 1 -an -f null /dev/null
ionice -c3 nice -19 ffmpeg $time -i "$src" $vf $ffrot -filter:v fps=30 -c:v libvpx-vp9 -b:v ${br}k -cpu-used 6 -row-mt 1 -pass 2 -c:a libopus -b:a 128k "$src.webm"
### AV1 a better version of VP9
# https://caniuse.com/?search=av1
# https://trac.ffmpeg.org/wiki/Encode/AV1
# cpu used lower values are slower but better quality -row-mt 1 added HT
elif [ "$codec" = av1 ]; then
ionice -c3 nice -19 ffmpeg $time -y -i "$src" $vf $ffrot -filter:v fps=30 -c:v libaom-av1 -b:v ${br}k -cpu-used 8 -row-mt 1 -pass 1 -an -f null /dev/null
ionice -c3 nice -19 ffmpeg $time -i "$src" $vf $ffrot -filter:v fps=30 -c:v libaom-av1 -b:v ${br}k -cpu-used 8 -row-mt 1 -pass 2 -c:a libopus -b:a 128k "$src.webm"
# old legacy mencoder stuff (mencoder h264 or divx)
else
pass="$dest".pass
for i in 1 2
do
echo "DOING $codec PASS $i"
echo "------------------"
if [ "$codec" = h264 ]; then
#vf=$vf,dsize=4/3,scale
#vf=$vf,scale=720:480
vf=$vf,scale # why is scale there by itself?
# Trellis searched quantization
# do not allow space in source, to allow a multi file source
ionice -c3 nice -19 mencoder -passlogfile "$pass" $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect -vf $vf -ovc x264 -x264encopts bitrate=$br:turbo=1:pass=1:threads=0 $rot -o "$dest" $src || die "multipass failed on pass $i"
elif [ "$codec" = divx ]; then
# Trellis searched quantization
ionice -c3 nice -19 mencoder -passlogfile "$pass" $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc lavc -lavcopts vcodec=mpeg4:vhq:trell=yes:v4mv=yes:vbitrate=$br:vpass=$i -ffourcc DX50 $rot -o "$dest" "$src" || die "multipass failed on pass $i"
fi
done
/bin/rm "$pass" *.pass.mbtree &>/dev/null
#else
# echo "Unknown $codec" >&2
fi
#vidrename --noinfo "$dest"
/bin/rm ffmpeg2pass-0.log ffmpeg2pass-0.log.mbtree x265_2pass.log* &>/dev/null
This is for linux, using mplayer because it was written many years ago before ffmpeg was a proper option. It parses mplayer video file decoding to rename filenames with the proper codec and file container.
The script: https://marc.merlins.org/linux/scripts/vidrename
Possible video containers supported by this script
*.mpeg (original mpep1/mpeg2 from the '90s)
*.rm (very old realaudio/realvideo from the 90's)
*.mov (old apple quicktime container, also from 90's)
wmv (old video media player, still from 90's)
avi (newer-ish video media)
mp4 (for a while new format used by most videos)
ogv (Org Vorbis OSS format, now obsolete)
mkv (free open source container to get around mp4 patents and royalties)
webm (newer free/open source container)
The script does not bother to show old/obsolete codecs for WMV/AVI (you can add support if you care), and concentrates on only showing some more popular formats over the years that I cared more about:
divx3.avi
divx4.avi
divx5.avi
xvid.avi
H264.mp4 (for a while the most popular format after divx5/divx4/divx3)
H265.mp4 (the more efficient version of H264, but the patent/royalties fees on it are way high)
VP9.mp4 / VP4.webm (meant to replace H264 and H265 with more efficient and free version)
AV1.mp3 / AV1.webm (newer versino of VP9, still open source and free)
This is what it looks like
sauron [mc]$ l
total 15148
drwxr-sr-x 1 merlin merlin 188 Nov 17 19:32 .
drwxr-sr-x 1 merlin merlin 184 Nov 17 19:32 ..
-rw-r--r-- 1 merlin merlin 2453715 Nov 17 19:31 file1.mp4
-rw-r--r-- 1 merlin merlin 1572011 Nov 17 19:31 file2.mp4
-rw-r--r-- 1 merlin merlin 1734137 Nov 17 18:25 Out16_av1.mp4
-rw-r--r-- 1 merlin merlin 1433362 Nov 17 18:29 Out16a_vp9.mp4
-rw-r--r-- 1 merlin merlin 827673 Nov 17 18:35 Out16c_vp9.mp4
-rw-r--r-- 1 merlin merlin 1449311 Nov 17 18:26 Out16_vp9.mp4
-rw-r--r-- 1 merlin merlin 3496280 Nov 17 18:22 Out_av1.mp4
-rw-r--r-- 1 merlin merlin 2527312 Nov 17 18:20 Out_vp9.mp4
sauron [mc]$ vidrename --noinfo *
Going from file1.mp4
to File1 - H265.mp4
Going from file2.mp4
to File2 - VP9.mp4
Warning for Out16_av1.mp4, webm != mp4
Going from Out16_av1.mp4
to Out16 av1 - AV1.webm
Warning for Out16a_vp9.mp4, webm != mp4
Going from Out16a_vp9.mp4
to Out16a vp9 - VP9.webm
Warning for Out16c_vp9.mp4, webm != mp4
Going from Out16c_vp9.mp4
to Out16c vp9 - VP9.webm
Warning for Out16_vp9.mp4, webm != mp4
Going from Out16_vp9.mp4
to Out16 vp9 - VP9.webm
Warning for Out_av1.mp4, webm != mp4
Going from Out_av1.mp4
to Out av1 - AV1.webm
Warning for Out_vp9.mp4, webm != mp4
Going from Out_vp9.mp4
to Out vp9 - VP9.webm
sauron [mc]$ l
total 15148
drwxr-sr-x 1 merlin merlin 298 Nov 17 19:32 .
drwxr-sr-x 1 merlin merlin 184 Nov 17 19:32 ..
-rw-r--r-- 1 merlin merlin 2453715 Nov 17 19:31 'File1 - H265.mp4'
-rw-r--r-- 1 merlin merlin 1572011 Nov 17 19:31 'File2 - VP9.mp4'
-rw-r--r-- 1 merlin merlin 1734137 Nov 17 18:25 'Out16 av1 - AV1.webm'
-rw-r--r-- 1 merlin merlin 1433362 Nov 17 18:29 'Out16a vp9 - VP9.webm'
-rw-r--r-- 1 merlin merlin 827673 Nov 17 18:35 'Out16c vp9 - VP9.webm'
-rw-r--r-- 1 merlin merlin 1449311 Nov 17 18:26 'Out16 vp9 - VP9.webm'
-rw-r--r-- 1 merlin merlin 3496280 Nov 17 18:22 'Out av1 - AV1.webm'
-rw-r--r-- 1 merlin merlin 2527312 Nov 17 18:20 'Out vp9 - VP9.webm'
Other example uses:
sauron [mc]$ vidrename --help
Unknown option: help
/var/local/scr/vidrename [--fixepisodes] [--verbose] [--extonly] [--dots] [--spacedash] [--spaces2dash] [--ucname [num]] [--add text] [--noinfo] [--writetofile] [--norename] [--addfps]
--extonly: only fix file extension, do not beautify filename
--dots: remove all dots from filenames ane replace with spaces
--spacedash: add spaces around all dashes if not already present (only one by default) (IGNORED, ON BY DEFAULT)
--spaces2dash: replace all spaces with dashes
--fixepisodes: normalize showname - 1x01 episodename.ext
--ucname: number of letters in a word before we uppercase the first (default 3) (IGNORED)
--add: add random text before the extension
--noinfo: do not add file info to filename ( - XxY - z kbps)
--writetofile: do not add fileinfo to filename, write to a different file
--norename: only print what would be done, do not rename files
--addfps add fps of video to filenames
sauron [mc]$ vidrename --spaces2dash --addfps *
Going from File1_-_H265_-_H265.mp4
to File1_-_H265_-_1920x1080_-_2974kbps_-_30.000_fps_-_H265.mp4
Going from File2_-_VP9_-_VP9.mp4
to File2_-_VP9_-_1920x1080_-_1861kbps_-_60.000_fps_-_VP9.mp4
Going from Out16_av1_-_AV1_-_AV1.webm
to Out16_av1_-_AV1_-_1920x1080_-_30.000_fps_-_AV1.webm
Going from Out16a_vp9_-_VP9_-_VP9.webm
to Out16a_vp9_-_VP9_-_1920x1080_-_30.000_fps_-_VP9.webm
Going from Out16c_vp9_-_VP9_-_VP9.webm
to Out16c_vp9_-_VP9_-_1920x1080_-_30.000_fps_-_VP9.webm
Going from Out16_vp9_-_VP9_-_VP9.webm
to Out16_vp9_-_VP9_-_1920x1080_-_30.000_fps_-_VP9.webm
Going from Out_av1_-_AV1_-_AV1.webm
to Out_av1_-_AV1_-_1920x1080_-_30.000_fps_-_AV1.webm
Going from Out_vp9_-_VP9_-_VP9.webm
to Out_vp9_-_VP9_-_1920x1080_-_30.000_fps_-_VP9.webm
As far as trips back in memory lane, go, this was a winner. Orbital are OGs in the electronic music world. After Jean Michel Jarre and Vangelis, they were likely the 3rd electronic music act I listened to, way back when. It's very hard to define their genre, especially since they predate most EDM genres, but I've seen "industrial electro funk" although Halycon and on is definitely it's own genre still (more ambient).
The event was organized by Goldenvoice. The flier didn't have any info on whether they were going to be OTC, have openers, or until what time the event was running. The only piece of info was that it was supposed to start at 21:00. By the time I arrived at 22:00, wary of previous events announced at 21:00 but having so-so openers, or sometimes not even really opening doors until 22:00, but this time around they apparently did open at 21:00 and Orbital themselves did start at 21:00, go figure...
So, I missed the first hour, but they were going strong by the time I arrived:
not every time you see this
The somewhat weird thing is they stopped in the middle of the set after saying something I was unable to comprehend due to poor microphone sound, but they took a 20mn break where they just left the stage and everyone in the room, and came back 20mn later :)
The 2nd half of the show had more top tracks, including of course the Halcyon and on, but plenty more including "where times becomes a loop" that I had totally forgotten about:
the room was packed
one of them performed without shoes :)
The show ended at 00:40. Definitely good time were had:
Back to see Neil deGrasse Tyson for a 3rd time, this time for part 2 of "An Astrophysicist Goes To The Movies". It ws a fun evening as any evening would him, would be, although I found this specific talk a little weaker than the first one, probably because he had to find other material that he hand't already used in the first talk, but that said there were still plenty of fun bits, and as I said, any time with him is a fun time :)
he still has a few books I should read :)
the list of movies for his 2nd talk
those doors were indeed portals to a 4th dimension we can't see as 3 dimensional beings
wizard of oz was wrong all along!
I never caught that one either
parsecs are a unit of distance, they can't be used for speed or time (BTW a parsec is 3.6 light years as I found out)
Gravity: haha, that's an easy one. It had lots of good physics, but also some glaring holes
Oh no, don't let him go! :)
As a bonus, he gave he attendees a hall pass for the next day if they were late :)
And I had no idea he was on zoolander 2 :)
It was another very fun night, very quick video summary:
So, after using WNDR routers that allowed various linux fimrware replacements, the last one I had was just struggling running a name server and other things I needed due to old hardware and lack of horsepwoer and RAM.
After asking around, I was told to try the Ubiquity Edgerouter 4, which is indeed a nice little router and comes with linux out of the box. The best thing is it's designed to give you full access so you can install your own linux software. Well done!
But, for some strange reason, the then wonderful people at ubiquity did not figure out that it was useful to plug a serial port adapter to monitor or connect to another device, or even to use/need external USB storage. It is of course linux, you can build your own kernel and modules, but doing it for another architecture requires cross compilers and a non trivial setup that would likely have taken me days to setup.
This is where Nils Andreas Svee (Lockhair) comes in, and as part of his CAKE project to improve networking on that device (requiring a new kernel), he built a full compiler suite for that kernel, and very nicely added USB serial modules to his build for me a few years back for the ER1.x firmware.
Fast forward a few years, and the original 1.10.11 was based on Debian 7 (Wheezy) which became totally obsolete. Getting updated packages for that ancient distro became difficult, so I figured I should upgrade to 2.x.
After doing so ( EdgeRouter ER-4/ER-6P/ER-12/ER-12P: Firmware v2.0.9-hotfix.7 31 Jul 2023 from https://ui.com/download/releases/firmware ), I of course realized it was a new kernel that needed new modules.
But then I realized that during that time Ubiquity turned evil and stopped releasing GPL required code, including the kernel, which in turn caused Lochnair to stop being able to maintain his project: https://community.ui.com/questions/CAKE-thread-gone/27de66b2-9ac2-4fcb-93f7-d02cd5785b4c
I had a glimmer of hope that the new binary kernels were close enough to the last officially released kernel source, and asked him if he could build the extra missing modules: https://github.com/Lochnair/kernel_e300/issues/2 . He super nicely agreed and they worked!
Thanks to him, I now have have a fully upgraded and featured linux route with usb-serial support and usb-storage support.
You can get the modules here:
usbcore: registered new interface driver pl2303
usbserial: USB Serial support registered for pl2303
pl2303 1-1.1:1.0: pl2303 converter detected
usb 1-1.1: pl2303 converter now attached to ttyUSB0
usbcore: registered new interface driver uas
usb 1-1.2: new high-speed USB device number 4 using xhci-hcd
usb 1-1.2: New USB device found, idVendor=0951, idProduct=1666
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.2: Product: DataTraveler 3.0
usb 1-1.2: Manufacturer: Kingston
usb 1-1.2: SerialNumber: 1C6F654E48EBB131D95D0ABB
usb-storage 1-1.2:1.0: USB Mass Storage device detected
scsi host0: usb-storage 1-1.2:1.0
scsi 0:0:0:0: Direct-Access Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6
sd 0:0:0:0: [sda] 121110528 512-byte logical blocks: (62.0 GB/57.8 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI removable disk
If you use this, please make a donation to him for his good work:
π
2024-11-10 01:01
in Arduino, Computers, Electronics
I attended Pasadena Hackaday Supercon, so I figured I'd put my pictures into a quick blog entry, shouldn't take long...
1) Oh, I need to finish writing code to get the SAO badge holder to do something fun
2) Mmmh, why does this python global variable thing doessn't work in the function
3) Goes to re-learn python, with help from gemini and how python forks global variables by default in functions so what you write to them isn't saved at local scope (oh my, why did they do that?)
4) after more hacking, get a proper demo working:
It had been a while since I had seen Jason Ross, so it was good news when I heard he was coming back at Midway SF.
What wasn't expected, was that it would be in a side building which was mostly a hangar party, for some reason they were badly lacking bathrooms, so there was a 30mn bathroom line, which was not good.
The lineup felt a bit all over the place in that there was no real unity in the music style, and I found myself waiting for Jason to take over, which he did at 0:30. I had a good time for the remaining 90mn.
After having such a great time at the linux.conf.au Open Hardware Miniconfs over the year, and missing them after the last one where I built those badges, I somehow missed a local-enough Hackaday Supercon that had been going on for years. Oh noes!
It was very cool that I got to wear my LCA SAO badges for the first time:
Thanks to Anthony for letting me know about it, and I was able to attend. Went there early on friday for the pre-conf to work on the badges:
the conference badge was this 6 port micropython rPi micro with a couple of SAOs.
they nicely provided food all 3 days
essential geek survival food :)
They gave us a quick primer on how the badge worked, although it would have been better on a webpage with links and info for total beginners who had never used micropython and thorny or knew what thorny was (that included me):
I'm glad I took pictures of these slides, they only made sense many hours later. They should have been online
finding fellow LED geeks :)
learning blinkies for beginners, scan this
While I was there, I 9ound out they had a wonderful 4 bit computer some years back. I actually really regret not having been there that year, programming that in hand crafted assembly would have been epic:
someone hacked a basic I2C on it
people now hard at work
I used the opportunity to bring previous LCA toys and show them off (and fix a few)
Also, finally got to meet Henner Zeller, the rpi-rgb-panels author I've been working online with for years:
epic watch!
Also got to meet Daryll Strauss from precision insight, later acquired by VA Linux some 25+ years ago:
People still hacking at night:
I was lit up enough not to get lost :)
Day 2-3, Saturday & Sunday
Saturday and Sunday were the main conference days:
went to attend a few talks
hacking radio sound and B&W video from a chip, super cool!
learned about an online microcontroller emulator, wokwi, very nice
I got to see a pick and place machine, nice to see them work:
this is what the machine was 'printing'
I tried the SMD challenge, that was hard as hell:
we got old and fat irons, making things harder :)
I couldn't get the last 2 LEDs working, they were so stupidly small
I had someone help me fix mine :)
and they all worked, thank you to the master solderer!
added the result on my badge :)
Random fun shots :)
people hard at work
During the weekend, the SAO wall got populated:
Fun to see this SAO based on this burning man sign
Original from Burning Man
more and more
and more :)
Saturday evening party had a nice real time AI image generator:
some were far out :)
The conf ended with a presentation of best SAOs:
This guy won the contest of biggest SAO, he had a printer working off USB, run by his SAO
Sunday ended with a party at a bar, thankfully I had my battery soldering iron :)
This was loads of fun, and I definitely learned some good stuff. Sad I didn't go earlier but glad I went this year. Thanks bunch to all the organizers and attendeers who contributed!
More pictures: https://photos.app.goo.gl/2hYRaaB5dF5mvv4N8