After nearly 10 years of using Peter Phillips' amazing TRS-80 Model III
javascript emulator on my web site,
he has now added support for the Model III high-resolution graphics board (640x240),
which I have long been asking him for. After a month or so of beta testing, I've
now made it the main branch for my "TRS-80 Big List" page. I've added several
hi-res demos / programs
to the archive. I programmed them over 40 years ago, back in 1983-1984. To try them out,
click on the "1-Disk Autorun" link for each one.
I also added a clock speed boost to the javascript emulator so that you can bump
emulation speed up significantly. Careful running it too fast if you're trying
to type something in, though. Beyond 8 MHz, keyboard input becomes unuseable
due to keys repeating too much.
29 DEC 2023 -- FFMPEG BENCHMARKS 2023: MAC M1 CPU VS. WINDOWS INTEL i9-9900
OVERVIEW
These are run times of ffmpeg v6.1 on
a Windows 11 PC with a core i9-9900 CPU vs. on a Mac mini with an M1 CPU.
DETAILS
I used just one source video this time--a 23-second, high-def (720p) video (.mts file) directly from a Panasonic Lumix camera. I'm figuring that the encoding is the dominant part of the conversion time.
Run times are wall-clock time.
Windows runs: Windows 11 Pro on a core i9-9900 (3.10 GHz base clock) with 8 cores and 2 threads per core, so it can take advantage of up to 16 threads, but in my experience, going beyond 8 threads is counterproductive.
Mac runs: Mac OS 14 (Sonoma) on a 2021 Mac mini with a M1 CPU
RESULTS
Detailed results are in the table below.
The x264 / .mp4 conversions are interesting because they compare accelerated hardware processing (AVX2 on core i9-9900 vs. ARMv8 NEON on the M1). The M1 is 20 - 30% faster.
The x265 conversion is accelerated on the i9-9900 but not on the M1, so the i9-9900 is much faster (over 2x) on this conversion.
None of the other conversions are accelerated on either CPU, and on these the M1 is consistently 10 - 30% faster.
CONVERSIONS
I converted a 23-second .mts (h264-encoded) video from my Panasonic camera to these formats using these command lines:
I re-compiled k2pdfopt v2.55 with
gcc 13.2.0 and clang 17.
Here are results on both a Windows-11 PC with an Intel Core i9-9900 CPU and on a Mac Mini
with an M1 ARM-64 CPU. Overall, very little change in performance of compiled binaries.
The clang 17.0 compiler appears to be ~10% slower than the clang 15.0 compiler at
compiling source code, but is still 20-40% faster than gcc.
19 FEB 2023 -- BLOG RE-VAMPED
I spent some time today re-organizing my blog and home page. A left-side menu has been added to the blog to quickly navigate to different
entries, and I moved many of the aging
links on my home page into blog entries here, e.g.
I re-compiled k2pdfopt v2.54 with
gcc 12.2.0 and clang 15.
Here are results on both a Windows-11 PC with an Intel Core i9-9900 CPU and on a Mac Mini
with an M1 ARM-64 CPU. The results also compare Tesseract v4.1 with Tesseract v5.3.
6 JAN 2023 -- TESSERACT ACCURACY
Since 2018, I have been
testing
Tesseract's OCR engine against the resolution of the
text. I wrote a script to auto-generate a test PDF file (here is an
example using Helvetica Narrow font)
with different resolution text in
six
different fonts (Helvetica, Times-Roman, Courier, Palatino, Bookman, and Helvetia-Narrow).
I then run Tesseract on the different PDF's and determine the accuracy of the OCR.
I characterize the resolution by the height of a typical capital letter in pixels.
It turns out that there is a sweet spot for Tesseract of about 30 pixels for the height
of a capital letter (seems strange to me that it would not continue to improve at higher
and higher resolutions, but okay). See the plot below. My software k2pdfopt uses this
result and tries to optimize OCR text size to be in this "sweet spot."
24 JUL 2022 -- FFMPEG/AVCONV BENCHMARKS 2022
Comparing the ffmpeg.exe and avconv.exe win64 versions
OVERVIEW
These are run times of ffmpeg.exe v5.1 (static build)
and avconv.exe v13 dev (dll build).
If you are not aware of why there are now two different web sites (ffmpeg.org and libav.org)
and two different converters (ffmpeg.exe and avconv.exe),
see the FFmpeg section of my useful utilities page.
Note that at this point the split between FFmpeg and libav is old news and it appears libav
has not been touched for over four years whereas FFmpeg is still being actively developed.
This may be the last time I compare the two.
DETAILS
I used just one source video this time--a 23-second, high-def (720p) video (.mts file) directly from a Panasonic Lumix camera. I'm figuring that the encoding is the dominant part of the conversion time.
Run times are wall-clock time.
I'm running Windows 11 Pro.
My CPU is a core i9-9900 (3.10 GHz base clock) with 8 cores and 2 threads per core, so it can take advantage of up to 16 threads, but in my experience, going beyond 8 threads is counterproductive.
RESULTS
Detailed results are in the table below. There has been no progress with avconv.exe since it stopped devlopment in 2018, so run times have not changed from 2020. With FFmpeg, the .mp4, .hevc, and .ogv encoders have held steady from 2020, the .webm seems about 10% faster than in 2020, and the .vp9 encoder is 10-15% faster than in 2020.
CONVERSIONS
I converted a 23-second .mts (h264-encoded) video from my Panasonic camera to these formats using these command lines:
I visited Fabrice Bellard's website
(Bellard is a brilliant French programmer)
for the first time in a while. His very first entry intrigued me, linking to a the
Large Text Compression Benchmark.
This is a comprehensive comparison of how well various compression algorithms do at
compressing a 1-GB XML dump (from 2006) of Wikipedia. (Of course Bellard's own program, nncp, had the best result as of the last update to the site, which was August 2021, though nncp takes over 2 days to get that result --and that's using a GPU).
So I went through the list and thought I'd try out
Mathieu Chartier's mcm
entry since it seemed to have the best combination of speed and performance. I compiled
it with MinGW gcc 11 and ran
my own benchmark of nearly the same uncompressed size: my Win32/64 package for MinGW gcc 11,
which has a tar-ball size of 1,032,924,160 bytes. The results,
along with results from several other standard compression utilities, are below.
Indeed, mcm gets the best compression, but not by much over xz. The widely used 7-zip also turns in a very respectable score with a good blend of speed and
compression performance. If you are interested in trying mcm in Windows, here is a
Win64 mcm .exe file (command-line based).
Program
Flags
Run Time (s)
Compression
size (bytes)
Compression
Ratio (bits per byte)
Compression
Speed (MB/s)
Compression
mcm
-x11
255.6
94,643,694
0.733
3.85
9.16%
mcm
-h11
235.1
95,544,308
0.740
4.19
9.25%
mcm
-x10
244.5
95,928,885
0.743
4.03
9.29%
mcm
-m11
218.5
96,805,951
0.750
4.51
9.37%
mcm
-h10
222.2
96,837,087
0.750
4.43
9.38%
xz
-9
264.9
97,335,200
0.754
3.72
9.42%
mcm
-x9
235.8
97,362,670
0.754
4.18
9.43%
mcm
-m10
199.5
98,080,521
0.760
4.94
9.50%
mcm
-h9
217.3
98,276,574
0.761
4.53
9.51%
mcm
-m9
193.1
99,489,105
0.771
5.10
9.63%
mcm
-x8
242.4
103,514,788
0.802
4.06
10.02%
mcm
-h8
211.7
104,457,794
0.809
4.65
10.11%
mcm
-m8
193.7
105,651,443
0.818
5.09
10.23%
mcm
-t11
131.9
108,643,785
0.841
7.47
10.52%
7z
-t7z -mx=9
-ms=on
186.9
108,736,435
0.842
5.27
10.53%
mcm
-t10
130.3
110,483,748
0.856
7.56
10.70%
mcm
-t9
127.5
112,022,467
0.868
7.73
10.85%
mcm
-t8
127.8
120,184,123
0.931
7.71
11.64%
7z
150.8
169,579,190
1.313
6.53
16.42%
xz
-0
51.1
307,871,492
2.384
19.29
29.81%
bzip2
--best
84.1
328,167,083
2.542
11.71
31.77%
bzip2
--fast
77.2
340,557,458
2.638
12.75
32.97%
gzip
--best
107.1
354,146,627
2.743
9.20
34.29%
zip
49.5
363,251,119
2.813
19.88
35.17%
gzip
--fast
19.2
391,682,939
3.034
51.31
37.92%
(Run times are on a Core i9-9900 PC running Windows 11.)
6 JUN 2021 -- WINDOWS 7 (AND 10) FIXES THAT I'VE FOUND USEFUL
HP Photosmart P1000 Compatible Driver
HP Deskjet 970CSE. You have to do a manual driver install.
Cleaning up your C: Drive
Start button -> Then type Disk Cleanup into the search box.
Removing Shutdown / Sleep Buttons From Start Menu
This is important for me when I'm running a job that I don't want interrupted by other people
that might use the same computer:
1. How-to Geek version (run gpedit.msc, go to Local Computer Policy, User Config, Admin Templates, Start Menu and Taskbar and double-click "Remove and prevent access to the Shut Down...").
2. MintyWhite.com version.
Upgrading to AHCI
When I first configured my PC, the BIOS defaulted to legacy SATA mode, which is more compatible
with older software, but doesn't take advantage of the newer AHCI SATA interface. Here's the Microsoft link on how to configure Windows 7 so you can switch your BIOS to AHCI mode. Switching to AHCI improved my HDD Windows Experience Index from 7.3 to 7.7.
Internal Drives Mis-labeled as Removable/Ejectable Drives
After switching to AHCI, all of my SATA internal drives showed up as ejectable drives,
like you get when you plug in an external USB drive. I didn't like seeing the drive disconnect
icon in my tray area when I had no USB drives connected. Here is the fix for Windows 7.
Windows 8/Windows 10 fix: The above doesn't work in Windows 10, but try this fix. A bit more involved, but it works.
Hiding Card Reader Drives with No Media
See this SevenForums.com tutorial, though I think the registry editing is mistaken. In HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, make a DWORD named HideDrivesWithNoMedia and set to one, not zero.
Which Disk is \Device\Harddisk2\DR2 (for example)?
The block device \Device\Harddisk2\DR2, based on my experience with Windows 7, shows up as
"Disk 2" in the Disk Management program (Right-click "Computer", Manage, Disk Management).
There is also a program, dd.exe, which will list the Windows block devices when run with
the --list option.
Setting the Firefox Cache Folder
Yeah, I know it's not a Win 7 tip, but I needed to know how to get Firefox to use a specified
folder (e.g. a
RAM drive)
for all of its cache files. Answer:
1. Type about:config into the location bar.
2. Type browser.cache.disk into the filter box.
3. If it doesn't exist, enter a new preference string (right-click in the blank area on the page and go to "New", then "string").
3a. Preference name: browser.cache.disk.parent_directory
3b. String value: (name of desired cache folder)
Resetting your Searches
Are your Windows or MS Outlook searches incomplete or messed up? Try resetting your
search database and
re-indexing your data.
Turning off Aero Snap
Aero snap is where the windows snap to the edges of the screen, which I hate, because I often like to push my windows so that they are only partially showing on the screen. hkey_current_user\control panel\desktop\WindowArrangementActive (set to 0)
Taskbar Preview Delay Time
This adjusts how long it takes before previews of the icons on the task bar pop up. hkey_current_user\software\microsoft\windows\currentversion\explore\advanced\ExtendedUIHoverTime (DWORD value in ms)
Getting Outlook 2007's "Out-of-Office auto-replies are on" Reminder to be More Persistent
If you have turned on your out-of-office auto-response in Outlook 2007, the only warning
it gives you when you return is a little pop-up balloon that quickly disappears and often
gets missed.
There is a registry setting that will make this balloon stay up as long as you want--
effectively until you manually close it, making it much more effective at getting you
to turn off your out-of-office response:
Set HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\OOF\OOFBalloonTimeout as a REG_DWORD to the stay-up time in milliseconds. E.g. 86,400,000 will keep it up for one day (or until you close it manually).
Prevent Windows 10 from allowing apps to block shutdown
These are effective answers I've found:
1. From muchtall.com:
Summary: Run the Group Policy editor gpedit.msc and check under Computer Configuration -> Adiminstrative Templtes -> System -> Shutdown Options -> Turn off automatic termination of applications that block or cancel shutdown.
2. Use regedit to change this:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"AllowBlockingAppsAtShutdown"=dword:00000001
3. Create a batch file that runs "shutdown /f".
23 JAN 2021 -- APPLE'S MIGHTY M1 CPU
I got my hands on a mac mini with the Apple M1 CPU and compiled
k2pdfopt on it.
It is a very impressive performer. See the table
below comparing k2pdfopt performance on a core i9-9900 vs. an Apple M1 with two
different C compilers (I posted the clang v12 version). The "No OCR" row compares single-threaded
performance since only the OCR processing in k2pdfopt is multithreaded. The OCR improvement
is not as dramatic, probably because Tesseract has optimizations for the hardware extensions in
x86-64 chips (e.g. SIMD/AVX). Interesting also that clang v12 beats gcc v11 handily. The M1
performance is even more impressive when you consider that its thermal design power (TDP) is
about 20 W compared to the i9-9900's 65 W.
12 JUN 2020 -- "1 MONTH AGO" -- EVEN GITHUB?
Wow, even GitHub, a site for hardcore programmers,
is using the nebulous date format I blogged about before,
so I get to see a whole bunch of files dated "last month" or "last year."
How incredibly unhelpful.
Sorry, but I just lost a lot of respect for github.
Thank you to SourceForge for not following suit.
6 MAR 2020 -- FFMPEG/AVCONV BENCHMARKS 2020
Comparing the ffmpeg.exe and avconv.exe win64 versions
OVERVIEW
These are run times of ffmpeg.exe v5.1 (static build)
and avconv.exe v13 dev (dll build).
If you are not aware of why there are now two different web sites (ffmpeg.org and libav.org)
and two different converters (ffmpeg.exe and avconv.exe),
see the FFmpeg section of my useful utilities page.
Note that at this point the split between FFmpeg and libav is old news and it appears libav
has not been touched for over four years whereas FFmpeg is still being actively developed.
This may be the last time I compare the two.
DETAILS
I used just one source video this time--a 23-second, high-def (720p) video (.mts file) directly from a Panasonic Lumix camera. I'm figuring that the encoding is the dominant part of the conversion time.
Run times are wall-clock time.
I'm running Windows 10 Pro 64-bit.
I have results for two CPUs: One is a core i9-9900 (3.10 GHz base clock) with 8 cores and 2 threads per core, so it can take advantage of up to 16 threads, but in my experience, going beyond 8 threads is counterproductive. The other is a core i5-670 (3.47 GHz) with 2 cores and 2 threads per core.
RESULTS
Detailed results are in the table below.
The FFmpeg windows builds are up to date while avconv seems to have stopped development since 2018. FFmpeg also has more download options (e.g. an all-in-one statically-compiled exe), is compiled with a more modern version of GCC, has efficient encoders for every major format, and is faster than (or at least equivalent to) the avconv windows build in every single case where both of them have encoders except for the Core i5 .mp4 conversions, interestingly. The avconv.exe VP8 has shown great improvement from 2017, but VP9 conversions remain slow, and there is no HEVC or Ogg Theora encoder.
CONVERSIONS
I converted a 23-second .mts (h264-encoded) video from my Panasonic camera to these formats using these command lines:
I'm a Christmas music junkie, and I got pretty excited about the Starbucks holiday song
I heard this last Christmas, but I didn't find it until just now.
That is partly because the lyrics have yet to be
posted on the on the web (that I can find), so I'm posting them here to help
people find the song since it's a common way I search for a song. I should have
thought earlier to click through to (and read the comments on) the YouTube video of the commercial that I found
on this unhelpful and misleading page.
Make Way for the Holidays, by Le Bon (Back story)
See the shining lights.
Feel the cold outside.
Looking forward to the winter.
We're busy making plans,
packing up our bags,
counting down the New Year.
And I just can't wait for the holidays
and all the happiness it brings.
Home with family,
Reliving memories,
Always filled with love and laughter.
A time when we surprise,
Give someone else some time,
Getting back to what matters.
And I just can't wait for the holidays
and all the happiness it brings.
So let's all make way for the holidays
and all the happiness it brings.
It's a season for giving
and for loving everyone.
And it's time to remember
everything you have and all you are grateful for.
See the shining lights.
Feel the cold outside.
Looking forward to the winter.
We're busy making plans,
packing up our bags,
counting down the New Year.
And I just can't wait for the holidays
and all the happiness it brings.
So let's all make way for the holidays
and all the happiness it brings.
And I just can't wait for the holidays
and all the happiness it brings.
So let's all make way for the holidays
and all the happiness it brings.
And all the happiness it brings.
16 JAN 2019 -- "1 MONTH AGO"
<RANT>
Why do sites like YouTube, Reddit, etc. all list the dates that comments are posted
as imprecise and relative times like "1 month ago" and "2 years ago"? Do they really
think I need help doing date-stamp arithmetic in my head, or that I don't want to know
the posting date more precisely than +/-50%?
The genius who thought of this should be
neutered so that he or she cannot reproduce.
Thank you to StackOverflow for not jumping on this bandwagon. </RANT>
9 JUN 2018 -- MADE UP PLOTS
I won't call out the company that put up this idiotic plot on their web site,
but the dollars listed on the horizontal axis are supposed to be represented by the blue
curve on the plot. See anything wrong?
That's right. The dollars are perfectly linear -- increasing by $336 every year,
whereas the plotted blue curve is not (nor is the orange one).
On a linear vertical scale, the correctly plotted dollar values should look like this:
I guess the company didn't think the correctly plotted curve looked elegant enough, but why
on earth would they want you to think that their prices go up nonlinearly over
time, increasing more and more every year? I was thinking
of looking into this company's service, but if they can't get a simple plot right, they probably
can't get their service right, either.
11 FEB 2018 -- PLAYBUZZ IS A SCAM
I decided I wanted to vent a bit about PlayBuzz and realized I had no real place to put
such a vent, hence, my first ever general "blog" entry on willus.com after nearly 20 years of
hosting the site. And I only wanted to vent because when I google "playbuzz is a scam," there are
a surprisingly small number of relevant results. Are people really so oblivious?
I'm a natural skeptic, so when I first got a perfect score on a PlayBuzz quiz, I immediately
re-took it and intentially clicked on several wrong answers. The results: I got a perfect
score again! Or I would get 9 of 10 or 14 of 15.
"Empty Al" (see his comment
here) had the exact same experience.
Just try taking a Playbuzz quiz and intentionally getting several answers wrong. And do you
really think you're a genius for knowing that a crocodile is different from a lion, tiger,
and bear? Or that a triangle is different from a square, rectangle, and parallelogram?
Come on. Playbuzz is feel-good click bait with completely bogus scoring and ridiculous
claims. Which leads me to my main question:
Is everybody in on it and they're all okay with it--i.e. harmless feel-good fun? Or do
people really not know?
5 JUL 2017 -- MICROSOFT PLEADING -- DON'T DELETE MY PRINTER DRIVER
Can the folks at Microsoft please, please, please stop deleting my printer driver
every time they do a major update to my O/S? Windows 7 SP1, Windows 10, Windows 10 Creators --
these all deleted my HP Deskjet 970CSE print driver that I have to set up specifically
to use my no-longer-supported HP Photosmart P1000 (17 years old and still working, baby).
The Deskjet 970CSE driver happens to be a perfect substitution. But then I update my O/S and
it's as if the OS update re-scans my printers and decides "Hey, there isn't a 970CSE connected,
so the driver is obviously not needed. DELETE." Please fire the moron who thought this was a good idea!
3 JUN 2017 -- FFMPEG/AVCONV BENCHMARKS 2017
Comparing the ffmpeg.exe and avconv.exe win64 versions
OVERVIEW
These are run times of ffmpeg.exe
as downloaded from Zeranoe (static builds; FFmpeg.org)
and avconv.exe
as downloaded from
builds.libav.org/windows (libav.org).
If you are not aware of why there are now two different web sites (ffmpeg.org and libav.org)
and two different converters (ffmpeg.exe and avconv.exe),
see the FFmpeg section of my useful utilities page.
DETAILS
I used just one source video this time--a 23-second, high-def (720p) video (.mts file) directly from a Panasonic Lumix camera. I'm figuring that the encoding is the dominant part of the conversion time.
Run times are wall-clock time.
I'm running Windows 10 Pro 64-bit.
My CPU is a core i5-670 (3.47 GHz) with 2 cores and 2 threads per core, so it can take advantage of up to 4 threads, but in my experience, multitasking on a core i5 is effective for only two threads or less. Beyond that, there is little payoff (see the discussion in the -nt option on my k2pdfopt command-line options page).
RESULTS
Detailed results are in the table below.
For windows builds, FFmpeg has left avconv in the dust. The FFmpeg windows builds are more up to date, have more download options (e.g. an all-in-one statically-compiled exe), are compiled with a more modern version of GCC, have efficient encoders for every major format, and are faster than (or at least equivalent to) the avconv windows builds in every single case where both of them have encoders. The avconv.exe VP8 and VP9 conversions, in particular, are astonishingly slow.
VERSIONS
The nightly-builds for ffmpeg continue not to incorporate the release version number, which
is frustrating. This nightly build was downloaded when version 3.3.1 was the stable release. The avconv.exe is a pre-release of v13.
CONVERSIONS
I converted a 23-second .mts (h264-encoded) video from my Panasonic camera to these formats using these command lines:
The smart phone has officially passed up my 7-year-old desktop PC in CPU horsepower. On
an average of
Jet Stream,
Sun Spider,
Kraken, and
Geekbench,
my iPhone 7 is 30% faster than
my Core i5-670-based PC (running Firefox or Chrome for the javascript benchmarks).
My iPad 1, by comparison, from roughly the same vintage as my desktop PC (2010), looks
absolutely prehistoric. It is 40 times slower than my iPhone 7. It is unreal how
much mobile processing power has improved since the advent of the smart phone / tablet.
Desktop CPU performance increases have been happening at a far slower pace in that same
time frame.
28 JAN 2015 -- STREAMING TUTORIAL II: HTML 5 AND IPAD-FRIENDLY VIDEO FROM YOUR WEB SITE
Making videos compatible with multiple browsers and devices
INTRODUCTION
Today virtually every major browser supports
HTML 5.0 embedded video as an alternative
to requiring Adobe's Flash player plug-in, as does
YouTube (see
YouTube's blog article about HTML5 vs. Flash).
This makes it easier than ever to stream your videos to PCs, laptops, smartphones, and tablets
without requiring users to install Adobe Flash Player, which, for example, iPads and iPhones
do not support. In
support of Flash, though, Jan Ozer thinks
HTML5 video is over-hyped as a one-size-fits-all solution
for web video (Oct 2011). I think video in HTML 5 rocks!
VIDEO FORMATS
There are two major competing video formats for web videos.
If you want one format for everyone, every major browser now supports the MP4 container
format with H.264-encoded video (the Mac version of Firefox now supports MP4 as of
v35--see comment #29,
released 13 Jan 2015).
Every major browser except for Safari also
supports
WebM (VP8/Vorbis) (curse you, ghost of Steve Jobs!).
WebM is open source (it was released by Google
as open source in May 2010) and supposedly less encumbered by patents than MP4.
WebM with VP9, a more advanced video encoding format that compresses better than VP8, is supported by Chrome, Firefox, and Opera.
VP9 competes with H.265 / HEVC,
which was ratified in 2013.
See the list of supported browsers / formats below.
[Aside: Another alternative video format is the open-source
Ogg (Theora/Vorbis) format supported by
some browsers, but it has been made largely obsolete by WebM's wider support.]
If you want to maintain compatibility with older browsers which don't support
embedded video but do support flash, you'll also need
FLV hosting.com's Flash-based video player
file, YTPlayer.swf (local copy--right click it and
select "Save link as ..."). This small file must be in the same folder as your
html file which launches it. It launches a player using Adobe's Flash
Player plugin. Thank you to FLV hosting for this nice player.
The YTPlayer.swf will play the .mp4 file, fortunately (no need to have a different
format just for this player).
You'll then need a way to convert your video files to .mp4 and .webm.
See below for more on how to do that.
Finally, you may need to contact your
web hoster and have them modify their
server mime types according to the
instructions on this page (see the Server Support section). Be sure to also add video/webm to the mime types for
WebM support.
I had to do this, but my
web hoster
responded very quickly and was happy to oblige. Note that some hoster control/config
pages allow you to change your mime types yourself. You might want to check yours.
HTML EXAMPLE
After getting YTPlayer.swf, and converting your video to the .mp4 and .webm
file formats (see next section) you need to create an HTML file to show the video.
Here is an HTML example. The example
includes .ogv video, but these days I just post .webm and .mp4 versions of my videos.
The HTML source is below:
<!doctype html>
<html>
<style type="text/css"><!-- img { display:block } video {display:block} --></style>
<body bgcolor=#c0ffc0><center>
<font face="calibri,arial,sans-serif">
<h1>Cat Food Burglar</h1>
<font color=#008000 size=+2><b>VIDEO</b></font><br>
<table width=0 cellpadding=0 cellspacing=0 border=4 bordercolor=#008000><tr><td>
<!-- Actual video file is 480x360 -->
<video width="480" height="360" controls autoplay>
<!-- .mp4 file must come first for Safari. IE9 will also play it. -->
<source src="cat_food_burglar.mp4" />
<!-- Firefox 4.x, Google Chrome, and Opera will play the .webm format -->
<source src="cat_food_burglar.webm" />
<!-- Firefox 3.5/3.6 will only play .ogv files -->
<source src="cat_food_burglar.ogv" />
<!-- If all else fails, the script below will try to launch the Flash player. -->
<embed
src="YTPlayer.swf"
flashvars="movieName=cat_food_burglar.mp4&autoStart=true"
width=480
height=390
allowFullScreen=true
type="application/x-shockwave-flash"
pluginspage="http://get.adobe.com/flashplayer" />
</video>
</td></tr></table>
<br>
<font size=+1>Hidden camera catches my dog swiping cat food.</font>
<br><br>
<table border=0><tr>
<td valign=top align=left>Downloads:</td>
<td valign=center align=center><a href="cat_food_burglar.mp4">.mp4</a><br>
<font size=-1>7.4 MiB<br>805 kibps</font></td>
<td valign=center align=center><a href="cat_food_burglar.webm">.webm</a><br>
<font size=-1>6.7 MiB<br>732 kibps</font></td>
<td valign=center align=center><a href="cat_food_burglar.ogv">.ogv</a><br>
<font size=-1>6.7 MiB<br>729 kibps</font></td>
</tr></table>
<font size=-1 color=black>If the video doesn't play, upgrade to the latest
<a href="http://firefox.com">Firefox browser</a><br>
or download and install
<a href="http://get.adobe.com/flashplayer/">Adobe FlashPlayer</a>.</font>
</font>
</center></body></html>
Note that without the first line of the HTML source above (<!doctype html>), IE9 will
not interpret the <video> tag
correctly. The only files in the folder on the server are:
index.html (listed above),
YTPlayer.swf, and the video files,
cat_food_burglar.mp4,
cat_food_burglar.ogv, and
cat_food_burglar.webm.
Again, you can disregard the .ogv file these days. I leave it here just for completeness.
These examples will test what video formats your browser can play:
.mp4 |
.webm |
.ogv.
CREATING THE .mp4 (and .webm and .ogv) FILES WITH FFMPEG FFmpeg is an extremely versatile command-line
utility which will convert/scale/crop between many different video and
audio formats.
See the FFmpeg section of my utility software page for more details.
I recommend this page
(64-bit or 32-bit static build) for a
good Windows version of ffmpeg.exe that encodes to all the types listed below.
See my ffmpeg/avconv benchmark page for more on why.
If you google around, you should be able to find a user-friendly,
GUI front-end for FFmpeg, but I just use it from the command line.
This is the command I use to convert my hi-def Panasonic camera videos to .mp4 files:
The above commands convert input_video.mts (can be .mov, .avi, or other type) to
output_video.mp4 using h.264 encoding (-vcodec libx264)
and a target bit rate of 1000 kibps; or to output_video.webm
or to output_video.ogv
using the same parameters.
The output video size is 640 x 360. You'll want to make sure the output video size
matches the aspect ratio of your videos (mine are hi-def, so they are 16:9,
but most standard def videos are 4:3, so you'd use -s 480x360).
The -b:a 56k and -ar 22050
set the audio so it will be compatible with the video players.
Other FFmpeg (and avconv) notes:
The -b:v and -b:a options are options for the bitrate used by later versions of ffmpeg.exe (or avconv.exe) (October 2011 or after). Download a more recent version if your version doesn't understand these options.
All of the extra parameters in the mp4 conversion
command are there to get the h.264 encoding to go smoothly.
I've made them part of a Windows batch (script) file so I don't forget them.
The -qmax 63 option above allows the use of maximum compression (63 is the highest
value allowed) on the video frames
in order to achieve the desired video bit rate (-b:v 1000k). Setting this value lower will
improve the video quality, but the requested bit rate (-b:v option) rate may not be achieved.
The -threads option enables multiple threads to do the
encoding, which will make FFmpeg encode faster on a multi-core/multi-threaded CPU. Not
all encoders take advantage of this option (e.g. encoding to .ogv). See
my ffmpeg/avconv benchmark page for how well different
encoders perform using multiple threads.
FFmpeg has much more capability--it can crop your video, scale it, take a specific time
slice, etc. For more about how to use FFmpeg, see the
FFmpeg documentation page.
For example, adding the arguments -ss 7 -t 35 to the conversion commands above would
start 7 seconds into the source video and convert the next 35 seconds to the output video.
OTHER WAYS TO CONVERT YOUR VIDEO FILES
1. Check out the encoding instructions in
Mark Pilgrim's tutorial.
The table of contents has links to step-by-step instructions on how to encode
to Ogg with FireFogg, how to encode to H.264 with HandBrake, and how to encode
to WebM with FFmpeg.
2. There are many other .mp4, .ogv, and .webm encoders to convert your
video files. Many simply provide an easy-to-use front-end for FFmpeg.
Just google "mp4 (or webm) encoding".
OTHER RESOURCES
I wrote my first video streaming tutorial in July 2009,
if you're really bored. Going back to it shows how much times have changed.
If you want more details on the latest HTML 5 video controls, try Pete LePage'sexcellent introduction.
Other discussions of HTML 5 video include Mark Pilgrim'sbook chapter on HTML5 video,
which is nicely done, but aging.
[Aside: Mark Pilgrim took down many of his accounts and sites
in early October 2011, but I
have updated my links to point to community mirrors of his removed works.]
Kroc Camen has written a similar tutorial from late 2010 called
Video for Everybody.
Jan Ozer (mentioned in the introduction) has written
several good articles
for streamingmedia.com on encoding videos, including
this gem about optimal encoding for YouTube.
That's all for now. Good luck and have fun!
21 NOV 2014 -- THE BIG LIE: DLP TV LAMP LIFE
DISCLAIMER
Let my preface by saying that you should be extremely careful servicing your own TV,
particularly the halogen bulb on a DLP TV, as they are very expensive,
get very hot, and contain hazardous materials. If you don't know what you
are doing, you can injure yourself and/or ruin your TV. If you aren't
comfortable doing it, then don't.
That said...
UH OH
On 9-30-06, an orange LED indicator lit up on my
LG RU44SZ61D DLP TV
above the lamp icon.
Not knowing what it meant, but having a bad feeling about it,
I consulted the manual,
which said that the indicator was a lamp end-of-life indicator and that I would
need to replace the halogen lamp which provides the projection lighting
for my TV. Wanting to do it myself and save the service cost,
I ordered a replacement halogen lamp (an
alternate source is www.dlplampsource.com).
THE FIX
Turns out it took a couple more months for the lamp to finally fail, and
on 12-23-06, I had to replace it. The TV would not come on--it would try,
but then the lamp indicator would flash red for a couple of seconds and
the TV would turn back off. I pulled out the replacement lamp I had ordered,
grabbed my trusty screwdriver (a fine-point philips with a long shaft ~8" was
the perfect tool), and unplugged the TV.
I got the
plastic lamp access cover off (on the right side of my TV, around the back,
near the bottom--two screws). At this point, be very careful touching anything inside
if your lamp has just been on--items may be very hot.
I then took out the cage that goes around the lamp (three screws) and drew
a diagram of how the cables were attached to the halogen bulb. After that, I
un-did the cables affixed to the lamp itself, took out the top bracket holding
the bulb in place, and loosened the other two brackets. I then gingerly
pulled the old bulb out, put the new one in, and reversed all my steps.
The TV turned on just fine when I was done, but the lamp's
orange end-of-life indicator LED
was still on. It was at this point that I finally figured out how to
get my LG TV to show me how many hours were on the lamp (see below) by
poking through forums on the web. Some of the more helpful forums were
AV Forums
and Digital Forum.
I reset the lamp hours (see below)
and voila, the end-of-life indicator went out.
The only thing I didn't do
correctly, as I gather from reading some forums, is that I handled the new
bulb with my bare fingers. You're supposed to
handle the bulbs with rubber gloves
since the residue from your fingers can be an issue when the bulb heats
up (doesn't seem to be a problem after a few hours of viewing, though).
THE LIE
The LG manual doesn't say how long the
lamp is supposed to last, but the salesman at the place where I purchased
the TV assured me it would last 10,000 hours. He told me the lamps cost
around $300 (try $375), so I did some quick math in my head and figured
that 10,000 hours would get me through at least 5-6 years (which turned
out to be a good guess).
On 12-23-06, when my lamp failed after about 2.2 years of use,
I had 4,250 hours on the lamp (see some caveats about this in
the updates section below).
Spending $400 every two years on the set is certainly a
different ball game than every six years, and I've also read on forums
that the ballast for the lamp (probably contains some sort of
DC-to-high-voltage converter?) will eventually fail, too!
[Note: bulbs are much less expensive as of 2008--see updates below.]
I've found conflicting reports about DLP projection TV
lamp life. This site says 10,000 hours, but
Consumer Reports had a recent
issue that claimed a typical life of about 5,000 hours--close to what I got.
This is the dirty little secret
that the DLP vendors are sweeping under the rug.
And, to add insult
to injury, you have to be careful disposing of your old lamp, because it may contain
mercury (though Wikipedia claims halogen lamps do not have mercury).
CONCLUSION
I'll see how long my new lamp
lasts, but I am disappointed in DLP sets because of this
lamp life issue. Don't get me wrong. I do like my TV--I think
the picture quality
is quite good. Monday Night Football broadcasts in high def are just
gorgeous, but my TV also needed two separate repairs during the first year
of its life (under warranty, fortunately). At this point
I would not recommend DLP TVs
to people interested in HDTV,
especially if LCD sets continue to come down in price (though I'd want
to make sure there wasn't a similar life issue with backlight on
whatever LCD TV set I'd purchase).
UPDATES
12-24-06: (One day after posting!) I received an e-mail which claims
that "bulbs manufactured early on didn't come close to the suggested
life span of the manufacturer but improvements to the bulbs and process
since should have them coming very close to the suggested life span."
Like I said, we'll see how my next bulb does.
2-28-07: Here's a thread about
another problem that a few DLP owners are having with an uneven display.
11-7-07: I received an e-mail from a user
who has this same LG DLP set and states that he got 4,500 hours on his
first bulb and 8,000 hours on his second bulb, so that is consistent
with the information I received on 12-24-06.
1-31-08: The cost of the bulb seems to be running around $200 these days.
4-5-08: I just had a user e-mail me that he got
nearly 8,500 hours on his first lamp (he purchased his set very close to
when I purchased mine), so perhaps my lamp life was on the short side
of the average.
9-25-08: I've had two e-mails in the last month or so
to let me know that the lamp life in DLP TVs can be extended by decreasing
the factory brightness and/or contrast settings, so make sure you don't
have these set unnecessarily high.
8-29-10: I received an e-mail today from somebody who claimed he
got 6 years of life
(number of hours not specified, but estimated to be over 10,000 hours) on a
Philips/RCA 260629 bulb. This person said I should view the 10,000 hour claim as an MTBF,
but even if the 10,000 hours figure is an "average" value, this person is the first
person I've had inform me that
they got over 10,000 hours (estimated) on a bulb (I think maybe one other person got north
of 8,000 hours), so I still don't buy 10,000 hours as an MTBF, especially
back in 2004 when I purchased my LG DLP TV.
BTW, folks, I traded in my DLP TV for
an LCD TV, so no more bulb life issues for me. Sorry!
12-1-10: I received an e-mail today from somebody who got six years
out of her bulb (10,750 hours of on-time)--the last four years of it with the lamp warning
light on!
9-26-11: I received an e-mail today from somebody who got six years
and 12,000 hours out of his bulb (Samsung DLP TV).
10-13-11: I received an e-mail today from somebody who has
16,900 hours on his bulb (Samsung DLP TV), and it's still going.
10-24-11: I received another e-mail from somebody who got
18,761 hours on his bulb (Samsung DLP TV, lasted almost 7 years). He claims
that re-seating the bulb extends the life.
LAMP HOUR RESET ON LG RU44SZ61D DLP TV
Note: This does not require a service remote.
1. With the TV on, press and hold the MENU button on the TV front panel.
2. While holding that button, press and hold the MENU button on your remote.
3. Hold both buttons for ~5 seconds until the service menu comes up on the TV.
4. Release the remote MENU button first, then the TV MENU button.
5. Press and hold the ENTER (or OK) button on the TV front panel (see Notes 2 and 3).
6. While holding that button, press and hold the MUTE button on the remote.
7. Hold both buttons until the Lamp Life Hours show up on your TV screen.
8. Release the MUTE button first, then the ENTER button on the TV front panel.
9. Make a note of the lamp hours if you want.
10. To reset the lamp hours, press the SELECT button (the one between the four arrow keys with two concentric circles on it) on your remote.
11. It will ask you to confirm the reset--press SELECT again to confirm.
Note 1: To verify you've reset the hours, you can repeat steps 1-9 above and then just press the EXIT button on your remote.
Note 2: One person on a forum claimed that steps 5. and 6. above have to be switched.
Note 3: For a 44SZ8D TV, replace step 5. with:
5. Press ENTER on the TV to enter the position adjustment
5a. Press and hold ENTER on the TV front panel (the TV will re-enter the menu; keep holding ENTER while you press and hold MUTE on the remote. After approx 5 seconds, the lamp life counter will appear).
15 JUL 2014 -- RECYCLE YOUR E-WASTE
Don't throw away that phone, computer, or television!
E-waste is a term which covers modern electronic waste such as household
televisions, computers, tablets, mobile phones, printer cartridges, etc.
Because this equipment rapidly goes out of date, modern contries are
generating millions of tons of E-waste annually. Because
a significant fraction of E-waste is toxic (containing lead, mercury,
and chromium, for example), many states are moving quickly to enact
E-waste legislation on disposal/recycling practices. For now,
do your part. Learn about E-waste and understand what to do with yours.
Here are some links to help.
Consumer Reports'
GreenerChoices.org
(started on April 22, 2005--Earth Day)
RecycleFree.com, for
printer-cartridge and mobile phone recycling. They'll send you pre-paid
envelopes at no charge. You simply put your cartridge or old mobile phone in
and mail. I've tried this, and I got the envelopes within five days.
It's a very nice service.
31 DEC 2012 -- JAILBROKEN IPAD: THE IOS SHELL UNDERNEATH!
Spurred on by web sites that told me I could ssh into my iPad if I jailbroke it, I
went to jailbreakme.com which led me
to the redsn0w site
(for my iPad 1 with iOS 5.1.1) where
I snagged the Windows install program for redsn0w 0.9.14.b1 (download link at bottom of screen).
Unfortunately, this also requires that you install iTunes, which I was trying to avoid, but
I figured I'd just remove it from my PC after the jailbreak, which I did, so no harm, no foul.
I then installed OpenSSH per the instructions on the Cydia screen, and I use SSH Term Pro to
connect to root@localhost:22 on my iPad to get a TTY.
It's all effectively Debian Linux after that! So
cool. I wanted to have some fun, so I bought the blAze iPad theme for WinterBoard and
installed it for a different look to my iPad (see screen shots below). I then went poking
around for how to get gcc. I found this site and followed the instructions (installing
Apt7 is incredibly useful--it lets you use the "apt-get" command from the shell).
But the gcc link is broken, so I got the gcc files from here (also here--if the links break, try googling iphone-gcc.deb). You definitely also
need "ldid" (I think I used "apt-get install ldid"--that's a lower case 'el' as the first
letter, not an uppercase 'eye'). It signs your compiled apps so that they run, e.g.
gcc -o hello hello.c
ldid -S hello
./hello
Without using ldid, the compiled app will simply abort if you try to execute it.
It took me a while to figure that
out. It's so cool to be able to (1) compile software on my iPad, and (2) access the full file
structure and transfer whatever I want to and from my PC. Highly recommended!
(Though, of course, jailbreaking is not sanctioned by Apple, and I take
no responsibility for what
happens to your iPad if you try to jailbreak it, blah, blah, blah, typical disclaimer stuff,
etc., etc., etc.)
iPad Screen Shots (using blAze theme)
Lock screen
Home screen
Linux TTY
21 NOV 2012 -- FFMPEG/AVCONV BENCHMARKS 2012
Comparing the ffmpeg.exe and avconv.exe win64 versions
OVERVIEW
These are run times of ffmpeg.exe
as downloaded from Zeranoe (static builds; FFmpeg.org)
and avconv.exe
as downloaded from
win32.libav.org (libav.org).
If you are not aware of why there are now two different web sites (ffmpeg.org and libav.org)
and two different converters (ffmpeg.exe and avconv.exe),
see the FFmpeg section of my useful utilities page.
DETAILS
I used two source videos:
a 23-second, high-def (720p) video (.mts file) directly from a Panasonic Lumix camera,
and a 42-second, high-def (720p) video (.mov file) directly from a Fujifilm F750EXR camera.
Run times are wall-clock time. I disabled antivirus and made sure no other processes were running.
My CPU is a core i5-670 (3.47 GHz) with 2 cores and 2 threads per core, so it can take advantage of up to 4 threads. I'm running Windows 7 64-bit.
RESULTS
Detailed results are in the tables below.
FFmpeg.exe is the performance king. It is faster than avconv.exe in every single case. For conversions to .webm, it is 1.5 to 3.5 times faster than avconv.exe. If you have 64-bit Windows, just get ffmpeg.exe 64-bit. It does every conversion (finally no more crashing on conversions to .webm!) and is also the fastest. The only (very) minor flaw is that 4-thread conversions to .webm run slightly slower than 3-thread conversions.
There has been a lot of progress overall compared to my
Dec 2011 benchmark.
The avconv.exe converter still won't convert to .ogv, and for some reason the win32 pthreads version of avconv.exe would not convert any files, but other than that all conversions went smoothly, and I no longer need to use the -strict experimental command-line argument.
Conversion times are considerably faster than in my
Dec 2011 benchmark, particularly for
conversions to .webm (30% - 50% faster) and .ogv (50% faster). Clearly, the code continues to
be optimized.
RANT I continue to be frustrated with the nightly-build ffmpeg
version numbering. The versions on the builds don't match up with the major
version numbers listed on the web site news pages (e.g. 0.7.x, 0.8.x, etc.).
It would be nice if
the nightly builds gave some indication of what major and minor version release
they are related to, even if it's a snapshot build.
A version number like N-46936-g8b6aeb1 is meaningless to me (and to most other users,
I imagine). Why is this so hard? This is where avconv.exe does much better,
giving a more intelligible version number like v9_beta2-255-gb9629ac.
* - Number of threads seems to have no effect.
** - win32.libav.org versions did not have .ogv encoding.
13 JAN 2012 -- UNIMPRESSED WITH UBUNTU 11.1
I've decided that the way to go for running both Ubuntu and Windows 7 on my
home PC is to use Virtual Box. If you
google "Virtual Box" and then the name of whatever OS you want to install, you'll
quickly find instructions for how to install that OS using Virtual Box. It works great.
I installed
Ubuntu not long ago and can now build linux distros right on my home PC rather than
having to putty to a remote linux server, and I don't have to re-boot. I just
run Ubuntu in a Window, and the performance is very respectable. It also allows me to experiment
with Ubuntu's latest desktop platform (11.1), which I couldn't do via putty.
I don't have a whole lot of positives
to say about Ubuntu's GUI environment (aka Gnome Nautilus).
The guys who do Ubuntu need to spend some time
in the Windows 7 GUI and copy it, particularly with regards to the start menu and right-click
context menus that come up for files, apps, and shortcuts. I'm not saying this because
I'm used to Windows. I'm saying this because after years of refinement,
Microsoft has done a great job of figuring
out how to make the GUI look simple and clean but at the same time put a lot of
capabilities for advanced users into the context menus where they are easy to find.
Ubuntu, on the other hand, has gone to a level of
simplicity that I find extremely frustrating as an advanced user. I can't find any
of the usual "under the hood" features that I can often quickly find in Windows.
It took me several minutes just to find
the terminal shell, for example.
For a guy who is used to Windows and who likes to develop command-line
executables, I have to say that Windows has this dialed in. Not only can I incorporate
an icon into the .exe file in Windows, but users can download the exes directly to their
desktops and run them
right away with no install necessary. This is not at all the case with Ubuntu
or Mac OSX. Just look at how many more steps are involved for
OSX and
Ubuntu just to make a command-line
application work from the desktop! Ubuntu is especially bad.
Why isn't there a "run command" menu item in an obvious place?
(Who on earth is going to guess to type Alt-F2 to get the run-a-command box?)
And why can't I choose any program I want (via a file browser) for "Open With..." like in
Windows? And why can't Gnome Nautilus figure out when I'm double-clicking on a command-line
executable and automatically open up gnome-terminal for it? Windows has effectively been doing
this for over a decade, and in my opinion, they got it right, because I never
even had to think about it until I had to deal with Ubuntu and OSX.
On the other hand, I do like some Ubuntu features, for example the software updating
and the feature where Ubuntu tells you the command for installing an application when
you try to run it and don't have it. That is very handy and worked well.
The appearance is clean and
professional overall, as well. That's what's frustrating--Ubuntu has a lot of apps and
many features that are very professional, but it's the little things--the dotting of
the i's and the crossing of the t's, e.g. elegantly accomodating both novice and advanced users,
that are holding them back from that broader
appeal that will be required to win over the Windows majority.
26 DEC 2011 -- FFMPEG/AVCONV BENCHMARKS 2011 PART 2
Comparing the ffmpeg.exe and avconv.exe win64 versions
OVERVIEW
These are run times of ffmpeg.exe
as downloaded from Zeranoe (FFmpeg.org)
and avconv.exe
as downloaded from
win32.libav.org (libav.org).
If you are not aware of why there are now two different web sites (ffmpeg.org and libav.org)
and two different converters (ffmpeg.exe and avconv.exe),
see the FFmpeg section of my useful utilities page.
To get the run times below, I ran ffmpeg.exe and avconv.exe under Windows 7 on a core i5-670 (3.47 GHz, 2 cores, 4 threads).
The source video is
a 23-second, high-def (720p) video (.mts file) directly from my Panasonic Lumix camera.
As of December 26, 2011, somewhat surprisingly, the 32-bit ffmpeg download from
Zeranoe is the only one
that successfully does all of the conversions below. At least there is now one
version of avconv that will do .webm encoding. That's an improvement over
October 2011.
A frustration I have with ffmpeg (and avconv, to a lesser extent) is that the version numbers
listed on the "live" builds don't match up with the major
version numbers listed on the web site news pages (e.g. 0.7.3, 0.8.x, or 0.9.x).
It would be nice if
the live builds gave some indication of what major and minor version release
they are related to, even if it's a snapshot build.
A version number like N-36088-gdd1fb65 is meaningless to me (and to most other users,
I imagine). At least avconv.exe
gives a more intelligible version number like v0.7-2384-gc65dfac, though I'd still like
an indicator of the minor version number, e.g. v0.7.3-0123-abcdefg. Come on guys. It
can't be that hard.
* - Number of threads seems to have no effect.
** - win32.libav.org versions did not have .ogv encoding.
15 DEC 2011 -- CALIFORNIA WANTS YOU TO CHANGE YOUR OIL LESS OFTEN
Visit the CheckYourNumber.org California web site
to see how often you should change the oil in your car. Changing the oil in your car
too frequently can have a negative impact on the environment.
Comparing the ffmpeg.exe and avconv.exe win64 versions
OVERVIEW
These are run times of ffmpeg.exe
as downloaded from Zeranoe (FFmpeg.org)
and avconv.exe
as downloaded from
win32.libav.org (libav.org).
If you are not aware of why there are now two different web sites (ffmpeg.org and libav.org)
and two different converters (ffmpeg.exe and avconv.exe),
see the FFmpeg section of my useful utilities page.
To get the run times below, I ran ffmpeg.exe and avconv.exe under Windows 7 on a core i5-670 (3.47 GHz, 2 cores, 4 threads).
The source video is
a 23-second, high-def (720p) video (.mts file) directly from my Panasonic Lumix camera.
It should be noted that as of October 8, 2011, each site (ffmpeg.org and libav.org) offers
both ffmpeg.exe and avconv.exe executables. But I found that the avconv.exe from ffmpeg.org
had virtually identical run times and behavior to ffmpeg.exe, and the ffmpeg.exe from
libav.org now encourages you to use avconv.exe instead, so I stuck with the executables
named for each site for these benchmarks.
As of October 8, 2011, somewhat surprisingly, the 32-bit ffmpeg download from
Zeranoe is the only one
that successfully does all of the conversions below. I'm not sure what the
libav.org folks have against enabling .webm and .ogv encoding in their Windows builds.
* - Number of threads seems to have no effect.
** - win32.libav.org versions did not have .ogv encoding.
29 JAN 2010 -- WINDOWS 7 INITIAL IMPRESSIONS
After six years with the same family PC, and with my hard drives getting full,
I finally pulled the trigger on a major
upgrade, going with a new Core-i5 processor, lots of RAM,
an SSD boot drive, two large HDDs for media storage, and Windows 7.
As you can see below, I tried Linux for a while, but it didn't impress me and
wasn't going to work for my family.
I've been wanting to try Win64 computing, and with Windows 7 getting good reviews,
a PC upgrade was the natural point to try it out. After spending
a couple days with the new PC, here are some of my initial impressions:
Overall I'm very pleased. The machine is fast and quiet,
the install went smoothly (once I got my memory sorted out--see below), and
Windows 7 still feels like "Windows," which is a good thing for my wife and son.
All my old software runs exept for some original DOS programs which were already
emulated under XP, such as Buerg's list.com, a DOS file viewer, and pe2.exe,
an old DOS text editor
(I'm guessing I could find a DOS emulator if I felt compelled).
I was even able to continue using my 10-year-old
HP Photosmart P1000 printer (even though it's not supported by HP for Win 7)
by using a deskjet 970CSE driver on it.
Putting three sticks of memory into a 4-slot motherboard is a bad idea
(I tried this because one of the four sticks of memory I bought was bad).
Yeah, I know, duh. I kind of figured 3 sticks wouldn't be optimal,
but I thought it would still work. Well, I was right, kind of. The PC
booted, but it was ultra slow (by at least a factor of 10!).
It took me a while to figure this out, but I finally looked at my motherboard manual
after wondering why the PC was so slow and saw that it recommended
only 1, 2, or 4 sticks of memory.
So I pulled out one stick, and bingo, everything started behaving correctly.
I'm not impressed with Windows 7's start menu. I really liked being able to put
custom sub-menus in my XP start menu by dropping folders of shortcuts into it. With
Windows 7, you can't do that! If you pin a folder to the start menu, it won't expand.
Lame. I've been using "Favorites" as a workaround, but it's not as nice. More mouse
movements and clicking to get what I want.
But I do like the Windows 7 task bar and quickly got used to the "dual-identity"
icons which can both launch a program and also return to an already-launched window.
Thunderbird's migration options suck. There was no obvious way to point Thunderbird
to my old profile folders and have it migrate the settings, mail messages, and address
books. It's as if none of the Thunderbird developers have even thought about the fact that
people might need to change PC's. I had to create a dummy profile and
then manually copy the right files over to it.
I have to figure out how to calm down
Norton Internet Security's annoying new "SONAR" detection,
which keeps trying to quarantine all of my custom-written software.
Having my O/S and apps on a solid-state disk is so cool. That's probably
my favorite part of this upgrade. Installs and launches go lightning quick.
I highly recommend it, but do your homework and get a good drive.
Overall I seem to be getting a 3 - 5 times speed improvement in my programs
(single threaded). For programs I wrote myself, recompiling is important
(see my recompile benchmark).
Below are some comparisons.
Old System
New System
CPU
AMD 3200+ 2.0 GHz
Intel Core-i5 670 3.46 GHz
Total Cores/Threads
1/1
2/4
O/S
Windows XP 32-bit
Windows 7 64-bit
System Power Draw under typical load (includes monitor, cable modem,
and printer)
190 W
105 W
Crop and re-size 200 images (single thread)
548 seconds
90 seconds (80 s w/turbo boost)
ffmpeg .mts to .mpg conversion (single thread)
43 seconds
16 seconds (14 s w/turbo boost)
Beam-Wave Interaction Simulation (single thread)
79 seconds
30 seconds (26 s w/turbo boost)
28 SEP 2008 -- ENERGY USAGE AND POLICY
The most important issue we face today
Energy usage, particularly of non-renewable resources such as oil,
coal, and natural gas, is an integral part of the industrialized world
and will shape world politics for the next century, yet most Americans
don't know much about it. This page is a work in progress, but it is
meant to get you thinking about this very important issue.
Simple energy facts:
-- Just about everything you do involves consumption of energy, from
living in a comfortable home to driving to work to buying groceries and
feeding yourself.
-- Oil, in particular, is the life-blood of industry. The United States
makes up 5% of the world population, yet uses roughly 25% of its oil. Oil
usage is involved in virtually every product we produce or consume.
-- Demand for energy is constantly on the rise, particularly in countries
like India and China, which are going through a significant industrialization
phase.
-- Peak Oil is the term used to represent when demand for oil
will exceed the supply. Experts believe this will occur sometime in the
next thirty years. Pessimists think it has already happened. The two
times in the past when demand exceeded supply were followed by recessions,
and those previous two times were artificial scenarios. Peak Oil will
not be artificial. It will be irreversible.
Do your part. Understand your energy usage and your country's energy
policies. Here are some links to help.
WeCanSolveIt.org Dedicated to powering the U.S. with renewable energy
After six months of hardly touching Linux,
I decided to reclaim my disk space from the Linux
partition I'd created since I ultimately could not get Ubuntu to boot
or to come out of standby consistently on my system, and since
my wife's reaction to Linux was most assuredly negative. Using
Partition Magic 8.0, I merged the partition back into my
NTFS partition, but this was an unmitigated disaster, because I
removed the partition with the GRUB loader that Linux had installed,
and immediately afterwards, my computer wouldn't boot! Word to the
wise: if this happens to you, put in your XP start-up disk,
go to the command-line
recovery console, type "help," and try the commands that look like
they'll fix the boot. There are two, and FIXMBR (fix master boot
record) did the trick for me. Do not, under any circumstances,
select "Repair my XP installation," like I did before I discovered
the FIXMBR command! This completely trashed my XP installation, reverting
it back to its 2001 state. It did leave my files and settings and apps
intact, but I had to spend four hours updating XP back to its modern
state--very painful! A week later, I tried to merge my main boot
partition with another partition (combining two 120 GB partitions
into one 240 GB partition) using Parition Magic 8.0, and that
was also very bad. I had to fix it with the command-line recovery
console again, and it ended up not "taking." That is, once I finally
got my system to boot again, the partitions hadn't been merged.
I'm not impressed with Partition Magic 8.0. This thing is
supposed to be on its 8th major revision, so you'd think it would
guarantee that your computer could boot after it did its work!
8 JAN 2008 -- DIGITAL RIGHTS MANAGEMENT (DRM)
It's such a simple concept. Sell individual downloadable songs on-line for
a nominal price in an open source format at varying levels of quality...
That's what I wrote back in late 2003, and as of January 4, 2008,
all four of the major labels now offer MP3's without DRM for sale.
I commend the RIAA and the music industry for listening to the
voice of reason. As for Hollywood and the movie studios, that's still
another story...
IrfanView doesn't work quite as seemlessly as I thought in Wine. It is
functional, but the keystrokes don't work for some reason, and I can't
get it to seemlessly be my default image viewing app. Fortunately, the
default image viewer in Gnome isn't terrible. It has some of the key
features I like about IrfanView--a hot key to go to the next picture in
the folder and hot keys to switch between native resolution and "fit to
screen." But it's not nearly as complete feature-wise as Iview. Next
I want to add image rotation options to the Nautilus menu when I right-click
on an image. I think I've found some threads that tell how to do this.
One of the important things about that will be not to change the mod date
on the image when I rotate it.
28 DEC 2007 -- TIME TO EXPERIMENT
I am using (or abusing, as my wife would put it) the holiday break this year to
start investigating Linux on my PC. My ultimate goal is to be free
of the chains of Microsoft and shed their O/S before I feel compelled to
upgrade to Vista. I bought Partition Magic and re-sized one
of my HD partitions so that I could add a Linux partition. I then installed
Ubuntu 7.10 and started tinkering. It's slow-going, but I am getting more
confident about making the leap. I initially spent a couple frustrating hours
figuring out how to get Ubuntu to successfully wake up from standby mode
(it is a must for me to have standby mode be workable).
I needed to switch to a more
suitable video driver for my ATI All-in-Wonder 8500DV than Ubuntu
originally selected in the install process (it chose a generic
VESA driver). Other things have gone
more smoothly. Most of the games I have (Hoyle and other) play
perfectly in Wine (a Windows Emulator for Linux). Wine emulation was
also improved when I switched to the more appropriate graphics driver.
Quicken 2007 does not work in Wine at this point, but MoneyDance
($30) looks like a very good alternative and did a good job
importing the .QIF file exported from Quicken. Today I just got the forward
and back buttons on my Microsoft Intellimouse
to work (not at all obvious, but somebody had already
done all the legwork at UbuntuForums.org).
Linux has a ways to go to
catch the polish and robustness of Windows, but it's come a long way and I
like what I see. For one thing, Ubuntu automatically mounted all
of my Windows NTFS volumes when it installed, so I can read and write to all of my Windows HD
partitions. That makes file sharing a snap. I didn't try installing Ubuntu
on an NTFS partition itself, though. I wasn't that brave. Linux also
seemlessly intermixes 64-bit and 32-bit environments. You truly get the best
of both worlds. Wine is hit and
miss. It runs a lot of Windows programs very well, but others (usually newer
stuff which presumably uses some newer API calls) flop. I'm committed to it,
though. I don't want to install VMWare. What's the point of switching to Linux
if I have to keep around a legitimate copy of Windows, after all? My wife's
only comments so far have been "I'm not impressed!"
3 MAR 2007 -- GETTING YOUR CHILD TO SLEEP AND THE FERBER METHOD
At our child's nine month doctor visit, my wife mentioned
to our pediatrician that
our child wasn't sleeping well, waking up several times during the night. The
pediatrician recommended Dr. Richard Ferber's
popular book,
Solve
your Child's Sleep Problems, which provides a method for getting children to sleep
through the night in their crib. Ferber's method is to let the child
cry for progressively longer intervals so that he/she will eventually learn
to go to sleep on his/her own. We tried this method on our child,
and after about ten days, it was mildly successful--he tended to only fuss for a few
seconds when he woke up and then would go right back to sleep, although he was often
up for an extended time around 4am. But his mood during the day was
significantly altered. He was much more insecure and clingy. My wife was
not satisfied with the result, so
she went to the library and did more research on infant sleeping
and came across Good
Nights, by Dr. Jay Gordon and Ms. Maria
Goodavage, which recommends
sleeping with your baby, or "family bedding." The big scare for most
people who contemplate family bedding seems to be that they'll roll over on their child and suffocate
him/her, but statistics show that family bedding is actually less dangerous
than having the baby sleep alone in a crib (according to the book). You can
read the book for more details on the many positive attributes
of family bedding.
My wife, child, and I are now total converts.
Our child still doesn't always sleep through the night, but he tends to
only wake up once, and more importantly, his mood during the
day is now dramatically improved
to where he is happy and confident. We highly recommend
reading Good
Nights, and we wish our pediatrician had been more open minded than to
recommend only Ferber's book.
(How to get high quality sound from your iPod or Satellite Radio on your car stereo.)
Long story short: I made a simple FM antenna for my Sirius Satellite
radio car kit's FM transmitter, and now the sound quality is excellent.
I subscribe to Sirius Satellite
Radio and love the concept, but for a long time I had difficulty
getting quality reception. My car only has a tape player/AM/FM radio,
and it's not easy to get access to the back panel
(why car stereos don't come standard
with auxiliary stereo RCA jacks on the front panel is beyond me).
I bought one of the car kits for Sirius that uses an FM transmitter,
which is a popular, wireless way to make use of your car stereo to
listen to portable electronics such as CD players or iPods. This type
of system works by taking the audio signal and modulating it onto an FM carrier
at 88.1, 88.3, 88.5, or 88.7 MHz (switch selectable).
You then tune your
car's FM radio to that same frequency, and, voila, you hear the
music.
Not so fast, though. The FM signal put out by my receiver wasn't strong
enough, so I got a lot of static with it, so much so that I gave up on
this solution temporarily. I then turned to a cassette tape adapter.
You've probably seen these--a stereo microphone plug, which goes into
your iPod or Satellite Radio receiver, connects to a cassette tape which
goes into your car stereo. Don't buy one of these. I don't consider
myself to be an audiophile, but the sound quality was terrible. The high
frequencies get badly attenuated, and s's and th's end up sounding very
staticky to the point of being unbearable. So I was back at ground zero
unless I wanted to crack open my dash board and get access to the back
panel of my car stereo, which I didn't.
Then (yes, I don't know why it took me so long) I noticed that my satellite
receiver had a jack called "FM antenna." This jack allows you to
connect the receiver directly to your car stereo's FM antenna input, but,
as I've already said, I could not easily access the FM antenna input for
my car stereo. I reasoned that if I connected
a dipole antenna to the jack, though, perhaps that would provide enough signal
fidelity to make the FM transmitter work without the static. So I
fashioned a simple half-wavelength dipole antenna as pictured below:
A simple FM dipole antenna for an FM transmitter (or receiver)
system.
It plugs into the FM antenna jack on your transmitter. The wavelength,
l, is calculated by dividing the speed
of light by the frequency, e.g.1.18 x 1010 in/s divided by
88.5 x 106 Hz.
I could have made the dipole antenna from individual parts,
but I bought a $5 AC/DC
adapter from Radio Shack that had the right kind of plug and a cord
where I could easily pull apart the two conductors. After cutting
the conductors to the right length,
I plugged my antenna into the FM antenna jack on my Sirius receiver, and wow,
what a difference. The sound quality is now excellent (I'm probably
violating some FCC broadcasting limits, but I think I'll take my chances).
If you've been struggling with the sound quality from an FM transmitter
system for your car stereo, and it has an FM antenna jack like mine, I
highly recommend this approach.
Notes: The length of the antenna is not critical. I have listed the
optimum length for 88.5 MHz, but your car's external FM antenna uses one
length to cover the whole FM band because there is not a large penalty
for being off slightly in the length. Similarly, the antenna wires don't
have to be kept perfectly straight. I tucked mine into the seam along
the top of my dashboard so that it's mostly out of sight.
After about five years with the same e-mail address, I finally had to
pull the plug on my easy-to-remember e-mail address in October of 2003
because of
spam. I was receiving over 100 spam messages per day, and wading
through them to find my important e-mail was taking more and more of my
time. Because of the applications I must use for my e-mail, filtering
is not a good option for me. Yes, it upsets me that spammers
forced me into changing to a cryptic e-mail address, but now that I'm
smarter about what not to do, hopefully my new address will last longer.
If it starts getting high volumes of spam, you can bet that I'll change
it again.
If you've forgotten my address, you can still
send me e-mail.
Below I give my tips on how to avoid spam. I base these on a couple of articles:
(1) The MIT Technology Review, July/August 2003, cover story, "Spam
Wars," and (2) The Consumer Reports issue from August 2003 (also the
cover story).
1. First and foremost, treat your and other people's e-mail addresses
like the private information that they are. Don't publish e-mail
addresses on any web site and don't e-mail them to strangers or people
you are not sure you trust.
2. If you can get a second e-mail account for free (for example, on
yahoo.com or hotmail.com), use that account for registering with
services or businesses that you are not sure you trust to keep your
e-mail address private.
3. Try to be judicious when sending e-mail to a large list of people.
Putting a ton of e-mail addresses in your TO list "cross-pollenates"
e-mail addresses, making all of these addresses available to the entire
group you are sending to. Consider using the BCC field for your large
list since it will not display the complete list of recipients to all
recipients. One drawback to using BCC is that some people may filter
out your e-mail if their address is not explicitly in the TO or CC field
(as a measure against spam!).
4. Choose an e-mail address that is not easy to guess. Spammers can get
your e-mail address even if it isn't published
anywhere because they can guess at it, trying millions of combinations
and keeping the ones that don't bounce.
5. Don't ever answer a spam mail or even read it. Don't unsubscribe.
Just delete it. I don't even recommend that you bounce it, as the
return address on most spam is forged
(this happened to me).
6. Don't forward chain letters, petitions, warnings, etc. These could
be ploys to collect addresses.
7. If you like, forward your spam to the FTC's spam collection address
at uce@ftp.gov.
8. Filter your e-mail. Consumer Reports reviewed several filtering
programs, including Stata Labs SAProxy,
Mailshell's SpamCatcher, Blue Squirrel's Spam Sleuth, Symantec's Norton
Internet Security 2003, MailFrontier's Matador, Sunbelt's iHateSpam,
FireTrust's MailWasher Pro, McAfee's SpamKiller, and InterMute's Spam
Subtract. I have listed them in the order that they were rated
(best to worst), though all but InterMute were rated at least "good."
9. If you have a registered domain name, your e-mail address can be
harvested from your registration information at the
whois server
from your registrar. You might consider
using a service from
domainsbyproxy.com
which keeps your registration information private for $9/year. If you
don't want to go that far, then use a registrar like
wild west domains, which makes
it difficult for automatic scripts to look up your information on their
whois
server.
16 OCT 2003 -- SPAM FROM WILLUS.COM ISN'T REALLY FROM WILLUS.COM!
My apologies to anybody who may have received (or may still be receiving)
spam e-mail from willus.com with links to porn sites (example below).
These are not
being sent by me, but by somebody who apparently picked my web site
(hopefully at random from a list of registered web sites)
to use in the "reply-to" field. On May 16-17, I received
over 1000 of these e-mails which bounced from or were refused by
various people.
I subsequently reported this case to my service provider,
the FTC,
and the FBI.
The letter I sent to the FTC is below.
If you run a spam filter which automatically bounces spam back
to the sender, you may want to re-think this policy. The bounced mail
can easily be routed to an innocent victim (my case being an example),
it adds to internet e-mail congestion,
and it rarely has the desired effect. I recommend that you set your program
to simply delete spam rather than bouncing it back to the sender.
LETTER TO THE FTC
Hello,
The e-mail below is a spam e-mail that was sent to over 1000 addresses on
5-16-03. It used my website (willus.com) as a bogus return address, so I
received all of the e-mail bounces due to this perpetrator. The e-mail
header seems to indicate that the source was IP address 203.51.239.145.
This e-mail may still be getting sent. I do not know since my service
provider is now blocking the e-mail bounces from getting back to me.
Willus.com
(service provider prentice-internet.com)
SPAM E-MAIL w/BOGUS RETURN ADDRESS
==================================
Return-Path: <Kathryn@willus.com>
Received: (qmail 28628 invoked from network); 17 May 2003 03:09:46 -0000
Received: from unknown (HELO i9aI8r) (203.51.239.145)
by server.iicinternet.com with SMTP; 17 May 2003 03:09:46 -0000
From: Kathryn <Kathryn@willus.com>
To: (name deleted to protect privacy)
Subject: You've been selected for this offer.
Date: Fri, 16 May 2003 20:50:43 -0500
Mime-Version: 1.0
Content-Type: text/html
X-Mailer: Microsoft Outlook Express 5.50.4522.1200
Hey Folks,
I got nice sites here I think you should all check out!
Variety is the spice of life, why should you miss out?