Tag Archives: video

New Udemy course: Personal Digital Preservation

course imageMy second Udemy course, Personal Digital Preservation, is now available! The regular price for enrolling is $16, but for readers of this blog (and anyone else you want to tell!) it’s just $10 with the coupon code DATALITH10. That code is good through the end of February.
Continue reading

File Format Identification Tools: Price War!

Udemy does strange things with course pricing. They’ve put my course on file format identification tools on sale for $10, through January 11. This is the same price as my introductory coupon code, which expired last night.

The only problem is that when you sign up on Udemy without a coupon code, I only get to keep half the money. If you use a coupon code, I keep almost all of it. So in self-defense, I am declaring a price war against myself. With the coupon code PRICEWAR01, you can get the course for just nine dollars! If you use the code, I keep more money at that price than at Udemy’s $10 price, so please use the code.

The code expires January 11, the same day as Udemy’s sale.

Course on file format identification tools: Progress report

The video course which I’m developing on “File Format Identification Tools” is almost ready to submit to Udemy. I’m holding off for a little more work at the Open Preservation Foundation on JHOVE, because some user interface details are going to change from the current beta (1.12 beta). The other tools covered will include file, DROID, ExifTool, and Apache Tika. This course should be useful to both students and professionals who want to learn how to use the tools.
Continue reading

Video

Video: Introduction to JHOVE

A new video on my YouTube channel offers a seven-minute introduction to JHOVE. This is a teaser for my upcoming video course on file format identification tools, as well as a public test of the techniques I’ve been developing. It’s a screen capture video, and I cover the GUI version, even if it’s not as widely used, because it lets me focus on the concepts, and because it’s silly to teach a command line application in a video.
Continue reading

Course planning: File identification tools

My current main project is creating a course to offer on Udemy on file format identification tools. As currently planned, I’ll cover file (the command line tool), DROID, ExifTool, JHOVE, and Apache Tika. Covering more than five tools in one course would make it too big, though I might consider changing the list. If I can keep my schedule, I’ll have it out in December for early feedback, giving me a chance to clean it up before MIT’s Independent Activity Period in January.

Right now I’m occupied with the mechanics. The course insists on 1280 x 720 pixel video, so I need a new camera; a friend is selling me a Canon Elph 520 HS cheap. Screen capture software is proving interesting; I’ve looked at three different Macintosh applications so far.
Continue reading

Video

Video: A short history of graphic file formats

My video for today briefly covers graphic file formats from the forties to the present. I made some interesting discoveries along the way, especially Laposky’s CRT “Oscillons.”
Continue reading

Video

New video: Introduction to file format internals

This is my very first YouTube video, intended to give starting-level computer science students an idea of some of the basic issues of file formats. Suggestions on how to make future ones better, in terms of both content and technique, are welcome. If I get serious about these, I’ll invest in something better than the very painful iMovie.
Continue reading

Video

Understanding JPEG DCT

Some of us know that JPEG uses the Discrete Cosine Transform (DCT) to do lossy compression. A few people have more than the vaguest idea of what that means, and I don’t claim to be one of them. Today, though, I found a video on YouTube which gets me closer, even though I’m not very inclined toward advanced mathematics. It’s included in my file formats playlist on YouTube.
Continue reading

Audio and video in HTML5

I’ve been studying up on streaming audio and video and related issues, so lately I’ve been playing with the <audio> and <video> tags in HTML5. It’s possible to put them to good use, but there are more issues than their proponents will readily admit.

A good piece of news is that both tags do exactly the same thing except for their appearance. You can play video with the audio tag and vice versa, and they implement the same DOM model. (Of course, you won’t see anything interesting if you use <audio> for video.)

The main limitation is that these tags support only progressive streaming, which differs from “true” streaming in some important ways. Progressive streaming means downloading a file and starting to play it almost immediately, rather than after it’s finished downloading. Its disadvantages are that the bit rate can’t be adjusted while playing, you can’t keep the file from being grabbed in its entirety with a simple HTTP call, and the download continues to completion even if the user pauses the player. These aren’t always significant problems, but they mean that the new HTML5 tags aren’t the full replacement for Flash which they’re sometimes claimed to be.

There’s enough interest in true streaming that various parties have developed protocols to do it over HTTP. These include HTTP Live Streaming from Apple, HTTP Dynamic Streaming from Adobe, Smooth Streaming from Microsoft, and Dynamic Streaming Over HTTP from MPEG (which its proponents insist isn’t a protocol). There are more details on streaming on my website.

The other problem with the HTTP tags is that there’s no one encoding that all major browsers support. This problem is well known on the video side, but I was surprised to discover it’s even true for audio. The current version of Firefox doesn’t natively support MP3 in the audio tag, and the QuickTime plugin isn’t used in this case (or at least I can’t get it to work). The reason for this is software patents. There’s a good discussion of the state of MP3 with Firefox on Stack Overflow.

You can specify several <source> elements within an audio or video element, and the browser will try each one in turn till it finds one it can play. Two formats or at most three will cover all major browsers. For audio, including both an MP3 and an Ogg Vorbis version should cover all the bases; for video, MP4/H.264 and Ogg Theora should do it, though you might want to add WebM.

Specifying the type attribute as the MIME type of the file (e.g., <source src="song.mp3"
type="audio/mpeg">
helps the page to load faster, since the browser can determine without examining the file if it can play the file in principle. Make sure, however, to use only the canonical MIME types. From experimentation with various browsers, these include:

  • audio/mp4
  • audio/mpeg
  • audio/ogg
  • video/mp4
  • video/ogg
  • video/webm

If you specify application/mp3 rather than audio/mpeg for an MP3 source, the browser may decide it can’t play it even though it really can.

Another issue is the AV API for HTML5. There’s a pretty decent DOM API to go with the audio and video tags, allowing you to override the player controls and dynamically change content. Some implementations (e.g., Mozilla’s version) have added private extensions. Some people want more power, so there are third-party plugins and JavaScript libraries such as MediaElement.js that extend the API.

It’s a minefield, except that the mishaps come from the absence of an earth-shattering kaboom. Still, using the HTML5 tags is much simpler than Flash or HTTP streaming.